Buckets:

rtrm's picture
download
raw
25.5 kB
import{s as Lt,o as St,n as xt}from"../chunks/scheduler.987d3921.js";import{S as Qt,i as It,g as s,s as a,r as d,A as Nt,h as r,f as n,c as i,j as At,u as p,x as M,k as ge,y as Pt,a as l,v as o,d as m,t as f,w as u}from"../chunks/index.c8b1fed4.js";import{T as Xt}from"../chunks/Tip.6bc1e794.js";import{C as h}from"../chunks/CodeBlock.18094d58.js";import{D as Yt}from"../chunks/DocNotebookDropdown.8be6c56e.js";import{H as J,E as qt}from"../chunks/EditOnGithub.a3fde557.js";function Dt(ce){let b,g="Sie können einen PEFT-Adapter entweder mit einer <code>AutoModelFor</code>-Klasse oder der Basismodellklasse wie <code>OPTForCausalLM</code> oder <code>LlamaForCausalLM</code> laden.";return{c(){b=s("p"),b.innerHTML=g},l(c){b=r(c,"P",{"data-svelte-h":!0}),M(b)!=="svelte-2zshms"&&(b.innerHTML=g)},m(c,y){l(c,b,y)},p:xt,d(c){c&&n(b)}}}function Kt(ce){let b,g='Wenn Sie mit der Feinabstimmung eines Modells mit <code>Trainer</code> noch nicht vertraut sind, werfen Sie einen Blick auf das Tutorial <a href="Training">Feinabstimmung eines vortrainierten Modells</a>.';return{c(){b=s("p"),b.innerHTML=g},l(c){b=r(c,"P",{"data-svelte-h":!0}),M(b)!=="svelte-1qi8q6s"&&(b.innerHTML=g)},m(c,y){l(c,b,y)},p:xt,d(c){c&&n(b)}}}function Ot(ce){let b,g,c,y,C,ye,Z,$e,U,Mt='Die <a href="https://huggingface.co/blog/peft" rel="nofollow">Parameter-Efficient Fine Tuning (PEFT)</a> Methoden frieren die vorab trainierten Modellparameter während der Feinabstimmung ein und fügen eine kleine Anzahl trainierbarer Parameter (die Adapter) hinzu. Die Adapter werden trainiert, um aufgabenspezifische Informationen zu lernen. Es hat sich gezeigt, dass dieser Ansatz sehr speichereffizient ist und weniger Rechenleistung beansprucht, während die Ergebnisse mit denen eines vollständig feinabgestimmten Modells vergleichbar sind.',we,_,ct="Adapter, die mit PEFT trainiert wurden, sind in der Regel um eine Größenordnung kleiner als das vollständige Modell, so dass sie bequem gemeinsam genutzt, gespeichert und geladen werden können.",Te,$,ht='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/peft/PEFT-hub-screenshot.png"/> <figcaption class="text-center">Die Adaptergewichte für ein OPTForCausalLM-Modell, die auf dem Hub gespeichert sind, sind nur ~6MB groß, verglichen mit der vollen Größe der Modellgewichte, die ~700MB betragen können.</figcaption>',ke,F,gt='Wenn Sie mehr über die 🤗 PEFT-Bibliothek erfahren möchten, sehen Sie sich die <a href="https://huggingface.co/docs/peft/index" rel="nofollow">Dokumentation</a> an.',ve,B,Je,W,yt="Starten Sie mit der Installation von 🤗 PEFT:",Ce,j,Ze,R,$t="Wenn Sie die brandneuen Funktionen ausprobieren möchten, sollten Sie die Bibliothek aus dem Quellcode installieren:",Ue,z,_e,E,Fe,H,wt="Transformers unterstützt nativ einige PEFT-Methoden, d.h. Sie können lokal oder auf dem Hub gespeicherte Adaptergewichte laden und sie mit wenigen Zeilen Code einfach ausführen oder trainieren. Die folgenden Methoden werden unterstützt:",Be,V,Tt='<li><a href="https://huggingface.co/docs/peft/conceptual_guides/lora" rel="nofollow">Low Rank Adapters</a></li> <li><a href="https://huggingface.co/docs/peft/conceptual_guides/ia3" rel="nofollow">IA3</a></li> <li><a href="https://arxiv.org/abs/2303.10512" rel="nofollow">AdaLoRA</a></li>',We,G,kt='Wenn Sie andere PEFT-Methoden, wie z.B. Prompt Learning oder Prompt Tuning, verwenden möchten, oder über die 🤗 PEFT-Bibliothek im Allgemeinen, lesen Sie bitte die <a href="https://huggingface.co/docs/peft/index" rel="nofollow">Dokumentation</a>.',je,A,Re,X,vt="Um ein PEFT-Adaptermodell von 🤗 Transformers zu laden und zu verwenden, stellen Sie sicher, dass das Hub-Repository oder das lokale Verzeichnis eine <code>adapter_config.json</code>-Datei und die Adaptergewichte enthält, wie im obigen Beispielbild gezeigt. Dann können Sie das PEFT-Adaptermodell mit der Klasse <code>AutoModelFor</code> laden. Um zum Beispiel ein PEFT-Adaptermodell für die kausale Sprachmodellierung zu laden:",ze,x,Jt="<li>Geben Sie die PEFT-Modell-ID an.</li> <li>übergeben Sie es an die Klasse <code>AutoModelForCausalLM</code>.</li>",Ee,L,He,w,Ve,S,Ct="Sie können einen PEFT-Adapter auch laden, indem Sie die Methode <code>load_adapter</code> aufrufen:",Ge,Q,Ae,I,Xe,N,Zt='Die <code>bitsandbytes</code>-Integration unterstützt Datentypen mit 8bit und 4bit Genauigkeit, was für das Laden großer Modelle nützlich ist, weil es Speicher spart (lesen Sie den <code>bitsandbytes</code>-Integrations <a href="./quantization#bitsandbytes-integration">guide</a>, um mehr zu erfahren). Fügen Sie die Parameter <code>load_in_8bit</code> oder <code>load_in_4bit</code> zu <code>from_pretrained()</code> hinzu und setzen Sie <code>device_map=&quot;auto&quot;</code>, um das Modell effektiv auf Ihre Hardware zu verteilen:',xe,P,Le,Y,Se,q,Ut="Sie können <code>~peft.PeftModel.add_adapter</code> verwenden, um einen neuen Adapter zu einem Modell mit einem bestehenden Adapter hinzuzufügen, solange der neue Adapter vom gleichen Typ ist wie der aktuelle Adapter. Wenn Sie zum Beispiel einen bestehenden LoRA-Adapter an ein Modell angehängt haben:",Qe,D,Ie,K,_t="Um einen neuen Adapter hinzuzufügen:",Ne,O,Pe,ee,Ft="Jetzt können Sie mit <code>~peft.PeftModel.set_adapter</code> festlegen, welcher Adapter verwendet werden soll:",Ye,te,qe,ne,De,le,Bt="Sobald Sie einen Adapter zu einem Modell hinzugefügt haben, können Sie das Adaptermodul aktivieren oder deaktivieren. So aktivieren Sie das Adaptermodul:",Ke,ae,Oe,ie,Wt="So deaktivieren Sie das Adaptermodul:",et,se,tt,re,nt,de,jt="PEFT-Adapter werden von der Klasse <code>Trainer</code> unterstützt, so dass Sie einen Adapter für Ihren speziellen Anwendungsfall trainieren können. Dazu müssen Sie nur ein paar weitere Codezeilen hinzufügen. Zum Beispiel, um einen LoRA-Adapter zu trainieren:",lt,T,at,pe,Rt="<li>Definieren Sie Ihre Adapterkonfiguration mit dem Aufgabentyp und den Hyperparametern (siehe <code>~peft.LoraConfig</code> für weitere Details darüber, was die Hyperparameter tun).</li>",it,oe,st,k,zt="<li>Fügen Sie dem Modell einen Adapter hinzu.</li>",rt,me,dt,v,Et="<li>Jetzt können Sie das Modell an <code>Trainer</code> übergeben!</li>",pt,fe,ot,ue,Ht="So speichern Sie Ihren trainierten Adapter und laden ihn wieder:",mt,be,ft,Me,ut,he,bt;return C=new J({props:{title:"Adapter mit 🤗 PEFT laden",local:"adapter-mit--peft-laden",headingTag:"h1"}}),Z=new Yt({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/de/peft.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/de/pytorch/peft.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/de/tensorflow/peft.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/de/peft.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/de/pytorch/peft.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/de/tensorflow/peft.ipynb"}]}}),B=new J({props:{title:"Setup",local:"setup",headingTag:"h2"}}),j=new h({props:{code:"cGlwJTIwaW5zdGFsbCUyMHBlZnQ=",highlighted:"pip install peft",wrap:!1}}),z=new h({props:{code:"cGlwJTIwaW5zdGFsbCUyMGdpdCUyQmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmh1Z2dpbmdmYWNlJTJGcGVmdC5naXQ=",highlighted:"pip install git+https://github.com/huggingface/peft.git",wrap:!1}}),E=new J({props:{title:"Unterstützte PEFT-Modelle",local:"unterstützte-peft-modelle",headingTag:"h2"}}),A=new J({props:{title:"Laden Sie einen PEFT-Adapter",local:"laden-sie-einen-peft-adapter",headingTag:"h2"}}),L=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQXBlZnRfbW9kZWxfaWQlMjAlM0QlMjAlMjJ5YmVsa2FkYSUyRm9wdC0zNTBtLWxvcmElMjIlMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNLmZyb21fcHJldHJhaW5lZChwZWZ0X21vZGVsX2lkKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, AutoTokenizer
peft_model_id = <span class="hljs-string">&quot;ybelkada/opt-350m-lora&quot;</span>
model = AutoModelForCausalLM.from_pretrained(peft_model_id)`,wrap:!1}}),w=new Xt({props:{$$slots:{default:[Dt]},$$scope:{ctx:ce}}}),Q=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyZmFjZWJvb2slMkZvcHQtMzUwbSUyMiUwQXBlZnRfbW9kZWxfaWQlMjAlM0QlMjAlMjJ5YmVsa2FkYSUyRm9wdC0zNTBtLWxvcmElMjIlMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNLmZyb21fcHJldHJhaW5lZChtb2RlbF9pZCklMEFtb2RlbC5sb2FkX2FkYXB0ZXIocGVmdF9tb2RlbF9pZCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, AutoTokenizer
model_id = <span class="hljs-string">&quot;facebook/opt-350m&quot;</span>
peft_model_id = <span class="hljs-string">&quot;ybelkada/opt-350m-lora&quot;</span>
model = AutoModelForCausalLM.from_pretrained(model_id)
model.load_adapter(peft_model_id)`,wrap:!1}}),I=new J({props:{title:"Laden in 8bit oder 4bit",local:"laden-in-8bit-oder-4bit",headingTag:"h2"}}),P=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQXV0b1Rva2VuaXplciUyQyUyMEJpdHNBbmRCeXRlc0NvbmZpZyUwQSUwQXBlZnRfbW9kZWxfaWQlMjAlM0QlMjAlMjJ5YmVsa2FkYSUyRm9wdC0zNTBtLWxvcmElMjIlMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNLmZyb21fcHJldHJhaW5lZChwZWZ0X21vZGVsX2lkJTJDJTIwcXVhbnRpemF0aW9uX2NvbmZpZyUzREJpdHNBbmRCeXRlc0NvbmZpZyhsb2FkX2luXzhiaXQlM0RUcnVlKSk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
peft_model_id = <span class="hljs-string">&quot;ybelkada/opt-350m-lora&quot;</span>
model = AutoModelForCausalLM.from_pretrained(peft_model_id, quantization_config=BitsAndBytesConfig(load_in_8bit=<span class="hljs-literal">True</span>))`,wrap:!1}}),Y=new J({props:{title:"Einen neuen Adapter hinzufügen",local:"einen-neuen-adapter-hinzufügen",headingTag:"h2"}}),D=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwT1BURm9yQ2F1c2FsTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBZnJvbSUyMHBlZnQlMjBpbXBvcnQlMjBQZWZ0Q29uZmlnJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJmYWNlYm9vayUyRm9wdC0zNTBtJTIyJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JDYXVzYWxMTS5mcm9tX3ByZXRyYWluZWQobW9kZWxfaWQpJTBBJTBBbG9yYV9jb25maWclMjAlM0QlMjBMb3JhQ29uZmlnKCUwQSUyMCUyMCUyMCUyMHRhcmdldF9tb2R1bGVzJTNEJTVCJTIycV9wcm9qJTIyJTJDJTIwJTIya19wcm9qJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwaW5pdF9sb3JhX3dlaWdodHMlM0RGYWxzZSUwQSklMEElMEFtb2RlbC5hZGRfYWRhcHRlcihsb3JhX2NvbmZpZyUyQyUyMGFkYXB0ZXJfbmFtZSUzRCUyMmFkYXB0ZXJfMSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, OPTForCausalLM, AutoTokenizer
<span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> PeftConfig
model_id = <span class="hljs-string">&quot;facebook/opt-350m&quot;</span>
model = AutoModelForCausalLM.from_pretrained(model_id)
lora_config = LoraConfig(
target_modules=[<span class="hljs-string">&quot;q_proj&quot;</span>, <span class="hljs-string">&quot;k_proj&quot;</span>],
init_lora_weights=<span class="hljs-literal">False</span>
)
model.add_adapter(lora_config, adapter_name=<span class="hljs-string">&quot;adapter_1&quot;</span>)`,wrap:!1}}),O=new h({props:{code:"JTIzJTIwYXR0YWNoJTIwbmV3JTIwYWRhcHRlciUyMHdpdGglMjBzYW1lJTIwY29uZmlnJTBBbW9kZWwuYWRkX2FkYXB0ZXIobG9yYV9jb25maWclMkMlMjBhZGFwdGVyX25hbWUlM0QlMjJhZGFwdGVyXzIlMjIp",highlighted:`<span class="hljs-comment"># attach new adapter with same config</span>
model.add_adapter(lora_config, adapter_name=<span class="hljs-string">&quot;adapter_2&quot;</span>)`,wrap:!1}}),te=new h({props:{code:"JTIzJTIwdXNlJTIwYWRhcHRlcl8xJTBBbW9kZWwuc2V0X2FkYXB0ZXIoJTIyYWRhcHRlcl8xJTIyKSUwQW91dHB1dCUyMCUzRCUyMG1vZGVsLmdlbmVyYXRlKCoqaW5wdXRzKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUob3V0cHV0X2Rpc2FibGVkJTVCMCU1RCUyQyUyMHNraXBfc3BlY2lhbF90b2tlbnMlM0RUcnVlKSklMEElMEElMjMlMjB1c2UlMjBhZGFwdGVyXzIlMEFtb2RlbC5zZXRfYWRhcHRlciglMjJhZGFwdGVyXzIlMjIpJTBBb3V0cHV0X2VuYWJsZWQlMjAlM0QlMjBtb2RlbC5nZW5lcmF0ZSgqKmlucHV0cyklMEFwcmludCh0b2tlbml6ZXIuZGVjb2RlKG91dHB1dF9lbmFibGVkJTVCMCU1RCUyQyUyMHNraXBfc3BlY2lhbF90b2tlbnMlM0RUcnVlKSk=",highlighted:`<span class="hljs-comment"># use adapter_1</span>
model.set_adapter(<span class="hljs-string">&quot;adapter_1&quot;</span>)
output = model.generate(**inputs)
<span class="hljs-built_in">print</span>(tokenizer.decode(output_disabled[<span class="hljs-number">0</span>], skip_special_tokens=<span class="hljs-literal">True</span>))
<span class="hljs-comment"># use adapter_2</span>
model.set_adapter(<span class="hljs-string">&quot;adapter_2&quot;</span>)
output_enabled = model.generate(**inputs)
<span class="hljs-built_in">print</span>(tokenizer.decode(output_enabled[<span class="hljs-number">0</span>], skip_special_tokens=<span class="hljs-literal">True</span>))`,wrap:!1}}),ne=new J({props:{title:"Aktivieren und Deaktivieren von Adaptern",local:"aktivieren-und-deaktivieren-von-adaptern",headingTag:"h2"}}),ae=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwT1BURm9yQ2F1c2FsTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBZnJvbSUyMHBlZnQlMjBpbXBvcnQlMjBQZWZ0Q29uZmlnJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJmYWNlYm9vayUyRm9wdC0zNTBtJTIyJTBBYWRhcHRlcl9tb2RlbF9pZCUyMCUzRCUyMCUyMnliZWxrYWRhJTJGb3B0LTM1MG0tbG9yYSUyMiUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2lkKSUwQXRleHQlMjAlM0QlMjAlMjJIZWxsbyUyMiUwQWlucHV0cyUyMCUzRCUyMHRva2VuaXplcih0ZXh0JTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNLmZyb21fcHJldHJhaW5lZChtb2RlbF9pZCklMEFwZWZ0X2NvbmZpZyUyMCUzRCUyMFBlZnRDb25maWcuZnJvbV9wcmV0cmFpbmVkKGFkYXB0ZXJfbW9kZWxfaWQpJTBBJTBBJTIzJTIwdG8lMjBpbml0aWF0ZSUyMHdpdGglMjByYW5kb20lMjB3ZWlnaHRzJTBBcGVmdF9jb25maWcuaW5pdF9sb3JhX3dlaWdodHMlMjAlM0QlMjBGYWxzZSUwQSUwQW1vZGVsLmFkZF9hZGFwdGVyKHBlZnRfY29uZmlnKSUwQW1vZGVsLmVuYWJsZV9hZGFwdGVycygpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwuZ2VuZXJhdGUoKippbnB1dHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, OPTForCausalLM, AutoTokenizer
<span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> PeftConfig
model_id = <span class="hljs-string">&quot;facebook/opt-350m&quot;</span>
adapter_model_id = <span class="hljs-string">&quot;ybelkada/opt-350m-lora&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(model_id)
text = <span class="hljs-string">&quot;Hello&quot;</span>
inputs = tokenizer(text, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
model = AutoModelForCausalLM.from_pretrained(model_id)
peft_config = PeftConfig.from_pretrained(adapter_model_id)
<span class="hljs-comment"># to initiate with random weights</span>
peft_config.init_lora_weights = <span class="hljs-literal">False</span>
model.add_adapter(peft_config)
model.enable_adapters()
output = model.generate(**inputs)`,wrap:!1}}),se=new h({props:{code:"bW9kZWwuZGlzYWJsZV9hZGFwdGVycygpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwuZ2VuZXJhdGUoKippbnB1dHMp",highlighted:`model.disable_adapters()
output = model.generate(**inputs)`,wrap:!1}}),re=new J({props:{title:"PEFT-Adapter trainieren",local:"peft-adapter-trainieren",headingTag:"h2"}}),T=new Xt({props:{$$slots:{default:[Kt]},$$scope:{ctx:ce}}}),oe=new h({props:{code:"ZnJvbSUyMHBlZnQlMjBpbXBvcnQlMjBMb3JhQ29uZmlnJTBBJTBBcGVmdF9jb25maWclMjAlM0QlMjBMb3JhQ29uZmlnKCUwQSUyMCUyMCUyMCUyMGxvcmFfYWxwaGElM0QxNiUyQyUwQSUyMCUyMCUyMCUyMGxvcmFfZHJvcG91dCUzRDAuMSUyQyUwQSUyMCUyMCUyMCUyMHIlM0Q2NCUyQyUwQSUyMCUyMCUyMCUyMGJpYXMlM0QlMjJub25lJTIyJTJDJTBBJTIwJTIwJTIwJTIwdGFza190eXBlJTNEJTIyQ0FVU0FMX0xNJTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> LoraConfig
peft_config = LoraConfig(
lora_alpha=<span class="hljs-number">16</span>,
lora_dropout=<span class="hljs-number">0.1</span>,
r=<span class="hljs-number">64</span>,
bias=<span class="hljs-string">&quot;none&quot;</span>,
task_type=<span class="hljs-string">&quot;CAUSAL_LM&quot;</span>,
)`,wrap:!1}}),me=new h({props:{code:"bW9kZWwuYWRkX2FkYXB0ZXIocGVmdF9jb25maWcp",highlighted:"model.add_adapter(peft_config)",wrap:!1}}),fe=new h({props:{code:"dHJhaW5lciUyMCUzRCUyMFRyYWluZXIobW9kZWwlM0Rtb2RlbCUyQyUyMC4uLiklMEF0cmFpbmVyLnRyYWluKCk=",highlighted:`trainer = Trainer(model=model, ...)
trainer.train()`,wrap:!1}}),be=new h({props:{code:"bW9kZWwuc2F2ZV9wcmV0cmFpbmVkKHNhdmVfZGlyKSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKHNhdmVfZGlyKQ==",highlighted:`model.save_pretrained(save_dir)
model = AutoModelForCausalLM.from_pretrained(save_dir)`,wrap:!1}}),Me=new qt({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/de/peft.md"}}),{c(){b=s("meta"),g=a(),c=s("p"),y=a(),d(C.$$.fragment),ye=a(),d(Z.$$.fragment),$e=a(),U=s("p"),U.innerHTML=Mt,we=a(),_=s("p"),_.textContent=ct,Te=a(),$=s("div"),$.innerHTML=ht,ke=a(),F=s("p"),F.innerHTML=gt,ve=a(),d(B.$$.fragment),Je=a(),W=s("p"),W.textContent=yt,Ce=a(),d(j.$$.fragment),Ze=a(),R=s("p"),R.textContent=$t,Ue=a(),d(z.$$.fragment),_e=a(),d(E.$$.fragment),Fe=a(),H=s("p"),H.textContent=wt,Be=a(),V=s("ul"),V.innerHTML=Tt,We=a(),G=s("p"),G.innerHTML=kt,je=a(),d(A.$$.fragment),Re=a(),X=s("p"),X.innerHTML=vt,ze=a(),x=s("ol"),x.innerHTML=Jt,Ee=a(),d(L.$$.fragment),He=a(),d(w.$$.fragment),Ve=a(),S=s("p"),S.innerHTML=Ct,Ge=a(),d(Q.$$.fragment),Ae=a(),d(I.$$.fragment),Xe=a(),N=s("p"),N.innerHTML=Zt,xe=a(),d(P.$$.fragment),Le=a(),d(Y.$$.fragment),Se=a(),q=s("p"),q.innerHTML=Ut,Qe=a(),d(D.$$.fragment),Ie=a(),K=s("p"),K.textContent=_t,Ne=a(),d(O.$$.fragment),Pe=a(),ee=s("p"),ee.innerHTML=Ft,Ye=a(),d(te.$$.fragment),qe=a(),d(ne.$$.fragment),De=a(),le=s("p"),le.textContent=Bt,Ke=a(),d(ae.$$.fragment),Oe=a(),ie=s("p"),ie.textContent=Wt,et=a(),d(se.$$.fragment),tt=a(),d(re.$$.fragment),nt=a(),de=s("p"),de.innerHTML=jt,lt=a(),d(T.$$.fragment),at=a(),pe=s("ol"),pe.innerHTML=Rt,it=a(),d(oe.$$.fragment),st=a(),k=s("ol"),k.innerHTML=zt,rt=a(),d(me.$$.fragment),dt=a(),v=s("ol"),v.innerHTML=Et,pt=a(),d(fe.$$.fragment),ot=a(),ue=s("p"),ue.textContent=Ht,mt=a(),d(be.$$.fragment),ft=a(),d(Me.$$.fragment),ut=a(),he=s("p"),this.h()},l(e){const t=Nt("svelte-u9bgzb",document.head);b=r(t,"META",{name:!0,content:!0}),t.forEach(n),g=i(e),c=r(e,"P",{}),At(c).forEach(n),y=i(e),p(C.$$.fragment,e),ye=i(e),p(Z.$$.fragment,e),$e=i(e),U=r(e,"P",{"data-svelte-h":!0}),M(U)!=="svelte-hsx716"&&(U.innerHTML=Mt),we=i(e),_=r(e,"P",{"data-svelte-h":!0}),M(_)!=="svelte-oo13ds"&&(_.textContent=ct),Te=i(e),$=r(e,"DIV",{class:!0,"data-svelte-h":!0}),M($)!=="svelte-c63tvn"&&($.innerHTML=ht),ke=i(e),F=r(e,"P",{"data-svelte-h":!0}),M(F)!=="svelte-1x4iyf"&&(F.innerHTML=gt),ve=i(e),p(B.$$.fragment,e),Je=i(e),W=r(e,"P",{"data-svelte-h":!0}),M(W)!=="svelte-l2w44q"&&(W.textContent=yt),Ce=i(e),p(j.$$.fragment,e),Ze=i(e),R=r(e,"P",{"data-svelte-h":!0}),M(R)!=="svelte-yjewq8"&&(R.textContent=$t),Ue=i(e),p(z.$$.fragment,e),_e=i(e),p(E.$$.fragment,e),Fe=i(e),H=r(e,"P",{"data-svelte-h":!0}),M(H)!=="svelte-n01ak8"&&(H.textContent=wt),Be=i(e),V=r(e,"UL",{"data-svelte-h":!0}),M(V)!=="svelte-1ulyaf4"&&(V.innerHTML=Tt),We=i(e),G=r(e,"P",{"data-svelte-h":!0}),M(G)!=="svelte-1hsc4d0"&&(G.innerHTML=kt),je=i(e),p(A.$$.fragment,e),Re=i(e),X=r(e,"P",{"data-svelte-h":!0}),M(X)!=="svelte-m03b6b"&&(X.innerHTML=vt),ze=i(e),x=r(e,"OL",{"data-svelte-h":!0}),M(x)!=="svelte-1p7myyj"&&(x.innerHTML=Jt),Ee=i(e),p(L.$$.fragment,e),He=i(e),p(w.$$.fragment,e),Ve=i(e),S=r(e,"P",{"data-svelte-h":!0}),M(S)!=="svelte-d2kaw9"&&(S.innerHTML=Ct),Ge=i(e),p(Q.$$.fragment,e),Ae=i(e),p(I.$$.fragment,e),Xe=i(e),N=r(e,"P",{"data-svelte-h":!0}),M(N)!=="svelte-1917vd5"&&(N.innerHTML=Zt),xe=i(e),p(P.$$.fragment,e),Le=i(e),p(Y.$$.fragment,e),Se=i(e),q=r(e,"P",{"data-svelte-h":!0}),M(q)!=="svelte-n2ugt0"&&(q.innerHTML=Ut),Qe=i(e),p(D.$$.fragment,e),Ie=i(e),K=r(e,"P",{"data-svelte-h":!0}),M(K)!=="svelte-1198s84"&&(K.textContent=_t),Ne=i(e),p(O.$$.fragment,e),Pe=i(e),ee=r(e,"P",{"data-svelte-h":!0}),M(ee)!=="svelte-jt7cnj"&&(ee.innerHTML=Ft),Ye=i(e),p(te.$$.fragment,e),qe=i(e),p(ne.$$.fragment,e),De=i(e),le=r(e,"P",{"data-svelte-h":!0}),M(le)!=="svelte-1h3vgmm"&&(le.textContent=Bt),Ke=i(e),p(ae.$$.fragment,e),Oe=i(e),ie=r(e,"P",{"data-svelte-h":!0}),M(ie)!=="svelte-14k4vtu"&&(ie.textContent=Wt),et=i(e),p(se.$$.fragment,e),tt=i(e),p(re.$$.fragment,e),nt=i(e),de=r(e,"P",{"data-svelte-h":!0}),M(de)!=="svelte-tszlee"&&(de.innerHTML=jt),lt=i(e),p(T.$$.fragment,e),at=i(e),pe=r(e,"OL",{"data-svelte-h":!0}),M(pe)!=="svelte-ec6ptw"&&(pe.innerHTML=Rt),it=i(e),p(oe.$$.fragment,e),st=i(e),k=r(e,"OL",{start:!0,"data-svelte-h":!0}),M(k)!=="svelte-pjgoc8"&&(k.innerHTML=zt),rt=i(e),p(me.$$.fragment,e),dt=i(e),v=r(e,"OL",{start:!0,"data-svelte-h":!0}),M(v)!=="svelte-1ihq60u"&&(v.innerHTML=Et),pt=i(e),p(fe.$$.fragment,e),ot=i(e),ue=r(e,"P",{"data-svelte-h":!0}),M(ue)!=="svelte-7lvzty"&&(ue.textContent=Ht),mt=i(e),p(be.$$.fragment,e),ft=i(e),p(Me.$$.fragment,e),ut=i(e),he=r(e,"P",{}),At(he).forEach(n),this.h()},h(){ge(b,"name","hf:doc:metadata"),ge(b,"content",en),ge($,"class","flex flex-col justify-center"),ge(k,"start","2"),ge(v,"start","3")},m(e,t){Pt(document.head,b),l(e,g,t),l(e,c,t),l(e,y,t),o(C,e,t),l(e,ye,t),o(Z,e,t),l(e,$e,t),l(e,U,t),l(e,we,t),l(e,_,t),l(e,Te,t),l(e,$,t),l(e,ke,t),l(e,F,t),l(e,ve,t),o(B,e,t),l(e,Je,t),l(e,W,t),l(e,Ce,t),o(j,e,t),l(e,Ze,t),l(e,R,t),l(e,Ue,t),o(z,e,t),l(e,_e,t),o(E,e,t),l(e,Fe,t),l(e,H,t),l(e,Be,t),l(e,V,t),l(e,We,t),l(e,G,t),l(e,je,t),o(A,e,t),l(e,Re,t),l(e,X,t),l(e,ze,t),l(e,x,t),l(e,Ee,t),o(L,e,t),l(e,He,t),o(w,e,t),l(e,Ve,t),l(e,S,t),l(e,Ge,t),o(Q,e,t),l(e,Ae,t),o(I,e,t),l(e,Xe,t),l(e,N,t),l(e,xe,t),o(P,e,t),l(e,Le,t),o(Y,e,t),l(e,Se,t),l(e,q,t),l(e,Qe,t),o(D,e,t),l(e,Ie,t),l(e,K,t),l(e,Ne,t),o(O,e,t),l(e,Pe,t),l(e,ee,t),l(e,Ye,t),o(te,e,t),l(e,qe,t),o(ne,e,t),l(e,De,t),l(e,le,t),l(e,Ke,t),o(ae,e,t),l(e,Oe,t),l(e,ie,t),l(e,et,t),o(se,e,t),l(e,tt,t),o(re,e,t),l(e,nt,t),l(e,de,t),l(e,lt,t),o(T,e,t),l(e,at,t),l(e,pe,t),l(e,it,t),o(oe,e,t),l(e,st,t),l(e,k,t),l(e,rt,t),o(me,e,t),l(e,dt,t),l(e,v,t),l(e,pt,t),o(fe,e,t),l(e,ot,t),l(e,ue,t),l(e,mt,t),o(be,e,t),l(e,ft,t),o(Me,e,t),l(e,ut,t),l(e,he,t),bt=!0},p(e,[t]){const Vt={};t&2&&(Vt.$$scope={dirty:t,ctx:e}),w.$set(Vt);const Gt={};t&2&&(Gt.$$scope={dirty:t,ctx:e}),T.$set(Gt)},i(e){bt||(m(C.$$.fragment,e),m(Z.$$.fragment,e),m(B.$$.fragment,e),m(j.$$.fragment,e),m(z.$$.fragment,e),m(E.$$.fragment,e),m(A.$$.fragment,e),m(L.$$.fragment,e),m(w.$$.fragment,e),m(Q.$$.fragment,e),m(I.$$.fragment,e),m(P.$$.fragment,e),m(Y.$$.fragment,e),m(D.$$.fragment,e),m(O.$$.fragment,e),m(te.$$.fragment,e),m(ne.$$.fragment,e),m(ae.$$.fragment,e),m(se.$$.fragment,e),m(re.$$.fragment,e),m(T.$$.fragment,e),m(oe.$$.fragment,e),m(me.$$.fragment,e),m(fe.$$.fragment,e),m(be.$$.fragment,e),m(Me.$$.fragment,e),bt=!0)},o(e){f(C.$$.fragment,e),f(Z.$$.fragment,e),f(B.$$.fragment,e),f(j.$$.fragment,e),f(z.$$.fragment,e),f(E.$$.fragment,e),f(A.$$.fragment,e),f(L.$$.fragment,e),f(w.$$.fragment,e),f(Q.$$.fragment,e),f(I.$$.fragment,e),f(P.$$.fragment,e),f(Y.$$.fragment,e),f(D.$$.fragment,e),f(O.$$.fragment,e),f(te.$$.fragment,e),f(ne.$$.fragment,e),f(ae.$$.fragment,e),f(se.$$.fragment,e),f(re.$$.fragment,e),f(T.$$.fragment,e),f(oe.$$.fragment,e),f(me.$$.fragment,e),f(fe.$$.fragment,e),f(be.$$.fragment,e),f(Me.$$.fragment,e),bt=!1},d(e){e&&(n(g),n(c),n(y),n(ye),n($e),n(U),n(we),n(_),n(Te),n($),n(ke),n(F),n(ve),n(Je),n(W),n(Ce),n(Ze),n(R),n(Ue),n(_e),n(Fe),n(H),n(Be),n(V),n(We),n(G),n(je),n(Re),n(X),n(ze),n(x),n(Ee),n(He),n(Ve),n(S),n(Ge),n(Ae),n(Xe),n(N),n(xe),n(Le),n(Se),n(q),n(Qe),n(Ie),n(K),n(Ne),n(Pe),n(ee),n(Ye),n(qe),n(De),n(le),n(Ke),n(Oe),n(ie),n(et),n(tt),n(nt),n(de),n(lt),n(at),n(pe),n(it),n(st),n(k),n(rt),n(dt),n(v),n(pt),n(ot),n(ue),n(mt),n(ft),n(ut),n(he)),n(b),u(C,e),u(Z,e),u(B,e),u(j,e),u(z,e),u(E,e),u(A,e),u(L,e),u(w,e),u(Q,e),u(I,e),u(P,e),u(Y,e),u(D,e),u(O,e),u(te,e),u(ne,e),u(ae,e),u(se,e),u(re,e),u(T,e),u(oe,e),u(me,e),u(fe,e),u(be,e),u(Me,e)}}}const en='{"title":"Adapter mit 🤗 PEFT laden","local":"adapter-mit--peft-laden","sections":[{"title":"Setup","local":"setup","sections":[],"depth":2},{"title":"Unterstützte PEFT-Modelle","local":"unterstützte-peft-modelle","sections":[],"depth":2},{"title":"Laden Sie einen PEFT-Adapter","local":"laden-sie-einen-peft-adapter","sections":[],"depth":2},{"title":"Laden in 8bit oder 4bit","local":"laden-in-8bit-oder-4bit","sections":[],"depth":2},{"title":"Einen neuen Adapter hinzufügen","local":"einen-neuen-adapter-hinzufügen","sections":[],"depth":2},{"title":"Aktivieren und Deaktivieren von Adaptern","local":"aktivieren-und-deaktivieren-von-adaptern","sections":[],"depth":2},{"title":"PEFT-Adapter trainieren","local":"peft-adapter-trainieren","sections":[],"depth":2}],"depth":1}';function tn(ce){return St(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pn extends Qt{constructor(b){super(),It(this,b,tn,Ot,Lt,{})}}export{pn as component};

Xet Storage Details

Size:
25.5 kB
·
Xet hash:
7288675560be92393f414c510fd182d4e77f07d63b92bef315ace163a4108583

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