पाठ 6 / 27

Learning Curves: जब प्रशिक्षण prompt के उदाहरणों से आगे निकलता है

देखें अधिक labelled डेटा मुट्ठी भर shots से बेहतर क्यों हो सकता है।

समझौते की क्लासिकल उपमा

क्लासिकल खिलौना कार्य में एक तरीक़ा labelled उदाहरण रखकर हर नए इनपुट को निकटतम उदाहरण से मिलाता है (few-shot prompting जैसा: वह समग्र नियम नहीं सीख सकता), जबकि दूसरा सारे उदाहरणों पर classifier प्रशिक्षित करता है (fine-tuning जैसा)। बहुत कम उदाहरणों पर वे समान हैं; डेटा बढ़ने पर प्रशिक्षित मॉडल सुधरता रहता है जबकि उदाहरण-मिलान चपटा हो जाता है। असली LLM prompting nearest-neighbour मिलान से कहीं अधिक सक्षम है, इसलिए यह सिर्फ़ वक्रों के रूप को दिखाता है। अपने कार्य का वक्र जाँचें: डेटा जोड़ने पर सटीकता अब भी बढ़ रही हो तो प्रशिक्षण मदद कर सकता है।

Lookup के रूप में उदाहरण बनाम प्रशिक्षण, चलाकर

मैंने यह 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 के परिणाम नहीं हैं। 3 labelled उदाहरणों पर दोनों लगभग 0.46 पाते हैं; 1,500 पर निकटतम-उदाहरण 0.689 और प्रशिक्षित classifier 0.846 तक। खिलौना सिर्फ़ वक्रों का रूप दिखाता है।

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier

# A toy "task": tell 3 ticket categories apart from 20 noisy numeric features (a stand-in for text features).
rng = np.random.default_rng(0)
centers = rng.normal(size=(3, 20)) * 1.0
def make(n): 
    y = rng.integers(0, 3, n); X = centers[y] + rng.normal(size=(n, 20)) * 2.2
    return X, y
Xtest, ytest = make(3000)

print("labelled examples | few-shot nearest-example (prompt-like) | trained classifier (fine-tune-like)")
for n in (3, 6, 15, 60, 300, 1500):
    X, y = make(n)
    knn = KNeighborsClassifier(n_neighbors=1).fit(X, y)
    clf = LogisticRegression(max_iter=2000).fit(X, y)
    print(f"{n:17d} | {knn.score(Xtest, ytest):37.3f} | {clf.score(Xtest, ytest):.3f}")

Output:

labelled examples | few-shot nearest-example (prompt-like) | trained classifier (fine-tune-like)
                3 |                                 0.458 | 0.462
                6 |                                 0.549 | 0.575
               15 |                                 0.631 | 0.726
               60 |                                 0.635 | 0.717
              300 |                                 0.662 | 0.826
             1500 |                                 0.689 | 0.846

तय करने से पहले plot करें

अपने कार्य को prompt या प्रशिक्षण set में 10, 50, 200 उदाहरणों से आँकें; ढलान बताती है कि और डेटा जुटाना सार्थक है या नहीं।

त्वरित जाँच: Learning curve क्या सुझाती है?

  • दोनों रेखाएँ समान हैं
  • अधिक डेटा हमेशा नुक़सान करता है
  • प्रशिक्षण कभी मदद नहीं करता
  • प्रशिक्षित मॉडल वहाँ सुधरता रह सकता है जहाँ उदाहरण-मिलान चपटा हो जाता है
Answer

प्रशिक्षित मॉडल वहाँ सुधरता रह सकता है जहाँ उदाहरण-मिलान चपटा हो जाता है — अपना वक्र जाँचें: डेटा के साथ सटीकता अब भी चढ़ती हो तो प्रशिक्षण फलदायी हो सकता है।