El futuro de los agentes de productividad con NinjaTech AI y AWS Trainium

Esta es una publicación invitada de Arash Sadrieh, Tahir Azim y Tengfui Xue de NinjaTech AI.

La misión de NinjaTech AI es hacer que todos sean más productivos al encargarse de tareas complejas que requieren mucho tiempo con agentes de inteligencia artificial (IA) rápidos y asequibles. Recientemente lanzamos MiNinja.aiuno de los primeros asistentes de inteligencia artificial personales multiagente del mundo, que nos ayuda a cumplir nuestra misión. MyNinja.ai está diseñado desde cero con agentes especializados que pueden completar tareas en su nombre, como programar reuniones, realizar investigaciones exhaustivas en la web, generar código y ayudar con la escritura. Estos agentes pueden descomponer tareas complicadas de varios pasos en soluciones ramificadas y pueden evaluar las soluciones generadas de forma dinámica mientras aprenden continuamente de experiencias pasadas. Todas estas tareas se realizan de forma totalmente autónoma y asincrónica, lo que le da la libertad de continuar con su día mientras Ninja trabaja en estas tareas en segundo plano y se involucra cuando se requiere su aporte.

Debido a que ningún modelo de lenguaje grande (LLM) es perfecto para cada tarea, sabíamos que crear un asistente personal de IA requeriría múltiples LLM optimizados específicamente para una variedad de tareas. Para ofrecer la precisión y las capacidades que deleitaran a nuestros usuarios, también sabíamos que necesitaríamos que estos múltiples modelos trabajaran juntos en conjunto. Finalmente, necesitábamos métodos escalables y rentables para entrenar estos diversos modelos, una tarea que históricamente ha sido costosa para la mayoría de las empresas emergentes. En esta publicación, describimos cómo creamos nuestro agente de productividad de vanguardia NinjaLLM, la columna vertebral de MyNinja.ai, utilizando Capacitación en AWS papas fritas.

Construyendo un conjunto de datos

Reconocimos desde el principio que, para cumplir con la misión de abordar tareas en nombre de un usuario, necesitábamos varios modelos optimizados para tareas específicas. Algunos ejemplos son nuestros modelos Deep Researcher, Deep Coder y Advisor. Después de probar los modelos de código abierto disponibles, sentimos que las capacidades y respuestas listas para usar eran insuficientes con la ingeniería de indicaciones por sí sola para satisfacer nuestras necesidades. Específicamente, en nuestras pruebas con modelos de código abierto, queríamos asegurarnos de que cada modelo estuviera optimizado para un estilo de indicaciones ReAct/cadena de pensamiento. Además, queríamos asegurarnos de que el modelo, cuando se implementara como parte de un Recuperación Generación Aumentada (RAG), cite con precisión cada fuente, así como cualquier tendencia a decir “No sé” en lugar de generar respuestas falsas. Para ello, optamos por ajustar los modelos para las diversas tareas posteriores.

Al construir nuestro conjunto de datos de entrenamiento, nuestro objetivo era doble: adaptar cada modelo para su tarea y personaje posteriores adecuados (Investigador, Asesor, Codificador, etc.) y adaptar los modelos para que siguieran una estructura de salida específica. Para ello, seguimos los siguientes pasos: Aproximación a Lima para afinar. Utilizamos un tamaño de muestra de entrenamiento de aproximadamente 20 millones de tokens, centrándonos en el formato y el tono del resultado mientras utilizamos un tamaño de muestra diverso pero relativamente pequeño. Para construir nuestro conjunto de datos de ajuste fino supervisado, comenzamos creando tareas iniciales para cada modelo. Con estas tareas iniciales, generamos un conjunto de datos sintéticos inicial utilizando el modelo Llama 2 de Meta. Pudimos utilizar el conjunto de datos sintéticos para realizar una ronda inicial de ajuste. Para evaluar inicialmente el rendimiento de este modelo ajustado, recopilamos comentarios de los usuarios para crear de forma iterativa más muestras. También utilizamos una serie de puntos de referencia (internos y públicos) para evaluar el rendimiento del modelo y continuamos iterando.

Ajustes en Trainium

Elegimos comenzar con los modelos Llama para un modelo base entrenado previamente por varias razones: la más notable es el excelente rendimiento listo para usar, el sólido soporte del ecosistema de varias bibliotecas y la licencia verdaderamente de código abierto y permisiva. En ese momento, comenzamos con Llama 2, probando en varios tamaños (7B, 13B y 70B). Para el entrenamiento, elegimos usar un clúster de instancias trn1.32xlarge para aprovechar los chips Trainium. Usamos un clúster de 32 instancias para paralelizar de manera eficiente el entrenamiento. También usamos Clúster paralelo de AWS para gestionar la orquestación de clústeres. Al utilizar un grupo de instancias de Trainium, cada iteración de ajuste tomó menos de 3 horas, a un costo de menos de $1000. Este rápido tiempo de iteración y bajo costo nos permitió ajustar y probar rápidamente nuestros modelos y mejorar la precisión de nuestros modelos. Para lograr las precisiones que se analizan en las siguientes secciones, solo tuvimos que gastar alrededor de $30 mil, ahorrando cientos de miles, si no millones de dólares, si tuviéramos que entrenar con aceleradores de entrenamiento tradicionales.

El siguiente diagrama ilustra nuestra arquitectura de entrenamiento.

