Skip to content

Promptarea de bază

În ghidul anterior, am introdus și am dat un exemplu de bază al unui prompt.

În acest ghid, vom furniza mai multe exemple despre cum sunt folosite prompt-urile și vom introduce concepte cheie care vor fi importante pentru ghidurile mai avansate.

Adesea, cel mai bun mod de a învăța concepte este prin trecerea prin exemple. Mai jos acoperim câteva exemple despre cum prompt-urile bine construite pot fi folosite pentru a executa toate tipurile de sarcini interesante și diferite.

Subiecte:


Rezumarea textului

Una dintre sarcinile standard în generarea limbajului natural este rezumarea textului. Rezumarea textului poate include multe arome și domenii diferite. Una dintre cele mai promițătoare aplicații ale modelelor de limbaj este capacitatea de a rezuma articole și concepte în rezumate rapide și ușor de citit. Să încercăm o sarcină de bază de rezumare folosind prompt-uri.

Să zicem că sunt interesat să învăț despre antibiotice, aș putea încerca un prompt ca acesta:

Prompt:

Explică antibioticele

A:

Ieșire:

Antibioticele sunt un tip de medicament folosit pentru a trata infecțiile bacteriene. Ele funcționează fie prin uciderea bacteriilor, fie prin prevenirea reproducerea lor, permițând sistemului imunitar al corpului să lupte împotriva infecției. Antibioticele sunt de obicei luate oral sub formă de pastile, capsule sau soluții lichide, sau uneori administrate intravenos. Ele nu sunt eficiente împotriva infecțiilor virale, iar folosirea lor necorespunzătoare poate duce la rezistența la antibiotice.

"A:" este un format explicit de prompt folosit în răspunsurile la întrebări. L-am folosit aici pentru a spune modelului că se așteaptă un răspuns în continuare. În acest exemplu, nu este clar cât de util este față de a nu-l folosi, dar îl vom lăsa așa pentru exemplele ulterioare. Să presupunem doar că aceasta este prea multă informație și vrem să o rezumăm și mai mult. Putem instrui modelul să rezume într-o singură propoziție astfel:

Prompt:

Antibioticele sunt un tip de medicament folosit pentru a trata infecțiile bacteriene. Ele funcționează fie prin uciderea bacteriilor, fie prin prevenirea reproducerea lor, permițând sistemului imunitar al corpului să lupte împotriva infecției. Antibioticele sunt de obicei luate oral sub formă de pastile, capsule sau soluții lichide, sau uneori administrate intravenos. Ele nu sunt eficiente împotriva infecțiilor virale, iar folosirea lor necorespunzătoare poate duce la rezistența la antibiotice.

Explică cele de mai sus într-o singură propoziție:

Ieșire:

Antibioticele sunt medicamente folosite pentru a trata infecțiile bacteriene prin uciderea bacteriilor sau oprirea reproducerea lor, dar nu sunt eficiente împotriva virusurilor și folosirea excesivă poate duce la rezistența la antibiotice.

Fără să acordăm prea multă atenție acurateței ieșirii de mai sus, care este ceva pe care îl vom atinge într-un ghid ulterior, modelul a încercat să rezume paragraful într-o singură propoziție. Poți fi inteligent cu instrucțiunile, dar vom lăsa asta pentru un capitol ulterior. Simte-te liber să faci o pauză aici și să experimentezi pentru a vedea dacă obții rezultate mai bune.


Extragerea informațiilor

Deși modelele de limbaj sunt antrenate să execute generarea limbajului natural și sarcini conexe, sunt de asemenea foarte capabile să execute clasificarea și o gamă de alte sarcini de procesare a limbajului natural (NLP).

Iată un exemplu al unui prompt care extrage informații dintr-un paragraf dat.

Prompt:

Declarațiile de contribuție a autorilor și mulțumirile în lucrările de cercetare ar trebui să indice clar și specific dacă, și în ce măsură, autorii au folosit tehnologii AI precum ChatGPT în pregătirea manuscrisului și analizei lor. Ar trebui să indice și ce LLM-uri au fost folosite. Aceasta va alerta editorii și reviewerii să examineze manuscrisele mai atent pentru potențiale părtiniri, inexactități și atribuirea necorespunzătoare a surselor. De asemenea, revistele științifice ar trebui să fie transparente despre folosirea lor de LLM-uri, de exemplu când selectează manuscrisele trimise.

Menționează produsul bazat pe model de limbaj mare menționat în paragraful de mai sus:

Ieșire:

Produsul bazat pe model de limbaj mare menționat în paragraful de mai sus este ChatGPT.

Există multe moduri în care putem îmbunătăți rezultatele de mai sus, dar aceasta este deja foarte utilă.

Până acum ar trebui să fie evident că poți cere modelului să execute diferite sarcini prin simpla instruire a lui ce să facă. Aceasta este o capacitate puternică pe care constructorii de produse AI o folosesc deja pentru a construi produse și experiențe puternice.

