Tehnica clasică Few-Shot presupune adăugarea în prompt a câtorva exemple statice de întrebare-răspuns. Dacă ai un sistem de clasificare cu 100 de categorii diferite, adăugarea de exemple pentru fiecare categorie în fiecare prompt este imposibilă din cauza limitelor de context și a costurilor.
Dynamic Few-Shot Selection combină căutarea semantică cu ingineria prompturilor: stochezi o bancă uriașă de mii de exemple etichetate într-o bază de date vectorială (Chroma, Qdrant, pgvector). Când utilizatorul trimite o cerere nouă, sistemul calculează embedding-ul întrebării, găsește cele mai apropiate 3-5 exemple similare ca sens și le injectează dinamic în prompt chiar înainte de apelul LLM.
În acest fel, modelul primește întotdeauna cele mai relevante demonstrații pentru problema specifică cu care se confruntă în acea secundă, crescând acuratețea de la 60-70% la peste 90% pe sarcini dificile de clasificare și extragere.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
Bancă de Exemple (Demonstration Bank) |
Setul masiv de cazuri rezolvate impecabil, indexate cu vectori de embedding. |
Top-K Similitudine |
Numărul de exemple dinamice extrase și atașate în prompt (uzual k=3 sau k=5). |
Metrică de Distanță |
Distanța Cosine sau Dot Product utilizată pentru a măsura apropierea semantică. |
Diversitate Semantică (MMR) |
Tehnica de Maximal Marginal Relevance pentru a evita selectarea unor exemple identice între ele. |
Exemple practice și scenarii reale
Exemplul 1: Fluxul de selectare dinamică a exemplelor înainte de apelarea LLM-ului
Cum se extrag cele mai bune demonstrații din baza vectorială.
# 1. Întrebare utilizator nouă
intrebare = "Cum returnez o comandă deschisă greșit pe magazinul online?"
# 2. Căutare semantică în baza de exemple de suport clienți
exemple_similare = vector_db.similarity_search(intrebare, k=3)
# 3. Construire prompt dinamic
prompt = "Ești asistent de suport. Iată câteva exemple similare rezolvate în trecut:\n"
for ex in exemple_similare:
prompt += f"Întrebare client: {ex.intrebare}\nRăspuns aprobat: {ex.raspuns}\n---\n"
prompt += f"Acum răspunde la noua solicitare a clientului:\n{intrebare}"
Rezultat & Impact
Modelul imită tonul și regulile de business specifice exact acelui tip de solicitare.
Greșeli frecvente și capcane
- Selectarea de exemple negative sau greșite în bancă; asigură-te că exemplele din depozitul vectorial sunt verificate și 100% corecte.
- Omiterea filtrării cazurilor identice; dacă utilizatorul pune o întrebare identică cu un exemplu din bancă, modelul trebuie să înțeleagă să aplice soluția, nu doar să copieze mecanic fără adaptare.