La vida un año después de la introducción de los robots: mientras no se pide igualdad

Auge de los robots. Parece ser algo increible. E incluso si es probable, sucederá pronto. Sin embargo, vale la pena considerarlo: el personal de robots de nuestros socios creció en 22 autos en un año. Y claramente no van a detenerse. Y de repente, la próxima actualización no irá según el plan y el robot la abandonará. O decir que estaba cansado de trabajar en contabilidad. Más detalles debajo del corte!



Button - back office para emprendedores. Llevamos a cabo la contabilidad, resolvemos problemas legales y eliminamos la rutina.

Este artículo es una continuación de esto: Rise of the Machines: cómo los robots capturaron la contabilidad .

Doy la palabra al autor.

¿Cuántos robots y por qué nos necesitan?


Ahora se lanzan regularmente 64 robots. Necesitamos robots no solo para el trabajo intelectual, sino también para la quema diaria de ollas. Por ejemplo, para recopilar estadísticas, para monitorear información de 1C para nuestra aplicación. Los robots ayudan a facturar e incluso a limpiar la basura después de otros robots.

Para automatizar el trabajo de un contador, trabajamos estrechamente con bases de datos en 1C. Intentamos diferentes opciones para esto. Lo contaremos con más detalle.

Interoperabilidad a través de COM. Históricamente, esta es la primera forma en que logramos establecer interacción. Obtuvimos un trabajo confiable al escribir en la base de datos 1C, pero cumplimos con los contras:

  • Las conexiones se establecen durante mucho tiempo, a veces se congelan o se rompen inesperadamente.
  • Debe conectarse a cada base 1C por separado, omitir todas las bases puede llevar horas.

Interacción a través de la base de datos postgreSQL utilizando un traductor. Este enfoque nos dio una imagen general del estado de las bases de datos 1C de cada cliente. Por ejemplo, ¿hay contrapartes duplicadas o documentos publicados incorrectamente?

Pros:

  • Conectarse a la base de datos es muy rápido.
  • Puede trabajar inmediatamente con un grupo completo de bases de datos 1C, lo que aumenta la velocidad de procesamiento en órdenes de magnitud.

Contras:

  • Funciona solo en la lectura de la base de datos. Teóricamente, el trabajo de grabación también se puede hacer, pero para esto necesita repetir toda la lógica 1C: no es práctico.
  • El desarrollo lleva más tiempo y el soporte de procesos es más complicado que en el método COM.

Interacción a través de OData. Probé recientemente.

Pros:

  • No hay problema con congelaciones o conexiones rotas

Contras:

  • La primera operación lleva mucho más tiempo que las posteriores, aunque la conexión se establece rápidamente.
  • Se necesitan inversiones en la infraestructura de interacción para usarla tan convenientemente como en el caso de COM.
  • Se requieren esfuerzos adicionales para administrar 1C, especialmente al actualizar la configuración.

Interacción a través de servicios web. Este enfoque ha sido probado relativamente recientemente.

Pros:

  • Funciona rápidamente y sin demora.

Contras:

  • Necesitamos el desarrollo dentro de la plataforma 1C, el entorno para nosotros no es estándar, por lo que todavía no hay suficientes competencias y se requiere infraestructura adicional para implementar CI completamente.
  • Como en el caso de COM y OData, las tareas solo pueden resolverse dentro de una base de datos 1C.

Los robots necesitan ser controlados


Los robots son imperfectos. Al igual que sus creadores, tropiezan, caen y se rompen. Las razones pueden ser muy diferentes: configuración incorrecta de servicios, errores en el código, problemas de nivel de hardware, fallas de hardware. Es importante que lo descubramos lo antes posible. Porque hay muchos procesos comerciales de la empresa vinculados a los robots. Creamos robots de monitoreo para hacer un seguimiento de todos.

Monitoreamos cuándo comenzó el robot por última vez. Si sabemos que debe comenzar una vez por hora, pero ha estado descansando durante 3 horas, esta es una ocasión para estimularlo.

Sucede que un robot finge estar funcionando, pero de hecho está congelado. Para captar esto, miramos en el diario, que el robot escribe sobre su trabajo. Si las entradas no aparecen lo suficiente, debe reiniciarlas.



Hay robots en los que las consecuencias de errores y bloqueos no se notan de inmediato. Para notar que algo estaba mal a tiempo, creamos métricas que se centran en los resultados del trabajo. Entonces controlamos los robots más importantes.

