Header Ads Widget

Ticker

6/recent/ticker-posts

¿Qué es la automatización del flujo de trabajo de Human-in-the-Loop?



La automatización es la tecnología prometedora del futuro, que ofrece una eficiencia incomparable por un bajo costo de recursos. Desafortunadamente, la automatización también trae una serie de desafíos y problemas que hacen que su implementación completa sea posiblemente incorrecta en determinadas circunstancias.

A continuación, hablaremos sobre una solución intermedia llamada automatización del flujo de trabajo Human-in-the-Loop. Tina Huang de Transposit discutió este tema en la Cumbre de la Plataforma de 2019 . Esta presentación es la base de esta pieza, que debe verse como acompañante.

¿Por qué automatización frente a manual?

La automatización es ante todo una solución que aumenta la eficiencia. Las tareas manuales a menudo consumen mucho tiempo por sí solas, lo que genera muchos gastos generales. Para cada flujo de trabajo manual corporativo, se debe crear un ticket y realizar un seguimiento; un gerente de proyecto debe manejar esos tickets y sus flujos de trabajo asociados; los equipos deben gestionar las terminaciones y las transferencias, etc. Los procesos manuales incurren en costos que no son obvios pero que escalan enormemente. También introducen margen para el error humano.

Los paradigmas de adopción modernos impulsan la necesidad de automatización. SaaS, o Software as a Service, se ha convertido rápidamente en un gigante de la productividad, lo que permite un mayor y más rápido desarrollo y utilización. Si bien SaaS es positivo en términos netos, introduce silos. Aunque las tareas manuales tenían una mayor sobrecarga anteriormente, al menos podían realizarse en un solo lugar. En un entorno impulsado por SaaS, las tareas pueden tocar muchas plataformas y sistemas diferentes, lo que obliga a múltiples uniones para incluso flujos simples. Todavía puede haber un flujo de trabajo manual en cada una de estas coyunturas, propenso a problemas similares a los anteriores.

Las API brindan el poder para automatizar este ecosistema de flujo de trabajo, reduciendo los flujos de trabajo manuales totales y reduciendo la sobrecarga manual general. Por lo tanto, la implementación de la automatización no es simplemente un ahorro de tiempo, es un sistema de reducción de errores, un generador de confianza en la plataforma y, en última instancia, un refuerzo de la productividad.

El argumento a favor de la participación humana

Sin embargo, la automatización no soluciona todos los problemas. En muchos casos, la automatización presenta su propio conjunto de problemas. La mayoría de las herramientas automatizadas se enfoca en procesos fácilmente automatizados, generalmente basados ​​en un activador concreto y bien definido y una serie de acciones de seguimiento que pueden completarse sin la participación humana.

Por ejemplo, completar automáticamente la información de la fecha actual es relativamente fácil de automatizar, ya que en realidad solo hay una respuesta correcta. Pero, ¿qué pasa con los tipos de datos y los flujos de trabajo menos aparentes en la máquina? El problema es que la mayoría de las herramientas solo consideran contenido fácilmente automatizable y no proporcionan mucho espacio para la interacción humana.

Pero, ¿por qué necesitamos la participación humana? La automatización completa no admite una amplia gama de casos extremos, lo que crea barreras para flujos de trabajo completamente inteligentes. Veamos algunos casos extremos para ver dónde un proceso automatizado puede fallar tan mal como uno manual.

Un ejemplo de causa para los flujos de trabajo HITL

Imaginemos un sistema en el que un usuario pueda registrarse en su servicio y, a partir de este registro, se genera una entrada de marketing. Esta información de marketing es valiosa, pero a menudo está incompleta; es posible que también deseemos saber de dónde fueron derivados y la cantidad de dinero que gastaron en su sesión después de registrarse.

El problema central de la automatización en este tipo de casos extremos es que los datos existen en múltiples fuentes, cada una con entradas variables y tipos de registros. La información de referencia podría provenir de una hoja de cálculo física de los equipos en la calle o de un sistema de referencia automatizado. En tal caso, sus datos están desordenados y deberían desinfectarse antes de ser útiles. Incluso si está desinfectado, esos datos aún deberían ser buscados en busca de fuentes de verdad; por ejemplo, ¿confiamos más en las entradas manuales que en el sistema automatizado?

La automatización solo causa más problemas aquí, pero hay un término medio que puede ofrecer resultados automatizados con poca entrada manual. En este ejemplo, ¿por qué no dejar que las máquinas recopilen y combinen todos los datos aproximados, pero permitir que el humano en el circuito acceda a un proceso simplificado para elegir las entradas correctas en lugar de las incorrectas?

