Înlănțuirea prompturilor
Prezentare generală
Pentru a îmbunătăți fiabilitatea și performanța LLM-urilor, una dintre tehnicile importante de inginerie a prompturilor este să împarți sarcinile în subsarcinile lor. Odată ce acele subsarcini au fost identificate, LLM-ul este promptat cu o subsarcină și apoi răspunsul său este folosit ca intrare pentru un alt prompt. Aceasta este ceea ce se numește înlănțuirea prompturilor, unde o sarcină este împărțită în subsarcini cu ideea de a crea un lanț de operații de promptare.
Beneficii cheie
Înlănțuirea prompturilor este utilă pentru a realiza sarcini complexe cu care un LLM ar putea avea dificultăți să se ocupe dacă ar fi promptat cu un prompt foarte detaliat. În înlănțuirea prompturilor, prompturile în lanț efectuează transformări sau procese suplimentare pe răspunsurile generate înainte de a ajunge la o stare finală dorită.
Pe lângă obținerea unei performanțe mai bune, înlănțuirea prompturilor ajută la îmbunătățirea transparenței aplicației tale LLM, crește controlabilitatea și fiabilitatea. Aceasta înseamnă că poți depana problemele cu răspunsurile modelului mult mai ușor și să analizezi și să îmbunătățești performanța în diferitele etape care necesită îmbunătățire.
Înlănțuirea prompturilor este deosebit de utilă când construiești asistenți conversaționali alimentați de LLM și îmbunătățești personalizarea și experiența utilizatorului a aplicațiilor tale.
Cazuri de utilizare pentru înlănțuirea prompturilor
Înlănțuirea prompturilor pentru QA de documente
Înlănțuirea prompturilor poate fi folosită în scenarii diferite care ar putea implica mai multe operații sau transformări. De exemplu, un caz de utilizare comun al LLM-urilor implică răspunsurile la întrebări despre un document text mare. Ajută dacă proiectezi două prompturi diferite unde primul prompt este responsabil pentru extragerea citatelor relevante pentru a răspunde la o întrebare și un al doilea prompt ia ca intrare citatele și documentul original pentru a răspunde la o întrebare dată. Cu alte cuvinte, vei crea două prompturi diferite pentru a efectua sarcina de a răspunde la o întrebare dată într-un document.
Prompt 1: Extragerea citatelor
Primul prompt de mai jos extrage citatele relevante din document având în vedere întrebarea. Observă că pentru simplitate, am adăugat un placeholder pentru document . Pentru a testa promptul poți copia și lipi un articol din Wikipedia precum această pagină pentru inginerie prompturilor. Din cauza contextului mai mare folosit pentru această sarcină, folosim modelul gpt-4-1106-preview de la OpenAI. Poți folosi promptul cu alte LLM-uri cu context lung precum Claude.
Prompt 1:
Ești un asistent util. Sarcina ta este să ajuti la răspunsul la o întrebare dată într-un document. Primul pas este să extragi citatele relevante pentru întrebare din document, delimitate de ####. Te rog să produci lista de citate folosind <quotes></quotes>. Răspunde cu "Nu au fost găsite citate relevante!" dacă nu au fost găsite citate relevante.
####
{{document}}
####Iată o captură de ecran a întregului prompt inclusiv întrebarea care este transmisă folosind rolul de utilizator.