Por ejemplo, un robot conductor es importante para nosotros. Se asegura de que los documentos entrantes se tengan en cuenta correctamente en 1C. El robot realiza una ronda de todas las bases 1C en 3-4 horas, medio día hábil. Recordemos que servimos a 1300 empresarios. En cada ronda, el robot no entra en ninguna base. Lo más probable es que solo al día siguiente, el contador notará que el robot no buscó en una base específica.

Este robot trabajó para evaluar en una base de datos específica, una tarea seria separada para un contador que, además de tener documentos, tiene otras tareas para contabilizar y asesorar a los clientes. Por lo tanto, en realidad, este error se puede notar solo después de una semana, o incluso un par. Y a tiempo, documentos fallidos: un impuesto calculado incorrectamente.

Por lo tanto, configuramos el robot para que registre qué bases giró y cuándo, y en este caso vemos cuántos, qué bases no omitió el robot y durante cuánto tiempo. Como resultado, llamamos la atención del contador hacia donde es necesario y en el momento adecuado.



Los robots necesitan ser cambiados


En los sueños de un futuro robótico, uno puede esperar que un robot brillante que acaba de salir de la línea de ensamblaje haga su trabajo para siempre, y podamos hacer algo más interesante. En la vida real, esto no es así. El tiempo pasa y lo que ayer parecía un trabajo bastante adecuado, hoy ya no está satisfecho. La calidad del resultado no es que funcione demasiado lentamente, o que incluso haga lo que no tiene sentido en la situación cambiada. Los robots están envejeciendo y necesitan ser actualizados.

Consolidación de robots


Algunos robots se dedican a tareas relacionadas, pero sus acciones no están coordinadas o se esperan el uno al otro durante mucho tiempo. Desmontamos tales robots y ensamblamos uno que se dedica a todas las tareas relacionadas.

Siempre mantenemos robots que trabajan en una tarea con una persona, "en servicio" en previsión del trabajo que reciben de una persona.

Tomemos, por ejemplo, el proceso de convertir escaneos de documentos en papel en documentos registrados en 1C. Anteriormente, varios robots hacían esto juntos:

  • Un hombre del saco desempaqueta archivos en archivos separados, y el pdf con varias páginas se convierte en varias imágenes.
  • El robot clasificador mira las imágenes, las clasifica y las organiza en carpetas.
  • Luego, el robot de reconocimiento hace su trabajo.

Después de su trabajo, el contador principal se conecta para verificar y corregir el robot, si es necesario. Después de la persona, se conecta un robot, que guarda los documentos en 1C, y luego un conductor de robot que los conduce. Todos estos robots se configuraron en modo de encuesta. Comenzaron su propio horario de vez en cuando y buscaron si había trabajo. Si es así, lo realizaron y luego se durmieron nuevamente.

Hay muchos robots, por lo que se agregaron retrasos en el horario de cada robot. Resultó que desde el momento en que vimos el documento, nos dimos cuenta como tal, comenzamos a trabajar con él antes de que el documento completo aparezca en la base de datos 1C, puede tomar media hora o incluso una hora. Para informar al cliente de la tasa impositiva actual sobre los documentos disponibles, el contador tuvo que esperar mucho tiempo. Entonces, ¿cómo desea responder al cliente en línea?

Para una nueva solución, desmantelamos los robots para piezas y ensamblamos dos nuevos. El primero convierte archivos y archivos PDF en documentos que ya pueden enviarse a 1C. Luego, la persona verifica el trabajo, si es necesario, algo gobierna. El segundo robot recoge inmediatamente el documento después de la verificación, lo guarda y lo guarda en 1C.

Ahora el trabajo está configurado en el modelo de evento: los robots siempre están en modo de espera y reaccionan inmediatamente cuando una persona termina su parte.

Mejora de robot


Después de reducir el tiempo para guardar un documento en 1C, encontramos otro problema. Registramos casos cuando los documentos se perdieron de nuestro lado. Tuve que volver a solicitarlos al cliente, lo cual es extremadamente desagradable. Solo estoy resolviendo este problema ahora. Y parece que desarmaremos y ensamblaremos nuevos robots nuevamente.

También volvimos a entrenar las redes neuronales para clasificar y convertir documentos en más redes neuronales y de malla. Esto dio un aumento de precisión del 1%. Unos cientos de páginas más por semana ya no requieren atención humana.

Actualización de robot por cambio de plataforma