Este tipo de flujo de trabajo se llama Human-in-the-Loop , o HITL , y es un término medio entre la automatización completa y el procesamiento manual completo. Con HITL, en cada intervalo de automatización, se hace una pregunta simple: "¿Puede un ser humano agregar valor a esto?" Si un humano puede agregar valor, esto se convierte en un cruce donde un humano comete una acción. Este tipo de acción podría ser decidir qué fuente de datos es verdadera, o validar que una oferta debe extenderse, o incluso funciones más complejas como garantizar la autorización de dos personas para acceder a recursos remotos.

Inquietudes y desafíos

Por supuesto, nada es perfecto y HITL presenta algunos desafíos adicionales al flujo de trabajo promedio. Cuando implementa HITL, debe crear una serie de interfaces de usuario. Crear una interfaz de usuario puede ser un desafío y llevar mucho tiempo. Podría agravar el problema de tener demasiados servicios y API creando otro servicio o API. Para cada humano involucrado en el proceso, esta demanda escala en consecuencia, especialmente si los diferentes puntos de unión son discretos en función, forma y propósito.

Aunque queremos trabajar dentro de los sistemas que ya implementamos, es bastante tentador crear una nueva solución. Entonces, el problema es que no todos los sistemas son extensibles y escalables hasta el punto de que podamos conectar estos servicios al flujo de trabajo; es probable que necesitemos introducir otro enlace con otro sistema en el que trabajar.

Además, existe una preocupación por la identidad. ¿Cómo gestionamos la identidad cuando trabajamos dentro de un flujo de trabajo complejo? Si bien algunas soluciones como OAuth han hecho que esto sea más simple de resolver, sigue siendo un problema que debe resolverse universalmente.

Podría decirse que estas preocupaciones son menores en comparación con los problemas con los flujos de trabajo totalmente manuales o automáticos; Siempre que los tenga en cuenta y los aborde dentro del flujo de trabajo, centrándose en la experiencia del usuario, puede resolverlos y aumentar la eficacia del enfoque HITL.

El problema de la composición de API

Como lo describe Tina Huang, una causa fundamental de los problemas al introducir HITL es el problema de la composición de la API . Esta preocupación central se basa en la naturaleza de las API y el desarrollo de aplicaciones. Ya sea en la automatización o en esfuerzos combinatorios manuales como HITL, esencialmente estamos combinando API y sistemas como bloques Lego, apilándolos donde encajan y encontrando soluciones donde pueden no encajar perfectamente.

El proceso de integración rara vez se parece a Legos: debido a los matices en torno al desarrollo de API, conectar las API entre sí puede resultar bastante complicado. Esto, a su vez, crea el problema n + 1. En este tipo de situación, lo que debería ser una solicitud única se convierte rápidamente en n + 1, donde es necesario llamar a la API y a una función adicional para entregar el formulario y la función según sea necesario. Esto es, en esencia, una solicitud y una solicitud de seguimiento que se fusiona. Un buen ejemplo de este tipo de problemas es la paginación , que es fundamentalmente un grupo de mecanismos que responden a una única herramienta unificadora para conectar la retroalimentación de datos.

Esta complejidad puede convertirse rápidamente en un problema en un marco de automatización, donde cada elemento de ese marco debe desarrollarse dentro de una red de condiciones inseguras. Cada parte del sistema automatizado debe estar preparada para redes inestables, diferentes estándares de identidad, posibles errores, etc. Esto crea problemas importantes en un flujo de trabajo completamente automatizado, ya que cualquier falla en el camino causa una falla crítica que detiene todos los procesos siguientes. Si bien los problemas centrales también existen en HITL, el ser humano en ese bucle puede mitigar gran parte de la preocupación de seguimiento: si un sistema automatizado falla, HITL debería proporcionar un sistema a través del cual se permita que el sistema computarizado continúe y se mitigue la complejidad.

La aplicación de HITL

Para implementar HITL de manera efectiva, debemos pensar dónde el humano en el ciclo agrega más valor. Simplemente conectar a un ser humano en cada paso es esencialmente solo flujos de trabajo manuales con pasos semiautomatizados, lo que es un gran paso hacia atrás desde nuestro objetivo final. En consecuencia, debemos averiguar qué patrón de automatización nos gustaría seguir.

