Buckets:
| import{s as ce,n as Je,o as Te}from"../chunks/scheduler.7b731bd4.js";import{S as ue,i as je,e as i,s as n,c as r,h as we,a as p,d as s,b as a,f as ye,g as o,j as c,k as Ue,l as fe,m as e,n as M,t as m,o as y,p as U}from"../chunks/index.cc268345.js";import{C as he,H as J,E as de}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.f0d99f98.js";import{C as T}from"../chunks/CodeBlock.169a125f.js";function Ce(bs){let u,zl,Hl,Ll,j,Dl,w,Pl,f,Is="RapidFire AI is an open-source experiment execution framework that enables concurrent training of multiple TRL configurations on the same GPU(s) through intelligent chunk-based scheduling.",Ol,h,Kl,d,$s="<li><strong>16-24× higher experimentation throughput</strong> compared to sequential training.</li> <li><strong>Almost no code changes</strong> - drop-in configuration wrappers around TRL’s and PEFT’s existing configs.</li> <li><strong>Interactive Control Operations</strong> - real-time control to stop, resume, clone, and modify training runs in flight</li> <li><strong>Automatic multi-GPU orchestration</strong> with intelligent scheduling</li> <li><strong>Full compatibility</strong> with transformers, PEFT, SFTTrainer, DPOTrainer, and GRPOTrainer</li> <li><strong>Full MLflow Integration</strong>: Automatic experiment tracking and visualization</li> <li><strong>Production-Ready</strong>: Already used in production environments with complete working examples.</li>",lt,C,tt,g,Zs="When fine-tuning or post-training with TRL, AI developers often need to:",st,b,Rs="<li>Try different hyperparameter configurations</li> <li>Compare different LoRA settings</li> <li>Test different prompt schemes</li> <li>Run ablation studies</li>",et,I,Bs="<strong>Current approach</strong>: Train each config one after another → slow and inefficient process",nt,$,Gs="<strong>With RapidFire AI</strong>: Train all configs in one go even on a single GPU → 16-24× faster process",at,Z,it,R,ks="RapidFire AI employs <strong>adaptive chunk-based scheduling</strong>:",pt,B,rt,G,As="This enables:",ot,k,Qs="<li>Early comparison of configurations on same data subsets incrementally</li> <li>Efficient GPU utilization and minimizing idle times</li> <li>Real-time and automated experiment metrics tracking</li> <li>Dynamic control over runs in flight to incentivize more experimentation</li>",Mt,A,mt,Q,yt,F,Fs="<li>Python 3.12.x</li> <li>NVIDIA GPU with Compute Capability 7.x or 8.x</li> <li>CUDA Toolkit 11.8+</li> <li>PyTorch 2.7.1+</li>",Ut,v,ct,N,Jt,W,vs="Once installed, authenticate with Hugging Face and initialize RapidFire AI:",Tt,V,ut,E,Ns="The dashboard will be available at <code>http://0.0.0.0:3000</code> where you can monitor and control experiments in real-time.",jt,_,wt,X,Ws="Here’s a complete example showing how to train multiple SFT configurations concurrently:",ft,x,ht,S,dt,q,Vs="When you run this example:",Ct,H,Es="<li><strong>Config Expansion</strong>: 2 base configurations × 2 PEFT configs = 4 total training runs</li> <li><strong>Chunk-based Scheduling</strong>: Training data is divided into chunks, and all 4 configs train concurrently</li> <li><strong>GPU Swapping</strong>: Models are swapped in/out of GPU memory based on chunk boundaries</li> <li><strong>Real-time Tracking</strong>: All metrics visible in the dashboard at <code>http://localhost:3000</code></li> <li><strong>Interactive Control</strong>: Stop, resume, or clone any configuration from the dashboard</li>",gt,Y,_s="This delivers <strong>16-24× higher throughput</strong> compared to training each configuration sequentially!",bt,z,It,L,$t,D,Xs="Use <code>RFSFTConfig</code> as a drop-in replacement for <code>SFTConfig</code>:",Zt,P,Rt,O,xs='<strong>Example Notebook</strong>: <a href="https://github.com/RapidFireAI/rapidfireai/blob/main/tutorial_notebooks/rf-tutorial-sft-chatqa-lite.ipynb" rel="nofollow">SFT for Customer Support</a>',Bt,K,Gt,ll,Ss="Use <code>RFDPOConfig</code> as a drop-in replacement for <code>DPOConfig</code>:",kt,tl,At,sl,qs='<strong>Example Notebook</strong>: <a href="https://github.com/RapidFireAI/rapidfireai/blob/main/tutorial_notebooks/rf-tutorial-dpo-alignment-lite.ipynb" rel="nofollow">DPO for Preference Alignment</a>',Qt,el,Ft,nl,Hs="Use <code>RFGRPOConfig</code> as a drop-in replacement for <code>GRPOConfig</code>:",vt,al,Nt,il,Ys='<strong>Example Notebook</strong>: <a href="https://github.com/RapidFireAI/rapidfireai/blob/main/tutorial_notebooks/rf-tutorial-grpo-mathreasoning-lite.ipynb" rel="nofollow">GRPO for Math Reasoning</a>',Wt,pl,Vt,rl,Et,ol,zs="RapidFire AI divides training data into chunks and alternates between configurations:",_t,Ml,Xt,ml,Ls="This approach maximizes GPU utilization and enables early comparison of configurations while maintaining training stability through automatic checkpointing.",xt,yl,St,Ul,Ds="Through the RapidFire AI dashboard, you can dynamically control running experiments:",qt,cl,Ps="<li><strong>Stop</strong>: Pause a configuration (checkpointed automatically)</li> <li><strong>Resume</strong>: Continue from last checkpoint</li> <li><strong>Clone</strong>: Duplicate a configuration with modifications</li> <li><strong>Clone & Warm Start</strong>: Clone and initialize from parent’s weights</li> <li><strong>Delete</strong>: Remove failed or unwanted runs</li>",Ht,Jl,Os="This enables adaptive experimentation where you can stop underperforming configs early and clone promising ones with tweaked hyperparameters.",Yt,Tl,zt,ul,Ks="Use <code>RFGridSearch</code> or <code>RFRandomSearch</code> to automatically generate configuration combinations:",Lt,jl,Dt,wl,Pt,fl,Ot,hl,le="Full support for parameter-efficient fine-tuning:",Kt,dl,ls,Cl,ts,gl,te="Define multiple reward functions for GRPO training:",ss,bl,es,Il,ns,$l,se="RapidFire AI automatically detects and utilizes all available GPUs. No special configuration needed - the scheduler automatically distributes configurations across GPUs.",as,Zl,is,Rl,ps,Bl,ee="The <code>num_chunks</code> parameter controls swap frequency:",rs,Gl,os,kl,ne="<strong>Rule of thumb</strong>: Start with <code>num_chunks=4</code> and adjust based on dataset size and number of configurations.",Ms,Al,ms,Ql,ae="For large models, use quantization:",ys,Fl,Us,vl,cs,Nl,ie="Based on internal benchmarks comparing sequential vs. RapidFire AI concurrent training:",Js,Wl,pe="<thead><tr><th>Scenario</th> <th>Sequential Time</th> <th>RapidFire AI Time</th> <th>Speedup</th></tr></thead> <tbody><tr><td>4 configs, 1 GPU</td> <td>120 min</td> <td>7.5 min</td> <td>16×</td></tr> <tr><td>8 configs, 1 GPU</td> <td>240 min</td> <td>12 min</td> <td>20×</td></tr> <tr><td>4 configs, 2 GPUs</td> <td>60 min</td> <td>4 min</td> <td>15×</td></tr> <tr><td>8 configs, 4 GPUs</td> <td>60 min</td> <td>3 min</td> <td>20×</td></tr></tbody>",Ts,Vl,re="<em>Benchmarks performed on NVIDIA A100 40GB with TinyLlama-1.1B and Llama-3.2-1B models</em>",us,El,js,_l,oe='For troubleshooting guidance, see the <a href="https://oss-docs.rapidfire.ai/en/latest/troubleshooting.html" rel="nofollow">RapidFire AI Troubleshooting Guide</a>.',ws,Xl,fs,xl,Me='<li><strong>Colab Notebook</strong>: <a href="http://tinyurl.com/rapidfireai-colab" rel="nofollow">RapidFire AI in Google Colab</a></li> <li><strong>Documentation</strong>: <a href="https://oss-docs.rapidfire.ai" rel="nofollow">oss-docs.rapidfire.ai</a></li> <li><strong>GitHub</strong>: <a href="https://github.com/RapidFireAI/rapidfireai" rel="nofollow">RapidFireAI/rapidfireai</a></li> <li><strong>PyPI</strong>: <a href="https://pypi.org/project/rapidfireai/" rel="nofollow">pypi.org/project/rapidfireai</a></li> <li><strong>Discord</strong>: <a href="https://discord.gg/6vSTtncKNN" rel="nofollow">Join our Discord</a></li> <li><strong>Tutorial Notebooks</strong>: <a href="https://github.com/RapidFireAI/rapidfireai/tree/main/tutorial_notebooks" rel="nofollow">GitHub Repository</a></li>',hs,Sl,me='Learn more about RapidFire AI in their <a href="https://github.com/RapidFireAI/rapidfireai" rel="nofollow">official repository</a> and <a href="https://oss-docs.rapidfire.ai" rel="nofollow">documentation</a>.',ds,ql,Cs,Yl,gs;return j=new he({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new J({props:{title:"RapidFire AI Integration",local:"rapidfire-ai-integration",headingTag:"h1"}}),h=new J({props:{title:"Key Features",local:"key-features",headingTag:"h2"}}),C=new J({props:{title:"Problem It Solves",local:"problem-it-solves",headingTag:"h3"}}),Z=new J({props:{title:"How It Works",local:"how-it-works",headingTag:"h3"}}),B=new T({props:{code:"R1BVJTIwVGltZWxpbmUlMjAoU2luZ2xlJTIwR1BVKSUzQSUwQUNodW5rJTIwMSUzQSUyMCU1QkNvbmZpZyUyMEElNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBCJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwQyU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEQlNUQlMEFDaHVuayUyMDIlM0ElMjAlNUJDb25maWclMjBBJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwQiU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEMlNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBEJTVEJTBBQ2h1bmslMjAzJTNBJTIwJTVCQ29uZmlnJTIwQSU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEIlNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBDJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwRCU1RA==",highlighted:`GPU Timeline (Single GPU): | |
| Chunk 1: <span class="hljs-comment">[Config A]</span> → <span class="hljs-comment">[Config B]</span> → <span class="hljs-comment">[Config C]</span> → <span class="hljs-comment">[Config D]</span> | |
| Chunk 2: <span class="hljs-comment">[Config A]</span> → <span class="hljs-comment">[Config B]</span> → <span class="hljs-comment">[Config C]</span> → <span class="hljs-comment">[Config D]</span> | |
| Chunk 3: <span class="hljs-comment">[Config A]</span> → <span class="hljs-comment">[Config B]</span> → <span class="hljs-comment">[Config C]</span> → <span class="hljs-comment">[Config D]</span>`,wrap:!1}}),A=new J({props:{title:"Installation",local:"installation",headingTag:"h2"}}),Q=new J({props:{title:"Prerequisites",local:"prerequisites",headingTag:"h3"}}),v=new J({props:{title:"pip install",local:"pip-install",headingTag:"h3"}}),N=new T({props:{code:"cGlwJTIwaW5zdGFsbCUyMHJhcGlkZmlyZWFp",highlighted:"pip install rapidfireai",wrap:!1}}),V=new T({props:{code:"JTIzJTIwQXV0aGVudGljYXRlJTIwd2l0aCUyMEh1Z2dpbmclMjBGYWNlJTBBaGYlMjBhdXRoJTIwbG9naW4lMjAtLXRva2VuJTIwWU9VUl9UT0tFTiUwQSUwQSUyMyUyMFdvcmthcm91bmQlMjBmb3IlMjBjdXJyZW50JTIwaXNzdWUlM0ElMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZodWdnaW5nZmFjZSUyRnhldC1jb3JlJTJGaXNzdWVzJTJGNTI3JTBBcGlwJTIwdW5pbnN0YWxsJTIwLXklMjBoZi14ZXQlMEElMEElMjMlMjBJbml0aWFsaXplJTIwUmFwaWRGaXJlJTIwQUklMEFyYXBpZGZpcmVhaSUyMGluaXQlMEElMEElMjMlMjBTdGFydCUyMHRoZSUyMFJhcGlkRmlyZSUyMEFJJTIwc2VydmVyJTBBcmFwaWRmaXJlYWklMjBzdGFydA==",highlighted:`<span class="hljs-comment"># Authenticate with Hugging Face</span> | |
| hf auth login --token YOUR_TOKEN | |
| <span class="hljs-comment"># Workaround for current issue: https://github.com/huggingface/xet-core/issues/527</span> | |
| pip uninstall -y hf-xet | |
| <span class="hljs-comment"># Initialize RapidFire AI</span> | |
| rapidfireai init | |
| <span class="hljs-comment"># Start the RapidFire AI server</span> | |
| rapidfireai start`,wrap:!1}}),_=new J({props:{title:"Quick Start: SFT Training with Multiple Configs",local:"quick-start-sft-training-with-multiple-configs",headingTag:"h2"}}),x=new T({props:{code:"ZnJvbSUyMHJhcGlkZmlyZWFpJTIwaW1wb3J0JTIwRXhwZXJpbWVudCUwQWZyb20lMjByYXBpZGZpcmVhaS5hdXRvbWwlMjBpbXBvcnQlMjBMaXN0JTJDJTIwUkZHcmlkU2VhcmNoJTJDJTIwUkZNb2RlbENvbmZpZyUyQyUyMFJGTG9yYUNvbmZpZyUyQyUyMFJGU0ZUQ29uZmlnJTBBZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQSUyMyUyMExvYWQlMjBkYXRhc2V0JTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJiaXRleHQlMkZCaXRleHQtY3VzdG9tZXItc3VwcG9ydC1sbG0tY2hhdGJvdC10cmFpbmluZy1kYXRhc2V0JTIyKSUwQXRyYWluX2RhdGFzZXQlMjAlM0QlMjBkYXRhc2V0JTVCJTIydHJhaW4lMjIlNUQuc2VsZWN0KHJhbmdlKDEyOCkpLnNodWZmbGUoc2VlZCUzRDQyKSUwQWV2YWxfZGF0YXNldCUyMCUzRCUyMGRhdGFzZXQlNUIlMjJ0cmFpbiUyMiU1RC5zZWxlY3QocmFuZ2UoMTAwJTJDJTIwMTI0KSkuc2h1ZmZsZShzZWVkJTNENDIpJTBBJTBBJTIzJTIwRGVmaW5lJTIwZGF0YSUyMGZvcm1hdHRpbmclMjBmdW5jdGlvbiUwQWRlZiUyMGZvcm1hdHRpbmdfZnVuY3Rpb24ocm93KSUzQSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnByb21wdCUyMiUzQSUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJzeXN0ZW0lMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyWW91JTIwYXJlJTIwYSUyMGhlbHBmdWwlMjBjdXN0b21lciUyMHN1cHBvcnQlMjBhc3Npc3RhbnQuJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwcm93JTVCJTIyaW5zdHJ1Y3Rpb24lMjIlNUQlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb21wbGV0aW9uJTIyJTNBJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMmFzc2lzdGFudCUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjByb3clNUIlMjJyZXNwb25zZSUyMiU1RCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUwQSUyMCUyMCUyMCUyMCU3RCUwQSUwQSUyMyUyMEluaXRpYWxpemUlMjBleHBlcmltZW50JTBBZXhwZXJpbWVudCUyMCUzRCUyMEV4cGVyaW1lbnQoZXhwZXJpbWVudF9uYW1lJTNEJTIyc2Z0LWN1c3RvbWVyLXN1cHBvcnQlMjIpJTBBJTBBJTIzJTIwRGVmaW5lJTIwbXVsdGlwbGUlMjBMb1JBJTIwY29uZmlndXJhdGlvbnMlMjB0byUyMGNvbXBhcmUlMEFwZWZ0X2NvbmZpZ3MlMjAlM0QlMjBMaXN0KCU1QiUwQSUyMCUyMCUyMCUyMFJGTG9yYUNvbmZpZyhyJTNEOCUyQyUyMGxvcmFfYWxwaGElM0QxNiUyQyUyMGxvcmFfZHJvcG91dCUzRDAuMSUyQyUyMCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRhcmdldF9tb2R1bGVzJTNEJTVCJTIycV9wcm9qJTIyJTJDJTIwJTIydl9wcm9qJTIyJTVEJTJDJTIwYmlhcyUzRCUyMm5vbmUlMjIpJTJDJTBBJTIwJTIwJTIwJTIwUkZMb3JhQ29uZmlnKHIlM0QzMiUyQyUyMGxvcmFfYWxwaGElM0Q2NCUyQyUyMGxvcmFfZHJvcG91dCUzRDAuMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRhcmdldF9tb2R1bGVzJTNEJTVCJTIycV9wcm9qJTIyJTJDJTIwJTIya19wcm9qJTIyJTJDJTIwJTIydl9wcm9qJTIyJTJDJTIwJTIyb19wcm9qJTIyJTVEJTJDJTIwYmlhcyUzRCUyMm5vbmUlMjIpJTBBJTVEKSUwQSUwQSUyMyUyMERlZmluZSUyMG11bHRpcGxlJTIwdHJhaW5pbmclMjBjb25maWd1cmF0aW9ucyUwQSUyMyUyMDIlMjBiYXNlJTIwY29uZmlncyUyMCVDMyU5NyUyMDIlMjBQRUZUJTIwY29uZmlncyUyMCUzRCUyMDQlMjB0b3RhbCUyMHRyYWluaW5nJTIwcnVucyUwQWNvbmZpZ19zZXQlMjAlM0QlMjBMaXN0KCU1QiUwQSUyMCUyMCUyMCUyMFJGTW9kZWxDb25maWcoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbW9kZWxfbmFtZSUzRCUyMlRpbnlMbGFtYSUyRlRpbnlMbGFtYS0xLjFCLUNoYXQtdjEuMCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHBlZnRfY29uZmlnJTNEcGVmdF9jb25maWdzJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHJhaW5pbmdfYXJncyUzRFJGU0ZUQ29uZmlnKCUyMCUyMCUyMyUyMFdyYXBzJTIwVFJMJ3MlMjBTRlRDb25maWclMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsZWFybmluZ19yYXRlJTNEMWUtMyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHBlcl9kZXZpY2VfdHJhaW5fYmF0Y2hfc2l6ZSUzRDQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtYXhfc3RlcHMlM0QxMjglMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmcDE2JTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtb2RlbF90eXBlJTNEJTIyY2F1c2FsX2xtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbW9kZWxfa3dhcmdzJTNEJTdCJTIyZGV2aWNlX21hcCUyMiUzQSUyMCUyMmF1dG8lMjIlMkMlMjAlMjJ0b3JjaF9kdHlwZSUyMiUzQSUyMCUyMmF1dG8lMjIlMkMlMjAlMjJ1c2VfY2FjaGUlMjIlM0ElMjBGYWxzZSU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZvcm1hdHRpbmdfZnVuYyUzRGZvcm1hdHRpbmdfZnVuY3Rpb24lMkMlMEElMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwUkZNb2RlbENvbmZpZyglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtb2RlbF9uYW1lJTNEJTIyVGlueUxsYW1hJTJGVGlueUxsYW1hLTEuMUItQ2hhdC12MS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcGVmdF9jb25maWclM0RwZWZ0X2NvbmZpZ3MlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0cmFpbmluZ19hcmdzJTNEUkZTRlRDb25maWcoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGVhcm5pbmdfcmF0ZSUzRDFlLTQlMkMlMjAlMjAlMjMlMjBEaWZmZXJlbnQlMjBsZWFybmluZyUyMHJhdGUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwZXJfZGV2aWNlX3RyYWluX2JhdGNoX3NpemUlM0Q0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbWF4X3N0ZXBzJTNEMTI4JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZnAxNiUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbW9kZWxfdHlwZSUzRCUyMmNhdXNhbF9sbSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG1vZGVsX2t3YXJncyUzRCU3QiUyMmRldmljZV9tYXAlMjIlM0ElMjAlMjJhdXRvJTIyJTJDJTIwJTIydG9yY2hfZHR5cGUlMjIlM0ElMjAlMjJhdXRvJTIyJTJDJTIwJTIydXNlX2NhY2hlJTIyJTNBJTIwRmFsc2UlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmb3JtYXR0aW5nX2Z1bmMlM0Rmb3JtYXR0aW5nX2Z1bmN0aW9uJTJDJTBBJTIwJTIwJTIwJTIwKSUwQSU1RCklMEElMEElMjMlMjBEZWZpbmUlMjBtb2RlbCUyMGNyZWF0aW9uJTIwZnVuY3Rpb24lMEFkZWYlMjBjcmVhdGVfbW9kZWwobW9kZWxfY29uZmlnKSUzQSUwQSUyMCUyMCUyMCUyMG1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG1vZGVsX2NvbmZpZyU1QiUyMm1vZGVsX25hbWUlMjIlNUQlMkMlMjAlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAqKm1vZGVsX2NvbmZpZyU1QiUyMm1vZGVsX2t3YXJncyUyMiU1RCUwQSUyMCUyMCUyMCUyMCklMEElMjAlMjAlMjAlMjB0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChtb2RlbF9jb25maWclNUIlMjJtb2RlbF9uYW1lJTIyJTVEKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMChtb2RlbCUyQyUyMHRva2VuaXplciklMEElMEElMjMlMjBDcmVhdGUlMjBncmlkJTIwc2VhcmNoJTIwb3ZlciUyMGFsbCUyMGNvbmZpZ3VyYXRpb25zJTBBY29uZmlnX2dyb3VwJTIwJTNEJTIwUkZHcmlkU2VhcmNoKGNvbmZpZ3MlM0Rjb25maWdfc2V0JTJDJTIwdHJhaW5lcl90eXBlJTNEJTIyU0ZUJTIyKSUwQSUwQSUyMyUyMFJ1biUyMGFsbCUyMDQlMjBjb25maWd1cmF0aW9ucyUyMGNvbmN1cnJlbnRseSUyMHdpdGglMjBjaHVuay1iYXNlZCUyMHNjaGVkdWxpbmclMEFleHBlcmltZW50LnJ1bl9maXQoY29uZmlnX2dyb3VwJTJDJTIwY3JlYXRlX21vZGVsJTJDJTIwdHJhaW5fZGF0YXNldCUyQyUyMGV2YWxfZGF0YXNldCUyQyUyMCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9jaHVua3MlM0Q0JTJDJTIwc2VlZCUzRDQyKSUwQSUwQSUyMyUyMEVuZCUyMGV4cGVyaW1lbnQlMEFleHBlcmltZW50LmVuZCgp",highlighted:`<span class="hljs-keyword">from</span> rapidfireai <span class="hljs-keyword">import</span> Experiment | |
| <span class="hljs-keyword">from</span> rapidfireai.automl <span class="hljs-keyword">import</span> <span class="hljs-type">List</span>, RFGridSearch, RFModelConfig, RFLoraConfig, RFSFTConfig | |
| <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> AutoModelForCausalLM, AutoTokenizer | |
| <span class="hljs-comment"># Load dataset</span> | |
| dataset = load_dataset(<span class="hljs-string">"bitext/Bitext-customer-support-llm-chatbot-training-dataset"</span>) | |
| train_dataset = dataset[<span class="hljs-string">"train"</span>].select(<span class="hljs-built_in">range</span>(<span class="hljs-number">128</span>)).shuffle(seed=<span class="hljs-number">42</span>) | |
| eval_dataset = dataset[<span class="hljs-string">"train"</span>].select(<span class="hljs-built_in">range</span>(<span class="hljs-number">100</span>, <span class="hljs-number">124</span>)).shuffle(seed=<span class="hljs-number">42</span>) | |
| <span class="hljs-comment"># Define data formatting function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">formatting_function</span>(<span class="hljs-params">row</span>): | |
| <span class="hljs-keyword">return</span> { | |
| <span class="hljs-string">"prompt"</span>: [ | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"system"</span>, <span class="hljs-string">"content"</span>: <span class="hljs-string">"You are a helpful customer support assistant."</span>}, | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"user"</span>, <span class="hljs-string">"content"</span>: row[<span class="hljs-string">"instruction"</span>]}, | |
| ], | |
| <span class="hljs-string">"completion"</span>: [ | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"assistant"</span>, <span class="hljs-string">"content"</span>: row[<span class="hljs-string">"response"</span>]} | |
| ] | |
| } | |
| <span class="hljs-comment"># Initialize experiment</span> | |
| experiment = Experiment(experiment_name=<span class="hljs-string">"sft-customer-support"</span>) | |
| <span class="hljs-comment"># Define multiple LoRA configurations to compare</span> | |
| peft_configs = <span class="hljs-type">List</span>([ | |
| RFLoraConfig(r=<span class="hljs-number">8</span>, lora_alpha=<span class="hljs-number">16</span>, lora_dropout=<span class="hljs-number">0.1</span>, | |
| target_modules=[<span class="hljs-string">"q_proj"</span>, <span class="hljs-string">"v_proj"</span>], bias=<span class="hljs-string">"none"</span>), | |
| RFLoraConfig(r=<span class="hljs-number">32</span>, lora_alpha=<span class="hljs-number">64</span>, lora_dropout=<span class="hljs-number">0.1</span>, | |
| target_modules=[<span class="hljs-string">"q_proj"</span>, <span class="hljs-string">"k_proj"</span>, <span class="hljs-string">"v_proj"</span>, <span class="hljs-string">"o_proj"</span>], bias=<span class="hljs-string">"none"</span>) | |
| ]) | |
| <span class="hljs-comment"># Define multiple training configurations</span> | |
| <span class="hljs-comment"># 2 base configs × 2 PEFT configs = 4 total training runs</span> | |
| config_set = <span class="hljs-type">List</span>([ | |
| RFModelConfig( | |
| model_name=<span class="hljs-string">"TinyLlama/TinyLlama-1.1B-Chat-v1.0"</span>, | |
| peft_config=peft_configs, | |
| training_args=RFSFTConfig( <span class="hljs-comment"># Wraps TRL's SFTConfig</span> | |
| learning_rate=<span class="hljs-number">1e-3</span>, | |
| per_device_train_batch_size=<span class="hljs-number">4</span>, | |
| max_steps=<span class="hljs-number">128</span>, | |
| fp16=<span class="hljs-literal">True</span>, | |
| ), | |
| model_type=<span class="hljs-string">"causal_lm"</span>, | |
| model_kwargs={<span class="hljs-string">"device_map"</span>: <span class="hljs-string">"auto"</span>, <span class="hljs-string">"torch_dtype"</span>: <span class="hljs-string">"auto"</span>, <span class="hljs-string">"use_cache"</span>: <span class="hljs-literal">False</span>}, | |
| formatting_func=formatting_function, | |
| ), | |
| RFModelConfig( | |
| model_name=<span class="hljs-string">"TinyLlama/TinyLlama-1.1B-Chat-v1.0"</span>, | |
| peft_config=peft_configs, | |
| training_args=RFSFTConfig( | |
| learning_rate=<span class="hljs-number">1e-4</span>, <span class="hljs-comment"># Different learning rate</span> | |
| per_device_train_batch_size=<span class="hljs-number">4</span>, | |
| max_steps=<span class="hljs-number">128</span>, | |
| fp16=<span class="hljs-literal">True</span>, | |
| ), | |
| model_type=<span class="hljs-string">"causal_lm"</span>, | |
| model_kwargs={<span class="hljs-string">"device_map"</span>: <span class="hljs-string">"auto"</span>, <span class="hljs-string">"torch_dtype"</span>: <span class="hljs-string">"auto"</span>, <span class="hljs-string">"use_cache"</span>: <span class="hljs-literal">False</span>}, | |
| formatting_func=formatting_function, | |
| ) | |
| ]) | |
| <span class="hljs-comment"># Define model creation function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">create_model</span>(<span class="hljs-params">model_config</span>): | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_config[<span class="hljs-string">"model_name"</span>], | |
| **model_config[<span class="hljs-string">"model_kwargs"</span>] | |
| ) | |
| tokenizer = AutoTokenizer.from_pretrained(model_config[<span class="hljs-string">"model_name"</span>]) | |
| <span class="hljs-keyword">return</span> (model, tokenizer) | |
| <span class="hljs-comment"># Create grid search over all configurations</span> | |
| config_group = RFGridSearch(configs=config_set, trainer_type=<span class="hljs-string">"SFT"</span>) | |
| <span class="hljs-comment"># Run all 4 configurations concurrently with chunk-based scheduling</span> | |
| experiment.run_fit(config_group, create_model, train_dataset, eval_dataset, | |
| num_chunks=<span class="hljs-number">4</span>, seed=<span class="hljs-number">42</span>) | |
| <span class="hljs-comment"># End experiment</span> | |
| experiment.end()`,wrap:!1}}),S=new J({props:{title:"What Happens During Execution",local:"what-happens-during-execution",headingTag:"h3"}}),z=new J({props:{title:"Supported TRL Trainers",local:"supported-trl-trainers",headingTag:"h2"}}),L=new J({props:{title:"SFTTrainer",local:"sfttrainer",headingTag:"h3"}}),P=new T({props:{code:"ZnJvbSUyMHJhcGlkZmlyZWFpLmF1dG9tbCUyMGltcG9ydCUyMFJGU0ZUQ29uZmlnJTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMFJGU0ZUQ29uZmlnKCUwQSUyMCUyMCUyMCUyMGxlYXJuaW5nX3JhdGUlM0Q1ZS01JTJDJTBBJTIwJTIwJTIwJTIwcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTNENCUyQyUwQSUyMCUyMCUyMCUyMG51bV90cmFpbl9lcG9jaHMlM0QzJTJDJTBBJTIwJTIwJTIwJTIwbWF4X2xlbmd0aCUyMCUzRCUyMDUxMiUyQyUwQSUyMCUyMCUyMCUyMCUyMyUyMC4uLiUyMGFsbCUyMG90aGVyJTIwU0ZUQ29uZmlnJTIwcGFyYW1ldGVycyUyMHN1cHBvcnRlZCUwQSk=",highlighted:`<span class="hljs-keyword">from</span> rapidfireai.automl <span class="hljs-keyword">import</span> RFSFTConfig | |
| training_args = RFSFTConfig( | |
| learning_rate=<span class="hljs-number">5e-5</span>, | |
| per_device_train_batch_size=<span class="hljs-number">4</span>, | |
| num_train_epochs=<span class="hljs-number">3</span>, | |
| max_length = <span class="hljs-number">512</span>, | |
| <span class="hljs-comment"># ... all other SFTConfig parameters supported</span> | |
| )`,wrap:!1}}),K=new J({props:{title:"DPOTrainer",local:"dpotrainer",headingTag:"h3"}}),tl=new T({props:{code:"ZnJvbSUyMHJhcGlkZmlyZWFpLmF1dG9tbCUyMGltcG9ydCUyMFJGRFBPQ29uZmlnJTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMFJGRFBPQ29uZmlnKCUwQSUyMCUyMCUyMCUyMGJldGElM0QwLjElMkMlMEElMjAlMjAlMjAlMjBsb3NzX3R5cGUlM0QlMjJzaWdtb2lkJTIyJTJDJTBBJTIwJTIwJTIwJTIwbWF4X2xlbmd0aCUzRDEwMjQlMkMlMEElMjAlMjAlMjAlMjBsZWFybmluZ19yYXRlJTNENWUtNCUyQyUwQSUyMCUyMCUyMCUyMCUyMyUyMC4uLiUyMGFsbCUyMG90aGVyJTIwRFBPQ29uZmlnJTIwcGFyYW1ldGVycyUyMHN1cHBvcnRlZCUwQSk=",highlighted:`<span class="hljs-keyword">from</span> rapidfireai.automl <span class="hljs-keyword">import</span> RFDPOConfig | |
| training_args = RFDPOConfig( | |
| beta=<span class="hljs-number">0.1</span>, | |
| loss_type=<span class="hljs-string">"sigmoid"</span>, | |
| max_length=<span class="hljs-number">1024</span>, | |
| learning_rate=<span class="hljs-number">5e-4</span>, | |
| <span class="hljs-comment"># ... all other DPOConfig parameters supported</span> | |
| )`,wrap:!1}}),el=new J({props:{title:"GRPOTrainer",local:"grpotrainer",headingTag:"h3"}}),al=new T({props:{code:"ZnJvbSUyMHJhcGlkZmlyZWFpLmF1dG9tbCUyMGltcG9ydCUyMFJGR1JQT0NvbmZpZyUwQSUwQXRyYWluaW5nX2FyZ3MlMjAlM0QlMjBSRkdSUE9Db25maWcoJTBBJTIwJTIwJTIwJTIwbGVhcm5pbmdfcmF0ZSUzRDVlLTYlMkMlMEElMjAlMjAlMjAlMjBudW1fZ2VuZXJhdGlvbnMlM0Q4JTJDJTBBJTIwJTIwJTIwJTIwbWF4X2NvbXBsZXRpb25fbGVuZ3RoJTNEMjU2JTJDJTBBJTIwJTIwJTIwJTIwJTIzJTIwLi4uJTIwYWxsJTIwb3RoZXIlMjBHUlBPQ29uZmlnJTIwcGFyYW1ldGVycyUyMHN1cHBvcnRlZCUwQSk=",highlighted:`<span class="hljs-keyword">from</span> rapidfireai.automl <span class="hljs-keyword">import</span> RFGRPOConfig | |
| training_args = RFGRPOConfig( | |
| learning_rate=<span class="hljs-number">5e-6</span>, | |
| num_generations=<span class="hljs-number">8</span>, | |
| max_completion_length=<span class="hljs-number">256</span>, | |
| <span class="hljs-comment"># ... all other GRPOConfig parameters supported</span> | |
| )`,wrap:!1}}),pl=new J({props:{title:"Core Concepts",local:"core-concepts",headingTag:"h2"}}),rl=new J({props:{title:"Chunk-Based Concurrent Training",local:"chunk-based-concurrent-training",headingTag:"h3"}}),Ml=new T({props:{code:"R1BVJTIwVGltZWxpbmUlMjAoU2luZ2xlJTIwR1BVKSUzQSUwQUNodW5rJTIwMSUzQSUyMCU1QkNvbmZpZyUyMEElNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBCJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwQyU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEQlNUQlMEFDaHVuayUyMDIlM0ElMjAlNUJDb25maWclMjBBJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwQiU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEMlNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBEJTVEJTBBQ2h1bmslMjAzJTNBJTIwJTVCQ29uZmlnJTIwQSU1RCUyMCVFMiU4NiU5MiUyMCU1QkNvbmZpZyUyMEIlNUQlMjAlRTIlODYlOTIlMjAlNUJDb25maWclMjBDJTVEJTIwJUUyJTg2JTkyJTIwJTVCQ29uZmlnJTIwRCU1RCUwQS4uLg==",highlighted:`<span class="hljs-symbol">GPU</span> <span class="hljs-symbol">Timeline</span> (<span class="hljs-symbol">Single</span> <span class="hljs-symbol">GPU</span>): | |
| <span class="hljs-symbol">Chunk</span> <span class="hljs-number">1</span>: [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">A</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">B</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">C</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">D</span>] | |
| <span class="hljs-symbol">Chunk</span> <span class="hljs-number">2</span>: [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">A</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">B</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">C</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">D</span>] | |
| <span class="hljs-symbol">Chunk</span> <span class="hljs-number">3</span>: [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">A</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">B</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">C</span>] → [<span class="hljs-symbol">Config</span> <span class="hljs-symbol">D</span>] | |
| ...`,wrap:!1}}),yl=new J({props:{title:"Interactive Control Operations (IC Ops)",local:"interactive-control-operations-ic-ops",headingTag:"h3"}}),Tl=new J({props:{title:"Multi-Config Experimentation",local:"multi-config-experimentation",headingTag:"h3"}}),jl=new T({props:{code:"JTIzJTIwR3JpZCUyMHNlYXJjaCUzQSUyMHRlc3RzJTIwYWxsJTIwY29tYmluYXRpb25zJTBBY29uZmlnX2dyb3VwJTIwJTNEJTIwUkZHcmlkU2VhcmNoKGNvbmZpZ3MlM0Rjb25maWdfbGlzdCUyQyUyMHRyYWluZXJfdHlwZSUzRCUyMlNGVCUyMiklMEElMEElMjMlMjBSYW5kb20lMjBzZWFyY2glM0ElMjBzYW1wbGVzJTIwTiUyMGNvbmZpZ3VyYXRpb25zJTBBY29uZmlnX2dyb3VwJTIwJTNEJTIwUkZSYW5kb21TZWFyY2goY29uZmlncyUzRGNvbmZpZ19saXN0JTJDJTIwdHJhaW5lcl90eXBlJTNEJTIyRFBPJTIyJTJDJTIwbnVtX3NhbXBsZXMlM0QxMCk=",highlighted:`<span class="hljs-comment"># Grid search: tests all combinations</span> | |
| config_group = RFGridSearch(configs=config_list, trainer_type=<span class="hljs-string">"SFT"</span>) | |
| <span class="hljs-comment"># Random search: samples N configurations</span> | |
| config_group = RFRandomSearch(configs=config_list, trainer_type=<span class="hljs-string">"DPO"</span>, num_samples=<span class="hljs-number">10</span>)`,wrap:!1}}),wl=new J({props:{title:"Advanced Features",local:"advanced-features",headingTag:"h2"}}),fl=new J({props:{title:"PEFT/LoRA Integration",local:"peftlora-integration",headingTag:"h3"}}),dl=new T({props:{code:"ZnJvbSUyMHJhcGlkZmlyZWFpLmF1dG9tbCUyMGltcG9ydCUyMFJGTG9yYUNvbmZpZyUwQWZyb20lMjBwZWZ0JTIwaW1wb3J0JTIwVGFza1R5cGUlMEElMEFsb3JhX2NvbmZpZyUyMCUzRCUyMFJGTG9yYUNvbmZpZyglMEElMjAlMjAlMjAlMjB0YXNrX3R5cGUlM0RUYXNrVHlwZS5DQVVTQUxfTE0lMkMlMEElMjAlMjAlMjAlMjByJTNENjQlMkMlMEElMjAlMjAlMjAlMjBsb3JhX2FscGhhJTNENjQlMkMlMEElMjAlMjAlMjAlMjBsb3JhX2Ryb3BvdXQlM0QwLjElMkMlMEElMjAlMjAlMjAlMjB0YXJnZXRfbW9kdWxlcyUzRCU1QiUyMnFfcHJvaiUyMiUyQyUyMCUyMmtfcHJvaiUyMiUyQyUyMCUyMnZfcHJvaiUyMiUyQyUyMCUyMm9fcHJvaiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMGJpYXMlM0QlMjJub25lJTIyJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> rapidfireai.automl <span class="hljs-keyword">import</span> RFLoraConfig | |
| <span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> TaskType | |
| lora_config = RFLoraConfig( | |
| task_type=TaskType.CAUSAL_LM, | |
| r=<span class="hljs-number">64</span>, | |
| lora_alpha=<span class="hljs-number">64</span>, | |
| lora_dropout=<span class="hljs-number">0.1</span>, | |
| target_modules=[<span class="hljs-string">"q_proj"</span>, <span class="hljs-string">"k_proj"</span>, <span class="hljs-string">"v_proj"</span>, <span class="hljs-string">"o_proj"</span>], | |
| bias=<span class="hljs-string">"none"</span> | |
| )`,wrap:!1}}),Cl=new J({props:{title:"Custom Reward Functions (GRPO)",local:"custom-reward-functions-grpo",headingTag:"h3"}}),bl=new T({props:{code:"ZGVmJTIwY29ycmVjdG5lc3NfcmV3YXJkKHByb21wdHMlMkMlMjBjb21wbGV0aW9ucyUyQyUyMGFuc3dlciUyQyUyMCoqa3dhcmdzKSUzQSUwQSUyMCUyMCUyMCUyMCUyMiUyMiUyMlJld2FyZCUyMGZvciUyMGNvcnJlY3QlMjBhbnN3ZXJzJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwcmVzcG9uc2VzJTIwJTNEJTIwJTVCY29tcGxldGlvbiU1QjAlNUQlNUInY29udGVudCclNUQlMjBmb3IlMjBjb21wbGV0aW9uJTIwaW4lMjBjb21wbGV0aW9ucyU1RCUwQSUyMCUyMCUyMCUyMGV4dHJhY3RlZCUyMCUzRCUyMCU1QmV4dHJhY3RfYW5zd2VyKHIpJTIwZm9yJTIwciUyMGluJTIwcmVzcG9uc2VzJTVEJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTVCMi4wJTIwaWYlMjByJTIwJTNEJTNEJTIwYSUyMGVsc2UlMjAwLjAlMjBmb3IlMjByJTJDJTIwYSUyMGluJTIwemlwKGV4dHJhY3RlZCUyQyUyMGFuc3dlciklNUQlMEElMEFkZWYlMjBmb3JtYXRfcmV3YXJkKGNvbXBsZXRpb25zJTJDJTIwKiprd2FyZ3MpJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyUmV3YXJkJTIwZm9yJTIwcHJvcGVyJTIwZm9ybWF0dGluZyUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMGltcG9ydCUyMHJlJTBBJTIwJTIwJTIwJTIwcGF0dGVybiUyMCUzRCUyMHIlMjIlM0NyZWFzb25pbmclM0UuKiUzRiUzQyUyRnJlYXNvbmluZyUzRSU1Q3MqJTNDYW5zd2VyJTNFLiolM0YlM0MlMkZhbnN3ZXIlM0UlMjIlMEElMjAlMjAlMjAlMjByZXNwb25zZXMlMjAlM0QlMjAlNUJjb21wbGV0aW9uJTVCMCU1RCU1QiUyMmNvbnRlbnQlMjIlNUQlMjBmb3IlMjBjb21wbGV0aW9uJTIwaW4lMjBjb21wbGV0aW9ucyU1RCUwQSUyMCUyMCUyMCUyMG1hdGNoZXMlMjAlM0QlMjAlNUJyZS5tYXRjaChwYXR0ZXJuJTJDJTIwciklMjBmb3IlMjByJTIwaW4lMjByZXNwb25zZXMlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIwLjUlMjBpZiUyMG1hdGNoJTIwZWxzZSUyMDAuMCUyMGZvciUyMG1hdGNoJTIwaW4lMjBtYXRjaGVzJTVEJTBBJTBBJTIzJTIwVXNlJTIwaW4lMjBtb2RlbCUyMGNvbmZpZyUwQWNvbmZpZyUyMCUzRCUyMFJGTW9kZWxDb25maWcoJTBBJTIwJTIwJTIwJTIwcmV3YXJkX2Z1bmNzJTNEJTVCY29ycmVjdG5lc3NfcmV3YXJkJTJDJTIwZm9ybWF0X3Jld2FyZCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMyUyMC4uLiUyMG90aGVyJTIwcGFyYW1ldGVycyUwQSk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">correctness_reward</span>(<span class="hljs-params">prompts, completions, answer, **kwargs</span>): | |
| <span class="hljs-string">"""Reward for correct answers"""</span> | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">'content'</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| extracted = [extract_answer(r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">2.0</span> <span class="hljs-keyword">if</span> r == a <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> r, a <span class="hljs-keyword">in</span> <span class="hljs-built_in">zip</span>(extracted, answer)] | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">format_reward</span>(<span class="hljs-params">completions, **kwargs</span>): | |
| <span class="hljs-string">"""Reward for proper formatting"""</span> | |
| <span class="hljs-keyword">import</span> re | |
| pattern = <span class="hljs-string">r"<reasoning>.*?</reasoning>\\s*<answer>.*?</answer>"</span> | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| matches = [re.<span class="hljs-keyword">match</span>(pattern, r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">0.5</span> <span class="hljs-keyword">if</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">in</span> matches] | |
| <span class="hljs-comment"># Use in model config</span> | |
| config = RFModelConfig( | |
| reward_funcs=[correctness_reward, format_reward], | |
| <span class="hljs-comment"># ... other parameters</span> | |
| )`,wrap:!1}}),Il=new J({props:{title:"Multi-GPU Support",local:"multi-gpu-support",headingTag:"h3"}}),Zl=new J({props:{title:"Best Practices",local:"best-practices",headingTag:"h2"}}),Rl=new J({props:{title:"Tuning Chunk Granularity",local:"tuning-chunk-granularity",headingTag:"h3"}}),Gl=new T({props:{code:"JTIzJTIwRmV3ZXIlMjBjaHVua3MlMjAlM0QlMjBsZXNzJTIwb3ZlcmhlYWQlMkMlMjBsZXNzJTIwZnJlcXVlbnQlMjBjb21wYXJpc29uJTBBZXhwZXJpbWVudC5ydW5fZml0KC4uLiUyQyUyMG51bV9jaHVua3MlM0QyKSUwQSUwQSUyMyUyME1vcmUlMjBjaHVua3MlMjAlM0QlMjBtb3JlJTIwb3ZlcmhlYWQlMkMlMjBtb3JlJTIwZnJlcXVlbnQlMjBjb21wYXJpc29uJTBBZXhwZXJpbWVudC5ydW5fZml0KC4uLiUyQyUyMG51bV9jaHVua3MlM0QxNik=",highlighted:`<span class="hljs-comment"># Fewer chunks = less overhead, less frequent comparison</span> | |
| experiment.run_fit(..., num_chunks=<span class="hljs-number">2</span>) | |
| <span class="hljs-comment"># More chunks = more overhead, more frequent comparison</span> | |
| experiment.run_fit(..., num_chunks=<span class="hljs-number">16</span>)`,wrap:!1}}),Al=new J({props:{title:"Memory Management",local:"memory-management",headingTag:"h3"}}),Fl=new T({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEJpdHNBbmRCeXRlc0NvbmZpZyUwQWltcG9ydCUyMHRvcmNoJTBBJTBBYm5iX2NvbmZpZyUyMCUzRCUyMEJpdHNBbmRCeXRlc0NvbmZpZyglMEElMjAlMjAlMjAlMjBsb2FkX2luXzRiaXQlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwYm5iXzRiaXRfY29tcHV0ZV9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwYm5iXzRiaXRfdXNlX2RvdWJsZV9xdWFudCUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBibmJfNGJpdF9xdWFudF90eXBlJTNEJTIybmY0JTIyJTJDJTBBKSUwQSUwQW1vZGVsX2t3YXJncyUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMnF1YW50aXphdGlvbl9jb25maWclMjIlM0ElMjBibmJfY29uZmlnJTJDJTBBJTIwJTIwJTIwJTIwJTIyZGV2aWNlX21hcCUyMiUzQSUyMCUyMmF1dG8lMjIlMkMlMEElN0Q=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> BitsAndBytesConfig | |
| <span class="hljs-keyword">import</span> torch | |
| bnb_config = BitsAndBytesConfig( | |
| load_in_4bit=<span class="hljs-literal">True</span>, | |
| bnb_4bit_compute_dtype=torch.bfloat16, | |
| bnb_4bit_use_double_quant=<span class="hljs-literal">True</span>, | |
| bnb_4bit_quant_type=<span class="hljs-string">"nf4"</span>, | |
| ) | |
| model_kwargs = { | |
| <span class="hljs-string">"quantization_config"</span>: bnb_config, | |
| <span class="hljs-string">"device_map"</span>: <span class="hljs-string">"auto"</span>, | |
| }`,wrap:!1}}),vl=new J({props:{title:"Performance Benchmarks",local:"performance-benchmarks",headingTag:"h2"}}),El=new J({props:{title:"Troubleshooting",local:"troubleshooting",headingTag:"h2"}}),Xl=new J({props:{title:"Additional Resources",local:"additional-resources",headingTag:"h2"}}),ql=new de({props:{source:"https://github.com/huggingface/trl/blob/main/docs/source/rapidfire_integration.md"}}),{c(){u=i("meta"),zl=n(),Hl=i("p"),Ll=n(),r(j.$$.fragment),Dl=n(),r(w.$$.fragment),Pl=n(),f=i("p"),f.textContent=Is,Ol=n(),r(h.$$.fragment),Kl=n(),d=i("ul"),d.innerHTML=$s,lt=n(),r(C.$$.fragment),tt=n(),g=i("p"),g.textContent=Zs,st=n(),b=i("ul"),b.innerHTML=Rs,et=n(),I=i("p"),I.innerHTML=Bs,nt=n(),$=i("p"),$.innerHTML=Gs,at=n(),r(Z.$$.fragment),it=n(),R=i("p"),R.innerHTML=ks,pt=n(),r(B.$$.fragment),rt=n(),G=i("p"),G.textContent=As,ot=n(),k=i("ul"),k.innerHTML=Qs,Mt=n(),r(A.$$.fragment),mt=n(),r(Q.$$.fragment),yt=n(),F=i("ul"),F.innerHTML=Fs,Ut=n(),r(v.$$.fragment),ct=n(),r(N.$$.fragment),Jt=n(),W=i("p"),W.textContent=vs,Tt=n(),r(V.$$.fragment),ut=n(),E=i("p"),E.innerHTML=Ns,jt=n(),r(_.$$.fragment),wt=n(),X=i("p"),X.textContent=Ws,ft=n(),r(x.$$.fragment),ht=n(),r(S.$$.fragment),dt=n(),q=i("p"),q.textContent=Vs,Ct=n(),H=i("ol"),H.innerHTML=Es,gt=n(),Y=i("p"),Y.innerHTML=_s,bt=n(),r(z.$$.fragment),It=n(),r(L.$$.fragment),$t=n(),D=i("p"),D.innerHTML=Xs,Zt=n(),r(P.$$.fragment),Rt=n(),O=i("p"),O.innerHTML=xs,Bt=n(),r(K.$$.fragment),Gt=n(),ll=i("p"),ll.innerHTML=Ss,kt=n(),r(tl.$$.fragment),At=n(),sl=i("p"),sl.innerHTML=qs,Qt=n(),r(el.$$.fragment),Ft=n(),nl=i("p"),nl.innerHTML=Hs,vt=n(),r(al.$$.fragment),Nt=n(),il=i("p"),il.innerHTML=Ys,Wt=n(),r(pl.$$.fragment),Vt=n(),r(rl.$$.fragment),Et=n(),ol=i("p"),ol.textContent=zs,_t=n(),r(Ml.$$.fragment),Xt=n(),ml=i("p"),ml.textContent=Ls,xt=n(),r(yl.$$.fragment),St=n(),Ul=i("p"),Ul.textContent=Ds,qt=n(),cl=i("ul"),cl.innerHTML=Ps,Ht=n(),Jl=i("p"),Jl.textContent=Os,Yt=n(),r(Tl.$$.fragment),zt=n(),ul=i("p"),ul.innerHTML=Ks,Lt=n(),r(jl.$$.fragment),Dt=n(),r(wl.$$.fragment),Pt=n(),r(fl.$$.fragment),Ot=n(),hl=i("p"),hl.textContent=le,Kt=n(),r(dl.$$.fragment),ls=n(),r(Cl.$$.fragment),ts=n(),gl=i("p"),gl.textContent=te,ss=n(),r(bl.$$.fragment),es=n(),r(Il.$$.fragment),ns=n(),$l=i("p"),$l.textContent=se,as=n(),r(Zl.$$.fragment),is=n(),r(Rl.$$.fragment),ps=n(),Bl=i("p"),Bl.innerHTML=ee,rs=n(),r(Gl.$$.fragment),os=n(),kl=i("p"),kl.innerHTML=ne,Ms=n(),r(Al.$$.fragment),ms=n(),Ql=i("p"),Ql.textContent=ae,ys=n(),r(Fl.$$.fragment),Us=n(),r(vl.$$.fragment),cs=n(),Nl=i("p"),Nl.textContent=ie,Js=n(),Wl=i("table"),Wl.innerHTML=pe,Ts=n(),Vl=i("p"),Vl.innerHTML=re,us=n(),r(El.$$.fragment),js=n(),_l=i("p"),_l.innerHTML=oe,ws=n(),r(Xl.$$.fragment),fs=n(),xl=i("ul"),xl.innerHTML=Me,hs=n(),Sl=i("p"),Sl.innerHTML=me,ds=n(),r(ql.$$.fragment),Cs=n(),Yl=i("p"),this.h()},l(l){const t=we("svelte-u9bgzb",document.head);u=p(t,"META",{name:!0,content:!0}),t.forEach(s),zl=a(l),Hl=p(l,"P",{}),ye(Hl).forEach(s),Ll=a(l),o(j.$$.fragment,l),Dl=a(l),o(w.$$.fragment,l),Pl=a(l),f=p(l,"P",{"data-svelte-h":!0}),c(f)!=="svelte-1mdupd"&&(f.textContent=Is),Ol=a(l),o(h.$$.fragment,l),Kl=a(l),d=p(l,"UL",{"data-svelte-h":!0}),c(d)!=="svelte-kh3c3t"&&(d.innerHTML=$s),lt=a(l),o(C.$$.fragment,l),tt=a(l),g=p(l,"P",{"data-svelte-h":!0}),c(g)!=="svelte-1e8e2os"&&(g.textContent=Zs),st=a(l),b=p(l,"UL",{"data-svelte-h":!0}),c(b)!=="svelte-1xl2xuq"&&(b.innerHTML=Rs),et=a(l),I=p(l,"P",{"data-svelte-h":!0}),c(I)!=="svelte-as7d5t"&&(I.innerHTML=Bs),nt=a(l),$=p(l,"P",{"data-svelte-h":!0}),c($)!=="svelte-80vdsx"&&($.innerHTML=Gs),at=a(l),o(Z.$$.fragment,l),it=a(l),R=p(l,"P",{"data-svelte-h":!0}),c(R)!=="svelte-11ucddv"&&(R.innerHTML=ks),pt=a(l),o(B.$$.fragment,l),rt=a(l),G=p(l,"P",{"data-svelte-h":!0}),c(G)!=="svelte-1cwa3cu"&&(G.textContent=As),ot=a(l),k=p(l,"UL",{"data-svelte-h":!0}),c(k)!=="svelte-1fggrxd"&&(k.innerHTML=Qs),Mt=a(l),o(A.$$.fragment,l),mt=a(l),o(Q.$$.fragment,l),yt=a(l),F=p(l,"UL",{"data-svelte-h":!0}),c(F)!=="svelte-lbals6"&&(F.innerHTML=Fs),Ut=a(l),o(v.$$.fragment,l),ct=a(l),o(N.$$.fragment,l),Jt=a(l),W=p(l,"P",{"data-svelte-h":!0}),c(W)!=="svelte-mollbd"&&(W.textContent=vs),Tt=a(l),o(V.$$.fragment,l),ut=a(l),E=p(l,"P",{"data-svelte-h":!0}),c(E)!=="svelte-a0k891"&&(E.innerHTML=Ns),jt=a(l),o(_.$$.fragment,l),wt=a(l),X=p(l,"P",{"data-svelte-h":!0}),c(X)!=="svelte-zka7sg"&&(X.textContent=Ws),ft=a(l),o(x.$$.fragment,l),ht=a(l),o(S.$$.fragment,l),dt=a(l),q=p(l,"P",{"data-svelte-h":!0}),c(q)!=="svelte-1xxqf12"&&(q.textContent=Vs),Ct=a(l),H=p(l,"OL",{"data-svelte-h":!0}),c(H)!=="svelte-1tagg0o"&&(H.innerHTML=Es),gt=a(l),Y=p(l,"P",{"data-svelte-h":!0}),c(Y)!=="svelte-149o20l"&&(Y.innerHTML=_s),bt=a(l),o(z.$$.fragment,l),It=a(l),o(L.$$.fragment,l),$t=a(l),D=p(l,"P",{"data-svelte-h":!0}),c(D)!=="svelte-12actga"&&(D.innerHTML=Xs),Zt=a(l),o(P.$$.fragment,l),Rt=a(l),O=p(l,"P",{"data-svelte-h":!0}),c(O)!=="svelte-148o05l"&&(O.innerHTML=xs),Bt=a(l),o(K.$$.fragment,l),Gt=a(l),ll=p(l,"P",{"data-svelte-h":!0}),c(ll)!=="svelte-rzx1zq"&&(ll.innerHTML=Ss),kt=a(l),o(tl.$$.fragment,l),At=a(l),sl=p(l,"P",{"data-svelte-h":!0}),c(sl)!=="svelte-w62yy5"&&(sl.innerHTML=qs),Qt=a(l),o(el.$$.fragment,l),Ft=a(l),nl=p(l,"P",{"data-svelte-h":!0}),c(nl)!=="svelte-1i1klvq"&&(nl.innerHTML=Hs),vt=a(l),o(al.$$.fragment,l),Nt=a(l),il=p(l,"P",{"data-svelte-h":!0}),c(il)!=="svelte-11fefpg"&&(il.innerHTML=Ys),Wt=a(l),o(pl.$$.fragment,l),Vt=a(l),o(rl.$$.fragment,l),Et=a(l),ol=p(l,"P",{"data-svelte-h":!0}),c(ol)!=="svelte-93qe9b"&&(ol.textContent=zs),_t=a(l),o(Ml.$$.fragment,l),Xt=a(l),ml=p(l,"P",{"data-svelte-h":!0}),c(ml)!=="svelte-xzau2l"&&(ml.textContent=Ls),xt=a(l),o(yl.$$.fragment,l),St=a(l),Ul=p(l,"P",{"data-svelte-h":!0}),c(Ul)!=="svelte-1k6633c"&&(Ul.textContent=Ds),qt=a(l),cl=p(l,"UL",{"data-svelte-h":!0}),c(cl)!=="svelte-5y6sk2"&&(cl.innerHTML=Ps),Ht=a(l),Jl=p(l,"P",{"data-svelte-h":!0}),c(Jl)!=="svelte-1l1pplb"&&(Jl.textContent=Os),Yt=a(l),o(Tl.$$.fragment,l),zt=a(l),ul=p(l,"P",{"data-svelte-h":!0}),c(ul)!=="svelte-2bmx54"&&(ul.innerHTML=Ks),Lt=a(l),o(jl.$$.fragment,l),Dt=a(l),o(wl.$$.fragment,l),Pt=a(l),o(fl.$$.fragment,l),Ot=a(l),hl=p(l,"P",{"data-svelte-h":!0}),c(hl)!=="svelte-gilylc"&&(hl.textContent=le),Kt=a(l),o(dl.$$.fragment,l),ls=a(l),o(Cl.$$.fragment,l),ts=a(l),gl=p(l,"P",{"data-svelte-h":!0}),c(gl)!=="svelte-hg3mr6"&&(gl.textContent=te),ss=a(l),o(bl.$$.fragment,l),es=a(l),o(Il.$$.fragment,l),ns=a(l),$l=p(l,"P",{"data-svelte-h":!0}),c($l)!=="svelte-626gvk"&&($l.textContent=se),as=a(l),o(Zl.$$.fragment,l),is=a(l),o(Rl.$$.fragment,l),ps=a(l),Bl=p(l,"P",{"data-svelte-h":!0}),c(Bl)!=="svelte-128g1b1"&&(Bl.innerHTML=ee),rs=a(l),o(Gl.$$.fragment,l),os=a(l),kl=p(l,"P",{"data-svelte-h":!0}),c(kl)!=="svelte-1ylh89g"&&(kl.innerHTML=ne),Ms=a(l),o(Al.$$.fragment,l),ms=a(l),Ql=p(l,"P",{"data-svelte-h":!0}),c(Ql)!=="svelte-407if8"&&(Ql.textContent=ae),ys=a(l),o(Fl.$$.fragment,l),Us=a(l),o(vl.$$.fragment,l),cs=a(l),Nl=p(l,"P",{"data-svelte-h":!0}),c(Nl)!=="svelte-qxrbo"&&(Nl.textContent=ie),Js=a(l),Wl=p(l,"TABLE",{"data-svelte-h":!0}),c(Wl)!=="svelte-1tz9eyo"&&(Wl.innerHTML=pe),Ts=a(l),Vl=p(l,"P",{"data-svelte-h":!0}),c(Vl)!=="svelte-1d0mph6"&&(Vl.innerHTML=re),us=a(l),o(El.$$.fragment,l),js=a(l),_l=p(l,"P",{"data-svelte-h":!0}),c(_l)!=="svelte-kxys1u"&&(_l.innerHTML=oe),ws=a(l),o(Xl.$$.fragment,l),fs=a(l),xl=p(l,"UL",{"data-svelte-h":!0}),c(xl)!=="svelte-3bxntc"&&(xl.innerHTML=Me),hs=a(l),Sl=p(l,"P",{"data-svelte-h":!0}),c(Sl)!=="svelte-1tkler6"&&(Sl.innerHTML=me),ds=a(l),o(ql.$$.fragment,l),Cs=a(l),Yl=p(l,"P",{}),ye(Yl).forEach(s),this.h()},h(){Ue(u,"name","hf:doc:metadata"),Ue(u,"content",ge)},m(l,t){fe(document.head,u),e(l,zl,t),e(l,Hl,t),e(l,Ll,t),M(j,l,t),e(l,Dl,t),M(w,l,t),e(l,Pl,t),e(l,f,t),e(l,Ol,t),M(h,l,t),e(l,Kl,t),e(l,d,t),e(l,lt,t),M(C,l,t),e(l,tt,t),e(l,g,t),e(l,st,t),e(l,b,t),e(l,et,t),e(l,I,t),e(l,nt,t),e(l,$,t),e(l,at,t),M(Z,l,t),e(l,it,t),e(l,R,t),e(l,pt,t),M(B,l,t),e(l,rt,t),e(l,G,t),e(l,ot,t),e(l,k,t),e(l,Mt,t),M(A,l,t),e(l,mt,t),M(Q,l,t),e(l,yt,t),e(l,F,t),e(l,Ut,t),M(v,l,t),e(l,ct,t),M(N,l,t),e(l,Jt,t),e(l,W,t),e(l,Tt,t),M(V,l,t),e(l,ut,t),e(l,E,t),e(l,jt,t),M(_,l,t),e(l,wt,t),e(l,X,t),e(l,ft,t),M(x,l,t),e(l,ht,t),M(S,l,t),e(l,dt,t),e(l,q,t),e(l,Ct,t),e(l,H,t),e(l,gt,t),e(l,Y,t),e(l,bt,t),M(z,l,t),e(l,It,t),M(L,l,t),e(l,$t,t),e(l,D,t),e(l,Zt,t),M(P,l,t),e(l,Rt,t),e(l,O,t),e(l,Bt,t),M(K,l,t),e(l,Gt,t),e(l,ll,t),e(l,kt,t),M(tl,l,t),e(l,At,t),e(l,sl,t),e(l,Qt,t),M(el,l,t),e(l,Ft,t),e(l,nl,t),e(l,vt,t),M(al,l,t),e(l,Nt,t),e(l,il,t),e(l,Wt,t),M(pl,l,t),e(l,Vt,t),M(rl,l,t),e(l,Et,t),e(l,ol,t),e(l,_t,t),M(Ml,l,t),e(l,Xt,t),e(l,ml,t),e(l,xt,t),M(yl,l,t),e(l,St,t),e(l,Ul,t),e(l,qt,t),e(l,cl,t),e(l,Ht,t),e(l,Jl,t),e(l,Yt,t),M(Tl,l,t),e(l,zt,t),e(l,ul,t),e(l,Lt,t),M(jl,l,t),e(l,Dt,t),M(wl,l,t),e(l,Pt,t),M(fl,l,t),e(l,Ot,t),e(l,hl,t),e(l,Kt,t),M(dl,l,t),e(l,ls,t),M(Cl,l,t),e(l,ts,t),e(l,gl,t),e(l,ss,t),M(bl,l,t),e(l,es,t),M(Il,l,t),e(l,ns,t),e(l,$l,t),e(l,as,t),M(Zl,l,t),e(l,is,t),M(Rl,l,t),e(l,ps,t),e(l,Bl,t),e(l,rs,t),M(Gl,l,t),e(l,os,t),e(l,kl,t),e(l,Ms,t),M(Al,l,t),e(l,ms,t),e(l,Ql,t),e(l,ys,t),M(Fl,l,t),e(l,Us,t),M(vl,l,t),e(l,cs,t),e(l,Nl,t),e(l,Js,t),e(l,Wl,t),e(l,Ts,t),e(l,Vl,t),e(l,us,t),M(El,l,t),e(l,js,t),e(l,_l,t),e(l,ws,t),M(Xl,l,t),e(l,fs,t),e(l,xl,t),e(l,hs,t),e(l,Sl,t),e(l,ds,t),M(ql,l,t),e(l,Cs,t),e(l,Yl,t),gs=!0},p:Je,i(l){gs||(m(j.$$.fragment,l),m(w.$$.fragment,l),m(h.$$.fragment,l),m(C.$$.fragment,l),m(Z.$$.fragment,l),m(B.$$.fragment,l),m(A.$$.fragment,l),m(Q.$$.fragment,l),m(v.$$.fragment,l),m(N.$$.fragment,l),m(V.$$.fragment,l),m(_.$$.fragment,l),m(x.$$.fragment,l),m(S.$$.fragment,l),m(z.$$.fragment,l),m(L.$$.fragment,l),m(P.$$.fragment,l),m(K.$$.fragment,l),m(tl.$$.fragment,l),m(el.$$.fragment,l),m(al.$$.fragment,l),m(pl.$$.fragment,l),m(rl.$$.fragment,l),m(Ml.$$.fragment,l),m(yl.$$.fragment,l),m(Tl.$$.fragment,l),m(jl.$$.fragment,l),m(wl.$$.fragment,l),m(fl.$$.fragment,l),m(dl.$$.fragment,l),m(Cl.$$.fragment,l),m(bl.$$.fragment,l),m(Il.$$.fragment,l),m(Zl.$$.fragment,l),m(Rl.$$.fragment,l),m(Gl.$$.fragment,l),m(Al.$$.fragment,l),m(Fl.$$.fragment,l),m(vl.$$.fragment,l),m(El.$$.fragment,l),m(Xl.$$.fragment,l),m(ql.$$.fragment,l),gs=!0)},o(l){y(j.$$.fragment,l),y(w.$$.fragment,l),y(h.$$.fragment,l),y(C.$$.fragment,l),y(Z.$$.fragment,l),y(B.$$.fragment,l),y(A.$$.fragment,l),y(Q.$$.fragment,l),y(v.$$.fragment,l),y(N.$$.fragment,l),y(V.$$.fragment,l),y(_.$$.fragment,l),y(x.$$.fragment,l),y(S.$$.fragment,l),y(z.$$.fragment,l),y(L.$$.fragment,l),y(P.$$.fragment,l),y(K.$$.fragment,l),y(tl.$$.fragment,l),y(el.$$.fragment,l),y(al.$$.fragment,l),y(pl.$$.fragment,l),y(rl.$$.fragment,l),y(Ml.$$.fragment,l),y(yl.$$.fragment,l),y(Tl.$$.fragment,l),y(jl.$$.fragment,l),y(wl.$$.fragment,l),y(fl.$$.fragment,l),y(dl.$$.fragment,l),y(Cl.$$.fragment,l),y(bl.$$.fragment,l),y(Il.$$.fragment,l),y(Zl.$$.fragment,l),y(Rl.$$.fragment,l),y(Gl.$$.fragment,l),y(Al.$$.fragment,l),y(Fl.$$.fragment,l),y(vl.$$.fragment,l),y(El.$$.fragment,l),y(Xl.$$.fragment,l),y(ql.$$.fragment,l),gs=!1},d(l){l&&(s(zl),s(Hl),s(Ll),s(Dl),s(Pl),s(f),s(Ol),s(Kl),s(d),s(lt),s(tt),s(g),s(st),s(b),s(et),s(I),s(nt),s($),s(at),s(it),s(R),s(pt),s(rt),s(G),s(ot),s(k),s(Mt),s(mt),s(yt),s(F),s(Ut),s(ct),s(Jt),s(W),s(Tt),s(ut),s(E),s(jt),s(wt),s(X),s(ft),s(ht),s(dt),s(q),s(Ct),s(H),s(gt),s(Y),s(bt),s(It),s($t),s(D),s(Zt),s(Rt),s(O),s(Bt),s(Gt),s(ll),s(kt),s(At),s(sl),s(Qt),s(Ft),s(nl),s(vt),s(Nt),s(il),s(Wt),s(Vt),s(Et),s(ol),s(_t),s(Xt),s(ml),s(xt),s(St),s(Ul),s(qt),s(cl),s(Ht),s(Jl),s(Yt),s(zt),s(ul),s(Lt),s(Dt),s(Pt),s(Ot),s(hl),s(Kt),s(ls),s(ts),s(gl),s(ss),s(es),s(ns),s($l),s(as),s(is),s(ps),s(Bl),s(rs),s(os),s(kl),s(Ms),s(ms),s(Ql),s(ys),s(Us),s(cs),s(Nl),s(Js),s(Wl),s(Ts),s(Vl),s(us),s(js),s(_l),s(ws),s(fs),s(xl),s(hs),s(Sl),s(ds),s(Cs),s(Yl)),s(u),U(j,l),U(w,l),U(h,l),U(C,l),U(Z,l),U(B,l),U(A,l),U(Q,l),U(v,l),U(N,l),U(V,l),U(_,l),U(x,l),U(S,l),U(z,l),U(L,l),U(P,l),U(K,l),U(tl,l),U(el,l),U(al,l),U(pl,l),U(rl,l),U(Ml,l),U(yl,l),U(Tl,l),U(jl,l),U(wl,l),U(fl,l),U(dl,l),U(Cl,l),U(bl,l),U(Il,l),U(Zl,l),U(Rl,l),U(Gl,l),U(Al,l),U(Fl,l),U(vl,l),U(El,l),U(Xl,l),U(ql,l)}}}const ge='{"title":"RapidFire AI Integration","local":"rapidfire-ai-integration","sections":[{"title":"Key Features","local":"key-features","sections":[{"title":"Problem It Solves","local":"problem-it-solves","sections":[],"depth":3},{"title":"How It Works","local":"how-it-works","sections":[],"depth":3}],"depth":2},{"title":"Installation","local":"installation","sections":[{"title":"Prerequisites","local":"prerequisites","sections":[],"depth":3},{"title":"pip install","local":"pip-install","sections":[],"depth":3}],"depth":2},{"title":"Quick Start: SFT Training with Multiple Configs","local":"quick-start-sft-training-with-multiple-configs","sections":[{"title":"What Happens During Execution","local":"what-happens-during-execution","sections":[],"depth":3}],"depth":2},{"title":"Supported TRL Trainers","local":"supported-trl-trainers","sections":[{"title":"SFTTrainer","local":"sfttrainer","sections":[],"depth":3},{"title":"DPOTrainer","local":"dpotrainer","sections":[],"depth":3},{"title":"GRPOTrainer","local":"grpotrainer","sections":[],"depth":3}],"depth":2},{"title":"Core Concepts","local":"core-concepts","sections":[{"title":"Chunk-Based Concurrent Training","local":"chunk-based-concurrent-training","sections":[],"depth":3},{"title":"Interactive Control Operations (IC Ops)","local":"interactive-control-operations-ic-ops","sections":[],"depth":3},{"title":"Multi-Config Experimentation","local":"multi-config-experimentation","sections":[],"depth":3}],"depth":2},{"title":"Advanced Features","local":"advanced-features","sections":[{"title":"PEFT/LoRA Integration","local":"peftlora-integration","sections":[],"depth":3},{"title":"Custom Reward Functions (GRPO)","local":"custom-reward-functions-grpo","sections":[],"depth":3},{"title":"Multi-GPU Support","local":"multi-gpu-support","sections":[],"depth":3}],"depth":2},{"title":"Best Practices","local":"best-practices","sections":[{"title":"Tuning Chunk Granularity","local":"tuning-chunk-granularity","sections":[],"depth":3},{"title":"Memory Management","local":"memory-management","sections":[],"depth":3}],"depth":2},{"title":"Performance Benchmarks","local":"performance-benchmarks","sections":[],"depth":2},{"title":"Troubleshooting","local":"troubleshooting","sections":[],"depth":2},{"title":"Additional Resources","local":"additional-resources","sections":[],"depth":2}],"depth":1}';function be(bs){return Te(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Be extends ue{constructor(u){super(),je(this,u,be,Ce,ce,{})}}export{Be as component}; | |
Xet Storage Details
- Size:
- 53.4 kB
- Xet hash:
- 6b1302831b59d36eb29d095dd82cef3990fd6ea935ac6a85bfe5d9ff2490c65e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.