Buckets:

rtrm's picture
|
download
raw
14 kB

లెర్నింగ్ కర్వ్స్ అర్థం చేసుకోవడం[[understanding-learning-curves]]

Trainer API మరియు కస్టమ్ ట్రైనింగ్ లూప్స్ ఉపయోగించి ఫైన్-ట్యూనింగ్ ఎలా చేయాలో నేర్చుకున్న తర్వాత, ఫలితాలను ఎలా అర్థం చేసుకోవాలో తెలుసుకోవడం చాలా ముఖ్యం. లెర్నింగ్ కర్వ్స్ మోడల్ పనితీరును అంచనా వేయడానికి, సమస్యలను ముందుగానే గుర్తించడానికి అమూల్యమైన టూల్స్.

ఈ సెక్షన్‌లో ఆక్యురసీ మరియు లాస్ కర్వ్స్‌ను ఎలా చదవాలో, వివిధ కర్వ్ ఆకారాలు మోడల్ ప్రవర్తన గురించి ఏమి చెబుతాయో, మరియు సాధారణ శిక్షణ సమస్యలను ఎలా పరిష్కరించాలో తెలుసుకుంటాం.

లెర్నింగ్ కర్వ్స్ అంటే ఏమిటి?[[what-are-learning-curves]]

లెర్నింగ్ కర్వ్స్ అనేవి శిక్షణ సమయంలో మోడల్ పనితీరు మెట్రిక్స్ మార్పును చూపించే దృశ్య రూపాలు. ముఖ్యంగా పర్యవేక్షించాల్సిన రెండు కర్వ్స్:

  • లాస్ కర్వ్స్: మోడల్ ఎర్రర్ (లాస్) శిక్షణ స్టెప్స్ లేదా ఎపాక్స్‌లో ఎలా మారుతుందో చూపిస్తుంది
  • ఆక్యురసీ కర్వ్స్: సరైన ప్రెడిక్షన్స్ శాతం ఎలా మారుతుందో చూపిస్తుంది

లాస్ కర్వ్స్[[loss-curves]]

లాస్ కర్వ్ మోడల్ పొరపాటు (ఎర్రర్) కాలక్రమంలో ఎలా తగ్గుతుందో చూపిస్తుంది. సాధారణ విజయవంతమైన శిక్షణలో కింద చూపినట్టే ఉంటుంది:

Loss Curve

  • మొదటి ఎక్కువ లాస్: మోడల్ ప్రారంభంలో ఆప్టిమైజ్ కాని స్థితిలో ఉంటుంది
  • తగ్గుతున్న లాస్: శిక్షణ కొనసాగినప్పుడు లాస్ సాధారణంగా తగ్గుతుంది
  • కన్వర్జెన్స్: చివరగా లాస్ తక్కువ విలువ వద్ద స్థిరపడుతుంది
# 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

  • మొదట తక్కువ: మోడల్ ఇంకా ప్యాటర్న్స్ నేర్చుకోలేదు
  • పెరుగుతుంది: శిక్షణతో ఆక్యురసీ పెరుగుతుంది
  • ప్లాటోలు కనిపిస్తాయి: ఆక్యురసీ సాధారణంగా డిస్క్రీట్ జంప్స్‌లో పెరుగుతుంది

💡 ఆక్యురసీ కర్వ్స్ "స్టెప్పీ" ఎందుకు ఉంటాయి: లాస్ కంటిన్యూస్ అయితే, ఆక్యురసీ డిస్క్రీట్ ప్రెడిక్షన్స్‌పై ఆధారపడి ఉంటుంది. చిన్న మెరుగుదలలు ఫైనల్ ప్రెడిక్షన్ మార్చకపోవచ్చు, థ్రెషోల్డ్ దాటినప్పుడు మాత్రమే ఆక్యురసీ పెరుగుతుంది.

కన్వర్జెన్స్[[convergence]]

Convergence

కన్వర్జెన్స్ అనేది మోడల్ పనితీరు స్థిరపడినప్పుడు జరుగుతుంది.

లెర్నింగ్ కర్వ్ ప్యాటర్న్స్ అర్థం చేసుకోవడం[[interpreting-learning-curve-patterns]]

