पाठ 14 / 27

Label गुणवत्ता: शोर सटीकता घटाता है

ग़लत या असंगत उदाहरण ग़लत या असंगत व्यवहार सिखाते हैं।

कचरा अंदर, आत्मविश्वासी कचरा बाहर

Fine-tuning आपके डेटा के पैटर्न की नक़ल करती है, उसकी ग़लतियों, असंगत शैली और छिपे पूर्वाग्रहों समेत। कुछ सौ साफ़, एकसमान उदाहरण आम तौर पर हज़ारों शोर वाले उदाहरणों से बेहतर होते हैं। आम समस्याएँ: एक जैसे इनपुट के विरोधी labels, मिले-जुले formats वाले उत्तर, copy-paste boilerplate, पुराने तथ्य, और ऐसे उदाहरण जो असल में सहायक का मना करना या टालना हैं। यादृच्छिक नमूने की हाथ से समीक्षा करें, labelling नियम लिखें, उपसमूह को दो लोगों से label करवाकर सहमति मापें, और प्रशिक्षण से पहले असहमतियाँ हटाएँ या ठीक करें।

गुणवत्ता, format और साफ़ बँटवारा

अधिकांश fine-tuning नतीजे प्रशिक्षण run से नहीं, डेटा से तय होते हैं।

तीन विचार: साफ़ labels, वैध format, leakage-रहित बँटवारे।
चित्र 4.1 — Labels, format और बँटवारे।

Labels के शोर वाले होने पर test सटीकता, चलाकर

मैंने यह Python, numpy 2.5.3 और scikit-learn 1.9.1 के साथ, निश्चित random seeds पर चलाया। यह छोटे क्लासिकल मॉडल प्रशिक्षित करता है, language model नहीं: तंत्र (gradient descent, learning rate, overfitting, forgetting, low-rank अद्यतन) वही विचार हैं जो LLM के fine-tuning पर लागू होते हैं, पर संख्याएँ LLM के परिणाम नहीं हैं। प्रशिक्षण labels का हिस्सा पलटने से held-out सटीकता घटती है: साफ़ labels पर 0.881, 10 से 20% ग़लत पर लगभग 0.85, और 40% ग़लत पर 0.782। नुक़सान का आकार मॉडल और कार्य पर निर्भर है।

import numpy as np
from sklearn.linear_model import LogisticRegression

rng = np.random.default_rng(5)
centers = rng.normal(size=(3, 20))
def make(n): y = rng.integers(0, 3, n); return centers[y] + rng.normal(size=(n, 20)) * 2.0, y
Xtr, ytr = make(400); Xte, yte = make(3000)

print("share of wrong labels in the training data | test accuracy")
for frac in (0.0, 0.1, 0.2, 0.4):
    y = ytr.copy(); flip = rng.random(len(y)) < frac; y[flip] = (y[flip] + rng.integers(1, 3, flip.sum())) % 3
    acc = LogisticRegression(max_iter=3000).fit(Xtr, y).score(Xte, yte)
    print(f"{frac:>42.0%} | {acc:.3f}")

Output:

share of wrong labels in the training data | test accuracy
                                        0% | 0.881
                                       10% | 0.849
                                       20% | 0.850
                                       40% | 0.782

ख़ुद 50 उदाहरण पढ़ें

हर प्रशिक्षण run से पहले 50 यादृच्छिक rows पढ़ें; अधिकांश डेटा bugs आँख से स्पष्ट और कुल मीट्रिक में अदृश्य होते हैं।

त्वरित जाँच: Fine-tuning के लिए आम तौर पर कौन-सा बेहतर है?

  • दोहराए boilerplate उत्तर
  • हज़ारों विरोधी उदाहरण
  • बिना समीक्षा scrape किया पाठ
  • सैकड़ों साफ़, एकसमान उदाहरण
Answer

सैकड़ों साफ़, एकसमान उदाहरण — गुणवत्ता और एकरूपता कच्ची मात्रा से अधिक मायने रखती है।