Sursa paragrafului: ChatGPT: cinci priorități pentru cercetare


Răspunsurile la întrebări

Unul dintre cele mai bune moduri de a face modelul să răspundă cu răspunsuri specifice este să îmbunătățești formatul prompt-ului. Așa cum s-a acoperit înainte, un prompt ar putea combina instrucțiuni, context, intrare și indicatori de ieșire pentru a obține rezultate îmbunătățite. Deși aceste componente nu sunt obligatorii, devine o practică bună cu cât ești mai specific cu instrucțiunea, cu atât rezultate mai bune vei obține. Mai jos este un exemplu despre cum ar arăta aceasta urmând un prompt mai structurat.

Prompt:

Răspunde la întrebare bazându-te pe contextul de mai jos. Păstrează răspunsul scurt. Răspunde "Nesigur despre răspuns" dacă nu ești sigur despre răspuns.

Context: Teplizumab își are rădăcinile într-o companie farmaceutică din New Jersey numită Ortho Pharmaceutical. Acolo, oamenii de știință au generat o versiune timpurie a anticorpului, numit OKT3. Sursat inițial de la șoareci, molecula era capabilă să se lege de suprafața celulelor T și să le limiteze potențialul de ucidere a celulelor. În 1986, a fost aprobat pentru a ajuta la prevenirea respingerii organelor după transplanturile de rinichi, făcându-l primul anticorp terapeutic permis pentru uz uman.

Întrebare: De unde era sursat inițial OKT3?

Răspuns:

Ieșire:

Șoareci.

Context obținut din Nature.


Clasificarea textului

Până acum, am folosit instrucțiuni simple pentru a executa o sarcină. Ca inginer de prompt-uri, va trebui să devii mai bun la furnizarea de instrucțiuni mai bune. Dar asta nu este tot! Vei găsi și că pentru cazuri de utilizare mai dificile, doar furnizarea de instrucțiuni nu va fi suficientă. Aici trebuie să te gândești mai mult la context și la diferitele elemente pe care le poți folosi într-un prompt. Alte elemente pe care le poți furniza sunt datele de intrare sau exemplele.

Să încercăm să demonstrăm aceasta prin furnizarea unui exemplu de clasificare a textului.

Prompt:

Clasifică textul în neutru, negativ sau pozitiv.

Text: Cred că mâncarea a fost în regulă.
Sentiment:

Ieșire:

neutru

Am dat instrucțiunea de a clasifica textul și modelul a răspuns cu 'neutru' care este corect. Nimic nu este greșit cu aceasta, dar să zicem că ceea ce într-adevăr avem nevoie este ca modelul să dea eticheta în formatul exact pe care îl vrem. Deci în loc de neutru vrem să returneze neutru. Cum realizăm aceasta. Există diferite moduri de a face aceasta. Ne pasă de specificitate aici, deci cu cât mai multe informații putem furniza prompt-ului, cu atât rezultate mai bune. Putem încerca să furnizăm exemple pentru a specifica comportamentul corect. Să încercăm din nou:

Prompt:

Clasifică textul în neutru, negativ sau pozitiv.

Text: Cred că vacanța a fost în regulă.
Sentiment: neutru

Text: Cred că mâncarea a fost în regulă.
Sentiment:

Ieșire:

neutru

Perfect! De această dată modelul a returnat neutru care este eticheta specifică pe care o căutam. Se pare că exemplul furnizat în prompt a ajutat modelul să fie specific în ieșirea sa. Pentru a evidenția de ce uneori să fii specific este important, verifică acest exemplu și identifică problema:

Prompt:

Clasifică textul în neutru, negativ sau pozitiv.

Text: Cred că vacanța a fost în regulă.
Sentiment:

Ieșire:

neutru

Care este problema aici?


Conversația

Poate una dintre cele mai interesante lucruri pe care le poți realiza cu ingineria prompt-urilor este să instruiești sistemul LLM despre cum să se comporte, intenția sa și identitatea sa. Aceasta este deosebit de utilă când construiești sisteme conversaționale precum chatbot-urile de suport pentru clienți.

De exemplu, să creăm un sistem conversațional care este capabil să genereze răspunsuri mai tehnice și științifice la întrebări. Observă cum îi spunem explicit cum să se comporte prin instrucțiune. Aceasta se numește uneori promptarea rolului.

Prompt:

Următoarea este o conversație cu un asistent de cercetare AI. Tonul asistentului este tehnic și științific.

Om: Salut, cine ești?
AI: Salut! Sunt un asistent de cercetare AI. Cum te pot ajuta astăzi?
Om: Poți să-mi spui despre crearea găurilor negre?
AI:

Ieșire:

Sigur! Găurile negre sunt regiuni ale spațiu-timpului unde forța gravitațională este atât de puternică încât nimic, nici măcar lumina, nu poate scăpa de ea. Ele sunt create când o stea foarte masivă moare și nucleul său se prăbușește asupra sa, formând o singularitate de densitate infinită. Gravitația intensă a singularității atrage toată materia și radiația din jurul său, creând gaura neagră.

