La missione di NinjaTech AI è rendere tutti più produttivi occupandosi di attività complesse che richiedono tempo con agenti di intelligenza artificiale (AI) veloci e convenienti. Di recente abbiamo lanciato MyNinja.ai, uno dei primi assistenti di intelligenza artificiale personali multiagente al mondo, a portare avanti la nostra missione. MyNinja.ai è stato creato da zero utilizzando agenti specializzati in grado di completare attività per tuo conto, tra cui la pianificazione di riunioni, la conduzione di ricerche approfondite sul Web, la generazione di codice e l'assistenza nella scrittura. Questi agenti sono in grado di suddividere attività complesse in più fasi in soluzioni ramificate e sono in grado di valutare le soluzioni generate in modo dinamico, imparando continuamente dalle esperienze passate. Tutte queste attività vengono eseguite in modo completamente autonomo e asincrono, consentendoti di continuare la giornata mentre Ninja lavora su queste attività in background e interagendo quando è richiesto il tuo contributo.

Poiché nessun modello di linguaggio di grandi dimensioni (LLM) è perfetto per ogni attività, sapevamo che la creazione di un assistente AI personale avrebbe richiesto più LLM ottimizzati specificamente per una varietà di attività. Per offrire la precisione e le funzionalità necessarie per soddisfare i nostri utenti, sapevamo anche che avremmo richiesto che questi modelli multipli funzionassero insieme in tandem. Infine, avevamo bisogno di metodi scalabili ed economici per la formazione di questi vari modelli, un'impresa storicamente costosa da perseguire per la maggior parte delle startup. In questo post, descriviamo come abbiamo creato il nostro agente di produttività all'avanguardia NinjaLM, la spina dorsale di MyNinja.ai, utilizzando AWS Trainium patatine.
Creazione di un set di dati
Abbiamo capito subito che per portare a termine la missione di affrontare le attività per conto di un utente, avevamo bisogno di più modelli ottimizzati per attività specifiche. Alcuni esempi includono i nostri modelli Deep Researcher, Deep Coder e Advisor. Dopo aver testato i modelli open source disponibili, abbiamo ritenuto che le funzionalità e le risposte preconfigurate non fossero sufficienti con una progettazione tempestiva da sola per soddisfare le nostre esigenze. In particolare, nei nostri test con modelli open source, volevamo assicurarci che ogni modello fosse ottimizzato per uno stile di suggerimento basato su React/Chain-of-Thought. Inoltre, volevamo assicurarci che il modello, una volta implementato come parte di un Generazione aumentata di recupero (RAG), cita accuratamente ogni fonte, nonché qualsiasi pregiudizio nel dire «non lo so» invece di generare risposte false. A tal fine, abbiamo scelto di mettere a punto i modelli per le varie attività a valle.
Nel costruire il nostro set di dati di formazione, il nostro obiettivo era duplice: adattare ogni modello al compito e alla persona a valle adatti (ricercatore, consulente, programmatore e così via) e adattare i modelli per seguire una struttura di output specifica. A tal fine, abbiamo seguito Approccio Lima per la messa a punto. Abbiamo utilizzato un campione di addestramento di circa 20 milioni di token, concentrandoci sul formato e sul tono dell'output e utilizzando un campione di dimensioni diverse ma relativamente ridotte. Per costruire il nostro set di dati di ottimizzazione supervisionato, abbiamo iniziato creando le prime attività iniziali per ciascun modello. Con queste attività iniziali, abbiamo generato un set di dati sintetico iniziale utilizzando il modello Llama 2 di Meta. Siamo stati in grado di utilizzare il set di dati sintetici per eseguire una prima fase di messa a punto. Per valutare inizialmente le prestazioni di questo modello ottimizzato, abbiamo raccolto il feedback degli utenti per creare più campioni in modo iterativo. Abbiamo anche utilizzato una serie di benchmark, interni e pubblici, per valutare le prestazioni del modello e abbiamo continuato a iterare.
Ottimizzazione su Trainium
Abbiamo scelto di iniziare con i modelli Llama come modello base pre-addestrato per diversi motivi: in particolare le ottime prestazioni pronte all'uso, il forte supporto dell'ecosistema da parte di varie librerie e la licenza veramente open source e permissiva. All'epoca, abbiamo iniziato con Llama 2, eseguendo test nelle varie dimensioni (7B, 13B e 70B). Per la formazione, abbiamo scelto di utilizzare un cluster di istanze trn1.32xlarge per sfruttare i chip Trainium. Abbiamo utilizzato un cluster di 32 istanze per parallelizzare in modo efficiente l'addestramento. Abbiamo anche usato Cluster parallelo AWS per gestire l'orchestrazione dei cluster. Utilizzando un cluster di istanze Trainium, ogni iterazione di ottimizzazione ha richiesto meno di 3 ore, con un costo inferiore a 1.000 dollari. Questo rapido tempo di iterazione e il basso costo ci hanno permesso di mettere a punto e testare rapidamente i nostri modelli e di migliorarne la precisione. Per ottenere le precisioni illustrate nelle sezioni seguenti, abbiamo dovuto spendere solo circa 30.000 dollari, risparmiando centinaia di migliaia, se non milioni di dollari, se non milioni di dollari se ci siamo dovuti addestrare sui tradizionali acceleratori di formazione.
Il diagramma seguente illustra la nostra architettura di formazione.

