Buckets:

rtrm's picture
|
download
raw
14 kB
# లెర్నింగ్ కర్వ్స్ అర్థం చేసుకోవడం[[understanding-learning-curves]]
`Trainer` API మరియు కస్టమ్ ట్రైనింగ్ లూప్స్ ఉపయోగించి ఫైన్-ట్యూనింగ్ ఎలా చేయాలో నేర్చుకున్న తర్వాత, ఫలితాలను ఎలా అర్థం చేసుకోవాలో తెలుసుకోవడం చాలా ముఖ్యం. లెర్నింగ్ కర్వ్స్ మోడల్ పనితీరును అంచనా వేయడానికి, సమస్యలను ముందుగానే గుర్తించడానికి అమూల్యమైన టూల్స్.
ఈ సెక్షన్‌లో ఆక్యురసీ మరియు లాస్ కర్వ్స్‌ను ఎలా చదవాలో, వివిధ కర్వ్ ఆకారాలు మోడల్ ప్రవర్తన గురించి ఏమి చెబుతాయో, మరియు సాధారణ శిక్షణ సమస్యలను ఎలా పరిష్కరించాలో తెలుసుకుంటాం.
## లెర్నింగ్ కర్వ్స్ అంటే ఏమిటి?[[what-are-learning-curves]]
లెర్నింగ్ కర్వ్స్ అనేవి శిక్షణ సమయంలో మోడల్ పనితీరు మెట్రిక్స్ మార్పును చూపించే దృశ్య రూపాలు. ముఖ్యంగా పర్యవేక్షించాల్సిన రెండు కర్వ్స్:
- **లాస్ కర్వ్స్**: మోడల్ ఎర్రర్ (లాస్) శిక్షణ స్టెప్స్ లేదా ఎపాక్స్‌లో ఎలా మారుతుందో చూపిస్తుంది
- **ఆక్యురసీ కర్వ్స్**: సరైన ప్రెడిక్షన్స్ శాతం ఎలా మారుతుందో చూపిస్తుంది
### లాస్ కర్వ్స్[[loss-curves]]
లాస్ కర్వ్ మోడల్ పొరపాటు (ఎర్రర్) కాలక్రమంలో ఎలా తగ్గుతుందో చూపిస్తుంది. సాధారణ విజయవంతమైన శిక్షణలో కింద చూపినట్టే ఉంటుంది:
![Loss Curve](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/1.png)
- **మొదటి ఎక్కువ లాస్**: మోడల్ ప్రారంభంలో ఆప్టిమైజ్ కాని స్థితిలో ఉంటుంది
- **తగ్గుతున్న లాస్**: శిక్షణ కొనసాగినప్పుడు లాస్ సాధారణంగా తగ్గుతుంది
- **కన్వర్జెన్స్**: చివరగా లాస్ తక్కువ విలువ వద్ద స్థిరపడుతుంది
```
# Example of tracking loss during training with the Trainer
from transformers import Trainer, TrainingArguments
import wandb
# Initialize Weights & Biases for experiment tracking
wandb.init(project="transformer-fine-tuning", name="bert-mrpc-analysis")
training_args = TrainingArguments(
output_dir="./results",
eval_strategy="steps",
eval_steps=50,
save_steps=100,
logging_steps=10, # Log metrics every 10 steps
num_train_epochs=3,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
report_to="wandb", # Send logs to Weights & Biases
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
data_collator=data_collator,
processing_class=tokenizer,
compute_metrics=compute_metrics,
)
# Train and automatically log metrics
trainer.train()
```
### ఆక్యురసీ కర్వ్స్[[accuracy-curves]]
![Accuracy Curve](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/2.png)
* **మొదట తక్కువ**: మోడల్ ఇంకా ప్యాటర్న్స్ నేర్చుకోలేదు
* **పెరుగుతుంది**: శిక్షణతో ఆక్యురసీ పెరుగుతుంది
* **ప్లాటోలు కనిపిస్తాయి**: ఆక్యురసీ సాధారణంగా డిస్క్రీట్ జంప్స్‌లో పెరుగుతుంది
> [!TIP]
> 💡 **ఆక్యురసీ కర్వ్స్ "స్టెప్పీ" ఎందుకు ఉంటాయి**: లాస్ కంటిన్యూస్ అయితే, ఆక్యురసీ డిస్క్రీట్ ప్రెడిక్షన్స్‌పై ఆధారపడి ఉంటుంది. చిన్న మెరుగుదలలు ఫైనల్ ప్రెడిక్షన్ మార్చకపోవచ్చు, థ్రెషోల్డ్ దాటినప్పుడు మాత్రమే ఆక్యురసీ పెరుగుతుంది.
### కన్వర్జెన్స్[[convergence]]
![Convergence](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/4.png)
కన్వర్జెన్స్ అనేది మోడల్ పనితీరు స్థిరపడినప్పుడు జరుగుతుంది.
## లెర్నింగ్ కర్వ్ ప్యాటర్న్స్ అర్థం చేసుకోవడం[[interpreting-learning-curve-patterns]]
### ఆరోగ్యకరమైన లెర్నింగ్ కర్వ్స్[[healthy-learning-curves]]
![Healthy Loss Curve](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/5.png)
> [!TIP]
> **ఆరోగ్యకరమైన కర్వ్స్ లక్షణాలు:**
>
> * ట్రైన్ & వాలిడేషన్ లాస్ రెండూ స్థిరంగా తగ్గుతాయి
> * ట్రైన్/వాలిడేషన్ మధ్య చిన్న గ్యాప్ మాత్రమే ఉంటుంది
> * కర్వ్స్ స్థిరపడతాయి
### ప్రాక్టికల్ ఉదాహరణలు[[practical-examples]]
#### శిక్షణ సమయంలో[[during-training]]
1. **లాస్ కన్వర్జెన్స్**: లాస్ ఇంకా తగ్గుతున్నదా లేదా ప్లాటో అవుతోందా?
2. **ఓవర్‌ఫిట్టింగ్ గుర్తులు**: ట్రైన్ లాస్ తగ్గుతూనే వాలిడేషన్ లాస్ పెరుగుతున్నదా?
3. **లెర్నింగ్ రేట్**: కర్వ్స్ అస్థిరమా లేదా చాలా ఫ్లాట్‌గా ఉందా?
4. **స్థిరత్వం**: ఆకస్మిక స్పైక్స్ లేదా డ్రాప్స్ కనిపిస్తున్నాయా?
#### శిక్షణ తర్వాత[[after-training]]
1. **చివరి పనితీరు**: మోడల్ అంగీకారమైన స్థాయిలో ఉందా?
2. **ప్రభావవంతత**: తక్కువ ఎపాక్స్‌లో అదే పనితీరు సాధ్యమా?
3. **జనరలైజేషన్**: ట్రైన్ & వాలిడేషన్ పనితీరుకు మధ్య తేడా ఎంత?
4. **ట్రెండ్స్**: అదనపు శిక్షణ పనితీరును మెరుగుపరుస్తుందా?
> [!TIP]
> 🔍 **Weights & Biases డాష్‌బోర్డు ఫీచర్స్**:
>
> * బహుళ రన్స్‌ని సైడ్ బై సైడ్ పోల్చవచ్చు
> * కస్టమ్ మెట్రిక్స్ & విజువలైజేషన్స్
> * అనామాలస్ కోసం అలర్ట్స్
> * ఫలితాలను టీమ్‌తో షేర్ చేయవచ్చు
### ఓవర్‌ఫిట్టింగ్[[overfitting]]
![Overfitting](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/10.png)
**లక్షణాలు:**
* ట్రైన్ లాస్ తగ్గుతూనే ఉంటుంది
* వాలిడేషన్ లాస్ పెరగడం లేదా ప్లాటో అవుతుంది
* ట్రైన్ ఆక్యురసీ ఎక్కువ, వాలిడేషన్ ఆక్యురసీ తక్కువ
**పరిష్కారాలు:**
* రెగ్యులరైజేషన్: డ్రాపౌట్, వెయిట్ డికే
* ఎర్లీ స్టాప్పింగ్
* డేటా ఆగ్మెంటేషన్
* చిన్న మోడల్ వాడటం
```
from transformers import EarlyStoppingCallback
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
data_collator=data_collator,
processing_class=tokenizer,
compute_metrics=compute_metrics,
callbacks=[EarlyStoppingCallback(early_stopping_patience=3)],
)
```
### అండర్‌ఫిట్టింగ్[[underfitting]]
![Underfitting](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/7.png)
**లక్షణాలు:**
* ట్రైన్ & వాలిడేషన్ లాస్ రెండూ ఎక్కువగా ఉంటాయి
* ట్రైన్ ఆక్యురసీ & వాలిడేషన్ ఆక్యురసీ తక్కువ
* పనితీరు త్వరగా ప్లాటో అవుతుంది
**పరిష్కారాలు:**
* పెద్ద మోడల్ వాడటం
* ఎక్కువ ఎపాక్స్ శిక్షణ
* లెర్నింగ్ రేట్ సర్దడం
* డేటా సరిచూసుకోవడం
### ఎరాటిక్ లెర్నింగ్ కర్వ్స్[[erratic-learning-curves]]
![Erratic Learning Curves](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/3.png)
![Erratic Learning Curves](https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter3/9.png)
**లక్షణాలు:**
* లాస్/ఆక్యురసీ తరచూ ఊగుతాయి
* స్పష్టమైన ట్రెండ్ లేదు
**పరిష్కారాలు:**
* లెర్నింగ్ రేట్ తగ్గించడం
* బ్యాచ్ సైజ్ పెంచడం
* గ్రేడియంట్ క్లిప్పింగ్
```
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
learning_rate=1e-4,
per_device_train_batch_size=32,
)
```
## ముఖ్య పాయింట్లు[[key-takeaways]]
* లెర్నింగ్ కర్వ్స్ మోడల్ శిక్షణ పురోగతిని అర్థం చేసుకోవడానికి అవసరమైన టూల్స్
* లాస్ & ఆక్యురసీ కర్వ్స్ రెండూ పర్యవేక్షించండి
* ఓవర్‌ఫిట్టింగ్: ట్రైన్/వాలిడేషన్ పనితీరు వేరుపడటం
* అండర్‌ఫిట్టింగ్: ట్రైన్ & వాలిడేషన్ పనితీరు తక్కువ
* Weights & Biases వంటి టూల్స్ సులభతరం చేస్తాయి
* ఎర్లీ స్టాప్పింగ్ & రెగ్యులరైజేషన్ సాధారణ సమస్యలను పరిష్కరిస్తాయి
## సెక్షన్ క్విజ్[[section-quiz]]
### 1. ట్రైన్ లాస్ తగ్గుతున్నా వాలిడేషన్ లాస్ పెరుగుతుంటే ఏమవుతుంది?
### 2. ఆక్యురసీ కర్వ్స్ ఎందుకు "స్టెప్పీ" ఆకారంలో ఉంటాయి?
### 3. అస్థిర (ఎరాటిక్) లెర్నింగ్ కర్వ్స్ కనిపిస్తే ఏం చేయాలి?
### 4. ఎర్లీ స్టాప్పింగ్ ఎప్పుడు వాడాలి?
### 5. మోడల్ అండర్‌ఫిట్ అవుతుందని ఏది సూచిస్తుంది?
> వాలిడేషన్ ఆక్యురసీ.", explain: "ఇది ఓవర్‌ఫిట్టింగ్."},
{text: "ట్రైన్ & వాలిడేషన్ పనితీరు రెండూ పేలవంగా, త్వరగా ప్లాటో.", explain: "సరైనది!", correct: true},
{text: "లెర్నింగ్ కర్వ్స్ చాలా స్మూత్.", explain: "కాదు."},
{text: "వాలిడేషన్ లాస్ ట్రైన్ కంటే త్వరగా తగ్గుతుంది.", explain: "ఇది సమస్య కాదు."}
]}/>

Xet Storage Details

Size:
14 kB
·
Xet hash:
9602db4ecc663afde25b87694c634c6dd141d814335d667f92cda7259d9f0cc9

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.