Asistentul nostru AI de cercetare sună puțin prea tehnic, nu? Bine, să schimbăm acest comportament și să instruim sistemul să dea răspunsuri mai accesibile.

Prompt:

Următoarea este o conversație cu un asistent de cercetare AI. Răspunsurile asistentului ar trebui să fie ușor de înțeles chiar și de elevii de școală primară.

Om: Salut, cine ești?
AI: Salut! Sunt un asistent de cercetare AI. Cum te pot ajuta astăzi?
Om: Poți să-mi spui despre crearea găurilor negre?
AI:

Ieșire:

Sigur! Găurile negre sunt create când o stea foarte masivă rămâne fără combustibil și se prăbușește asupra sa. Gravitația stelei este atât de puternică încât nimic, nici măcar lumina, nu poate scăpa de atracția sa. Aceasta creează un punct în spațiu-timp cu o forță gravitațională intensă numit gaură neagră.

Cred că am făcut niște progrese. Poți continua să îl îmbunătățești. Sunt sigur că dacă adaugi mai multe exemple, s-ar putea să obții rezultate și mai bune.


Generarea de cod

O aplicație unde LLM-urile sunt destul de eficiente este generarea de cod. Copilot este un exemplu grozav al acestui lucru. Există un număr vast de sarcini de generare de cod pe care le poți executa cu prompt-uri inteligente. Să ne uităm la câteva exemple mai jos.

Mai întâi, să încercăm un program simplu care salută utilizatorul.

Prompt:

/*
Întreabă utilizatorul pentru numele său și spune "Salut"
*/

Ieșire:

let name = prompt("Cum te numești?");
console.log(`Salut, ${name}!`);

Poți vedea că nu am avut nevoie să specificăm nici măcar limba de folosit.

Să schimbăm nivelul puțin. Vreau să-ți arăt cât de puternice pot fi LLM-urile cu puțin mai mult efort în proiectarea prompt-urilor.

Prompt:

"""
Tabelul departments, coloanele = [DepartmentId, DepartmentName]
Tabelul students, coloanele = [DepartmentId, StudentId, StudentName]
Creează o interogare MySQL pentru toți studenții din Departamentul de Informatică
"""

Ieșire:

SELECT StudentId, StudentName 
FROM students 
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');

Aceasta este foarte impresionantă. În acest caz, am furnizat date despre schema bazei de date și am cerut să genereze o interogare MySQL validă.


Raționamentul

Poate una dintre cele mai dificile sarcini pentru un LLM astăzi necesită o formă de raționament. Raționamentul este una dintre zonele care mă entuziasmează cel mai mult din cauza tipurilor de aplicații complexe care pot apărea din LLM-uri.

Au fost câteva îmbunătățiri în sarcinile care implică capacități matematice. Cu toate acestea, este important să notezi că LLM-urile actuale se luptă să execute sarcini de raționament, deci aceasta necesită tehnici de inginerie a prompt-urilor și mai avansate. Vom acoperi aceste tehnici avansate în ghidul următor. Pentru moment, vom acoperi câteva exemple de bază pentru a arăta capacitățile aritmetice.

Prompt:

Cât este 9.000 * 9.000?

Ieșire:

81.000.000

Să încercăm ceva mai dificil.

Prompt:

Numerele impare din acest grup se adună la un număr par: 15, 32, 5, 13, 82, 7, 1.

A:

Ieșire

Nu, numerele impare din acest grup se adună la un număr impar: 119.

Aceasta este incorectă! Să încercăm să îmbunătățim aceasta prin îmbunătățirea prompt-ului.

Prompt:

Numerele impare din acest grup se adună la un număr par: 15, 32, 5, 13, 82, 7, 1.

Rezolvă prin împărțirea problemei în pași. Mai întâi, identifică numerele impare, adaugă-le și indică dacă rezultatul este impar sau par.

Ieșire:

Numerele impare: 15, 5, 13, 7, 1
Suma: 41
41 este un număr impar.

Mult mai bine, nu? Apropo, am încercat această sarcină de câteva ori și sistemul eșuează uneori. Dacă furnizezi instrucțiuni mai bune combinate cu exemple, ar putea ajuta să obții rezultate mai precise.

Vom continua să includem mai multe exemple de aplicații comune în această secțiune a ghidului.

În ghidurile următoare, vom acoperi concepte de inginerie a prompt-urilor și mai avansate pentru îmbunătățirea performanței pe toate acestea și sarcini mai dificile.


Notebook-uri Python

DescriereNotebook
Învață cum să execuți multe tipuri diferite de sarcini comune folosind biblioteca openai și LangChainÎnceperea cu Ingineria Prompt-urilor

Secțiunea anterioară (Introducerea prompt-urilor)

Secțiunea următoare (Tehnici avansate de promptare)