ఆరోగ్యకరమైన లెర్నింగ్ కర్వ్స్[[healthy-learning-curves]]

Healthy Loss Curve

ఆరోగ్యకరమైన కర్వ్స్ లక్షణాలు:

  • ట్రైన్ & వాలిడేషన్ లాస్ రెండూ స్థిరంగా తగ్గుతాయి
  • ట్రైన్/వాలిడేషన్ మధ్య చిన్న గ్యాప్ మాత్రమే ఉంటుంది
  • కర్వ్స్ స్థిరపడతాయి

ప్రాక్టికల్ ఉదాహరణలు[[practical-examples]]

శిక్షణ సమయంలో[[during-training]]

  1. లాస్ కన్వర్జెన్స్: లాస్ ఇంకా తగ్గుతున్నదా లేదా ప్లాటో అవుతోందా?
  2. ఓవర్‌ఫిట్టింగ్ గుర్తులు: ట్రైన్ లాస్ తగ్గుతూనే వాలిడేషన్ లాస్ పెరుగుతున్నదా?
  3. లెర్నింగ్ రేట్: కర్వ్స్ అస్థిరమా లేదా చాలా ఫ్లాట్‌గా ఉందా?
  4. స్థిరత్వం: ఆకస్మిక స్పైక్స్ లేదా డ్రాప్స్ కనిపిస్తున్నాయా?

శిక్షణ తర్వాత[[after-training]]

  1. చివరి పనితీరు: మోడల్ అంగీకారమైన స్థాయిలో ఉందా?
  2. ప్రభావవంతత: తక్కువ ఎపాక్స్‌లో అదే పనితీరు సాధ్యమా?
  3. జనరలైజేషన్: ట్రైన్ & వాలిడేషన్ పనితీరుకు మధ్య తేడా ఎంత?
  4. ట్రెండ్స్: అదనపు శిక్షణ పనితీరును మెరుగుపరుస్తుందా?

🔍 Weights & Biases డాష్‌బోర్డు ఫీచర్స్:

  • బహుళ రన్స్‌ని సైడ్ బై సైడ్ పోల్చవచ్చు
  • కస్టమ్ మెట్రిక్స్ & విజువలైజేషన్స్
  • అనామాలస్ కోసం అలర్ట్స్
  • ఫలితాలను టీమ్‌తో షేర్ చేయవచ్చు

ఓవర్‌ఫిట్టింగ్[[overfitting]]

Overfitting

లక్షణాలు:

  • ట్రైన్ లాస్ తగ్గుతూనే ఉంటుంది
  • వాలిడేషన్ లాస్ పెరగడం లేదా ప్లాటో అవుతుంది
  • ట్రైన్ ఆక్యురసీ ఎక్కువ, వాలిడేషన్ ఆక్యురసీ తక్కువ

పరిష్కారాలు:

  • రెగ్యులరైజేషన్: డ్రాపౌట్, వెయిట్ డికే
  • ఎర్లీ స్టాప్పింగ్
  • డేటా ఆగ్మెంటేషన్
  • చిన్న మోడల్ వాడటం
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

లక్షణాలు:

  • ట్రైన్ & వాలిడేషన్ లాస్ రెండూ ఎక్కువగా ఉంటాయి
  • ట్రైన్ ఆక్యురసీ & వాలిడేషన్ ఆక్యురసీ తక్కువ
  • పనితీరు త్వరగా ప్లాటో అవుతుంది

పరిష్కారాలు:

  • పెద్ద మోడల్ వాడటం
  • ఎక్కువ ఎపాక్స్ శిక్షణ
  • లెర్నింగ్ రేట్ సర్దడం
  • డేటా సరిచూసుకోవడం

ఎరాటిక్ లెర్నింగ్ కర్వ్స్[[erratic-learning-curves]]

Erratic Learning Curves Erratic Learning Curves

లక్షణాలు:

  • లాస్/ఆక్యురసీ తరచూ ఊగుతాయి
  • స్పష్టమైన ట్రెండ్ లేదు

పరిష్కారాలు:

  • లెర్నింగ్ రేట్ తగ్గించడం
  • బ్యాచ్ సైజ్ పెంచడం
  • గ్రేడియంట్ క్లిప్పింగ్
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.