Cum funcționează ingineria solicitare
Datorită modului în care sunt antrenate modelele OpenAI, există formate de solicitare specifice care funcționează deosebit de bine și duc la rezultate mai utile ale modelului. Ghidul oficial de inginerie solicitare de la OpenAI este, de obicei, cel mai bun punct de plecare pentru sfaturi privind solicitările.
Mai jos prezentăm o serie de formate de solicitare care, din experiența noastră, funcționează bine, dar nu ezitați să explorați formate diferite, care se pot potrivi mai bine sarcinii dvs.
Reguli practice și exemple
Notă: „{text input here}” este un substituent pentru text/context real
1. Utilizați cel mai recent model
Pentru cele mai bune rezultate, recomandăm, în general, utilizarea celor mai recente și mai capabile modele. Modelele mai noi tind să fie mai ușor de optimizat prin inginerie solicitare.
Notă: Există unele diferențe de luat în considerare atunci când formulați solicitări pentru un model de raţionament față de un model GPT. Mai multe detalii aici.
2. Puneți instrucțiunile la începutul solicitării și folosiți ### sau """ pentru a separa instrucțiunea de context
Mai puțin eficient ❌:
Rezumă textul de mai jos ca listă cu puncte a celor mai importante idei.
{text input here}Mai bine ✅:
Rezumă textul de mai jos ca listă cu puncte a celor mai importante idei.
Text: """
{text input here}
"""3. Fiți cât mai specific, descriptiv și detaliat posibil în privința contextului, rezultatului, lungimii, formatului, stilului dorit etc.
Fiți specific în privința contextului, rezultatului, lungimii, formatului, stilului etc.
Mai puțin eficient ❌:
Scrie un poem despre OpenAI. Mai bine ✅:
Scrie un poem scurt și inspirațional despre OpenAI, concentrându-te pe recenta lansare a produsului DALL-E (DALL-E este un model ML text-imagine), în stilul lui {famous poet}4. Exprimați formatul de ieșire dorit prin exemple
Mai puțin eficient ❌:
Extrage entitățile menționate în textul de mai jos. Extrage următoarele 4 tipuri de entități: nume de companii, nume de persoane, subiecte specifice și teme.
Text: {text}Arătați și explicați - modelele răspund mai bine când li se prezintă cerințe specifice de format. Acest lucru facilitează și analizarea programatică fiabilă a mai multor rezultate.
Mai bine ✅:
Extrage entitățile importante menționate în textul de mai jos. Mai întâi extrage toate numele de companii, apoi extrage toate numele de persoane, apoi subiectele specifice care se potrivesc conținutului și, în final, temele generale dominante
Format dorit:
Nume de companii: <listă_de_nume_de_companii_separate_prin_virgulă>
Nume de persoane: -||-
Subiecte specifice: -||-
Teme generale: -||-
Text: {text}5. Începeți cu zero exemple, apoi cu câteva exemple; dacă niciuna nu funcționează, faceți ajustare fină
✅ Zero exemple
Extrage cuvinte-cheie din textul de mai jos.
Text: {text}
Cuvinte-cheie:✅ Câteva exemple - furnizați câteva exemple
Extrage cuvinte-cheie din textele corespunzătoare de mai jos.
Text 1: Stripe oferă API-uri pe care dezvoltatorii web le pot folosi pentru a integra procesarea plăților în site-urile și aplicațiile lor mobile.
Cuvinte-cheie 1: Stripe, procesarea plăților, API-uri, dezvoltatori web, site-uri, aplicații mobile
##
Text 2: OpenAI a antrenat modele lingvistice de ultimă generație care sunt foarte bune la înțelegerea și generarea textului. API-ul nostru oferă acces la aceste modele și poate fi folosit pentru a rezolva practic orice sarcină care implică procesarea limbajului.
Cuvinte-cheie 2: OpenAI, modele lingvistice, procesarea textului, API.
##
Text 3: {text}
Cuvinte-cheie 3:✅ Ajustare fină: consultați cele mai bune practici de ajustare fină aici.
6. Reduceți descrierile „stufoase” și imprecise
Mai puțin eficient ❌:
Descrierea acestui produs ar trebui să fie destul de scurtă, doar câteva propoziții și nu cu mult mai mult.Mai bine ✅:
Folosește un paragraf de 3 până la 5 propoziții pentru a descrie acest produs.7. În loc să spuneți doar ce nu trebuie făcut, spuneți ce trebuie făcut în schimb
Mai puțin eficient ❌:
Următorul este un dialog între un agent și un client. NU CERE NUMELE DE UTILIZATOR SAU PAROLA. NU REPETA.
Client: Nu mă pot conecta la contul meu.
Agent:Mai bine ✅:
Următorul este un dialog între un agent și un client. Agentul va încerca să diagnosticheze problema și să sugereze o soluție, evitând totodată să pună întrebări legate de PII. În loc să ceară PII, cum ar fi numele de utilizator sau parola, îndrumă utilizatorul către articolul de ajutor www.samplewebsite.com/help/faq
Client: Nu mă pot conecta la contul meu.
Agent:8. Specific generării de cod - Folosiți „cuvinte de început” pentru a orienta modelul către un anumit tipar
Mai puțin eficient ❌:
# Scrie o funcție python simplă care
# 1. Îmi cere un număr în mile
# 2. Convertește milele în kilometriÎn exemplul de cod de mai jos, adăugarea „import” îi sugerează modelului că ar trebui să înceapă să scrie în Python. (În mod similar, „SELECT” este un indiciu bun pentru începutul unei instrucțiuni SQL.)
Mai bine ✅:
# Scrie o funcție python simplă care
# 1. Îmi cere un număr în mile
# 2. Convertește milele în kilometri
import9. Utilizați funcția Generează orice
Dezvoltatorii pot folosi funcția „Generează orice” pentru a descrie o sarcină sau un rezultat așteptat în limbaj natural și pentru a primi o solicitare personalizată.
Aflați mai multe despre utilizarea funcției „Generează orice”.
Parametri
În general, constatăm că `model` și `temperature` sunt parametrii utilizați cel mai frecvent pentru a modifica rezultatul modelului.
`model` - Modelele cu performanțe mai ridicate sunt, în general, mai costisitoare și pot avea o latență mai mare.
`temperature` - O măsură a frecvenței cu care modelul produce un token mai puțin probabil. Cu cât
temperatureeste mai mare, cu atât rezultatul este mai aleatoriu (și, de obicei, mai creativ). Totuși, acest lucru nu este același cu „veridicitatea”. Pentru majoritatea cazurilor de utilizare factuale, cum ar fi extragerea datelor și întrebările și răspunsurile veridice,temperaturede 0 este cea mai bună.`max_completion_tokens` (lungime maximă) - Nu controlează lungimea rezultatului, ci impune o limită strictă pentru generarea de tokeni. Ideal, nu veți atinge des această limită, deoarece modelul se va opri fie când consideră că a terminat, fie când ajunge la o secvență de oprire definită de dvs.
`stop` (secvențe de oprire) - Un set de caractere (tokeni) care, atunci când sunt generate, vor determina oprirea generării textului.
Pentru descrieri ale altor parametri, consultați referința API.