Después de haber establecido nuestros procesos de ajuste fino basados ​​en Trainium, pudimos ajustar y refinar nuestros modelos gracias a las bibliotecas de entrenamiento distribuidas de Neuron. Esto fue excepcionalmente útil y oportuno, porque antes del lanzamiento de MyNinja.ai, se lanzaron los modelos Llama 3 de Meta. Llama 3 y Llama 2 comparten una arquitectura similar, por lo que pudimos actualizar rápidamente al modelo más nuevo. Esta velocidad en el cambio nos permitió aprovechar las ganancias inherentes en la precisión del modelo y ejecutar muy rápidamente otra ronda de ajuste fino con los pesos de Llama 3 y prepararnos para el lanzamiento.

Evaluación del modelo

Para evaluar el modelo, había dos objetivos: evaluar la capacidad del modelo para responder preguntas de los usuarios y evaluar la capacidad del sistema para responder preguntas con las fuentes proporcionadas, porque esta es la interfaz principal de nuestro asistente personal de IA. Seleccionamos el Control de calidad de HotPot y Preguntas Naturales (NQ) Abiertas conjuntos de datos, ambos adecuados debido a sus conjuntos de datos de evaluación comparativa abiertos con tablas de clasificación públicas.

Calculamos la precisión haciendo coincidir la respuesta del modelo con la respuesta esperada, utilizando los 10 pasajes principales recuperados de un corpus de Wikipedia. Realizamos filtrado y clasificación de contenido utilizando ColBERTv2un modelo de recuperación basado en BERT. Logramos precisiones del 62,22 % en el conjunto de datos NQ Open y del 58,84 % en HotPotQA utilizando nuestro modelo Llama 3 RAG mejorado, lo que demuestra mejoras notables con respecto a otros modelos de referencia. La siguiente figura resume nuestros resultados.

Trabajo futuro

De cara al futuro, estamos trabajando en varios desarrollos para seguir mejorando el rendimiento de nuestro modelo y la experiencia del usuario. En primer lugar, pretendemos utilizar ORPO para afinar nuestros modelos. ORPO combina el ajuste tradicional con la alineación de preferencias, mientras utiliza un único conjunto de datos de alineación de preferencias para ambos. Creemos que esto nos permitirá alinear mejor los modelos para lograr mejores resultados para los usuarios.

Además, tenemos la intención de crear un modelo de conjunto personalizado a partir de los distintos modelos que hemos perfeccionado hasta ahora. Inspirados por las arquitecturas de modelos Mixture of Expert (MoE), tenemos la intención de introducir una capa de enrutamiento en nuestros distintos modelos. Creemos que esto simplificará radicalmente nuestra arquitectura de escalado y entrega de modelos, manteniendo al mismo tiempo la calidad en diversas tareas que nuestros usuarios esperan de nuestro asistente de IA personal.

Conclusión

La creación de agentes de IA de última generación para que todos sean más productivos es el camino que NinjaTech AI sigue para lograr su misión. Para democratizar el acceso a esta tecnología transformadora, es fundamental tener acceso a recursos informáticos de alta potencia, modelos de código abierto y un ecosistema de herramientas que permitan entrenar a cada nuevo agente de manera asequible y rápida. Los chips de IA diseñados específicamente por AWS, el acceso a los mejores modelos de código abierto y su arquitectura de entrenamiento lo hacen posible.

Para obtener más información sobre cómo construimos la IA personal multiagente de NinjaTech AI, puede leer nuestro papel blancoTambién puedes probar estos agentes de IA de forma gratuita en Mi Ninja.ai.


Sobre los autores

Arash Sadrieh es el cofundador y director científico de Ninjatech.ai. Arash cofundó Ninjatech.ai con la visión de hacer que todos sean más productivos al encargarse de tareas que requieren mucho tiempo con agentes de inteligencia artificial. Esta visión tomó forma durante su mandato como científico aplicado senior en AWS, donde impulsó iniciativas de investigación clave que mejoraron significativamente la eficiencia de la infraestructura durante seis años, lo que le valió múltiples patentes para optimizar la infraestructura central. Su formación académica incluye un doctorado en modelado y simulación por computadora, con colaboraciones con instituciones reconocidas como la Universidad de Oxford, la Universidad de Sydney y CSIRO. Antes de ocupar su cargo en la industria, Arash realizó una investigación postdoctoral marcada por publicaciones en revistas de alto impacto, incluida Nature Communications.

Tahir Azim Tahir es ingeniero de software en NinjaTech. Tahir se centra en las plataformas de inferencia y entrenamiento basadas en Inf2 y Trn1 de NinjaTech, su puerta de enlace unificada para acceder a estas plataformas y su capacidad de investigación basada en RAG. Anteriormente trabajó en Amazon como ingeniero de software sénior, creando sistemas basados ​​en datos para una utilización óptima de la infraestructura de borde de Internet global de Amazon, reduciendo los costos, la congestión y la latencia. Antes de pasarse a la industria, Tahir obtuvo una maestría y un doctorado en Ciencias de la Computación de la Universidad de Stanford, enseñó durante tres años como profesor asistente en NUST (Pakistán) e hizo un posdoctorado en sistemas de análisis de datos rápidos en EPFL. Tahir es autor de varias publicaciones presentadas en conferencias de primer nivel como VLDB, USENIX ATC, MobiCom y MobiHoc.

Teng Fei Xue es científico aplicado en NinjaTech AI. Sus intereses de investigación actuales incluyen el procesamiento del lenguaje natural y el aprendizaje multimodal, particularmente utilizando grandes modelos de lenguaje y grandes modelos multimodales. Tengfei completó sus estudios de doctorado en la Facultad de Ciencias de la Computación de la Universidad de Sydney, donde se centró en el aprendizaje profundo para la atención sanitaria utilizando diversas modalidades. También fue candidato visitante a un doctorado en el Laboratorio de Matemáticas en Imágenes (LMI) de la Universidad de Harvard, donde trabajó en visión por computadora 3D para datos geométricos complejos.