Dopo aver stabilito le nostre pipeline di ottimizzazione basate su Trainium, siamo stati in grado di mettere a punto e perfezionare i nostri modelli grazie alle librerie di formazione Neuron Distributed. Ciò è stato eccezionalmente utile e tempestivo, perché prima del lancio di MyNinja.ai, sono stati rilasciati i modelli Llama 3 di Meta. Llama 3 e Llama 2 condividono un'architettura simile, quindi siamo stati in grado di passare rapidamente al modello più recente. Questa velocità di commutazione ci ha permesso di sfruttare i vantaggi intrinseci in termini di precisione del modello e di eseguire molto rapidamente un altro ciclo di messa a punto dei pesi Llama 3 e prepararci al lancio.
Valutazione del modello
Per valutare il modello, c'erano due obiettivi: valutare la capacità del modello di rispondere alle domande degli utenti e valutare la capacità del sistema di rispondere alle domande con le fonti fornite, perché questa è l'interfaccia principale del nostro assistente personale di intelligenza artificiale. Abbiamo selezionato Hot Pota e Domande naturali (NQ) aperte set di dati, entrambi adatti grazie ai loro set di dati di benchmarking aperti con classifiche pubbliche.
Abbiamo calcolato l'accuratezza abbinando la risposta del modello alla risposta prevista, utilizzando i primi 10 passaggi recuperati da un corpus di Wikipedia. Abbiamo filtrato e classificato i contenuti utilizzando Colbert V2, un modello di recupero basato su BERT. Abbiamo raggiunto una precisione del 62,22% sul set di dati NQ Open e del 58,84% su HotPotQA utilizzando il nostro modello Llama 3 RAG migliorato, dimostrando notevoli miglioramenti rispetto ad altri modelli di base. La figura seguente riassume i nostri risultati.