La última vez hablamos sobre por qué decidimos cambiar de Java a Dotnet y cómo fue. Hace un año, todavía había mucho código Java. Aserramos incansablemente este peso dorado. Y solo en marzo pudieron apagar por completo los servidores en los que se ejecutaba Java. Junto con ella, parte de los robots también se fue a otro mundo.

Nuevos robots


Tegun


Los clientes nos escriben sobre varios temas. Para que estas preguntas encuentren a su artista, las categorizamos con etiquetas. Al principio, la gente lo hizo, pero decidimos facilitar su trabajo y escribimos un robot. Y lo llamaron - テ 軍 (Daegun).

La primera versión fue muy simple. El trabajo en nuestra aplicación se organiza en forma de correspondencia con sucursales. Puede haber varias tareas en una rama. El robot categorizó: coloque una etiqueta, según la etiqueta que haya en esta correspondencia. Obviamente, en las nuevas ramas donde todavía no hay etiqueta, el robot no hizo nada. En tal implementación, el robot procesó el 40% del trabajo de las personas, mientras que se equivocó en el 10% de los casos.

Para que el robot pueda determinar al artista en nuevas ramas, le enseñamos a leer. Para hacer esto, utilizamos la regresión logística y el aumento de gradiente para la predicción, combinados con tf-idf y WordToVec para la lectura. La última versión del robot permitió tomar el 60% del trabajo de las personas. ¡El conocimiento es poder! Aunque el robot comenzó a cometer errores en el 15% de los casos, las tareas comenzaron a llegar a los artistas más rápido.

Enviar informes


No siempre se requiere inteligencia para llevar a cabo el trabajo necesario y útil. Los programadores y los contadores saben que la rutina puede tomar hasta el 80% del tiempo. Por ejemplo, para enviar el informe SZV-M, el contador de nómina debe abrir la base de datos 1C, presionar unos diez botones, ingresar datos en los intervalos, esperar hasta que 1C diga "todo está bien" y cerrar la base de datos.

Cada una de estas operaciones dura 5 minutos. Un poquito Pero para hacer esto para todos los clientes de botones que necesitan un informe (hay alrededor de 600 de ellos), deberá pasar 5 * 600/60/8 = 6 días hábiles de trabajo mecánico continuo. Varios robots clon que hacen aproximadamente lo mismo hacen el trabajo en un día. Recuerde que dicho informe debe presentarse todos los meses, y días hábiles en un mes - 20. Un tercio del tiempo de trabajo de un contador se gastaría solo en el envío continuo del informe.

Sincronización con 1C


Otra clase importante de robots que han aparecido durante el año pasado son los sincronizadores.
Nuestra aplicación tiene documentos y extractos bancarios que están estrechamente relacionados con los datos de los objetos 1C. Es importante para nosotros que el estado de la aplicación coincida lo más posible con el estado de las cosas en 1C. Usamos esto para buscar duplicados, para buscar objetos de manera conveniente y para mostrar los datos correctos a los clientes. Mediante la interacción a través de la base de datos postgreSQL, pudimos rastrear los cambios que ocurren en 1C y reflejarlos rápidamente en la base de datos de la aplicación. Por el momento, la discrepancia en el tiempo no supera los 5 minutos.

¿Se benefician los robots?


Ya no podemos rechazar robots. Automatizan una parte importante de la rutina, tanto que nos permitió crecer en la base de clientes, sin aumentar proporcionalmente el personal de los contadores. Si apagamos nuestros robots, en algún lugar perderemos 2 horas en tiempo de respuesta de inmediato, y en algún lugar comenzaremos a cometer errores u omitir errores.

Nuestros contadores ya se centran en gran medida en las métricas que muestran el resultado de un robot en particular. Esto nos permite "ensayar informes" un mes antes de los informes reales. Planifique en días reales cuánto tiempo necesitamos para lograr generar informes y entregarlos a tiempo. Este es un gran paso hacia la transparencia y la fiabilidad del proceso contable para el cliente.

Aún así, los robots son pocos, necesitas un hombre. Porque los robots se descomponen y necesitan ser reparados. Los robots pueden cometer errores, necesitan ser revisados ​​y entrenados. Otra dificultad es la creación de una interacción efectiva entre robots y humanos. Por un lado, es necesario crear robots convenientes para los humanos y, por otro lado, poder enseñar a las personas cómo usarlos.

Gracias por el artículo de Vasily Chernoyvan.

Source: https://habr.com/ru/post/es413019/


All Articles