Y Graphi, porque como dije que el gráfico típico la programación de flujo de datos, que porque el gráfico necesita ser cíclico, necesitábamos introducir algunos nuevos conceptos para facilitar la escritura de un programa complejo. Así que este es otro ejemplo, el primero mostramos el bucle, pero este es otro ejemplo, es un subgráfico. Así que en el grande, cuando comenzaste a escribir un gráfico grande, entonces se volvió complejo.
Así que a veces quieres crear una especie de gráfico anidado, para que podamos usar esa porción, al igual que una subrutina o función. Así que puedes tener un gráfico dentro de un gráfico, y desde el punto de vista externo, el gráfico exterior es desde el punto de vista, es como un nodo especial, que dentro ejecuta un subgráfico. Pero desde el padre ahora desde el punto de vista, simplemente recibe los datos de otro nodo en el lado del padre, ejecuta algunas operaciones de manera asincrónica, y luego devuelve la salida al padre. Así que esto permite el código reutilizable, también facilita la lectura del código.
Otro es el map reduce. Así que cuando estamos leyendo con un array de datos, como un benchmark, ¿verdad?, el benchmark de datos LLM tiene un gran conjunto de preguntas y respuestas. Y necesitamos lanzarlo a LLM para ver si responde correctamente. Y ejecutar ese código es nuevamente complejo. Si intentas hacerlo concurrentemente, así que hoy, muchas personas simplemente lo hacen de manera sincrónica, pero usando un gráfico, puedes simplemente dar un array de datos a este agente de mapa, lo llamamos el agente de mapa, el agente de mapa, reconoce ese array, y ejecuta el subgráfico en cada elemento.
Y luego, por supuesto, concurrentemente. Así que deberías tener cuatro elementos en la fila, luego el agente de mapa inicia cuatro operaciones paralelas concurrentemente. Y luego obtiene el resultado de cada ejecución, y luego lo empaqueta de nuevo en el array de resultados, y luego lo devuelve al padre. Así que estamos usando esto, y podemos ejecutar como el tipo de operación map reduce. Otra complejidad surge cuando el gráfico se vuelve grande y demasiado pesado para ejecutarse en una sola máquina. Podemos especificar realmente una cierta porción del gráfico, típicamente un subgráfico, para ser ejecutado en el servidor remoto. Nuevamente, todo es parte de la extensión del gráfico. Así que no necesitas preocuparte por cómo ejecutar remotamente. Simplemente necesitas especificar que este subconjunto del gráfico necesita ser ejecutado en esta URL, luego la extensión del gráfico lo resolverá y luego ejecutará. Y desde el punto de vista del padre, el punto de vista del gráfico del padre, es simplemente un nodo, ¿verdad?, que realiza la ejecución asincrónica.
Pero internamente, ese nodo envía el subgráfico al servidor remoto, el servidor remoto ejecuta concurrentemente, y devuelven el resultado a ese nodo, ese nodo, luego da el resultado de vuelta al nodo padre. Así es como funciona la computación distribuida dentro de un gráfico. Y como dije, porque el gráfico está implementado en pipes route, así que puedes ejecutar en el lado del cliente o del servidor o en cualquier lugar.
Comments