Lavori futuri
Guardando al futuro, stiamo lavorando a diversi sviluppi per continuare a migliorare le prestazioni e l'esperienza utente del nostro modello. Innanzitutto, intendiamo utilizzare ORPO per mettere a punto i nostri modelli. ORPO combina la regolazione fine tradizionale con l'allineamento delle preferenze, utilizzando un unico set di dati di allineamento delle preferenze per entrambi. Riteniamo che ciò ci consentirà di allineare meglio i modelli per ottenere risultati migliori per gli utenti.
Inoltre, intendiamo costruire un modello di ensemble personalizzato dai vari modelli che abbiamo messo a punto finora. Ispirati alle architetture dei modelli Mixture of Expert (MoE), intendiamo introdurre un livello di routing nei nostri vari modelli. Riteniamo che ciò semplificherà radicalmente la nostra architettura di gestione e scalabilità dei modelli, mantenendo allo stesso tempo la qualità in varie attività che i nostri utenti si aspettano dal nostro assistente personale di intelligenza artificiale.
Conclusione
Creare agenti di intelligenza artificiale di nuova generazione per rendere tutti più produttivi è il percorso di NinjaTech AI per raggiungere la sua missione. Per democratizzare l'accesso a questa tecnologia trasformativa, è fondamentale avere accesso a modelli di calcolo ad alta potenza, open source e a un ecosistema di strumenti che rendano la formazione di ogni nuovo agente conveniente e veloce. I chip AI appositamente progettati da AWS, l'accesso ai migliori modelli open source e la sua architettura di formazione lo rendono possibile.
Per saperne di più su come abbiamo creato l'IA personale multiagente di NinjaTech AI, puoi leggere il nostro white paper. Puoi anche provare questi agenti di intelligenza artificiale gratuitamente su MyNinja.ai.
Informazioni sugli autori

Arash Sadrieh è co-fondatore e Chief Science Officer di Ninjatech.ai. Arash ha co-fondato Ninjatech.ai con l'obiettivo di rendere tutti più produttivi occupandosi delle attività che richiedono molto tempo con gli agenti di intelligenza artificiale. Questa visione è stata plasmata durante il suo mandato come Senior Applied Scientist presso AWS, dove ha guidato importanti iniziative di ricerca che hanno migliorato significativamente l'efficienza dell'infrastruttura nell'arco di sei anni, guadagnandosi diversi brevetti per l'ottimizzazione dell'infrastruttura di base. Il suo background accademico include un dottorato in modellazione e simulazione informatica, con collaborazioni con istituzioni stimate come l'Università di Oxford, l'Università di Sydney e il CSIRO. Prima del suo incarico nel settore, Arash ha svolto un incarico di ricerca post-dottorato caratterizzato da pubblicazioni su riviste di grande impatto, tra cui Nature Communications.

Tahir Azim è un ingegnere del software dello staff di NinjaTech. Tahir si concentra sulle piattaforme di formazione e inferenza basate su Inf2 e Trn1 di NinjaTech, sul suo gateway unificato per accedere a queste piattaforme e sulle sue capacità di ricerca basate su RAG. In precedenza ha lavorato in Amazon come ingegnere informatico senior, realizzando sistemi basati sui dati per un utilizzo ottimale dell'infrastruttura Internet edge globale di Amazon, riducendo costi, congestione e latenza. Prima di passare all'industria, Tahir ha conseguito un M.S. e un dottorato in Informatica presso la Stanford University, ha insegnato per tre anni come assistente professore al NUST (Pakistan) e ha svolto un post-doc in sistemi di analisi rapida dei dati all'EPFL. Tahir è autore di diverse pubblicazioni presentate a conferenze di alto livello come VLDB, USENIX ATC, MobiCom e MobiHoc.

Tengfei Xue è uno scienziato applicato presso NinjaTech AI. I suoi attuali interessi di ricerca includono l'elaborazione del linguaggio naturale e l'apprendimento multimodale, in particolare utilizzando modelli linguistici di grandi dimensioni e modelli multimodali di grandi dimensioni. Tengfei ha completato i suoi studi di dottorato presso la School of Computer Science dell'Università di Sydney, dove si è concentrato sul deep learning per l'assistenza sanitaria utilizzando varie modalità. È stato anche candidato al dottorato in visita presso il Laboratory of Mathematics in Imaging (LMI) dell'Università di Harvard, dove ha lavorato sulla visione artificiale 3D per dati geometrici complessi.



