Vantaggi e limiti dei modelli linguistici di grandi dimensioni

Data di pubblicazione: 13 gennaio 2024

Questo è il primo di una serie di tre articoli su LLM e chatbot. La parte 2 sulla creazione di un chatbot con WebLLM e la parte 3 sull'utilizzo dell'API Prompt sono già disponibili.

I modelli linguistici di grandi dimensioni (LLM) stanno diventando un componente importante nello sviluppo software: sono molto adatti per generare ed elaborare testo in linguaggio naturale, sbloccando casi d'uso come l'estrazione dei dati, la sintesi o la facilitazione dei dialoghi con i dati utente.

In questa serie, descrivo i vantaggi e gli svantaggi degli LLM on-device e ti guido nell'aggiunta di funzionalità di chatbot a un'applicazione esistente utilizzando due approcci locali e offline, il runtime LLM basato sul web WebLLM e l'API Prompt sperimentale di Chrome.

Potenziali casi d'uso

Richiesta prima dell'aggiunta del chatbot.
La nostra app per liste di cose da fare.

Creeremo un chatbot su una classica applicazione di liste di cose da fare. Il codice sorgente per ogni passaggio è disponibile su GitHub. Gli utenti possono aggiungere nuovi elenchi di cose da fare, contrassegnarli come completati ed eliminarli.

Potresti aggiungere una funzionalità per consentire agli utenti di scoprire di più sui dati della lista di cose da fare o di eseguire funzioni aggiuntive. Una funzionalità di chatbot può consentire agli utenti di:

  • Chiedi informazioni sul numero di attività aperte.
  • Identificare attività duplicate o molto simili.
  • Classifica le attività da svolgere in gruppi.
  • Ricevere consigli per nuove attività in base a quelle completate.
  • Tradurre le attività in lingue diverse.
  • Esporta l'elenco di cose da fare in formato XML.

Questi sono solo alcuni esempi di attività che gli LLM possono gestire.

Che cosa sono i modelli linguistici di grandi dimensioni (LLM)?

Gli LLM sono reti neurali artificiali che elaborano e generano testo in linguaggio naturale. La maggior parte degli LLM attuali si basa sull'architettura Transformer, sviluppata da Google. Alcuni esempi sono i modelli Gemini e Gemma di Google, la serie di modelli GPT di OpenAI e i modelli open source, come LLaMa di Meta AI e Mistral di Mistral AI.

Grazie all'addestramento su enormi quantità di dati, gli LLM dispongono di un'impressionante gamma di funzionalità. Comprendono diverse lingue, hanno conoscenze su curiosità, possono tradurre da una lingua all'altra o generare codice di programmazione. L'entità di queste funzionalità può variare notevolmente in base alle dimensioni del modello, come discusso in Informazioni sulle dimensioni degli LLM.

Gli LLM determinano un cambio di paradigma nell'architettura software, poiché ora il linguaggio naturale diventa una funzionalità di base nell'ingegneria del software. Anziché chiamare le API utilizzando interfacce ben definite, è sufficiente esprimere l'intenzione in linguaggio naturale in un cosiddetto prompt.

Limitazioni degli LLM

Gli LLM presentano anche alcune limitazioni:

  • Comportamento non deterministico: gli LLM possono produrre risposte diverse e a volte anche contraddittorie allo stesso prompt, poiché i loro output dipendono da modelli probabilistici anziché da regole fisse.
  • Alucinazioni: a volte questi modelli possono generare informazioni sbagliate o prive di senso, basandosi su pattern appresi anziché sull'accuratezza fattuale.
  • Iniezioni di prompt: gli LLM possono essere suscettibili ad attacchi di attacco di inserimento di prompt, in cui gli utenti creano prompt di input che manipolano il modello in modo da fargli deviare dalla sua funzione prevista o produrre risultati indesiderati.

Pertanto, gli utenti devono verificare i risultati generati dagli LLM prima di intraprendere qualsiasi azione consequenziale.

Quando si tratta di LLM on-device, è necessario prendere in considerazione le dimensioni. Hanno dimensioni dei file di diversi gigabyte e devono essere scaricati sul dispositivo dell'utente prima del primo utilizzo. I modelli più piccoli tendono a ottenere risposte di qualità inferiore, soprattutto se confrontati con i modelli basati su cloud.

Scegliere soluzioni locali

La prima idea per integrare un modello LLM nella tua applicazione web potrebbe essere quella di utilizzare un fornitore di servizi cloud. Numerosi fornitori offrono LLM di alta qualità, alcuni dei quali sono esclusivi di fornitori specifici. Gli LLM basati su cloud offrono una velocità di inferenza rapida a un costo ragionevole, che in genere viene calcolato in base al token elaborato.

Al contrario, le soluzioni locali presentano vantaggi convincenti. Operando direttamente sul dispositivo dell'utente, gli LLM ospitati localmente forniscono tempi di risposta più affidabili, rimangono accessibili anche quando l'utente è offline e non richiedono agli sviluppatori di pagare costi di abbonamento o altri costi ricorrenti. In particolare, possono migliorare notevolmente la sicurezza degli utenti. Mantenendo tutte le attività sul dispositivo, puoi evitare di trasmettere informazioni che consentono l'identificazione personale (PII) a fornitori o regioni esterni.

Demo

Puoi dare un'occhiata alle demo complete con funzionalità di chatbot prima di imparare a crearne uno autonomamente.

A questo punto, utilizzerai WebLLM per aggiungere un chatbot all'applicazione di liste di cose da fare.