Buckets:
| import{s as rt,o as it}from"../chunks/scheduler.505acc25.js";import{S as pt,i as mt,e as d,s as a,c as r,h as ot,a as u,d as t,b as n,f as at,g as i,j as y,l as We,m as ct,n as s,o as p,p as m,q as o,r as c}from"../chunks/index.69bea517.js";import{C as Mt,H as b,E as dt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.92841fb1.js";import{Y as nt}from"../chunks/Youtube.df3b4b79.js";import{C as M}from"../chunks/CodeBlock.964d2fc6.js";import{C as ut}from"../chunks/CourseFloatingBanner.7da3a0fa.js";import{Q as Ge}from"../chunks/Question.9aa5e15a.js";import{F as yt}from"../chunks/FrameworkSwitchCourse.181badd6.js";function bt(Yl){let w,Ze,j,Ce,f,ve,J,Be,T,xe,U,Re,k,Xe,G,zl="ఇప్పుడు <code>Trainer</code> క్లాస్ ఉపయోగించకుండా, మునుపటి సెక్షన్లో చూపిన అదే ఫలితాలను సాధించే విధంగా పూర్తి శిక్షణ లూప్ను PyTorchలో అమలు చేద్దాం. మళ్లీ చెప్తున్నాం – మీరు సెక్షన్ 2లో డేటా ప్రాసెసింగ్ పూర్తి చేసి ఉన్నారని అనుకుంటున్నాం.",_e,$,Nl='<p>🏗️ <strong>మాన్యువల్ శిక్షణ</strong>: PyTorchలో ట్రైనింగ్ లూప్ మరియు బెస్ట్ ప్రాక్టీస్ల కోసం <a href="https://huggingface.co/docs/transformers/main/en/training#train-in-native-pytorch" rel="nofollow">🤗 Transformers training documentation</a> మరియు <a href="https://huggingface.co/learn/cookbook/en/fine_tuning_code_llm_on_single_gpu#model" rel="nofollow">custom training cookbook</a> చూడండి.</p>',Ae,Z,Ee,C,Ve,I,Fl="<code>Trainer</code> ఆటోమేటిక్గా చేసే కొన్ని దశలను మనం మాన్యువల్గా చేయాలి:",Ye,W,ze,v,Ne,B,Ql="ఇప్పుడు DataLoaderలు తయారు చేయవచ్చు:",Fe,x,Qe,R,Hl="ఒక బ్యాచ్ చూద్దాం:",He,X,Se,_,qe,A,Sl="మోడల్:",Le,E,Ke,V,ql="టెస్ట్:",De,Y,Pe,z,Oe,N,Ll="ఆప్టిమైజర్:",el,F,ll,Q,Kl="లెర్నింగ్ రేట్ షెడ్యూలర్:",tl,H,sl,S,al,q,Dl="GPUకి తరలించడం:",nl,L,rl,K,il,D,pl,P,ml,h,Pl="<p>💡 <strong>అడ్వాన్స్డ్ శిక్షణ టిప్స్</strong>:</p> <ul><li>మిక్స్డ్ ప్రెసిషన్: <code>torch.cuda.amp.autocast()</code> మరియు <code>GradScaler</code> వాడండి</li> <li>గ్రేడియంట్ అక్యుమ్యులేషన్: ఎక్కువ బ్యాచ్ సైజ్ సిమ్యులేషన్ కోసం గ్రేడియంట్స్ ను accumulate చేయండి</li> <li>Checkpointing: మధ్యలో మోడల్ సేవ్ చేయండి</li></ul>",ol,O,cl,ee,Ml,le,dl,te,ul,se,yl,ae,bl,ne,Ol="ఈ కోడ్ను <code>train.py</code>లో సేవ్ చేసి కింది కమాండ్లతో రన్ చేయవచ్చు:",wl,re,jl,ie,et="Colabలో టెస్ట్ చేయాలంటే:",fl,pe,$l,me,hl,oe,lt="<li><strong>Model Evaluation</strong>: Accuracyతో పాటు ఇతర మెట్రిక్స్తో కూడా మోడల్ ఎవాల్యుయేట్ చేయండి</li> <li><strong>Hyperparameter Tuning</strong>: Optuna లేదా Ray Tune వంటివి వాడి హైపర్పారామీటర్స్ optimize చేయండి</li> <li><strong>Model Monitoring</strong>: Training metrics, learning curves, validation performance ట్రాక్ చేయండి</li> <li><strong>Model Sharing</strong>: Hugging Face Hubలో మోడల్ share చేయండి</li> <li><strong>Efficiency</strong>: Gradient checkpointing, LoRA, AdaLoRA, quantization techniques వాడి పెద్ద మోడల్ కోసం efficiency పెంచండి</li>",gl,ce,Jl,Me,Tl,de,Ul,ue,kl,ye,Gl,be,Zl,we,Cl,je,Il,fe,Wl,$e,vl,he,Bl,ge,xl,Je,Rl,Te,Xl,Ue,_l,g,tt="<p>💡 <strong>Key Takeaways</strong>:</p> <ul><li>మాన్యువల్ training loops పూర్తి control ఇస్తాయి; proper sequence: forward → backward → optimizer step → scheduler step → zero gradients</li> <li>AdamW weight decay తో transformer modelsకి recommended</li> <li>Evaluation లో model.eval() మరియు torch.no_grad() తప్పనిసరి</li> <li>🤗 Accelerate distributed training minimal changes తో</li> <li>Device management (GPU/CPU tensors) PyTorch లో crucial</li> <li>Mixed precision, gradient accumulation, gradient clipping efficiency పెంచుతాయి</li></ul>",Al,ke,El,Ie,Vl;return f=new yt({props:{fw:Yl[0]}}),J=new Mt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new b({props:{title:"పూర్తి శిక్షణ లూప్",local:"a-full-training",headingTag:"h1"}}),U=new ut({props:{chapter:3,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"[https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/te/chapter3/section4.ipynb](https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/te/chapter3/section4.ipynb)"},{label:"Aws Studio",value:"[https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/te/chapter3/section4.ipynb](https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/te/chapter3/section4.ipynb)"}]}}),k=new nt({props:{id:"Dh9CL8fyG80"}}),Z=new M({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBEYXRhQ29sbGF0b3JXaXRoUGFkZGluZyUwQSUwQXJhd19kYXRhc2V0cyUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJnbHVlJTIyJTJDJTIwJTIybXJwYyUyMiklMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyYmVydC1iYXNlLXVuY2FzZWQlMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQSUwQSUwQWRlZiUyMHRva2VuaXplX2Z1bmN0aW9uKGV4YW1wbGUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwdG9rZW5pemVyKGV4YW1wbGUlNUIlMjJzZW50ZW5jZTElMjIlNUQlMkMlMjBleGFtcGxlJTVCJTIyc2VudGVuY2UyJTIyJTVEJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUpJTBBJTBBJTBBdG9rZW5pemVkX2RhdGFzZXRzJTIwJTNEJTIwcmF3X2RhdGFzZXRzLm1hcCh0b2tlbml6ZV9mdW5jdGlvbiUyQyUyMGJhdGNoZWQlM0RUcnVlKSUwQWRhdGFfY29sbGF0b3IlMjAlM0QlMjBEYXRhQ29sbGF0b3JXaXRoUGFkZGluZyh0b2tlbml6ZXIlM0R0b2tlbml6ZXIp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, DataCollatorWithPadding | |
| raw_datasets = load_dataset(<span class="hljs-string">"glue"</span>, <span class="hljs-string">"mrpc"</span>) | |
| checkpoint = <span class="hljs-string">"bert-base-uncased"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">tokenize_function</span>(<span class="hljs-params">example</span>): | |
| <span class="hljs-keyword">return</span> tokenizer(example[<span class="hljs-string">"sentence1"</span>], example[<span class="hljs-string">"sentence2"</span>], truncation=<span class="hljs-literal">True</span>) | |
| tokenized_datasets = raw_datasets.<span class="hljs-built_in">map</span>(tokenize_function, batched=<span class="hljs-literal">True</span>) | |
| data_collator = DataCollatorWithPadding(tokenizer=tokenizer)`,wrap:!1}}),C=new b({props:{title:"శిక్షణకు సిద్ధం చేయడం",local:"prepare-for-training",headingTag:"h3"}}),W=new M({props:{code:"dG9rZW5pemVkX2RhdGFzZXRzJTIwJTNEJTIwdG9rZW5pemVkX2RhdGFzZXRzLnJlbW92ZV9jb2x1bW5zKCU1QiUyMnNlbnRlbmNlMSUyMiUyQyUyMCUyMnNlbnRlbmNlMiUyMiUyQyUyMCUyMmlkeCUyMiU1RCklMEF0b2tlbml6ZWRfZGF0YXNldHMlMjAlM0QlMjB0b2tlbml6ZWRfZGF0YXNldHMucmVuYW1lX2NvbHVtbiglMjJsYWJlbCUyMiUyQyUyMCUyMmxhYmVscyUyMiklMEF0b2tlbml6ZWRfZGF0YXNldHMuc2V0X2Zvcm1hdCglMjJ0b3JjaCUyMiklMEElMEF0b2tlbml6ZWRfZGF0YXNldHMlNUIlMjJ0cmFpbiUyMiU1RC5jb2x1bW5fbmFtZXM=",highlighted:`tokenized_datasets = tokenized_datasets.remove_columns([<span class="hljs-string">"sentence1"</span>, <span class="hljs-string">"sentence2"</span>, <span class="hljs-string">"idx"</span>]) | |
| tokenized_datasets = tokenized_datasets.rename_column(<span class="hljs-string">"label"</span>, <span class="hljs-string">"labels"</span>) | |
| tokenized_datasets.set_format(<span class="hljs-string">"torch"</span>) | |
| tokenized_datasets[<span class="hljs-string">"train"</span>].column_names`,wrap:!1}}),v=new M({props:{code:"JTVCJTIyYXR0ZW50aW9uX21hc2slMjIlMkMlMjAlMjJpbnB1dF9pZHMlMjIlMkMlMjAlMjJsYWJlbHMlMjIlMkMlMjAlMjJ0b2tlbl90eXBlX2lkcyUyMiU1RA==",highlighted:'[<span class="hljs-string">"attention_mask"</span>, <span class="hljs-string">"input_ids"</span>, <span class="hljs-string">"labels"</span>, <span class="hljs-string">"token_type_ids"</span>]',wrap:!1}}),x=new M({props:{code:"ZnJvbSUyMHRvcmNoLnV0aWxzLmRhdGElMjBpbXBvcnQlMjBEYXRhTG9hZGVyJTBBJTBBdHJhaW5fZGF0YWxvYWRlciUyMCUzRCUyMERhdGFMb2FkZXIoJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVkX2RhdGFzZXRzJTVCJTIydHJhaW4lMjIlNUQlMkMlMjBzaHVmZmxlJTNEVHJ1ZSUyQyUyMGJhdGNoX3NpemUlM0Q4JTJDJTIwY29sbGF0ZV9mbiUzRGRhdGFfY29sbGF0b3IlMEEpJTBBZXZhbF9kYXRhbG9hZGVyJTIwJTNEJTIwRGF0YUxvYWRlciglMEElMjAlMjAlMjAlMjB0b2tlbml6ZWRfZGF0YXNldHMlNUIlMjJ2YWxpZGF0aW9uJTIyJTVEJTJDJTIwYmF0Y2hfc2l6ZSUzRDglMkMlMjBjb2xsYXRlX2ZuJTNEZGF0YV9jb2xsYXRvciUwQSk=",highlighted:`<span class="hljs-keyword">from</span> torch.utils.data <span class="hljs-keyword">import</span> DataLoader | |
| train_dataloader = DataLoader( | |
| tokenized_datasets[<span class="hljs-string">"train"</span>], shuffle=<span class="hljs-literal">True</span>, batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator | |
| ) | |
| eval_dataloader = DataLoader( | |
| tokenized_datasets[<span class="hljs-string">"validation"</span>], batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator | |
| )`,wrap:!1}}),X=new M({props:{code:"Zm9yJTIwYmF0Y2glMjBpbiUyMHRyYWluX2RhdGFsb2FkZXIlM0ElMEElMjAlMjAlMjAlMjBicmVhayUwQSU3QmslM0ElMjB2LnNoYXBlJTIwZm9yJTIwayUyQyUyMHYlMjBpbiUyMGJhdGNoLml0ZW1zKCklN0Q=",highlighted:`<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader: | |
| <span class="hljs-keyword">break</span> | |
| {k: v.shape <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}`,wrap:!1}}),_=new M({props:{code:"JTdCJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY1JTVEKSUyQyUwQSUyMCdpbnB1dF9pZHMnJTNBJTIwdG9yY2guU2l6ZSglNUI4JTJDJTIwNjUlNUQpJTJDJTBBJTIwJ2xhYmVscyclM0ElMjB0b3JjaC5TaXplKCU1QjglNUQpJTJDJTBBJTIwJ3Rva2VuX3R5cGVfaWRzJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY1JTVEKSU3RA==",highlighted:`{<span class="hljs-string">'attention_mask'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]), | |
| <span class="hljs-string">'input_ids'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]), | |
| <span class="hljs-string">'labels'</span>: torch.Size([<span class="hljs-number">8</span>]), | |
| <span class="hljs-string">'token_type_ids'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>])}`,wrap:!1}}),E=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQlMkMlMjBudW1fbGFiZWxzJTNEMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification | |
| model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)`,wrap:!1}}),Y=new M({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqYmF0Y2gpJTBBcHJpbnQob3V0cHV0cy5sb3NzJTJDJTIwb3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:`outputs = model(**batch) | |
| <span class="hljs-built_in">print</span>(outputs.loss, outputs.logits.shape)`,wrap:!1}}),z=new M({props:{code:"dGVuc29yKDAuNTQ0MSUyQyUyMGdyYWRfZm4lM0QlM0NObGxMb3NzQmFja3dhcmQlM0UpJTIwdG9yY2guU2l6ZSglNUI4JTJDJTIwMiU1RCk=",highlighted:'tensor(<span class="hljs-number">0.5441</span>, grad_fn=<NllLossBackward>) torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">2</span>])',wrap:!1}}),F=new M({props:{code:"ZnJvbSUyMHRvcmNoLm9wdGltJTIwaW1wb3J0JTIwQWRhbVclMEElMEFvcHRpbWl6ZXIlMjAlM0QlMjBBZGFtVyhtb2RlbC5wYXJhbWV0ZXJzKCklMkMlMjBsciUzRDVlLTUlMkMlMjB3ZWlnaHRfZGVjYXklM0QwLjAxKQ==",highlighted:`<span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW | |
| optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">5e-5</span>, weight_decay=<span class="hljs-number">0.01</span>)`,wrap:!1}}),H=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMGdldF9zY2hlZHVsZXIlMEElMEFudW1fZXBvY2hzJTIwJTNEJTIwMyUwQW51bV90cmFpbmluZ19zdGVwcyUyMCUzRCUyMG51bV9lcG9jaHMlMjAqJTIwbGVuKHRyYWluX2RhdGFsb2FkZXIpJTBBbHJfc2NoZWR1bGVyJTIwJTNEJTIwZ2V0X3NjaGVkdWxlciglMEElMjAlMjAlMjAlMjAlMjJsaW5lYXIlMjIlMkMlMEElMjAlMjAlMjAlMjBvcHRpbWl6ZXIlM0RvcHRpbWl6ZXIlMkMlMEElMjAlMjAlMjAlMjBudW1fd2FybXVwX3N0ZXBzJTNEMCUyQyUwQSUyMCUyMCUyMCUyMG51bV90cmFpbmluZ19zdGVwcyUzRG51bV90cmFpbmluZ19zdGVwcyUyQyUwQSklMEFwcmludChudW1fdHJhaW5pbmdfc3RlcHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> get_scheduler | |
| num_epochs = <span class="hljs-number">3</span> | |
| num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dataloader) | |
| lr_scheduler = get_scheduler( | |
| <span class="hljs-string">"linear"</span>, | |
| optimizer=optimizer, | |
| num_warmup_steps=<span class="hljs-number">0</span>, | |
| num_training_steps=num_training_steps, | |
| ) | |
| <span class="hljs-built_in">print</span>(num_training_steps)`,wrap:!1}}),S=new M({props:{code:"MTM3Nw==",highlighted:'<span class="hljs-number">1377</span>',wrap:!1}}),L=new M({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFkZXZpY2UlMjAlM0QlMjB0b3JjaC5kZXZpY2UoJTIyY3VkYSUyMiklMjBpZiUyMHRvcmNoLmN1ZGEuaXNfYXZhaWxhYmxlKCklMjBlbHNlJTIwdG9yY2guZGV2aWNlKCUyMmNwdSUyMiklMEFtb2RlbC50byhkZXZpY2UpJTBBcHJpbnQoZGV2aWNlKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| device = torch.device(<span class="hljs-string">"cuda"</span>) <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> torch.device(<span class="hljs-string">"cpu"</span>) | |
| model.to(device) | |
| <span class="hljs-built_in">print</span>(device)`,wrap:!1}}),K=new M({props:{code:"ZGV2aWNlKHR5cGUlM0QnY3VkYScp",highlighted:'device(<span class="hljs-built_in">type</span>=<span class="hljs-string">'cuda'</span>)',wrap:!1}}),D=new b({props:{title:"శిక్షణ లూప్",local:"the-training-loop",headingTag:"h3"}}),P=new M({props:{code:"ZnJvbSUyMHRxZG0uYXV0byUyMGltcG9ydCUyMHRxZG0lMEElMEFwcm9ncmVzc19iYXIlMjAlM0QlMjB0cWRtKHJhbmdlKG51bV90cmFpbmluZ19zdGVwcykpJTBBJTBBbW9kZWwudHJhaW4oKSUwQWZvciUyMGVwb2NoJTIwaW4lMjByYW5nZShudW1fZXBvY2hzKSUzQSUwQSUyMCUyMCUyMCUyMGZvciUyMGJhdGNoJTIwaW4lMjB0cmFpbl9kYXRhbG9hZGVyJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmF0Y2glMjAlM0QlMjAlN0JrJTNBJTIwdi50byhkZXZpY2UpJTIwZm9yJTIwayUyQyUyMHYlMjBpbiUyMGJhdGNoLml0ZW1zKCklN0QlMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3NzJTIwJTNEJTIwb3V0cHV0cy5sb3NzJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9zcy5iYWNrd2FyZCgpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwR3JhZGllbnQlMjBjbGlwcGluZyUyMChvcHRpb25hbCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0b3JjaC5ubi51dGlscy5jbGlwX2dyYWRfbm9ybV8obW9kZWwucGFyYW1ldGVycygpJTJDJTIwbWF4X25vcm0lM0QxLjApJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3B0aW1pemVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxyX3NjaGVkdWxlci5zdGVwKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9ncmVzc19iYXIudXBkYXRlKDEp",highlighted:`<span class="hljs-keyword">from</span> tqdm.auto <span class="hljs-keyword">import</span> tqdm | |
| progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps)) | |
| model.train() | |
| <span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs): | |
| <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader: | |
| batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()} | |
| outputs = model(**batch) | |
| loss = outputs.loss | |
| loss.backward() | |
| <span class="hljs-comment"># Gradient clipping (optional)</span> | |
| torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=<span class="hljs-number">1.0</span>) | |
| optimizer.step() | |
| lr_scheduler.step() | |
| optimizer.zero_grad() | |
| progress_bar.update(<span class="hljs-number">1</span>)`,wrap:!1}}),O=new b({props:{title:"ఎవాల్యుయేషన్ లూప్",local:"the-evaluation-loop",headingTag:"h3"}}),ee=new M({props:{code:"aW1wb3J0JTIwZXZhbHVhdGUlMEElMEFtZXRyaWMlMjAlM0QlMjBldmFsdWF0ZS5sb2FkKCUyMmdsdWUlMjIlMkMlMjAlMjJtcnBjJTIyKSUwQW1vZGVsLmV2YWwoKSUwQSUwQWZvciUyMGJhdGNoJTIwaW4lMjBldmFsX2RhdGFsb2FkZXIlM0ElMEElMjAlMjAlMjAlMjBiYXRjaCUyMCUzRCUyMCU3QmslM0ElMjB2LnRvKGRldmljZSklMjBmb3IlMjBrJTJDJTIwdiUyMGluJTIwYmF0Y2guaXRlbXMoKSU3RCUwQSUyMCUyMCUyMCUyMHdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMEElMjAlMjAlMjAlMjBsb2dpdHMlMjAlM0QlMjBvdXRwdXRzLmxvZ2l0cyUwQSUyMCUyMCUyMCUyMHByZWRpY3Rpb25zJTIwJTNEJTIwdG9yY2guYXJnbWF4KGxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQSUyMCUyMCUyMCUyMG1ldHJpYy5hZGRfYmF0Y2gocHJlZGljdGlvbnMlM0RwcmVkaWN0aW9ucyUyQyUyMHJlZmVyZW5jZXMlM0RiYXRjaCU1QiUyMmxhYmVscyUyMiU1RCklMEElMEFtZXRyaWMuY29tcHV0ZSgp",highlighted:`<span class="hljs-keyword">import</span> evaluate | |
| metric = evaluate.load(<span class="hljs-string">"glue"</span>, <span class="hljs-string">"mrpc"</span>) | |
| model.<span class="hljs-built_in">eval</span>() | |
| <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> eval_dataloader: | |
| batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()} | |
| <span class="hljs-keyword">with</span> torch.no_grad(): | |
| outputs = model(**batch) | |
| logits = outputs.logits | |
| predictions = torch.argmax(logits, dim=-<span class="hljs-number">1</span>) | |
| metric.add_batch(predictions=predictions, references=batch[<span class="hljs-string">"labels"</span>]) | |
| metric.compute()`,wrap:!1}}),le=new M({props:{code:"JTdCJ2FjY3VyYWN5JyUzQSUyMDAuODQzMTM3MjU0OTAxOTYwOCUyQyUyMCdmMSclM0ElMjAwLjg5MDc4NDk4MjkzNTE1MzUlN0Q=",highlighted:'{<span class="hljs-string">'accuracy'</span>: <span class="hljs-number">0.8431372549019608</span>, <span class="hljs-string">'f1'</span>: <span class="hljs-number">0.8907849829351535</span>}',wrap:!1}}),te=new b({props:{title:"🤗 Accelerateతో శిక్షణ లూప్",local:"supercharge-your-training-loop-with-accelerate",headingTag:"h3"}}),se=new nt({props:{id:"s7dy8QRgjJ0"}}),ae=new M({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjB0cmFuc2Zvcm1lcnMlMjBpbXBvcnQlMjBnZXRfc2NoZWR1bGVyJTBBZnJvbSUyMHRvcmNoLm9wdGltJTIwaW1wb3J0JTIwQWRhbVclMEFmcm9tJTIwdHFkbS5hdXRvJTIwaW1wb3J0JTIwdHFkbSUwQSUwQWFjY2VsZXJhdG9yJTIwJTNEJTIwQWNjZWxlcmF0b3IoKSUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCUyQyUyMG51bV9sYWJlbHMlM0QyKSUwQW9wdGltaXplciUyMCUzRCUyMEFkYW1XKG1vZGVsLnBhcmFtZXRlcnMoKSUyQyUyMGxyJTNEM2UtNSklMEElMEF0cmFpbl9kbCUyQyUyMGV2YWxfZGwlMkMlMjBtb2RlbCUyQyUyMG9wdGltaXplciUyMCUzRCUyMGFjY2VsZXJhdG9yLnByZXBhcmUoJTBBJTIwJTIwJTIwJTIwdHJhaW5fZGF0YWxvYWRlciUyQyUyMGV2YWxfZGF0YWxvYWRlciUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyJTBBKSUwQSUwQW51bV9lcG9jaHMlMjAlM0QlMjAzJTBBbnVtX3RyYWluaW5nX3N0ZXBzJTIwJTNEJTIwbnVtX2Vwb2NocyUyMColMjBsZW4odHJhaW5fZGwpJTBBbHJfc2NoZWR1bGVyJTIwJTNEJTIwZ2V0X3NjaGVkdWxlciglMEElMjAlMjAlMjAlMjAlMjJsaW5lYXIlMjIlMkMlMEElMjAlMjAlMjAlMjBvcHRpbWl6ZXIlM0RvcHRpbWl6ZXIlMkMlMEElMjAlMjAlMjAlMjBudW1fd2FybXVwX3N0ZXBzJTNEMCUyQyUwQSUyMCUyMCUyMCUyMG51bV90cmFpbmluZ19zdGVwcyUzRG51bV90cmFpbmluZ19zdGVwcyUyQyUwQSklMEElMEFwcm9ncmVzc19iYXIlMjAlM0QlMjB0cWRtKCUwQSUyMCUyMCUyMCUyMHJhbmdlKG51bV90cmFpbmluZ19zdGVwcyklMkMlMjBkaXNhYmxlJTNEbm90JTIwYWNjZWxlcmF0b3IuaXNfbG9jYWxfbWFpbl9wcm9jZXNzJTBBKSUwQSUwQW1vZGVsLnRyYWluKCklMEFmb3IlMjBlcG9jaCUyMGluJTIwcmFuZ2UobnVtX2Vwb2NocyklM0ElMEElMjAlMjAlMjAlMjBmb3IlMjBiYXRjaCUyMGluJTIwdHJhaW5fZGwlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKipiYXRjaCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3NzJTIwJTNEJTIwb3V0cHV0cy5sb3NzJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYWNjZWxlcmF0b3IuYmFja3dhcmQobG9zcyklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcHRpbWl6ZXIuc3RlcCgpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbHJfc2NoZWR1bGVyLnN0ZXAoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9wdGltaXplci56ZXJvX2dyYWQoKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByb2dyZXNzX2Jhci51cGRhdGUoMSk=",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> get_scheduler | |
| <span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW | |
| <span class="hljs-keyword">from</span> tqdm.auto <span class="hljs-keyword">import</span> tqdm | |
| accelerator = Accelerator() | |
| model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>) | |
| optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">3e-5</span>) | |
| train_dl, eval_dl, model, optimizer = accelerator.prepare( | |
| train_dataloader, eval_dataloader, model, optimizer | |
| ) | |
| num_epochs = <span class="hljs-number">3</span> | |
| num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dl) | |
| lr_scheduler = get_scheduler( | |
| <span class="hljs-string">"linear"</span>, | |
| optimizer=optimizer, | |
| num_warmup_steps=<span class="hljs-number">0</span>, | |
| num_training_steps=num_training_steps, | |
| ) | |
| progress_bar = tqdm( | |
| <span class="hljs-built_in">range</span>(num_training_steps), disable=<span class="hljs-keyword">not</span> accelerator.is_local_main_process | |
| ) | |
| model.train() | |
| <span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs): | |
| <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dl: | |
| outputs = model(**batch) | |
| loss = outputs.loss | |
| accelerator.backward(loss) | |
| optimizer.step() | |
| lr_scheduler.step() | |
| optimizer.zero_grad() | |
| progress_bar.update(<span class="hljs-number">1</span>)`,wrap:!1}}),re=new M({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUwQWFjY2VsZXJhdGUlMjBsYXVuY2glMjB0cmFpbi5weQ==",highlighted:`accelerate config | |
| accelerate launch train.py`,wrap:!1}}),pe=new M({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBub3RlYm9va19sYXVuY2hlciUwQSUwQW5vdGVib29rX2xhdW5jaGVyKHRyYWluaW5nX2Z1bmN0aW9uKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> notebook_launcher | |
| notebook_launcher(training_function)`,wrap:!1}}),me=new b({props:{title:"మరిన్ని బెస్ట్ ప్రాక్టీస్స్",local:"next-steps-and-best-practices",headingTag:"h3"}}),ce=new b({props:{title:"సెక్షన్ క్విజ్",local:"section-quiz",headingTag:"h3"}}),Me=new b({props:{title:"1. Adam మరియు AdamW మధ్య ప్రధాన తేడా ఏమిటి?",local:"1-adam-మరయ-adamw-మధయ-పరధన-తడ-ఏమట",headingTag:"h3"}}),de=new Ge({props:{choices:[{text:"AdamW వేరే learning rate schedule వాడుతుంది.",explain:"Learning rate scheduling optimizer నుండి వేరు."},{text:"AdamW decoupled weight decay regularization వాడుతుంది.",explain:"Correct! Weight decay gradient updates నుండి వేరు.",correct:!0},{text:"AdamW transformer modelsకి మాత్రమే ఉపయోగపడుతుంది.",explain:"ఏ మోడల్ కి అయినా ఉపయోగించవచ్చు."},{text:"AdamW memory తక్కువగా వాడుతుంది.",explain:"Memory requirement ఇరువురికీ తుల్యం."}]}}),ue=new b({props:{title:"2. Training loop లో operations సరైన క్రమం ఏమిటి?",local:"2-training-loop-ల-operations-సరన-కరమ-ఏమట",headingTag:"h3"}}),ye=new Ge({props:{choices:[{text:"Forward → Backward → Optimizer step → Zero gradients",explain:"Zero gradients తర్వాత forward లోపు ఉండాలి."},{text:"Forward → Backward → Optimizer step → Scheduler step → Zero gradients",explain:"Correct! ఇది proper order.",correct:!0},{text:"Zero gradients → Forward → Optimizer step → Backward",explain:"Backward forward తర్వాత వుంటుంది."},{text:"Forward → Zero gradients → Backward → Optimizer step",explain:"Zeroing gradients తప్పు స్థానంలో."}]}}),be=new b({props:{title:"3. 🤗 Accelerate library ప్రధాన ఉపయోగం ఏమిటి?",local:"3--accelerate-library-పరధన-ఉపయగ-ఏమట",headingTag:"h3"}}),we=new Ge({props:{choices:[{text:"Forward pass optimize చేస్తుంది.",explain:"Accelerate model architecture optimize చేయదు."},{text:"Hyperparameters select చేస్తుంది.",explain:"Hyperparameter optimization Accelerate చేయదు."},{text:"Multiple GPUs/TPUs distributed training enable చేస్తుంది.",explain:"Correct! Minimal code changes తో distributed training.",correct:!0},{text:"Models different frameworksకి convert చేస్తుంది.",explain:"Accelerate PyTorch లో పని చేస్తుంది."}]}}),je=new b({props:{title:"4. Training loop లో batches deviceకి ఎందుకు తరలిస్తారు?",local:"4-training-loop-ల-batches-deviceక-ఎదక-తరలసతర",headingTag:"h3"}}),fe=new Ge({props:{choices:[{text:"Training వేగంగా చేయడానికి.",explain:"Speed effect కానీ main reason కాదు."},{text:"Model మరియు data ఒకే device లో ఉండాలి.",explain:"Correct! PyTorch requires same device.",correct:!0},{text:"Memory save కోసం.",explain:"Device movement memory save కాదు."},{text:"DataLoader కోసం required.",explain:"DataLoader specific device require కాదు."}]}}),$e=new b({props:{title:"5. Evaluation ముందు model.eval() ఏమి చేస్తుంది?",local:"5-evaluation-మద-modeleval-ఏమ-చసతద",headingTag:"h3"}}),he=new Ge({props:{choices:[{text:"Parameters freeze చేస్తుంది.",explain:"Freeze requires requires_grad=False."},{text:"Dropout మరియు BatchNorm inferenceకి మారుస్తుంది.",explain:"Correct! eval mode disables dropout and uses running stats.",correct:!0},{text:"Gradient computation enable చేస్తుంది.",explain:"Gradient evaluation torch.no_grad() తో disabled."},{text:"Metrics automatically calculate చేస్తుంది.",explain:"Metrics calculate manually చేయాలి."}]}}),ge=new b({props:{title:"6. Evaluation లో torch.no_grad() ఉపయోగం ఏమిటి?",local:"6-evaluation-ల-torchnograd-ఉపయగ-ఏమట",headingTag:"h3"}}),Je=new Ge({props:{choices:[{text:"Model predictions block చేస్తుంది.",explain:"Predictions block కాదు."},{text:"Gradient tracking disable చేసి memory, speed optimize చేస్తుంది.",explain:"Correct! Gradient computation disable అవుతుంది.",correct:!0},{text:"Evaluation mode enable చేస్తుంది.",explain:"Evaluation mode model.eval() ద్వారా."},{text:"Results consistent across runs.",explain:"Reproducibility random seeds తో achieve అవుతుంది."}]}}),Te=new b({props:{title:"7. 🤗 Accelerate వాడితే training loop లో ఏమి మారుతుంది?",local:"7--accelerate-వడత-training-loop-ల-ఏమ-మరతద",headingTag:"h3"}}),Ue=new Ge({props:{choices:[{text:"Entire loop rewrite చేయాలి.",explain:"Minimal changes suffice."},{text:"Key objects accelerator.prepare() తో wrap చేసి accelerator.backward() వాడాలి.",explain:"Correct! Main changes.",correct:!0},{text:"Number of GPUs specify చేయాలి.",explain:"Accelerate hardware auto detect చేస్తుంది."},{text:"Optimizer, scheduler మార్చాలి.",explain:"Same optimizers & schedulers వాడవచ్చు."}]}}),ke=new dt({props:{source:"https://github.com/huggingface/course/blob/main/chapters/te/chapter3/4.mdx"}}),{c(){w=d("meta"),Ze=a(),j=d("p"),Ce=a(),r(f.$$.fragment),ve=a(),r(J.$$.fragment),Be=a(),r(T.$$.fragment),xe=a(),r(U.$$.fragment),Re=a(),r(k.$$.fragment),Xe=a(),G=d("p"),G.innerHTML=zl,_e=a(),$=d("blockquote"),$.innerHTML=Nl,Ae=a(),r(Z.$$.fragment),Ee=a(),r(C.$$.fragment),Ve=a(),I=d("p"),I.innerHTML=Fl,Ye=a(),r(W.$$.fragment),ze=a(),r(v.$$.fragment),Ne=a(),B=d("p"),B.textContent=Ql,Fe=a(),r(x.$$.fragment),Qe=a(),R=d("p"),R.textContent=Hl,He=a(),r(X.$$.fragment),Se=a(),r(_.$$.fragment),qe=a(),A=d("p"),A.textContent=Sl,Le=a(),r(E.$$.fragment),Ke=a(),V=d("p"),V.textContent=ql,De=a(),r(Y.$$.fragment),Pe=a(),r(z.$$.fragment),Oe=a(),N=d("p"),N.textContent=Ll,el=a(),r(F.$$.fragment),ll=a(),Q=d("p"),Q.textContent=Kl,tl=a(),r(H.$$.fragment),sl=a(),r(S.$$.fragment),al=a(),q=d("p"),q.textContent=Dl,nl=a(),r(L.$$.fragment),rl=a(),r(K.$$.fragment),il=a(),r(D.$$.fragment),pl=a(),r(P.$$.fragment),ml=a(),h=d("blockquote"),h.innerHTML=Pl,ol=a(),r(O.$$.fragment),cl=a(),r(ee.$$.fragment),Ml=a(),r(le.$$.fragment),dl=a(),r(te.$$.fragment),ul=a(),r(se.$$.fragment),yl=a(),r(ae.$$.fragment),bl=a(),ne=d("p"),ne.innerHTML=Ol,wl=a(),r(re.$$.fragment),jl=a(),ie=d("p"),ie.textContent=et,fl=a(),r(pe.$$.fragment),$l=a(),r(me.$$.fragment),hl=a(),oe=d("ul"),oe.innerHTML=lt,gl=a(),r(ce.$$.fragment),Jl=a(),r(Me.$$.fragment),Tl=a(),r(de.$$.fragment),Ul=a(),r(ue.$$.fragment),kl=a(),r(ye.$$.fragment),Gl=a(),r(be.$$.fragment),Zl=a(),r(we.$$.fragment),Cl=a(),r(je.$$.fragment),Il=a(),r(fe.$$.fragment),Wl=a(),r($e.$$.fragment),vl=a(),r(he.$$.fragment),Bl=a(),r(ge.$$.fragment),xl=a(),r(Je.$$.fragment),Rl=a(),r(Te.$$.fragment),Xl=a(),r(Ue.$$.fragment),_l=a(),g=d("blockquote"),g.innerHTML=tt,Al=a(),r(ke.$$.fragment),El=a(),Ie=d("p"),this.h()},l(e){const l=ot("svelte-u9bgzb",document.head);w=u(l,"META",{name:!0,content:!0}),l.forEach(t),Ze=n(e),j=u(e,"P",{}),at(j).forEach(t),Ce=n(e),i(f.$$.fragment,e),ve=n(e),i(J.$$.fragment,e),Be=n(e),i(T.$$.fragment,e),xe=n(e),i(U.$$.fragment,e),Re=n(e),i(k.$$.fragment,e),Xe=n(e),G=u(e,"P",{"data-svelte-h":!0}),y(G)!=="svelte-a8hjq0"&&(G.innerHTML=zl),_e=n(e),$=u(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),y($)!=="svelte-1r90229"&&($.innerHTML=Nl),Ae=n(e),i(Z.$$.fragment,e),Ee=n(e),i(C.$$.fragment,e),Ve=n(e),I=u(e,"P",{"data-svelte-h":!0}),y(I)!=="svelte-1xpqmvh"&&(I.innerHTML=Fl),Ye=n(e),i(W.$$.fragment,e),ze=n(e),i(v.$$.fragment,e),Ne=n(e),B=u(e,"P",{"data-svelte-h":!0}),y(B)!=="svelte-rnse6q"&&(B.textContent=Ql),Fe=n(e),i(x.$$.fragment,e),Qe=n(e),R=u(e,"P",{"data-svelte-h":!0}),y(R)!=="svelte-1en9xq3"&&(R.textContent=Hl),He=n(e),i(X.$$.fragment,e),Se=n(e),i(_.$$.fragment,e),qe=n(e),A=u(e,"P",{"data-svelte-h":!0}),y(A)!=="svelte-1qaha0h"&&(A.textContent=Sl),Le=n(e),i(E.$$.fragment,e),Ke=n(e),V=u(e,"P",{"data-svelte-h":!0}),y(V)!=="svelte-1d1bshw"&&(V.textContent=ql),De=n(e),i(Y.$$.fragment,e),Pe=n(e),i(z.$$.fragment,e),Oe=n(e),N=u(e,"P",{"data-svelte-h":!0}),y(N)!=="svelte-pmzxw"&&(N.textContent=Ll),el=n(e),i(F.$$.fragment,e),ll=n(e),Q=u(e,"P",{"data-svelte-h":!0}),y(Q)!=="svelte-d6uz9c"&&(Q.textContent=Kl),tl=n(e),i(H.$$.fragment,e),sl=n(e),i(S.$$.fragment,e),al=n(e),q=u(e,"P",{"data-svelte-h":!0}),y(q)!=="svelte-nsndug"&&(q.textContent=Dl),nl=n(e),i(L.$$.fragment,e),rl=n(e),i(K.$$.fragment,e),il=n(e),i(D.$$.fragment,e),pl=n(e),i(P.$$.fragment,e),ml=n(e),h=u(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),y(h)!=="svelte-143w2ch"&&(h.innerHTML=Pl),ol=n(e),i(O.$$.fragment,e),cl=n(e),i(ee.$$.fragment,e),Ml=n(e),i(le.$$.fragment,e),dl=n(e),i(te.$$.fragment,e),ul=n(e),i(se.$$.fragment,e),yl=n(e),i(ae.$$.fragment,e),bl=n(e),ne=u(e,"P",{"data-svelte-h":!0}),y(ne)!=="svelte-uc0rby"&&(ne.innerHTML=Ol),wl=n(e),i(re.$$.fragment,e),jl=n(e),ie=u(e,"P",{"data-svelte-h":!0}),y(ie)!=="svelte-2jv29m"&&(ie.textContent=et),fl=n(e),i(pe.$$.fragment,e),$l=n(e),i(me.$$.fragment,e),hl=n(e),oe=u(e,"UL",{"data-svelte-h":!0}),y(oe)!=="svelte-10iavr1"&&(oe.innerHTML=lt),gl=n(e),i(ce.$$.fragment,e),Jl=n(e),i(Me.$$.fragment,e),Tl=n(e),i(de.$$.fragment,e),Ul=n(e),i(ue.$$.fragment,e),kl=n(e),i(ye.$$.fragment,e),Gl=n(e),i(be.$$.fragment,e),Zl=n(e),i(we.$$.fragment,e),Cl=n(e),i(je.$$.fragment,e),Il=n(e),i(fe.$$.fragment,e),Wl=n(e),i($e.$$.fragment,e),vl=n(e),i(he.$$.fragment,e),Bl=n(e),i(ge.$$.fragment,e),xl=n(e),i(Je.$$.fragment,e),Rl=n(e),i(Te.$$.fragment,e),Xl=n(e),i(Ue.$$.fragment,e),_l=n(e),g=u(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),y(g)!=="svelte-1p6o6f7"&&(g.innerHTML=tt),Al=n(e),i(ke.$$.fragment,e),El=n(e),Ie=u(e,"P",{}),at(Ie).forEach(t),this.h()},h(){We(w,"name","hf:doc:metadata"),We(w,"content",wt),We($,"class","tip"),We(h,"class","tip"),We(g,"class","tip")},m(e,l){ct(document.head,w),s(e,Ze,l),s(e,j,l),s(e,Ce,l),p(f,e,l),s(e,ve,l),p(J,e,l),s(e,Be,l),p(T,e,l),s(e,xe,l),p(U,e,l),s(e,Re,l),p(k,e,l),s(e,Xe,l),s(e,G,l),s(e,_e,l),s(e,$,l),s(e,Ae,l),p(Z,e,l),s(e,Ee,l),p(C,e,l),s(e,Ve,l),s(e,I,l),s(e,Ye,l),p(W,e,l),s(e,ze,l),p(v,e,l),s(e,Ne,l),s(e,B,l),s(e,Fe,l),p(x,e,l),s(e,Qe,l),s(e,R,l),s(e,He,l),p(X,e,l),s(e,Se,l),p(_,e,l),s(e,qe,l),s(e,A,l),s(e,Le,l),p(E,e,l),s(e,Ke,l),s(e,V,l),s(e,De,l),p(Y,e,l),s(e,Pe,l),p(z,e,l),s(e,Oe,l),s(e,N,l),s(e,el,l),p(F,e,l),s(e,ll,l),s(e,Q,l),s(e,tl,l),p(H,e,l),s(e,sl,l),p(S,e,l),s(e,al,l),s(e,q,l),s(e,nl,l),p(L,e,l),s(e,rl,l),p(K,e,l),s(e,il,l),p(D,e,l),s(e,pl,l),p(P,e,l),s(e,ml,l),s(e,h,l),s(e,ol,l),p(O,e,l),s(e,cl,l),p(ee,e,l),s(e,Ml,l),p(le,e,l),s(e,dl,l),p(te,e,l),s(e,ul,l),p(se,e,l),s(e,yl,l),p(ae,e,l),s(e,bl,l),s(e,ne,l),s(e,wl,l),p(re,e,l),s(e,jl,l),s(e,ie,l),s(e,fl,l),p(pe,e,l),s(e,$l,l),p(me,e,l),s(e,hl,l),s(e,oe,l),s(e,gl,l),p(ce,e,l),s(e,Jl,l),p(Me,e,l),s(e,Tl,l),p(de,e,l),s(e,Ul,l),p(ue,e,l),s(e,kl,l),p(ye,e,l),s(e,Gl,l),p(be,e,l),s(e,Zl,l),p(we,e,l),s(e,Cl,l),p(je,e,l),s(e,Il,l),p(fe,e,l),s(e,Wl,l),p($e,e,l),s(e,vl,l),p(he,e,l),s(e,Bl,l),p(ge,e,l),s(e,xl,l),p(Je,e,l),s(e,Rl,l),p(Te,e,l),s(e,Xl,l),p(Ue,e,l),s(e,_l,l),s(e,g,l),s(e,Al,l),p(ke,e,l),s(e,El,l),s(e,Ie,l),Vl=!0},p(e,[l]){const st={};l&1&&(st.fw=e[0]),f.$set(st)},i(e){Vl||(m(f.$$.fragment,e),m(J.$$.fragment,e),m(T.$$.fragment,e),m(U.$$.fragment,e),m(k.$$.fragment,e),m(Z.$$.fragment,e),m(C.$$.fragment,e),m(W.$$.fragment,e),m(v.$$.fragment,e),m(x.$$.fragment,e),m(X.$$.fragment,e),m(_.$$.fragment,e),m(E.$$.fragment,e),m(Y.$$.fragment,e),m(z.$$.fragment,e),m(F.$$.fragment,e),m(H.$$.fragment,e),m(S.$$.fragment,e),m(L.$$.fragment,e),m(K.$$.fragment,e),m(D.$$.fragment,e),m(P.$$.fragment,e),m(O.$$.fragment,e),m(ee.$$.fragment,e),m(le.$$.fragment,e),m(te.$$.fragment,e),m(se.$$.fragment,e),m(ae.$$.fragment,e),m(re.$$.fragment,e),m(pe.$$.fragment,e),m(me.$$.fragment,e),m(ce.$$.fragment,e),m(Me.$$.fragment,e),m(de.$$.fragment,e),m(ue.$$.fragment,e),m(ye.$$.fragment,e),m(be.$$.fragment,e),m(we.$$.fragment,e),m(je.$$.fragment,e),m(fe.$$.fragment,e),m($e.$$.fragment,e),m(he.$$.fragment,e),m(ge.$$.fragment,e),m(Je.$$.fragment,e),m(Te.$$.fragment,e),m(Ue.$$.fragment,e),m(ke.$$.fragment,e),Vl=!0)},o(e){o(f.$$.fragment,e),o(J.$$.fragment,e),o(T.$$.fragment,e),o(U.$$.fragment,e),o(k.$$.fragment,e),o(Z.$$.fragment,e),o(C.$$.fragment,e),o(W.$$.fragment,e),o(v.$$.fragment,e),o(x.$$.fragment,e),o(X.$$.fragment,e),o(_.$$.fragment,e),o(E.$$.fragment,e),o(Y.$$.fragment,e),o(z.$$.fragment,e),o(F.$$.fragment,e),o(H.$$.fragment,e),o(S.$$.fragment,e),o(L.$$.fragment,e),o(K.$$.fragment,e),o(D.$$.fragment,e),o(P.$$.fragment,e),o(O.$$.fragment,e),o(ee.$$.fragment,e),o(le.$$.fragment,e),o(te.$$.fragment,e),o(se.$$.fragment,e),o(ae.$$.fragment,e),o(re.$$.fragment,e),o(pe.$$.fragment,e),o(me.$$.fragment,e),o(ce.$$.fragment,e),o(Me.$$.fragment,e),o(de.$$.fragment,e),o(ue.$$.fragment,e),o(ye.$$.fragment,e),o(be.$$.fragment,e),o(we.$$.fragment,e),o(je.$$.fragment,e),o(fe.$$.fragment,e),o($e.$$.fragment,e),o(he.$$.fragment,e),o(ge.$$.fragment,e),o(Je.$$.fragment,e),o(Te.$$.fragment,e),o(Ue.$$.fragment,e),o(ke.$$.fragment,e),Vl=!1},d(e){e&&(t(Ze),t(j),t(Ce),t(ve),t(Be),t(xe),t(Re),t(Xe),t(G),t(_e),t($),t(Ae),t(Ee),t(Ve),t(I),t(Ye),t(ze),t(Ne),t(B),t(Fe),t(Qe),t(R),t(He),t(Se),t(qe),t(A),t(Le),t(Ke),t(V),t(De),t(Pe),t(Oe),t(N),t(el),t(ll),t(Q),t(tl),t(sl),t(al),t(q),t(nl),t(rl),t(il),t(pl),t(ml),t(h),t(ol),t(cl),t(Ml),t(dl),t(ul),t(yl),t(bl),t(ne),t(wl),t(jl),t(ie),t(fl),t($l),t(hl),t(oe),t(gl),t(Jl),t(Tl),t(Ul),t(kl),t(Gl),t(Zl),t(Cl),t(Il),t(Wl),t(vl),t(Bl),t(xl),t(Rl),t(Xl),t(_l),t(g),t(Al),t(El),t(Ie)),t(w),c(f,e),c(J,e),c(T,e),c(U,e),c(k,e),c(Z,e),c(C,e),c(W,e),c(v,e),c(x,e),c(X,e),c(_,e),c(E,e),c(Y,e),c(z,e),c(F,e),c(H,e),c(S,e),c(L,e),c(K,e),c(D,e),c(P,e),c(O,e),c(ee,e),c(le,e),c(te,e),c(se,e),c(ae,e),c(re,e),c(pe,e),c(me,e),c(ce,e),c(Me,e),c(de,e),c(ue,e),c(ye,e),c(be,e),c(we,e),c(je,e),c(fe,e),c($e,e),c(he,e),c(ge,e),c(Je,e),c(Te,e),c(Ue,e),c(ke,e)}}}const wt='{"title":"పూర్తి శిక్షణ లూప్","local":"a-full-training","sections":[{"title":"శిక్షణకు సిద్ధం చేయడం","local":"prepare-for-training","sections":[],"depth":3},{"title":"శిక్షణ లూప్","local":"the-training-loop","sections":[],"depth":3},{"title":"ఎవాల్యుయేషన్ లూప్","local":"the-evaluation-loop","sections":[],"depth":3},{"title":"🤗 Accelerateతో శిక్షణ లూప్","local":"supercharge-your-training-loop-with-accelerate","sections":[],"depth":3},{"title":"మరిన్ని బెస్ట్ ప్రాక్టీస్స్","local":"next-steps-and-best-practices","sections":[],"depth":3},{"title":"సెక్షన్ క్విజ్","local":"section-quiz","sections":[],"depth":3},{"title":"1. Adam మరియు AdamW మధ్య ప్రధాన తేడా ఏమిటి?","local":"1-adam-మరయ-adamw-మధయ-పరధన-తడ-ఏమట","sections":[],"depth":3},{"title":"2. Training loop లో operations సరైన క్రమం ఏమిటి?","local":"2-training-loop-ల-operations-సరన-కరమ-ఏమట","sections":[],"depth":3},{"title":"3. 🤗 Accelerate library ప్రధాన ఉపయోగం ఏమిటి?","local":"3--accelerate-library-పరధన-ఉపయగ-ఏమట","sections":[],"depth":3},{"title":"4. Training loop లో batches deviceకి ఎందుకు తరలిస్తారు?","local":"4-training-loop-ల-batches-deviceక-ఎదక-తరలసతర","sections":[],"depth":3},{"title":"5. Evaluation ముందు model.eval() ఏమి చేస్తుంది?","local":"5-evaluation-మద-modeleval-ఏమ-చసతద","sections":[],"depth":3},{"title":"6. Evaluation లో torch.no_grad() ఉపయోగం ఏమిటి?","local":"6-evaluation-ల-torchnograd-ఉపయగ-ఏమట","sections":[],"depth":3},{"title":"7. 🤗 Accelerate వాడితే training loop లో ఏమి మారుతుంది?","local":"7--accelerate-వడత-training-loop-ల-ఏమ-మరతద","sections":[],"depth":3}],"depth":1}';function jt(Yl,w,Ze){let j="pt";return it(()=>{const Ce=new URLSearchParams(window.location.search);Ze(0,j=Ce.get("fw")||"pt")}),[j]}class Gt extends pt{constructor(w){super(),mt(this,w,jt,bt,rt,{})}}export{Gt as component}; | |
Xet Storage Details
- Size:
- 40.8 kB
- Xet hash:
- 8dceccd9014d6a70642be65a8e37b0c73f0c54ba1ab67a792be19516b5a04868
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.