Skip to content

Örnek Seçim Stratejileri: Random · Similar · Diverse · Hard-Negative

Few-shot örneklerini büyük havuzdan nasıl seçersin? Random, semantic similarity, diversity-driven, hard negative mining karşılaştırması.

Şükrü Yusuf KAYA
11 min read
Intermediate

Örnek Seçim Stratejileri

Diyelim ki 1000 etiketli örnek'in var. Her sorgu için 5 örnek seçeceksin. Hangileri?

4 Strateji#

Yöntem: Havuzdan rastgele 5 örnek.
✅ Basit, bias düşük, hızlı ❌ Hedefle alaka olmayabilir ❌ Tutarsızlık (her sorgu farklı 5)
Kullan: Eval'in baseline'ı için. Veya çok az örnek varsa.
python
# Semantic similarity ile örnek seçimi (mini)
# pip install sentence-transformers
from sentence_transformers import SentenceTransformer, util
import torch
 
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
 
EXAMPLES = [
("Ürün geç geldi ama içerik mükemmel", "nötr"),
("Hatalı ürün, iade etmek zorunda kaldım", "olumsuz"),
("Tam beklediğim gibi, mükemmel kalite", "olumlu"),
("Kargo hızlı, ürün güzel", "olumlu"),
("Bir kez kullandım, fonksiyonu öyle iyi değil", "olumsuz"),
("Fiyat-performans iyi", "olumlu"),
("Beklediğim ile gelen aynı değil", "olumsuz"),
("Düşündüğümden büyük geldi ama beğendim", "nötr"),
]
 
def select_top_k(query: str, k: int = 3):
inputs = [e[0] for e in EXAMPLES]
emb_examples = model.encode(inputs, convert_to_tensor=True)
emb_query = model.encode(query, convert_to_tensor=True)
sims = util.cos_sim(emb_query, emb_examples)[0]
top_idx = torch.topk(sims, k).indices.tolist()
return [EXAMPLES[i] for i in top_idx]
 
query = "Geç geldi ama kalite iyiydi"
selected = select_top_k(query, 3)
for ex in selected:
print(f" {ex}")
 
Semantic similarity ile en alakalı 3 örnek seçildi.
Production tavsiye: Statik 5 örnekle başla → trafiği analiz et → en sık karıştırılan kategorileri bul → o kategorilerin hard-negative örneklerini havuza ekle → semantic-KNN selector kur. 3 ay sonra +%8-12 doğruluk.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content