Che cos'è LangChain?
LangChain è un framework open source per la creazione di applicazioni basate su modelli linguistici di grandi dimensioni (LLM). Gli LLM sono grandi modelli di deep learning pre-addestrati su grandi quantità di dati in grado di generare risposte alle query degli utenti, ad esempio rispondere a domande o creare immagini da prompt basati su testo. LangChain fornisce strumenti e astrazioni per migliorare la personalizzazione, l'accuratezza e la pertinenza delle informazioni generate dai modelli. Ad esempio, gli sviluppatori possono utilizzare i componenti LangChain per creare nuove catene di prompt o personalizzare i modelli esistenti. LangChain include anche componenti che consentono agli LLM di accedere a nuovi set di dati senza riqualificazione.
Scopri di più sui modelli linguistici di grandi dimensioni (LLM)
Perché LangChain è importante?
I LLM riescono a rispondere in modo eccellente alle richieste in un contesto generale, ma hanno difficoltà in un dominio specifico su cui non sono mai stati addestrati. I prompt sono domande che le persone utilizzano per ottenere risposte da un LLM. Ad esempio, un LLM può fornire una risposta riguardante il costo di un computer facendo una stima. Tuttavia, non può elencare il prezzo di un modello specifico di computer venduto dall'azienda.
Per farlo, gli ingegneri del machine learning devono integrare l'LLM con le origini di dati interne dell'organizzazione e applicare una progettazione dei prompt, una pratica in cui un data scientist perfeziona gli input a un modello generativo con una struttura e un contesto specifici.
LangChain semplifica i passaggi intermedi per lo sviluppo di applicazioni che rispondono ai dati, rendendo più efficiente la progettazione dei prompt. È stato progettato per sviluppare più facilmente diverse applicazioni basate su modelli linguistici, tra cui chatbot, risposte alle domande, generazione di contenuti, riepiloghi e altro ancora.
Le seguenti sezioni descrivono i vantaggi di LangChain.
Riutilizzare i modelli linguistici
Con LangChain, le organizzazioni possono riutilizzare gli LLM per applicazioni specifiche del dominio senza ri-addestramento o ottimizzazione. I team di sviluppo possono creare applicazioni complesse che fanno riferimento a informazioni proprietarie per aumentare le risposte dei modelli. Ad esempio, è possibile utilizzare LangChain per creare applicazioni che leggono i dati dai documenti interni archiviati e li riassumono in risposte conversazionali. È possibile creare un flusso di lavoro RAG (Retrieval Augmented Generation) che introduca nuove informazioni nel modello linguistico durante la richiesta. L'implementazione di flussi di lavoro consapevoli del contesto come RAG riduce l'allucinazione del modello e migliora l'accuratezza della risposta.
Semplificare lo sviluppo dell'intelligenza artificiale
LangChain semplifica lo sviluppo dell'intelligenza artificiale (IA) attraverso l'astrazione della complessità delle integrazioni delle origini dati e la raffinazione dei prompt. Gli sviluppatori possono personalizzare le sequenze per creare applicazioni complesse in modo rapido. Invece di programmare la logica aziendale, i team di sviluppo possono modificare modelli e librerie forniti da LangChain per ridurre i tempi di sviluppo.
Supporto per sviluppatori
LangChain fornisce agli sviluppatori di intelligenza artificiale gli strumenti per connettere i modelli linguistici con origini di dati esterne. È open source e supportato da una comunità attiva. Le organizzazioni possono utilizzare LangChain gratuitamente e ricevere supporto da altri sviluppatori esperti nel framework.
Come funziona LangChain?
Con LangChain, gli sviluppatori possono adattare in modo flessibile un modello linguistico a contesti aziendali specifici designando i passaggi necessari per ottenere il risultato desiderato.
Catene
Le catene sono il principio fondamentale che contiene vari componenti dell'intelligenza artificiale in LangChain per offrire risposte consapevoli del contesto. Una catena è una serie di azioni automatiche dalla query dell'utente all'output del modello. Ad esempio, gli sviluppatori possono utilizzare una catena per:
- connettersi a diverse origini dati,
- generare contenuti unici,
- tradurre in più lingue,
- rispondere alle query degli utenti.
Collegamenti
Le catene sono costituite da collegamenti. Ogni azione che gli sviluppatori mettono insieme per formare una sequenza concatenata è chiamata collegamento. Con i collegamenti, gli sviluppatori possono suddividere attività complesse in attività multiple più piccole. Alcuni esempi di collegamenti comprendono:
- formattazione dell'input dell'utente,
- invio di una query a un LLM,
- recupero dei dati dall'archiviazione nel cloud,
- traduzione da una lingua all'altra.
Nel framework LangChain, un collegamento accetta l'input dall'utente e lo passa alle librerie LangChain per l'elaborazione. LangChain permette anche il riordino dei link per creare diversi flussi di lavoro IA.
Panoramica
Per utilizzare LangChain, gli sviluppatori installano il framework in Python con il seguente comando:
pip install langchain
Gli sviluppatori utilizzano quindi i blocchi di costruzione della catena o il LangChain Expression Language (LCEL) per comporre catene con semplici comandi di programmazione. La funzione chain() passa gli argomenti di un collegamento alle librerie. Il comando execute() recupera i risultati. Gli sviluppatori possono passare il risultato del collegamento corrente a quello successivo o restituirlo come output finale.
Di seguito è riportato un esempio di una funzione catena di chatbot che restituisce i dettagli del prodotto in più lingue.
chain([
retrieve_data_from_product_database().
send_data_to_language_model().
format_output_in_a_list().
translate_output_in_target_language()
])
Quali sono i componenti principali di LangChain?
Attraverso LangChain, i team di sviluppo possono creare sistemi di modelli linguistici consapevoli del contesto con i seguenti moduli.
Interfaccia LLM
LangChain fornisce API con cui gli sviluppatori possono connettersi ed eseguire query sui LLM dal loro codice. Gli sviluppatori possono interfacciarsi con modelli pubblici e proprietari come GPT, Bard e PaLM con LangChain mediante semplici chiamate API invece di scrivere codici complessi.
Modelli di prompt
I modelli di prompt sono strutture pre-costruite utilizzate dagli sviluppatori per formattare in modo coerente e preciso le query per i modelli di intelligenza artificiale. Gli sviluppatori possono creare un modello di prompt per le applicazioni chatbot, few shot learning o per fornire istruzioni specifiche ai modelli linguistici. Inoltre, possono riutilizzare i modelli in diverse applicazioni e modelli linguistici.
Agenti
Gli sviluppatori utilizzano strumenti e librerie forniti da LangChain per comporre e personalizzare le catene esistenti per applicazioni complesse. Un agente è una catena speciale che sollecita il modello linguistico a decidere la sequenza migliore in risposta a una query. Quando utilizzano un agente, gli sviluppatori forniscono l'input dell'utente, gli strumenti disponibili e i possibili passaggi intermedi per ottenere i risultati desiderati. Successivamente, il modello linguistico restituisce una valida sequenza di azioni che l'applicazione può intraprendere.
Moduli di recupero
LangChain consente la progettazione di sistemi RAG con numerosi strumenti per trasformare, archiviare, ricercare e recuperare informazioni che perfezionano le risposte dei modelli linguistici. Gli sviluppatori possono creare rappresentazioni semantiche delle informazioni con integrazioni di parole e archiviarle in database vettoriali locali o cloud.
Memoria
Alcune applicazioni basate su modelli linguistici conversazionali perfezionano le loro risposte con informazioni richiamate dalle interazioni passate. LangChain consente agli sviluppatori di includere funzionalità di memoria nei propri sistemi. Supporta:
- sistemi di memoria semplici che richiamano le conversazioni più recenti,
- strutture di memoria complesse che analizzano i messaggi pregressi per restituire i risultati più pertinenti.
Richiamate
Le richiamate sono codici che gli sviluppatori inseriscono nelle loro applicazioni per registrare, monitorare e trasmettere eventi specifici nelle operazioni di LangChain. Ad esempio, gli sviluppatori possono tenere traccia della prima chiamata di una catena e degli errori riscontrati durante le richiamate.
In che modo AWS può aiutarti a soddisfare i requisiti LangChain?
Utilizzando Amazon Bedrock, Amazon Kendra, Amazon SageMaker JumpStart, LangChain e i tuoi LLM, puoi creare applicazioni di intelligenza artificiale (IA) generativa estremamente accurate su dati aziendali. LangChain è l'interfaccia che unisce questi componenti:
- Amazon Bedrock è un servizio gestito con cui le organizzazioni possono creare e implementare applicazioni di IA generativa. È possibile utilizzare Amazon Bedrock per configurare un modello generazionale, a cui accedere da LangChain.
- Amazon Kendra è un servizio basato sul machine learning (ML) che aiuta le organizzazioni a eseguire ricerche interne. È possibile connettere Amazon Kendra a LangChain, che utilizza i dati provenienti da database proprietari per perfezionare gli output dei modelli linguistici.
- Amazon SageMaker Jumpstart è un hub di ML che fornisce algoritmi predefiniti e modelli di base che gli sviluppatori possono implementare rapidamente. È possibile ospitare modelli di fondazione su SageMaker Jumpstart e richiederli da LangChain.
Inizia subito a utilizzare LangChain su AWS creando un account.
Fasi successive su AWS
Ottieni accesso istantaneo al Piano gratuito di AWS.