ChatGPT solo sulle mie cose
ChatGPT è bello ma non voglio risposte da tutta Internet. Voglio solo che dia risposte sulle mie cose. Non mi piace quando inventa cose che sembrano reali ma in realtà non esistono. Esiste qualcosa del genere?
I ragazzi di LangChain in collaborazione con Zahid Khawaja hanno recentemente pubblicato una demo che fa esattamente questo. Hanno abilmente combinato la ricerca semantica con prompt specializzati per GPT-3 che imitano l'esperienza utente di ChatGPT, ma le risposte sono ancorate solo per rispondere a domande sulla documentazione tecnica di LangChain.
Puoi controllare il loro post sul blog qui .
Ricerca semantica
Il processo inizia con la ricerca semantica, che prevede la suddivisione dei documenti in blocchi, quindi la rappresentazione di tali blocchi di documenti con vettori di incorporamento. Questi vettori possono essere calcolati in anticipo per i tuoi documenti e archiviati in un archivio vettoriale. Quindi, quando un utente pone una domanda, quella domanda viene convertita in un vettore utilizzando lo stesso modello di incorporamento. Una ricerca per somiglianza semantica restituisce i blocchi di documento più simili alla query.
La gente ha fatto ricerca semantica per un po' di tempo usando modelli come BERT per convertire i documenti in vettori di incorporamento. La ricerca semantica è in grado di rispondere con le frasi oi paragrafi che molto probabilmente contengono la risposta che l'utente sta cercando, ma non risponde totalmente alla domanda. Parte di ciò che rende le persone così entusiaste di ChatGPT è che fornisce una risposta dal suono più naturale a una domanda.
Modello di linguaggio esteso (LLM)
Un modello di linguaggio di grandi dimensioni fa qualcosa di diverso da una ricerca semantica. Prende un prompt e produce una risposta basata su quel prompt. Un prompt può essere una domanda, ma può anche includere più istruzioni oltre alla semplice domanda. Quindi, se invio a un modello di linguaggio di grandi dimensioni una serie di istruzioni, a seconda di tali istruzioni posso ottenere comportamenti molto diversi. Lo stesso modello può essere utilizzato per riassumere un articolo tecnico, rispondere a domande o tradurre dall'inglese al tedesco.
È con un suggerimento intelligente che LangChain piega GPT-3 alla sua volontà. Il prompt che LangChain utilizza nella loro demo è mostrato qui:
You are an AI assistant for the open source library LangChain. The documentation is located at https://langchain.readthedocs.io.
You are given the following extracted parts of a long document and a question. Provide a conversational answer with a hyperlink to the documentation.
You should only use hyperlinks that are explicitly listed as a source in the context. Do NOT make up a hyperlink that is not listed.
If the question includes a request for code, provide a code block directly from the documentation.
If you don't know the answer, just say "Hmm, I'm not sure." Don't try to make up an answer.
If the question is not about LangChain, politely inform them that you are tuned to only answer questions about LangChain.
Question: {question}
=========
{context}
=========
Answer in Markdown:
Se non conosci la risposta, dì semplicemente "Hmm, non ne sono sicuro". Non cercare di inventare una risposta.
Ciò riduce ulteriormente la possibilità di risultati falsi positivi, che alle persone non piacciono da ChatGPT.
La domanda dell'utente verrà posizionata dove { domanda } è mostrato in questo prompt. I risultati della ricerca semantica saranno inclusi nel { contesto }. La costruzione di questo prompt indica a GPT-3 di fornire solo risposte provenienti dal contesto. Tali risposte avranno sempre collegamenti selezionati dal contesto. Infine, la risposta è formattata in Markdown in modo che gli sviluppatori possano visualizzare correttamente la risposta nella loro applicazione.
La ricerca semantica ha fatto parte del lavoro, fornendo solo le sezioni della documentazione tecnica che sono rilevanti per la domanda in questione. Quindi GPT-3 termina il lavoro con una risposta in stile conversazionale che è esplicitamente limitata al contesto fornito. Questo è il modo in cui LangChain è in grado di offrire l'esperienza ChatGPT, ma limita l'ambito per parlare solo dei propri documenti.
Domande di follow-up
Una caratteristica importante e differenziante dell'esperienza ChatGPT è la capacità di porre domande di follow-up. La memoria della cronologia della chat viene presa in considerazione quando si produce la risposta successiva. L'esperienza delle domande di follow-up viene fornita in questa app con un altro suggerimento intelligente. Gli sviluppatori inviano sia la cronologia della chat che la nuova domanda a GPT-3 e chiedono all'LLM di generare una nuova singola domanda. Questa nuova singola domanda viene quindi eseguita attraverso il processo che abbiamo descritto in precedenza. Il prompt per questa richiesta è simile a:
Given the following conversation and a follow up question, rephrase
the follow up question to be a standalone question. You should assume
that the question is related to LangChain.
Ulteriore considerazione
Nel complesso, questa è un'ottima demo che mostra come le persone possono raggiungere quel punto debole offrendo le capacità che le persone amano di ChatGPT limitando l'ambito a un insieme specifico di documenti. Questo approccio potrebbe essere applicato a molti casi d'uso in un contesto aziendale. C'è una preoccupazione che ho con il design dell'app quando ci penso nel contesto aziendale. Ogni domanda che i miei clienti chiedono sul mio prodotto insieme alle informazioni corrispondenti sul mio prodotto vengono inviate a una terza parte, in questo caso OpenAI.
A un livello fondamentale, questa non sembra una buona idea per qualcun altro avere questo set di dati di tutte le domande dei miei clienti sul mio prodotto. Un attore malvagio potrebbe potenzialmente estrarre questi dati per sfruttare le mie debolezze. Una potenziale soluzione è ospitare un LLM completamente opensource (come Flan-T5 o GPT-2) sul proprio cloud privato. Quindi, ad ogni passaggio del diagramma in cui chiamiamo un LLM, chiamiamo la nostra istanza privata di tale LLM. Questo approccio significa che devi disporre di una potenza ingegneristica sufficiente per ospitare un modello di grandi dimensioni sulla tua infrastruttura cloud, ma ciò comporta la tranquillità di non inviare i dati della tua azienda nell'etere.
Conclusione
La combinazione di ricerca semantica e LLM mostra molte promesse per molte applicazioni aziendali. Il framework sviluppato da LangChain semplificherà la creazione di tali applicazioni. Quindi tieni quella biblioteca sul tuo radar.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