Quizás el patrón más simple es permitir que el ser humano sea el detonante de la automatización. Un excelente ejemplo de este tipo de flujo de trabajo HITL es el servicio al cliente. Cuando un cliente se queja, es posible que desee ofrecerle un producto gratuito para garantizar la lealtad a la marca y rectificar cualquier error. Para hacer esto, a menudo se necesitan una serie de pasos que requieren mucho tiempo: un representante de servicio al cliente debe presentar un ticket, generar un código de cupón, recopilar información del cliente, etc. Si esto estuviera completamente automatizado, existe la posibilidad de que el sistema se rompa, momento en el que cualquiera podría reclamar un producto gratuito abusando del sistema. Con los flujos de trabajo de HITL, puede permitir que el representante de servicio al cliente determine quién puede obtener el producto gratuito y luego proporcionar un solo botón que activa el resto del proceso, generando el código y la información de emparejamiento para entregar el producto.

Otro patrón es dar al ser humano la capacidad de realizar investigaciones proporcionando datos ricos. Por ejemplo, en una situación de desarrollo, si la compilación de un desarrollador falla por cualquier motivo, podemos automatizar el proceso de respuesta y resolución de problemas. En el proceso automatizado, podemos notificar al desarrollador que una compilación ha fallado y luego proporcionar herramientas automatizadas para buscar en los registros, reconstruir la compilación fallida, etc. Esto se puede hacer a través de sistemas automatizados vinculados a una interfaz de usuario, lo que permite opciones más inteligentes sin hacer que todo el proceso sea manual.

Otro buen caso de uso de HITL es un "patrón de verificación de cordura", que establece la responsabilidad de los humanos al verificar las acciones de un proceso automatizado. Las máquinas no son perfectas y, como tal, puede ser prudente que los humanos realicen "controles de cordura" en los procesos automatizados. Hacer que el proceso de aprobación final pase por una persona nos permite asegurarnos de que se eviten errores y que los sistemas automatizados hayan verificado la potencia.

Ejemplos de Transposit

En la presentación de Tina Huang, mencionó un par de ejemplos específicos de Transposit. Aunque reflejan la opinión de un proveedor sobre HITL, son algunos casos de uso muy buenos y, como tales, vale la pena repetirlos aquí. Si bien estos flujos de trabajo generalmente están bastante simplificados, este paradigma podría extenderse fácilmente a procesos más complejos con un poco de planificación.

Primero, Where's My Commit es un flujo de trabajo HITL más automatizado que utiliza Slack para identificar y localizar confirmaciones para el desarrollo. Al utilizar el /wheresmycommitcomando, un bot facilita la búsqueda de la confirmación y publica automáticamente la información combinada de múltiples fuentes. Esto es mucho mejor que el método original, que implicaba preguntarle a un ingeniero, que luego buscaría el ticket de JIRA, haría una referencia cruzada con GitHub y otros sistemas internos, combinaría los datos resultantes y devolvería la ubicación al solicitante.

Otra buena implementación es CirceCI. CircleCI es un sistema de gestión de compilaciones que informa sobre el éxito o el fracaso de las compilaciones. Cuando ocurre una falla, CircleCI proporciona el estado y la persona receptora puede seleccionar un conjunto de acciones rápidas. Estas acciones incluyen "recuperar artefactos", "reintentar la compilación" y "revertir el cambio". Este es un flujo de trabajo HITL más complejo, ya que se basa en múltiples recursos y métodos, pero proporciona interacciones humanas bastante simples.

Finalmente, Transposit creó un canal DevOps Oncall que es un centro para operaciones automatizadas de guardia. Cuando se automatiza una alerta en el canal, los usuarios pueden colaborar en torno al problema y utilizar las funciones de chat para realizar determinadas actividades. Un gran beneficio aquí es su /graphcomando, que permite a las personas obtener automáticamente una imagen de la compilación de AWS Cloudwatch y compartirla en el canal, sincronizando así el problema principal actual.

HITL: Híbrido de automatización humana

En última instancia, Human-in-the-Loop es un paradigma útil cuando se implementa dentro de las circunstancias apropiadas. Permitir que los humanos agreguen valor a una cadena automatizada es una excelente opción en la mayoría de los flujos de trabajo automatizados y puede generar una eficacia sin igual y una mayor responsabilidad.

¿Qué opinas de HITL? ¿Existe un paradigma mejor? ¿Hay formas en que una IA pueda ofrecer estos beneficios sin requerir necesariamente un humano real en el circuito? ¡Háznoslo saber a continuación!

Publicar un comentario

0 Comentarios