Ieșirea promptului 1:
<quotes>
- Chain-of-thought (CoT) prompting[27]
- Generated knowledge prompting[37]
- Least-to-most prompting[38]
- Self-consistency decoding[39]
- Complexity-based prompting[41]
- Self-refine[42]
- Tree-of-thought prompting[43]
- Maieutic prompting[45]
- Directional-stimulus prompting[46]
- Textual inversion and embeddings[59]
- Using gradient descent to search for prompts[61][62][63][64]
- Prompt injection[65][66][67]
</quotes>Prompt 2: Generarea răspunsului
Citatele care au fost returnate în primul prompt pot fi acum folosite ca intrare pentru al doilea prompt de mai jos. Observă că poți curăța citatele puțin mai mult, adică să elimini citările. Acele citări ar putea fi eliminate sau utilizate ca parte a altui prompt în lanț, dar poți ignora aceasta pentru moment. Al doilea prompt ia apoi citatele relevante extrase de promptul 1 și pregătește un răspuns util la întrebarea dată în document și acele citate extrase. Al doilea prompt poate fi următorul:
Prompt 2:
Având în vedere un set de citate relevante (delimitate de <quotes></quotes>) extrase dintr-un document și documentul original (delimitat de ####), te rog să compui un răspuns la întrebare. Asigură-te că răspunsul este precis, are un ton prietenos și sună util.
####
{{document}}
####
<quotes>
- Chain-of-thought (CoT) prompting[27]
- Generated knowledge prompting[37]
- Least-to-most prompting[38]
- Self-consistency decoding[39]
- Complexity-based prompting[41]
- Self-refine[42]
- Tree-of-thought prompting[43]
- Maieutic prompting[45]
- Directional-stimulus prompting[46]
- Textual inversion and embeddings[59]
- Using gradient descent to search for prompts[61][62][63][64]
- Prompt injection[65][66][67]
</quotes>Ieșirea promptului 2:
Tehnicile de promptare menționate în document includ:
1. Chain-of-thought (CoT) prompting[27]
2. Generated knowledge prompting[37]
3. Least-to-most prompting[38]
4. Self-consistency decoding[39]
5. Complexity-based prompting[41]
6. Self-refine[42]
7. Tree-of-thought prompting[43]
8. Maieutic prompting[45]
9. Directional-stimulus prompting[46]
10. Textual inversion and embeddings[59]
11. Using gradient descent to search for prompts[61][62][63][64]
12. Prompt injection[65][66][67]
Fiecare dintre aceste tehnici folosește strategii unice pentru a îmbunătăți sau specifica interacțiunile cu modelele de limbaj mari pentru a produce rezultatele dorite.Beneficii cheie
După cum poți vedea, simplificarea și crearea lanțurilor de prompturi este o abordare utilă de promptare unde răspunsurile trebuie să treacă prin mai multe operații sau transformări. Ca exercițiu, simte-te liber să proiectezi un prompt care elimină citările (de exemplu, [27]) din răspuns înainte de a trimite aceasta ca răspuns final utilizatorului aplicației tale.
Poți găsi de asemenea mai multe exemple de înlănțuire a prompturilor în această documentație care valorifică LLM-ul Claude. Exemplul nostru este inspirat și adaptat din exemplele lor.
Beneficii cheie
- Descompunerea sarcinilor: Împarte sarcinile complexe în subsarcini gestionabile
- Îmbunătățirea calității: Multiple etape pentru validare și îmbunătățire
- Controlul mai bun: Fiecare etapă poate fi monitorizată și ajustată
- Debugging-ul ușor: Problemele pot fi identificate la nivelul etapei specifice
- Reutilizarea: Prompturile individuale pot fi reutilizate în alte lanțuri
Aplicații
- Răspunsurile la întrebări despre documente: Extragerea și sinteza informațiilor în mai multe etape
- Generarea de conținut: Procese în mai multe etape pentru conținut de înaltă calitate
- Analiza textului: Procesarea în mai multe etape pentru înțelegerea complexă
- Asistența conversațională: Lanțuri pentru răspunsuri mai naturale și utile
- Asigurarea calității: Validarea și îmbunătățirea în mai multe etape
Subiecte conexe
- Promptarea Chain-of-Thought - Înțelegerea tehnicilor de raționament
- Promptarea cu câteva exemple - Învățarea din exemple
- Ghidul de inginerie a prompturilor - Tehnici generale de inginerie a prompturilor
Referințe
- Documentația Claude - Exemple de înlănțuire a prompturilor
