✏️ धडा 02 — Training: सराव परीक्षा आणि लाल पेन
📍 तुम्ही इथे आहात: 12 पैकी धडा 02 · मागे: lesson-01-what-is-ai · पुढे: lesson-03-tokens
📦 या ब्रँचमध्ये काय आहे
धडा 01, आणि सगळ्या machine learning चे इंजिन: loss (मी किती चुकलो?) आणि gradient descent (कमी चूक कोणत्या दिशेला?).
🧒 5 वर्षांच्या मुलाला समजावल्यासारखे
मूल गणितात खरोखर सुधारते कसे? जादूने नाही — सराव-परीक्षेच्या loop ने ✏️:
- सराव परीक्षा द्या — model उदाहरणांवर predictions करतो.
- लाल पेन 🔴 — उत्तरे उत्तरपत्रिकेशी जुळवा आणि किती चुकलात ते मोजा. हा चुकीचा-गुण म्हणजे loss. (फक्त बरोबर/चूक नाही — किती चूक: 9×7=64 हे उत्तर 9×7=12 पेक्षा जवळ आहे.)
- थोडेसे बदला — ही आहे सुंदर युक्ती: model च्या लाखो dials (weights) पैकी प्रत्येकासाठी calculus विचारू शकते "मी हा dial थोडासा फिरवला, तर loss कमी होईल का?" मग प्रत्येक dial ला त्याच्या स्वतःच्या उताराच्या दिशेने छोटासा धक्का मिळतो. हेच gradient descent — "चुकीचा डोंगर एकेक छोटे पाऊल टाकत उतरणे." ⛰️
- पुन्हा करा. लाखो वेळा. loss हळूहळू कमी होतो, मूल अधिक तल्लख होते.
वर्गातील दोन अपयश जे तुम्हाला माहीत असलेच पाहिजेत:
- परीक्षा पाठ करणे 📄 (overfitting): सरावाच्या प्रश्नांवर पूर्ण गुण, नव्या प्रश्नांवर गोंधळ. उपाय: मुलाने कधीच न पाहिलेल्या प्रश्नांवर गुण द्या (validation set) — पाठ करायला नव्हे, समजायला शिकवा.
- घोकंपट्टीचा वेग (learning rate): dials खूप जोरात ढकलले तर तुम्ही दरी ओलांडून पलीकडे उसळता; खूप हळू ढकलले तर शाळा कधीच संपत नाही. dials चा हा dial जुळवणे म्हणजे अर्धी कला.
🗺️ आकृती
flowchart LR
d["📚 examples<br/>question + right answer"]
m["🧠 model<br/>millions of dials"]
p["✍️ prediction"]
l["🔴 loss<br/>HOW wrong?"]
g["⛰️ gradient descent<br/>nudge every dial<br/>slightly downhill"]
d --> m --> p --> l -->|"1"| g -->|"2 repeat millions of times"| m
v["🧪 validation set - unseen questions<br/>catches memorizers (overfitting)"]
v -.->|"3 honest grade"| l
❓ काय
- Loss function — सर्व उदाहरणांवरची चूक मोजणारा एक आकडा; training = तो कमीत कमी करणे. LLMs साठी: "खऱ्या next token मुळे मला किती आश्चर्य वाटले?" (धडा 05 हे जोडतो!).
- Gradient — loss कमी करण्यासाठी प्रत्येक weight ने कोणत्या दिशेला सरकावे ती दिशा; backpropagation ती सगळ्या layers मधून कार्यक्षमपणे काढते.
- Epochs/batches: data वरून तुकड्या-तुकड्यांत जाणे; learning rate: धक्क्याचा आकार; overfitting: train-score उत्तम, validation-score वाईट.
- आकाराचा अंदाज: frontier LLM pretraining = हाच loop, trillions tokens वर, हजारो GPUs वर, महिनोन्महिने चालवलेला. loop कधीच हुशार होत नाही — फक्त मोठा होतो.
🤔 का
AI ची प्रत्येक क्षमता आणि प्रत्येक खर्चाची गोष्ट म्हणजे हाच loop. "एक model train करायला लाखो खर्च येतो" = मोठ्या प्रमाणावर step 3 साठी लागणारी वीज. "model biased आहे" = उत्तरपत्रिका (data) biased होती. "Fine-tuning" (धडा 07) = तोच लाल पेन, एका छोट्या, खास परीक्षेवर. सगळ्यांवर राज्य करणारा एकच loop.
🧪 करून पाहा
python3 demo/bigram_model.py
आपले हे खेळणे calculus वगळते — मोजण्यासाठी, मोजलेले आकडेच परिपूर्ण dials असतात (loss कमीत कमी करणारे, सिद्ध करता येते!). आता कल्पना करा की छापलेल्या तक्त्यात 175 billion dials आहेत जे मोजून सोडवता येत नाहीत — फक्त उताराकडे ढकलता येतात, उदाहरणामागून उदाहरण. तोच तक्ता, अवघड डोंगर. ⛰️
कागदावरचा सराव: तीन धक्क्यांमध्ये model 9×7 चे उत्तर 64, मग 61, मग 63 देतो. loss वाढतोय की कमी होतोय? (कमी — लाल पेन अंतर मोजतो, आणि म्हणूनच "किती चूक" हे "चूक" पेक्षा सरस आहे.)
⏭️ पुढे
LLM text वर सराव करण्याआधी, text ला calculator पचवू शकेल असे काहीतरी बनावे लागते: tokens — puzzle चे तुकडे.
git checkout lesson-03-tokens