Buckets:
| import{s as xe,n as Ve,o as Ee}from"../chunks/scheduler.3a17fb72.js";import{S as Re,i as _e,e as r,s as n,c as i,q as Ne,h as Qe,a as d,d as t,b as a,f as me,g as p,j as y,r as Ae,k as Me,l as de,m as s,n as o,t as m,o as M,p as c}from"../chunks/index.093f8863.js";import{C as Se,H as h,E as Ye}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.1a6c7b74.js";import{C as T}from"../chunks/CodeBlock.321b9d9c.js";function Xe(ye){let u,yl,rl,hl,w,ul,g,Tl,U,he=`Lighteval allows you to evaluate custom model implementations by creating a custom model class that inherits from <code>LightevalModel</code>. | |
| This is useful when you want to evaluate models that aren’t directly supported by the standard backends and providers (Transformers, VLLM, etc.), or | |
| if you want to add your own pre/post-processing logic.`,Jl,f,wl,j,gl,b,ue="Create a Python file containing your custom model implementation. The model must inherit from <code>LightevalModel</code> and implement all required methods.",Ul,C,Te="Here’s a basic example:",fl,I,jl,$,bl,G,Je="The custom model file should contain exactly one class that inherits from <code>LightevalModel</code>. This class will be automatically detected and instantiated when loading the model.",Cl,J,we="<p>You can find a complete example of a custom model implementation in <code>examples/custom_models/google_translate_model.py</code>.</p>",Il,Z,$l,B,ge="You can evaluate your custom model using either the command-line interface or the Python API.",Gl,v,Zl,W,Bl,k,Ue="The command takes three required arguments:",vl,x,fe="<li><strong>Model name</strong>: Used for tracking in results/logs</li> <li><strong>Model implementation file path</strong>: Path to your Python file containing the custom model</li> <li><strong>Tasks</strong>: Tasks to evaluate on (same format as other backends)</li>",Wl,V,kl,E,xl,R,Vl,_,je="Your custom model must implement these core methods:",El,N,Rl,Q,be="For generating text until a stop sequence or max tokens is reached. This is used for generative evaluations.",_l,A,Nl,S,Ql,Y,Ce="For computing log probabilities of specific continuations. This is used for multiple choice logprob evaluations.",Al,X,Sl,z,Yl,F,Ie="For computing rolling log probabilities of sequences. This is used for perplexity metrics.",Xl,L,zl,H,$e="See the <code>LightevalModel</code> base class documentation for detailed method signatures and requirements.",Fl,q,Ll,P,Ge=`Lighteval includes a caching system that can significantly speed up evaluations by storing and reusing model predictions. | |
| To enable caching in your custom model:`,Hl,D,ql,K,Pl,O,Dl,ll,Kl,el,cl,ce,tl,Ol,sl,Ze='For detailed information about the caching system, see the <a href="caching">Caching Documentation</a>.',le,nl,ee,al,te,il,Be="<li><strong>Import Errors</strong>: Ensure all required dependencies are installed</li> <li><strong>Method Signature Errors</strong>: Verify your methods match the expected signatures</li> <li><strong>Caching Issues</strong>: Check that cache decorators are applied correctly</li> <li><strong>Performance Issues</strong>: Consider implementing batching and caching</li>",se,pl,ne,ol,ve="<li>Use the <code>--max-samples</code> flag to test with a small dataset</li> <li>Enable detailed logging to see what’s happening</li> <li>Test individual methods in isolation</li> <li>Check the example implementations for reference</li>",ae,ml,We='For more detailed information about custom model implementation, see the <a href="package_reference/models">Model Reference</a>.',ie,Ml,pe,dl,oe;return w=new Se({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),g=new h({props:{title:"Evaluating Custom Models",local:"evaluating-custom-models",headingTag:"h1"}}),f=new h({props:{title:"Creating a Custom Model",local:"creating-a-custom-model",headingTag:"h2"}}),j=new h({props:{title:"Step 1: Create Your Model Implementation",local:"step-1-create-your-model-implementation",headingTag:"h3"}}),I=new T({props:{code:"ZnJvbSUyMGxpZ2h0ZXZhbC5tb2RlbHMuYWJzdHJhY3RfbW9kZWwlMjBpbXBvcnQlMjBMaWdodGV2YWxNb2RlbCUwQWZyb20lMjBsaWdodGV2YWwubW9kZWxzLm1vZGVsX291dHB1dCUyMGltcG9ydCUyME1vZGVsUmVzcG9uc2UlMEFmcm9tJTIwbGlnaHRldmFsLnRhc2tzLnJlcXVlc3RzJTIwaW1wb3J0JTIwRG9jJTJDJTIwU2FtcGxpbmdNZXRob2QlMEFmcm9tJTIwbGlnaHRldmFsLnV0aWxzLmNhY2hlX21hbmFnZW1lbnQlMjBpbXBvcnQlMjBTYW1wbGVDYWNoZSUyQyUyMGNhY2hlZCUwQSUwQWNsYXNzJTIwTXlDdXN0b21Nb2RlbChMaWdodGV2YWxNb2RlbCklM0ElMEElMjAlMjAlMjAlMjBkZWYlMjBfX2luaXRfXyhzZWxmJTJDJTIwY29uZmlnKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN1cGVyKCkuX19pbml0X18oY29uZmlnKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEluaXRpYWxpemUlMjB5b3VyJTIwbW9kZWwlMjBoZXJlLi4uJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwRW5hYmxlJTIwY2FjaGluZyUyMChyZWNvbW1lbmRlZCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzZWxmLl9jYWNoZSUyMCUzRCUyMFNhbXBsZUNhY2hlKGNvbmZpZyklMEElMEElMjAlMjAlMjAlMjAlNDBjYWNoZWQoU2FtcGxpbmdNZXRob2QuR0VORVJBVElWRSklMEElMjAlMjAlMjAlMjBkZWYlMjBncmVlZHlfdW50aWwoc2VsZiUyQyUyMGRvY3MlM0ElMjBMaXN0JTVCRG9jJTVEKSUyMC0lM0UlMjBMaXN0JTVCTW9kZWxSZXNwb25zZSU1RCUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEltcGxlbWVudCUyMGdlbmVyYXRpb24lMjBsb2dpYyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHBhc3MlMEElMEElMjAlMjAlMjAlMjAlNDBjYWNoZWQoU2FtcGxpbmdNZXRob2QuTE9HUFJPQlMpJTBBJTIwJTIwJTIwJTIwZGVmJTIwbG9nbGlrZWxpaG9vZChzZWxmJTJDJTIwZG9jcyUzQSUyMExpc3QlNUJEb2MlNUQpJTIwLSUzRSUyMExpc3QlNUJNb2RlbFJlc3BvbnNlJTVEJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwSW1wbGVtZW50JTIwbG9nbGlrZWxpaG9vZCUyMGNvbXB1dGF0aW9uJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcGFzcyUwQSUwQSUyMCUyMCUyMCUyMCU0MGNhY2hlZChTYW1wbGluZ01ldGhvZC5QRVJQTEVYSVRZKSUwQSUyMCUyMCUyMCUyMGRlZiUyMGxvZ2xpa2VsaWhvb2Rfcm9sbGluZyhzZWxmJTJDJTIwZG9jcyUzQSUyMExpc3QlNUJEb2MlNUQpJTIwLSUzRSUyMExpc3QlNUJNb2RlbFJlc3BvbnNlJTVEJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwSW1wbGVtZW50JTIwcm9sbGluZyUyMGxvZ2xpa2VsaWhvb2QlMjBjb21wdXRhdGlvbiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHBhc3M=",highlighted:`<span class="hljs-keyword">from</span> lighteval.models.abstract_model <span class="hljs-keyword">import</span> LightevalModel | |
| <span class="hljs-keyword">from</span> lighteval.models.model_output <span class="hljs-keyword">import</span> ModelResponse | |
| <span class="hljs-keyword">from</span> lighteval.tasks.requests <span class="hljs-keyword">import</span> Doc, SamplingMethod | |
| <span class="hljs-keyword">from</span> lighteval.utils.cache_management <span class="hljs-keyword">import</span> SampleCache, cached | |
| <span class="hljs-keyword">class</span> <span class="hljs-title class_">MyCustomModel</span>(<span class="hljs-title class_ inherited__">LightevalModel</span>): | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, config</span>): | |
| <span class="hljs-built_in">super</span>().__init__(config) | |
| <span class="hljs-comment"># Initialize your model here...</span> | |
| <span class="hljs-comment"># Enable caching (recommended)</span> | |
| self._cache = SampleCache(config) | |
| <span class="hljs-meta"> @cached(<span class="hljs-params">SamplingMethod.GENERATIVE</span>)</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">greedy_until</span>(<span class="hljs-params">self, docs: <span class="hljs-type">List</span>[Doc]</span>) -> <span class="hljs-type">List</span>[ModelResponse]: | |
| <span class="hljs-comment"># Implement generation logic</span> | |
| <span class="hljs-keyword">pass</span> | |
| <span class="hljs-meta"> @cached(<span class="hljs-params">SamplingMethod.LOGPROBS</span>)</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">loglikelihood</span>(<span class="hljs-params">self, docs: <span class="hljs-type">List</span>[Doc]</span>) -> <span class="hljs-type">List</span>[ModelResponse]: | |
| <span class="hljs-comment"># Implement loglikelihood computation</span> | |
| <span class="hljs-keyword">pass</span> | |
| <span class="hljs-meta"> @cached(<span class="hljs-params">SamplingMethod.PERPLEXITY</span>)</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">loglikelihood_rolling</span>(<span class="hljs-params">self, docs: <span class="hljs-type">List</span>[Doc]</span>) -> <span class="hljs-type">List</span>[ModelResponse]: | |
| <span class="hljs-comment"># Implement rolling loglikelihood computation</span> | |
| <span class="hljs-keyword">pass</span>`,lang:"python",wrap:!1}}),$=new h({props:{title:"Step 2: Model File Requirements",local:"step-2-model-file-requirements",headingTag:"h3"}}),Z=new h({props:{title:"Running the Evaluation",local:"running-the-evaluation",headingTag:"h2"}}),v=new h({props:{title:"Using the Command Line",local:"using-the-command-line",headingTag:"h3"}}),W=new T({props:{code:"bGlnaHRldmFsJTIwY3VzdG9tJTIwJTVDJTBBJTIwJTIwJTIwJTIwJTIyZ29vZ2xlLXRyYW5zbGF0ZSUyMiUyMCU1QyUwQSUyMCUyMCUyMCUyMCUyMmV4YW1wbGVzJTJGY3VzdG9tX21vZGVscyUyRmdvb2dsZV90cmFuc2xhdGVfbW9kZWwucHklMjIlMjAlNUMlMEElMjAlMjAlMjAlMjAlMjJ3bXQyMCUzQWZyLWRlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1tYXgtc2FtcGxlcyUyMDEw",highlighted:`lighteval custom \\ | |
| <span class="hljs-string">"google-translate"</span> \\ | |
| <span class="hljs-string">"examples/custom_models/google_translate_model.py"</span> \\ | |
| <span class="hljs-string">"wmt20:fr-de \\ | |
| --max-samples 10</span>`,lang:"bash",wrap:!1}}),V=new h({props:{title:"Using the Python API",local:"using-the-python-api",headingTag:"h3"}}),E=new T({props:{code:"ZnJvbSUyMGxpZ2h0ZXZhbC5sb2dnaW5nLmV2YWx1YXRpb25fdHJhY2tlciUyMGltcG9ydCUyMEV2YWx1YXRpb25UcmFja2VyJTBBZnJvbSUyMGxpZ2h0ZXZhbC5tb2RlbHMuY3VzdG9tLmN1c3RvbV9tb2RlbCUyMGltcG9ydCUyMEN1c3RvbU1vZGVsQ29uZmlnJTBBZnJvbSUyMGxpZ2h0ZXZhbC5waXBlbGluZSUyMGltcG9ydCUyMFBpcGVsaW5lJTJDJTIwUGlwZWxpbmVQYXJhbWV0ZXJzJTJDJTIwUGFyYWxsZWxpc21NYW5hZ2VyJTBBJTBBJTIzJTIwU2V0JTIwdXAlMjBldmFsdWF0aW9uJTIwdHJhY2tpbmclMEFldmFsdWF0aW9uX3RyYWNrZXIlMjAlM0QlMjBFdmFsdWF0aW9uVHJhY2tlciglMEElMjAlMjAlMjAlMjBvdXRwdXRfZGlyJTNEJTIycmVzdWx0cyUyMiUyQyUwQSUyMCUyMCUyMCUyMHNhdmVfZGV0YWlscyUzRFRydWUlMEEpJTBBJTBBJTIzJTIwQ29uZmlndXJlJTIwdGhlJTIwcGlwZWxpbmUlMEFwaXBlbGluZV9wYXJhbXMlMjAlM0QlMjBQaXBlbGluZVBhcmFtZXRlcnMoJTBBJTIwJTIwJTIwJTIwbGF1bmNoZXJfdHlwZSUzRFBhcmFsbGVsaXNtTWFuYWdlci5DVVNUT00lMkMlMEEpJTBBJTBBJTIzJTIwQ29uZmlndXJlJTIweW91ciUyMGN1c3RvbSUyMG1vZGVsJTBBbW9kZWxfY29uZmlnJTIwJTNEJTIwQ3VzdG9tTW9kZWxDb25maWcoJTBBJTIwJTIwJTIwJTIwbW9kZWxfbmFtZSUzRCUyMm15LWN1c3RvbS1tb2RlbCUyMiUyQyUwQSUyMCUyMCUyMCUyMG1vZGVsX2RlZmluaXRpb25fZmlsZV9wYXRoJTNEJTIycGF0aCUyRnRvJTJGbXlfbW9kZWwucHklMjIlMEEpJTBBJTBBJTIzJTIwQ3JlYXRlJTIwYW5kJTIwcnVuJTIwdGhlJTIwcGlwZWxpbmUlMEFwaXBlbGluZSUyMCUzRCUyMFBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHRhc2tzJTNEdHJ1dGhmdWxxYSUzQW1jJTJDJTBBJTIwJTIwJTIwJTIwcGlwZWxpbmVfcGFyYW1ldGVycyUzRHBpcGVsaW5lX3BhcmFtcyUyQyUwQSUyMCUyMCUyMCUyMGV2YWx1YXRpb25fdHJhY2tlciUzRGV2YWx1YXRpb25fdHJhY2tlciUyQyUwQSUyMCUyMCUyMCUyMG1vZGVsX2NvbmZpZyUzRG1vZGVsX2NvbmZpZyUwQSklMEElMEFwaXBlbGluZS5ldmFsdWF0ZSgpJTBBcGlwZWxpbmUuc2F2ZV9hbmRfcHVzaF9yZXN1bHRzKCk=",highlighted:`<span class="hljs-keyword">from</span> lighteval.logging.evaluation_tracker <span class="hljs-keyword">import</span> EvaluationTracker | |
| <span class="hljs-keyword">from</span> lighteval.models.custom.custom_model <span class="hljs-keyword">import</span> CustomModelConfig | |
| <span class="hljs-keyword">from</span> lighteval.pipeline <span class="hljs-keyword">import</span> Pipeline, PipelineParameters, ParallelismManager | |
| <span class="hljs-comment"># Set up evaluation tracking</span> | |
| evaluation_tracker = EvaluationTracker( | |
| output_dir=<span class="hljs-string">"results"</span>, | |
| save_details=<span class="hljs-literal">True</span> | |
| ) | |
| <span class="hljs-comment"># Configure the pipeline</span> | |
| pipeline_params = PipelineParameters( | |
| launcher_type=ParallelismManager.CUSTOM, | |
| ) | |
| <span class="hljs-comment"># Configure your custom model</span> | |
| model_config = CustomModelConfig( | |
| model_name=<span class="hljs-string">"my-custom-model"</span>, | |
| model_definition_file_path=<span class="hljs-string">"path/to/my_model.py"</span> | |
| ) | |
| <span class="hljs-comment"># Create and run the pipeline</span> | |
| pipeline = Pipeline( | |
| tasks=truthfulqa:mc, | |
| pipeline_parameters=pipeline_params, | |
| evaluation_tracker=evaluation_tracker, | |
| model_config=model_config | |
| ) | |
| pipeline.evaluate() | |
| pipeline.save_and_push_results()`,lang:"python",wrap:!1}}),R=new h({props:{title:"Required Methods",local:"required-methods",headingTag:"h2"}}),N=new h({props:{title:"greedy_until",local:"greedyuntil",headingTag:"h3"}}),A=new T({props:{code:"ZGVmJTIwZ3JlZWR5X3VudGlsKHNlbGYlMkMlMjBkb2NzJTNBJTIwbGlzdCU1QkRvYyU1RCklMjAtJTNFJTIwbGlzdCU1Qk1vZGVsUmVzcG9uc2UlNUQlM0ElMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlMEElMjAlMjAlMjAlMjBHZW5lcmF0ZSUyMHRleHQlMjB1bnRpbCUyMHN0b3AlMjBzZXF1ZW5jZSUyMG9yJTIwbWF4JTIwdG9rZW5zLiUwQSUwQSUyMCUyMCUyMCUyMEFyZ3MlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkb2NzJTNBJTIwbGlzdCUyMG9mJTIwZG9jdW1lbnRzJTIwY29udGFpbmluZyUyMHByb21wdHMlMjBhbmQlMjBnZW5lcmF0aW9uJTIwcGFyYW1ldGVycyUwQSUwQSUyMCUyMCUyMCUyMFJldHVybnMlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsaXN0JTIwb2YlMjBtb2RlbCUyMHJlc3BvbnNlcyUyMHdpdGglMjBnZW5lcmF0ZWQlMjB0ZXh0JTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwcGFzcw==",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">greedy_until</span>(<span class="hljs-params">self, docs: <span class="hljs-built_in">list</span>[Doc]</span>) -> <span class="hljs-built_in">list</span>[ModelResponse]: | |
| <span class="hljs-string">""" | |
| Generate text until stop sequence or max tokens. | |
| Args: | |
| docs: list of documents containing prompts and generation parameters | |
| Returns: | |
| list of model responses with generated text | |
| """</span> | |
| <span class="hljs-keyword">pass</span>`,lang:"python",wrap:!1}}),S=new h({props:{title:"loglikelihood",local:"loglikelihood",headingTag:"h3"}}),X=new T({props:{code:"ZGVmJTIwbG9nbGlrZWxpaG9vZChzZWxmJTJDJTIwZG9jcyUzQSUyMGxpc3QlNUJEb2MlNUQpJTIwLSUzRSUyMGxpc3QlNUJNb2RlbFJlc3BvbnNlJTVEJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwQ29tcHV0ZSUyMGxvZyUyMHByb2JhYmlsaXRpZXMlMjBvZiUyMGNvbnRpbnVhdGlvbnMuJTBBJTBBJTIwJTIwJTIwJTIwQXJncyUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRvY3MlM0ElMjBsaXN0JTIwb2YlMjBkb2N1bWVudHMlMjBjb250YWluaW5nJTIwY29udGV4dCUyMGFuZCUyMGNvbnRpbnVhdGlvbiUyMHBhaXJzJTBBJTBBJTIwJTIwJTIwJTIwUmV0dXJucyUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxpc3QlMjBvZiUyMG1vZGVsJTIwcmVzcG9uc2VzJTIwd2l0aCUyMGxvZyUyMHByb2JhYmlsaXRpZXMlMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlMEElMjAlMjAlMjAlMjBwYXNz",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">loglikelihood</span>(<span class="hljs-params">self, docs: <span class="hljs-built_in">list</span>[Doc]</span>) -> <span class="hljs-built_in">list</span>[ModelResponse]: | |
| <span class="hljs-string">""" | |
| Compute log probabilities of continuations. | |
| Args: | |
| docs: list of documents containing context and continuation pairs | |
| Returns: | |
| list of model responses with log probabilities | |
| """</span> | |
| <span class="hljs-keyword">pass</span>`,lang:"python",wrap:!1}}),z=new h({props:{title:"loglikelihood_rolling",local:"loglikelihoodrolling",headingTag:"h3"}}),L=new T({props:{code:"ZGVmJTIwbG9nbGlrZWxpaG9vZF9yb2xsaW5nKHNlbGYlMkMlMjBkb2NzJTNBJTIwbGlzdCU1QkRvYyU1RCklMjAtJTNFJTIwbGlzdCU1Qk1vZGVsUmVzcG9uc2UlNUQlM0ElMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlMEElMjAlMjAlMjAlMjBDb21wdXRlJTIwcm9sbGluZyUyMGxvZyUyMHByb2JhYmlsaXRpZXMlMjBvZiUyMHNlcXVlbmNlcy4lMEElMEElMjAlMjAlMjAlMjBBcmdzJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZG9jcyUzQSUyMGxpc3QlMjBvZiUyMGRvY3VtZW50cyUyMGNvbnRhaW5pbmclMjB0ZXh0JTIwc2VxdWVuY2VzJTBBJTBBJTIwJTIwJTIwJTIwUmV0dXJucyUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxpc3QlMjBvZiUyMG1vZGVsJTIwcmVzcG9uc2VzJTIwd2l0aCUyMHJvbGxpbmclMjBsb2clMjBwcm9iYWJpbGl0aWVzJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwcGFzcw==",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">loglikelihood_rolling</span>(<span class="hljs-params">self, docs: <span class="hljs-built_in">list</span>[Doc]</span>) -> <span class="hljs-built_in">list</span>[ModelResponse]: | |
| <span class="hljs-string">""" | |
| Compute rolling log probabilities of sequences. | |
| Args: | |
| docs: list of documents containing text sequences | |
| Returns: | |
| list of model responses with rolling log probabilities | |
| """</span> | |
| <span class="hljs-keyword">pass</span>`,lang:"python",wrap:!1}}),q=new h({props:{title:"Enabling Caching (Recommended)",local:"enabling-caching-recommended",headingTag:"h2"}}),D=new h({props:{title:"Step 1: Import Caching Components",local:"step-1-import-caching-components",headingTag:"h3"}}),K=new T({props:{code:"ZnJvbSUyMGxpZ2h0ZXZhbC51dGlscy5jYWNoZV9tYW5hZ2VtZW50JTIwaW1wb3J0JTIwU2FtcGxlQ2FjaGUlMkMlMjBjYWNoZWQ=",highlighted:'<span class="hljs-keyword">from</span> lighteval.utils.cache_management <span class="hljs-keyword">import</span> SampleCache, cached',lang:"python",wrap:!1}}),O=new h({props:{title:"Step 2: Initialize Cache in Constructor",local:"step-2-initialize-cache-in-constructor",headingTag:"h3"}}),ll=new T({props:{code:"ZGVmJTIwX19pbml0X18oc2VsZiUyQyUyMGNvbmZpZyklM0ElMEElMjAlMjAlMjAlMjBzdXBlcigpLl9faW5pdF9fKGNvbmZpZyklMEElMjAlMjAlMjAlMjAlMjMlMjBZb3VyJTIwaW5pdGlhbGl6YXRpb24lMjBjb2RlLi4uJTBBJTIwJTIwJTIwJTIwc2VsZi5fY2FjaGUlMjAlM0QlMjBTYW1wbGVDYWNoZShjb25maWcp",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, config</span>): | |
| <span class="hljs-built_in">super</span>().__init__(config) | |
| <span class="hljs-comment"># Your initialization code...</span> | |
| self._cache = SampleCache(config)`,lang:"python",wrap:!1}}),tl=new T({props:{code:"JTQwY2FjaGVkKFNhbXBsaW5nTWV0aG9kLkdFTkVSQVRJVkUpJTBBZGVmJTIwZ3JlZWR5X3VudGlsKHNlbGYlMkMlMjBkb2NzJTNBJTIwTGlzdCU1QkRvYyU1RCklMjAtJTNFJTIwTGlzdCU1Qk1vZGVsUmVzcG9uc2UlNUQlM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBZb3VyJTIwaW1wbGVtZW50YXRpb24uLi4=",highlighted:`<span class="hljs-meta">@cached(<span class="hljs-params">SamplingMethod.GENERATIVE</span>)</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">greedy_until</span>(<span class="hljs-params">self, docs: <span class="hljs-type">List</span>[Doc]</span>) -> <span class="hljs-type">List</span>[ModelResponse]: | |
| <span class="hljs-comment"># Your implementation...</span>`,lang:"python",wrap:!1}}),nl=new h({props:{title:"Troubleshooting",local:"troubleshooting",headingTag:"h2"}}),al=new h({props:{title:"Common Issues",local:"common-issues",headingTag:"h3"}}),pl=new h({props:{title:"Debugging Tips",local:"debugging-tips",headingTag:"h3"}}),Ml=new Ye({props:{source:"https://github.com/huggingface/lighteval/blob/main/docs/source/evaluating-a-custom-model.mdx"}}),{c(){u=r("meta"),yl=n(),rl=r("p"),hl=n(),i(w.$$.fragment),ul=n(),i(g.$$.fragment),Tl=n(),U=r("p"),U.innerHTML=he,Jl=n(),i(f.$$.fragment),wl=n(),i(j.$$.fragment),gl=n(),b=r("p"),b.innerHTML=ue,Ul=n(),C=r("p"),C.textContent=Te,fl=n(),i(I.$$.fragment),jl=n(),i($.$$.fragment),bl=n(),G=r("p"),G.innerHTML=Je,Cl=n(),J=r("blockquote"),J.innerHTML=we,Il=n(),i(Z.$$.fragment),$l=n(),B=r("p"),B.textContent=ge,Gl=n(),i(v.$$.fragment),Zl=n(),i(W.$$.fragment),Bl=n(),k=r("p"),k.textContent=Ue,vl=n(),x=r("ul"),x.innerHTML=fe,Wl=n(),i(V.$$.fragment),kl=n(),i(E.$$.fragment),xl=n(),i(R.$$.fragment),Vl=n(),_=r("p"),_.textContent=je,El=n(),i(N.$$.fragment),Rl=n(),Q=r("p"),Q.textContent=be,_l=n(),i(A.$$.fragment),Nl=n(),i(S.$$.fragment),Ql=n(),Y=r("p"),Y.textContent=Ce,Al=n(),i(X.$$.fragment),Sl=n(),i(z.$$.fragment),Yl=n(),F=r("p"),F.textContent=Ie,Xl=n(),i(L.$$.fragment),zl=n(),H=r("p"),H.innerHTML=$e,Fl=n(),i(q.$$.fragment),Ll=n(),P=r("p"),P.textContent=Ge,Hl=n(),i(D.$$.fragment),ql=n(),i(K.$$.fragment),Pl=n(),i(O.$$.fragment),Dl=n(),i(ll.$$.fragment),Kl=n(),el=r("ol"),cl=r("li"),ce=Ne(`Add cache decorators to your prediction methods: | |
| `),i(tl.$$.fragment),Ol=n(),sl=r("p"),sl.innerHTML=Ze,le=n(),i(nl.$$.fragment),ee=n(),i(al.$$.fragment),te=n(),il=r("ol"),il.innerHTML=Be,se=n(),i(pl.$$.fragment),ne=n(),ol=r("ul"),ol.innerHTML=ve,ae=n(),ml=r("p"),ml.innerHTML=We,ie=n(),i(Ml.$$.fragment),pe=n(),dl=r("p"),this.h()},l(l){const e=Qe("svelte-u9bgzb",document.head);u=d(e,"META",{name:!0,content:!0}),e.forEach(t),yl=a(l),rl=d(l,"P",{}),me(rl).forEach(t),hl=a(l),p(w.$$.fragment,l),ul=a(l),p(g.$$.fragment,l),Tl=a(l),U=d(l,"P",{"data-svelte-h":!0}),y(U)!=="svelte-15yahec"&&(U.innerHTML=he),Jl=a(l),p(f.$$.fragment,l),wl=a(l),p(j.$$.fragment,l),gl=a(l),b=d(l,"P",{"data-svelte-h":!0}),y(b)!=="svelte-64btiy"&&(b.innerHTML=ue),Ul=a(l),C=d(l,"P",{"data-svelte-h":!0}),y(C)!=="svelte-1frc3d"&&(C.textContent=Te),fl=a(l),p(I.$$.fragment,l),jl=a(l),p($.$$.fragment,l),bl=a(l),G=d(l,"P",{"data-svelte-h":!0}),y(G)!=="svelte-4gi028"&&(G.innerHTML=Je),Cl=a(l),J=d(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),y(J)!=="svelte-1m7vrvf"&&(J.innerHTML=we),Il=a(l),p(Z.$$.fragment,l),$l=a(l),B=d(l,"P",{"data-svelte-h":!0}),y(B)!=="svelte-md1ogy"&&(B.textContent=ge),Gl=a(l),p(v.$$.fragment,l),Zl=a(l),p(W.$$.fragment,l),Bl=a(l),k=d(l,"P",{"data-svelte-h":!0}),y(k)!=="svelte-9ha93v"&&(k.textContent=Ue),vl=a(l),x=d(l,"UL",{"data-svelte-h":!0}),y(x)!=="svelte-7oyst4"&&(x.innerHTML=fe),Wl=a(l),p(V.$$.fragment,l),kl=a(l),p(E.$$.fragment,l),xl=a(l),p(R.$$.fragment,l),Vl=a(l),_=d(l,"P",{"data-svelte-h":!0}),y(_)!=="svelte-abp4ax"&&(_.textContent=je),El=a(l),p(N.$$.fragment,l),Rl=a(l),Q=d(l,"P",{"data-svelte-h":!0}),y(Q)!=="svelte-1nk29lo"&&(Q.textContent=be),_l=a(l),p(A.$$.fragment,l),Nl=a(l),p(S.$$.fragment,l),Ql=a(l),Y=d(l,"P",{"data-svelte-h":!0}),y(Y)!=="svelte-1bufz8k"&&(Y.textContent=Ce),Al=a(l),p(X.$$.fragment,l),Sl=a(l),p(z.$$.fragment,l),Yl=a(l),F=d(l,"P",{"data-svelte-h":!0}),y(F)!=="svelte-dqj7yp"&&(F.textContent=Ie),Xl=a(l),p(L.$$.fragment,l),zl=a(l),H=d(l,"P",{"data-svelte-h":!0}),y(H)!=="svelte-845vib"&&(H.innerHTML=$e),Fl=a(l),p(q.$$.fragment,l),Ll=a(l),P=d(l,"P",{"data-svelte-h":!0}),y(P)!=="svelte-1eshig5"&&(P.textContent=Ge),Hl=a(l),p(D.$$.fragment,l),ql=a(l),p(K.$$.fragment,l),Pl=a(l),p(O.$$.fragment,l),Dl=a(l),p(ll.$$.fragment,l),Kl=a(l),el=d(l,"OL",{start:!0});var ke=me(el);cl=d(ke,"LI",{});var re=me(cl);ce=Ae(re,`Add cache decorators to your prediction methods: | |
| `),p(tl.$$.fragment,re),re.forEach(t),ke.forEach(t),Ol=a(l),sl=d(l,"P",{"data-svelte-h":!0}),y(sl)!=="svelte-eqax9m"&&(sl.innerHTML=Ze),le=a(l),p(nl.$$.fragment,l),ee=a(l),p(al.$$.fragment,l),te=a(l),il=d(l,"OL",{"data-svelte-h":!0}),y(il)!=="svelte-hifd4u"&&(il.innerHTML=Be),se=a(l),p(pl.$$.fragment,l),ne=a(l),ol=d(l,"UL",{"data-svelte-h":!0}),y(ol)!=="svelte-1g8hpki"&&(ol.innerHTML=ve),ae=a(l),ml=d(l,"P",{"data-svelte-h":!0}),y(ml)!=="svelte-15nhhnt"&&(ml.innerHTML=We),ie=a(l),p(Ml.$$.fragment,l),pe=a(l),dl=d(l,"P",{}),me(dl).forEach(t),this.h()},h(){Me(u,"name","hf:doc:metadata"),Me(u,"content",ze),Me(J,"class","tip"),Me(el,"start","3")},m(l,e){de(document.head,u),s(l,yl,e),s(l,rl,e),s(l,hl,e),o(w,l,e),s(l,ul,e),o(g,l,e),s(l,Tl,e),s(l,U,e),s(l,Jl,e),o(f,l,e),s(l,wl,e),o(j,l,e),s(l,gl,e),s(l,b,e),s(l,Ul,e),s(l,C,e),s(l,fl,e),o(I,l,e),s(l,jl,e),o($,l,e),s(l,bl,e),s(l,G,e),s(l,Cl,e),s(l,J,e),s(l,Il,e),o(Z,l,e),s(l,$l,e),s(l,B,e),s(l,Gl,e),o(v,l,e),s(l,Zl,e),o(W,l,e),s(l,Bl,e),s(l,k,e),s(l,vl,e),s(l,x,e),s(l,Wl,e),o(V,l,e),s(l,kl,e),o(E,l,e),s(l,xl,e),o(R,l,e),s(l,Vl,e),s(l,_,e),s(l,El,e),o(N,l,e),s(l,Rl,e),s(l,Q,e),s(l,_l,e),o(A,l,e),s(l,Nl,e),o(S,l,e),s(l,Ql,e),s(l,Y,e),s(l,Al,e),o(X,l,e),s(l,Sl,e),o(z,l,e),s(l,Yl,e),s(l,F,e),s(l,Xl,e),o(L,l,e),s(l,zl,e),s(l,H,e),s(l,Fl,e),o(q,l,e),s(l,Ll,e),s(l,P,e),s(l,Hl,e),o(D,l,e),s(l,ql,e),o(K,l,e),s(l,Pl,e),o(O,l,e),s(l,Dl,e),o(ll,l,e),s(l,Kl,e),s(l,el,e),de(el,cl),de(cl,ce),o(tl,cl,null),s(l,Ol,e),s(l,sl,e),s(l,le,e),o(nl,l,e),s(l,ee,e),o(al,l,e),s(l,te,e),s(l,il,e),s(l,se,e),o(pl,l,e),s(l,ne,e),s(l,ol,e),s(l,ae,e),s(l,ml,e),s(l,ie,e),o(Ml,l,e),s(l,pe,e),s(l,dl,e),oe=!0},p:Ve,i(l){oe||(m(w.$$.fragment,l),m(g.$$.fragment,l),m(f.$$.fragment,l),m(j.$$.fragment,l),m(I.$$.fragment,l),m($.$$.fragment,l),m(Z.$$.fragment,l),m(v.$$.fragment,l),m(W.$$.fragment,l),m(V.$$.fragment,l),m(E.$$.fragment,l),m(R.$$.fragment,l),m(N.$$.fragment,l),m(A.$$.fragment,l),m(S.$$.fragment,l),m(X.$$.fragment,l),m(z.$$.fragment,l),m(L.$$.fragment,l),m(q.$$.fragment,l),m(D.$$.fragment,l),m(K.$$.fragment,l),m(O.$$.fragment,l),m(ll.$$.fragment,l),m(tl.$$.fragment,l),m(nl.$$.fragment,l),m(al.$$.fragment,l),m(pl.$$.fragment,l),m(Ml.$$.fragment,l),oe=!0)},o(l){M(w.$$.fragment,l),M(g.$$.fragment,l),M(f.$$.fragment,l),M(j.$$.fragment,l),M(I.$$.fragment,l),M($.$$.fragment,l),M(Z.$$.fragment,l),M(v.$$.fragment,l),M(W.$$.fragment,l),M(V.$$.fragment,l),M(E.$$.fragment,l),M(R.$$.fragment,l),M(N.$$.fragment,l),M(A.$$.fragment,l),M(S.$$.fragment,l),M(X.$$.fragment,l),M(z.$$.fragment,l),M(L.$$.fragment,l),M(q.$$.fragment,l),M(D.$$.fragment,l),M(K.$$.fragment,l),M(O.$$.fragment,l),M(ll.$$.fragment,l),M(tl.$$.fragment,l),M(nl.$$.fragment,l),M(al.$$.fragment,l),M(pl.$$.fragment,l),M(Ml.$$.fragment,l),oe=!1},d(l){l&&(t(yl),t(rl),t(hl),t(ul),t(Tl),t(U),t(Jl),t(wl),t(gl),t(b),t(Ul),t(C),t(fl),t(jl),t(bl),t(G),t(Cl),t(J),t(Il),t($l),t(B),t(Gl),t(Zl),t(Bl),t(k),t(vl),t(x),t(Wl),t(kl),t(xl),t(Vl),t(_),t(El),t(Rl),t(Q),t(_l),t(Nl),t(Ql),t(Y),t(Al),t(Sl),t(Yl),t(F),t(Xl),t(zl),t(H),t(Fl),t(Ll),t(P),t(Hl),t(ql),t(Pl),t(Dl),t(Kl),t(el),t(Ol),t(sl),t(le),t(ee),t(te),t(il),t(se),t(ne),t(ol),t(ae),t(ml),t(ie),t(pe),t(dl)),t(u),c(w,l),c(g,l),c(f,l),c(j,l),c(I,l),c($,l),c(Z,l),c(v,l),c(W,l),c(V,l),c(E,l),c(R,l),c(N,l),c(A,l),c(S,l),c(X,l),c(z,l),c(L,l),c(q,l),c(D,l),c(K,l),c(O,l),c(ll,l),c(tl),c(nl,l),c(al,l),c(pl,l),c(Ml,l)}}}const ze='{"title":"Evaluating Custom Models","local":"evaluating-custom-models","sections":[{"title":"Creating a Custom Model","local":"creating-a-custom-model","sections":[{"title":"Step 1: Create Your Model Implementation","local":"step-1-create-your-model-implementation","sections":[],"depth":3},{"title":"Step 2: Model File Requirements","local":"step-2-model-file-requirements","sections":[],"depth":3}],"depth":2},{"title":"Running the Evaluation","local":"running-the-evaluation","sections":[{"title":"Using the Command Line","local":"using-the-command-line","sections":[],"depth":3},{"title":"Using the Python API","local":"using-the-python-api","sections":[],"depth":3}],"depth":2},{"title":"Required Methods","local":"required-methods","sections":[{"title":"greedy_until","local":"greedyuntil","sections":[],"depth":3},{"title":"loglikelihood","local":"loglikelihood","sections":[],"depth":3},{"title":"loglikelihood_rolling","local":"loglikelihoodrolling","sections":[],"depth":3}],"depth":2},{"title":"Enabling Caching (Recommended)","local":"enabling-caching-recommended","sections":[{"title":"Step 1: Import Caching Components","local":"step-1-import-caching-components","sections":[],"depth":3},{"title":"Step 2: Initialize Cache in Constructor","local":"step-2-initialize-cache-in-constructor","sections":[],"depth":3}],"depth":2},{"title":"Troubleshooting","local":"troubleshooting","sections":[{"title":"Common Issues","local":"common-issues","sections":[],"depth":3},{"title":"Debugging Tips","local":"debugging-tips","sections":[],"depth":3}],"depth":2}],"depth":1}';function Fe(ye){return Ee(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class De extends Re{constructor(u){super(),_e(this,u,Fe,Xe,xe,{})}}export{De as component}; | |
Xet Storage Details
- Size:
- 27.5 kB
- Xet hash:
- dd79c7b264d534985e37ee1925ddc1cebe22e232ef5cd6d984572e1cb91c9686
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.