Buckets:
| import{s as Nt,o as It,n as Lt}from"../chunks/scheduler.9bc65507.js";import{S as zt,i as Pt,g as p,s,r as i,A as Yt,h as o,f as l,c as n,j as xt,u as m,x as u,k as ye,y as At,a,v as r,d as f,t as d,w as b}from"../chunks/index.707bf1b6.js";import{T as Qt}from"../chunks/Tip.c2ecdbf4.js";import{C as $}from"../chunks/CodeBlock.54a9f38d.js";import{D as qt}from"../chunks/DocNotebookDropdown.41f65cb5.js";import{H as Z,E as St}from"../chunks/EditOnGithub.922df6ba.js";function Kt(ce){let M,y="<code>AutoModelFor</code> 클래스나 기본 모델 클래스(예: <code>OPTForCausalLM</code> 또는 <code>LlamaForCausalLM</code>) 중 하나를 사용하여 PEFT 어댑터를 가져올 수 있습니다.";return{c(){M=p("p"),M.innerHTML=y},l(c){M=o(c,"P",{"data-svelte-h":!0}),u(M)!=="svelte-6og35c"&&(M.innerHTML=y)},m(c,T){a(c,M,T)},p:Lt,d(c){c&&l(M)}}}function Dt(ce){let M,y='<code>Trainer</code>를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 <a href="training">사전훈련된 모델을 미세 조정하기</a> 튜토리얼을 확인하세요.';return{c(){M=p("p"),M.innerHTML=y},l(c){M=o(c,"P",{"data-svelte-h":!0}),u(M)!=="svelte-cztuzc"&&(M.innerHTML=y)},m(c,T){a(c,M,T)},p:Lt,d(c){c&&l(M)}}}function Ot(ce){let M,y,c,T,k,Te,_,we,U,ut='<a href="https://huggingface.co/blog/peft" rel="nofollow">Parameter-Efficient Fine Tuning (PEFT)</a> 방법은 사전훈련된 모델의 매개변수를 미세 조정 중 고정시키고, 그 위에 훈련할 수 있는 매우 적은 수의 매개변수(어댑터)를 추가합니다. 어댑터는 작업별 정보를 학습하도록 훈련됩니다. 이 접근 방식은 완전히 미세 조정된 모델에 필적하는 결과를 생성하면서, 메모리 효율적이고 비교적 적은 컴퓨팅 리소스를 사용합니다.',he,v,ct="또한 PEFT로 훈련된 어댑터는 일반적으로 전체 모델보다 훨씬 작기 때문에 공유, 저장 및 가져오기가 편리합니다.",ge,w,$t='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/peft/PEFT-hub-screenshot.png"/> <figcaption class="text-center">Hub에 저장된 OPTForCausalLM 모델의 어댑터 가중치는 최대 700MB에 달하는 모델 가중치의 전체 크기에 비해 약 6MB에 불과합니다.</figcaption>',Je,F,yt='🤗 PEFT 라이브러리에 대해 자세히 알아보려면 <a href="https://huggingface.co/docs/peft/index" rel="nofollow">문서</a>를 확인하세요.',Ce,W,Ze,B,Tt="🤗 PEFT를 설치하여 시작하세요:",ke,j,_e,R,wt="새로운 기능을 사용해보고 싶다면, 다음 소스에서 라이브러리를 설치하는 것이 좋습니다:",Ue,V,ve,H,Fe,E,ht="🤗 Transformers는 기본적으로 일부 PEFT 방법을 지원하며, 로컬이나 Hub에 저장된 어댑터 가중치를 가져오고 몇 줄의 코드만으로 쉽게 실행하거나 훈련할 수 있습니다. 다음 방법을 지원합니다:",We,X,gt='<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>',Be,G,Jt='🤗 PEFT와 관련된 다른 방법(예: 프롬프트 훈련 또는 프롬프트 튜닝) 또는 일반적인 🤗 PEFT 라이브러리에 대해 자세히 알아보려면 <a href="https://huggingface.co/docs/peft/index" rel="nofollow">문서</a>를 참조하세요.',je,x,Re,Q,Ct="🤗 Transformers에서 PEFT 어댑터 모델을 가져오고 사용하려면 Hub 저장소나 로컬 디렉터리에 <code>adapter_config.json</code> 파일과 어댑터 가중치가 포함되어 있는지 확인하십시오. 그런 다음 <code>AutoModelFor</code> 클래스를 사용하여 PEFT 어댑터 모델을 가져올 수 있습니다. 예를 들어 인과 관계 언어 모델용 PEFT 어댑터 모델을 가져오려면 다음 단계를 따르십시오:",Ve,L,Zt="<li>PEFT 모델 ID를 지정하십시오.</li> <li><code>AutoModelForCausalLM</code> 클래스에 전달하십시오.</li>",He,N,Ee,h,Xe,I,kt="<code>load_adapter</code> 메소드를 호출하여 PEFT 어댑터를 가져올 수도 있습니다.",Ge,z,xe,P,Qe,Y,_t="<code>bitsandbytes</code> 통합은 8비트와 4비트 정밀도 데이터 유형을 지원하므로 큰 모델을 가져올 때 유용하면서 메모리도 절약합니다. 모델을 하드웨어에 효과적으로 분배하려면 <code>from_pretrained()</code>에 <code>load_in_8bit</code> 또는 <code>load_in_4bit</code> 매개변수를 추가하고 <code>device_map="auto"</code>를 설정하세요:",Le,A,Ne,q,Ie,S,Ut="새 어댑터가 현재 어댑터와 동일한 유형인 경우에 한해 기존 어댑터가 있는 모델에 새 어댑터를 추가하려면 <code>~peft.PeftModel.add_adapter</code>를 사용할 수 있습니다. 예를 들어 모델에 기존 LoRA 어댑터가 연결되어 있는 경우:",ze,K,Pe,D,vt="새 어댑터를 추가하려면:",Ye,O,Ae,ee,Ft="이제 <code>~peft.PeftModel.set_adapter</code>를 사용하여 어댑터를 사용할 어댑터로 설정할 수 있습니다:",qe,te,Se,le,Ke,ae,Wt="모델에 어댑터를 추가한 후 어댑터 모듈을 활성화 또는 비활성화할 수 있습니다. 어댑터 모듈을 활성화하려면:",De,se,Oe,ne,Bt="어댑터 모듈을 비활성화하려면:",et,pe,tt,oe,lt,ie,jt="PEFT 어댑터는 <code>Trainer</code> 클래스에서 지원되므로 특정 사용 사례에 맞게 어댑터를 훈련할 수 있습니다. 몇 줄의 코드를 추가하기만 하면 됩니다. 예를 들어 LoRA 어댑터를 훈련하려면:",at,g,st,me,Rt="<li>작업 유형 및 하이퍼파라미터를 지정하여 어댑터 구성을 정의합니다. 하이퍼파라미터에 대한 자세한 내용은 <code>~peft.LoraConfig</code>를 참조하세요.</li>",nt,re,pt,J,Vt="<li>모델에 어댑터를 추가합니다.</li>",ot,fe,it,C,Ht="<li>이제 모델을 <code>Trainer</code>에 전달할 수 있습니다!</li>",mt,de,rt,be,Et="훈련한 어댑터를 저장하고 다시 가져오려면:",ft,Me,dt,ue,bt,$e,Mt;return k=new Z({props:{title:"🤗 PEFT로 어댑터 가져오기",local:"load-adapters-with-peft",headingTag:"h1"}}),_=new qt({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/ko/peft.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/ko/pytorch/peft.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/ko/tensorflow/peft.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ko/peft.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ko/pytorch/peft.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/ko/tensorflow/peft.ipynb"}]}}),W=new Z({props:{title:"설정",local:"setup",headingTag:"h2"}}),j=new $({props:{code:"cGlwJTIwaW5zdGFsbCUyMHBlZnQ=",highlighted:"pip install peft",wrap:!1}}),V=new $({props:{code:"cGlwJTIwaW5zdGFsbCUyMGdpdCUyQmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmh1Z2dpbmdmYWNlJTJGcGVmdC5naXQ=",highlighted:"pip install git+https://github.com/huggingface/peft.git",wrap:!1}}),H=new Z({props:{title:"지원되는 PEFT 모델",local:"supported-peft-models",headingTag:"h2"}}),x=new Z({props:{title:"PEFT 어댑터 가져오기",local:"load-a-peft-adapter",headingTag:"h2"}}),N=new $({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">"ybelkada/opt-350m-lora"</span> | |
| model = AutoModelForCausalLM.from_pretrained(peft_model_id)`,wrap:!1}}),h=new Qt({props:{$$slots:{default:[Kt]},$$scope:{ctx:ce}}}),z=new $({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">"facebook/opt-350m"</span> | |
| peft_model_id = <span class="hljs-string">"ybelkada/opt-350m-lora"</span> | |
| model = AutoModelForCausalLM.from_pretrained(model_id) | |
| model.load_adapter(peft_model_id)`,wrap:!1}}),P=new Z({props:{title:"8비트 또는 4비트로 가져오기",local:"load-in-8bit-or-4bit",headingTag:"h2"}}),A=new $({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">"ybelkada/opt-350m-lora"</span> | |
| model = AutoModelForCausalLM.from_pretrained(peft_model_id, quantization_config=BitsAndBytesConfig(load_in_8bit=<span class="hljs-literal">True</span>))`,wrap:!1}}),q=new Z({props:{title:"새 어댑터 추가",local:"add-a-new-adapter",headingTag:"h2"}}),K=new $({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">"facebook/opt-350m"</span> | |
| model = AutoModelForCausalLM.from_pretrained(model_id) | |
| lora_config = LoraConfig( | |
| target_modules=[<span class="hljs-string">"q_proj"</span>, <span class="hljs-string">"k_proj"</span>], | |
| init_lora_weights=<span class="hljs-literal">False</span> | |
| ) | |
| model.add_adapter(lora_config, adapter_name=<span class="hljs-string">"adapter_1"</span>)`,wrap:!1}}),O=new $({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">"adapter_2"</span>)`,wrap:!1}}),te=new $({props:{code:"JTIzJTIwdXNlJTIwYWRhcHRlcl8xJTBBbW9kZWwuc2V0X2FkYXB0ZXIoJTIyYWRhcHRlcl8xJTIyKSUwQW91dHB1dCUyMCUzRCUyMG1vZGVsLmdlbmVyYXRlKCoqaW5wdXRzKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUob3V0cHV0X2Rpc2FibGVkJTVCMCU1RCUyQyUyMHNraXBfc3BlY2lhbF90b2tlbnMlM0RUcnVlKSklMEElMEElMjMlMjB1c2UlMjBhZGFwdGVyXzIlMEFtb2RlbC5zZXRfYWRhcHRlciglMjJhZGFwdGVyXzIlMjIpJTBBb3V0cHV0X2VuYWJsZWQlMjAlM0QlMjBtb2RlbC5nZW5lcmF0ZSgqKmlucHV0cyklMEFwcmludCh0b2tlbml6ZXIuZGVjb2RlKG91dHB1dF9lbmFibGVkJTVCMCU1RCUyQyUyMHNraXBfc3BlY2lhbF90b2tlbnMlM0RUcnVlKSk=",highlighted:`<span class="hljs-comment"># use adapter_1</span> | |
| model.set_adapter(<span class="hljs-string">"adapter_1"</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">"adapter_2"</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}}),le=new Z({props:{title:"어댑터 활성화 및 비활성화",local:"enable-and-disable-adapters",headingTag:"h2"}}),se=new $({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">"facebook/opt-350m"</span> | |
| adapter_model_id = <span class="hljs-string">"ybelkada/opt-350m-lora"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(model_id) | |
| text = <span class="hljs-string">"Hello"</span> | |
| inputs = tokenizer(text, return_tensors=<span class="hljs-string">"pt"</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}}),pe=new $({props:{code:"bW9kZWwuZGlzYWJsZV9hZGFwdGVycygpJTBBb3V0cHV0JTIwJTNEJTIwbW9kZWwuZ2VuZXJhdGUoKippbnB1dHMp",highlighted:`model.disable_adapters() | |
| output = model.generate(**inputs)`,wrap:!1}}),oe=new Z({props:{title:"PEFT 어댑터 훈련",local:"train-a-peft-adapter",headingTag:"h2"}}),g=new Qt({props:{$$slots:{default:[Dt]},$$scope:{ctx:ce}}}),re=new $({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">"none"</span>, | |
| task_type=<span class="hljs-string">"CAUSAL_LM"</span>, | |
| )`,wrap:!1}}),fe=new $({props:{code:"bW9kZWwuYWRkX2FkYXB0ZXIocGVmdF9jb25maWcp",highlighted:"model.add_adapter(peft_config)",wrap:!1}}),de=new $({props:{code:"dHJhaW5lciUyMCUzRCUyMFRyYWluZXIobW9kZWwlM0Rtb2RlbCUyQyUyMC4uLiklMEF0cmFpbmVyLnRyYWluKCk=",highlighted:`trainer = Trainer(model=model, ...) | |
| trainer.train()`,wrap:!1}}),Me=new $({props:{code:"bW9kZWwuc2F2ZV9wcmV0cmFpbmVkKHNhdmVfZGlyKSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKHNhdmVfZGlyKQ==",highlighted:`model.save_pretrained(save_dir) | |
| model = AutoModelForCausalLM.from_pretrained(save_dir)`,wrap:!1}}),ue=new St({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/peft.md"}}),{c(){M=p("meta"),y=s(),c=p("p"),T=s(),i(k.$$.fragment),Te=s(),i(_.$$.fragment),we=s(),U=p("p"),U.innerHTML=ut,he=s(),v=p("p"),v.textContent=ct,ge=s(),w=p("div"),w.innerHTML=$t,Je=s(),F=p("p"),F.innerHTML=yt,Ce=s(),i(W.$$.fragment),Ze=s(),B=p("p"),B.textContent=Tt,ke=s(),i(j.$$.fragment),_e=s(),R=p("p"),R.textContent=wt,Ue=s(),i(V.$$.fragment),ve=s(),i(H.$$.fragment),Fe=s(),E=p("p"),E.textContent=ht,We=s(),X=p("ul"),X.innerHTML=gt,Be=s(),G=p("p"),G.innerHTML=Jt,je=s(),i(x.$$.fragment),Re=s(),Q=p("p"),Q.innerHTML=Ct,Ve=s(),L=p("ol"),L.innerHTML=Zt,He=s(),i(N.$$.fragment),Ee=s(),i(h.$$.fragment),Xe=s(),I=p("p"),I.innerHTML=kt,Ge=s(),i(z.$$.fragment),xe=s(),i(P.$$.fragment),Qe=s(),Y=p("p"),Y.innerHTML=_t,Le=s(),i(A.$$.fragment),Ne=s(),i(q.$$.fragment),Ie=s(),S=p("p"),S.innerHTML=Ut,ze=s(),i(K.$$.fragment),Pe=s(),D=p("p"),D.textContent=vt,Ye=s(),i(O.$$.fragment),Ae=s(),ee=p("p"),ee.innerHTML=Ft,qe=s(),i(te.$$.fragment),Se=s(),i(le.$$.fragment),Ke=s(),ae=p("p"),ae.textContent=Wt,De=s(),i(se.$$.fragment),Oe=s(),ne=p("p"),ne.textContent=Bt,et=s(),i(pe.$$.fragment),tt=s(),i(oe.$$.fragment),lt=s(),ie=p("p"),ie.innerHTML=jt,at=s(),i(g.$$.fragment),st=s(),me=p("ol"),me.innerHTML=Rt,nt=s(),i(re.$$.fragment),pt=s(),J=p("ol"),J.innerHTML=Vt,ot=s(),i(fe.$$.fragment),it=s(),C=p("ol"),C.innerHTML=Ht,mt=s(),i(de.$$.fragment),rt=s(),be=p("p"),be.textContent=Et,ft=s(),i(Me.$$.fragment),dt=s(),i(ue.$$.fragment),bt=s(),$e=p("p"),this.h()},l(e){const t=Yt("svelte-u9bgzb",document.head);M=o(t,"META",{name:!0,content:!0}),t.forEach(l),y=n(e),c=o(e,"P",{}),xt(c).forEach(l),T=n(e),m(k.$$.fragment,e),Te=n(e),m(_.$$.fragment,e),we=n(e),U=o(e,"P",{"data-svelte-h":!0}),u(U)!=="svelte-1w14gmp"&&(U.innerHTML=ut),he=n(e),v=o(e,"P",{"data-svelte-h":!0}),u(v)!=="svelte-1egyvd6"&&(v.textContent=ct),ge=n(e),w=o(e,"DIV",{class:!0,"data-svelte-h":!0}),u(w)!=="svelte-lbsdqs"&&(w.innerHTML=$t),Je=n(e),F=o(e,"P",{"data-svelte-h":!0}),u(F)!=="svelte-ntqcp0"&&(F.innerHTML=yt),Ce=n(e),m(W.$$.fragment,e),Ze=n(e),B=o(e,"P",{"data-svelte-h":!0}),u(B)!=="svelte-1dyh7mj"&&(B.textContent=Tt),ke=n(e),m(j.$$.fragment,e),_e=n(e),R=o(e,"P",{"data-svelte-h":!0}),u(R)!=="svelte-zhta27"&&(R.textContent=wt),Ue=n(e),m(V.$$.fragment,e),ve=n(e),m(H.$$.fragment,e),Fe=n(e),E=o(e,"P",{"data-svelte-h":!0}),u(E)!=="svelte-16zqgos"&&(E.textContent=ht),We=n(e),X=o(e,"UL",{"data-svelte-h":!0}),u(X)!=="svelte-1ulyaf4"&&(X.innerHTML=gt),Be=n(e),G=o(e,"P",{"data-svelte-h":!0}),u(G)!=="svelte-gn3g26"&&(G.innerHTML=Jt),je=n(e),m(x.$$.fragment,e),Re=n(e),Q=o(e,"P",{"data-svelte-h":!0}),u(Q)!=="svelte-1y92spc"&&(Q.innerHTML=Ct),Ve=n(e),L=o(e,"OL",{"data-svelte-h":!0}),u(L)!=="svelte-1nf1sfv"&&(L.innerHTML=Zt),He=n(e),m(N.$$.fragment,e),Ee=n(e),m(h.$$.fragment,e),Xe=n(e),I=o(e,"P",{"data-svelte-h":!0}),u(I)!=="svelte-12tkwt4"&&(I.innerHTML=kt),Ge=n(e),m(z.$$.fragment,e),xe=n(e),m(P.$$.fragment,e),Qe=n(e),Y=o(e,"P",{"data-svelte-h":!0}),u(Y)!=="svelte-61ehyz"&&(Y.innerHTML=_t),Le=n(e),m(A.$$.fragment,e),Ne=n(e),m(q.$$.fragment,e),Ie=n(e),S=o(e,"P",{"data-svelte-h":!0}),u(S)!=="svelte-1ioi920"&&(S.innerHTML=Ut),ze=n(e),m(K.$$.fragment,e),Pe=n(e),D=o(e,"P",{"data-svelte-h":!0}),u(D)!=="svelte-146ss7n"&&(D.textContent=vt),Ye=n(e),m(O.$$.fragment,e),Ae=n(e),ee=o(e,"P",{"data-svelte-h":!0}),u(ee)!=="svelte-khb66g"&&(ee.innerHTML=Ft),qe=n(e),m(te.$$.fragment,e),Se=n(e),m(le.$$.fragment,e),Ke=n(e),ae=o(e,"P",{"data-svelte-h":!0}),u(ae)!=="svelte-mk5gbz"&&(ae.textContent=Wt),De=n(e),m(se.$$.fragment,e),Oe=n(e),ne=o(e,"P",{"data-svelte-h":!0}),u(ne)!=="svelte-1jw0rbw"&&(ne.textContent=Bt),et=n(e),m(pe.$$.fragment,e),tt=n(e),m(oe.$$.fragment,e),lt=n(e),ie=o(e,"P",{"data-svelte-h":!0}),u(ie)!=="svelte-bpy72o"&&(ie.innerHTML=jt),at=n(e),m(g.$$.fragment,e),st=n(e),me=o(e,"OL",{"data-svelte-h":!0}),u(me)!=="svelte-b0kvsd"&&(me.innerHTML=Rt),nt=n(e),m(re.$$.fragment,e),pt=n(e),J=o(e,"OL",{start:!0,"data-svelte-h":!0}),u(J)!=="svelte-fljuq6"&&(J.innerHTML=Vt),ot=n(e),m(fe.$$.fragment,e),it=n(e),C=o(e,"OL",{start:!0,"data-svelte-h":!0}),u(C)!=="svelte-1wi5l7b"&&(C.innerHTML=Ht),mt=n(e),m(de.$$.fragment,e),rt=n(e),be=o(e,"P",{"data-svelte-h":!0}),u(be)!=="svelte-znwbxw"&&(be.textContent=Et),ft=n(e),m(Me.$$.fragment,e),dt=n(e),m(ue.$$.fragment,e),bt=n(e),$e=o(e,"P",{}),xt($e).forEach(l),this.h()},h(){ye(M,"name","hf:doc:metadata"),ye(M,"content",el),ye(w,"class","flex flex-col justify-center"),ye(J,"start","2"),ye(C,"start","3")},m(e,t){At(document.head,M),a(e,y,t),a(e,c,t),a(e,T,t),r(k,e,t),a(e,Te,t),r(_,e,t),a(e,we,t),a(e,U,t),a(e,he,t),a(e,v,t),a(e,ge,t),a(e,w,t),a(e,Je,t),a(e,F,t),a(e,Ce,t),r(W,e,t),a(e,Ze,t),a(e,B,t),a(e,ke,t),r(j,e,t),a(e,_e,t),a(e,R,t),a(e,Ue,t),r(V,e,t),a(e,ve,t),r(H,e,t),a(e,Fe,t),a(e,E,t),a(e,We,t),a(e,X,t),a(e,Be,t),a(e,G,t),a(e,je,t),r(x,e,t),a(e,Re,t),a(e,Q,t),a(e,Ve,t),a(e,L,t),a(e,He,t),r(N,e,t),a(e,Ee,t),r(h,e,t),a(e,Xe,t),a(e,I,t),a(e,Ge,t),r(z,e,t),a(e,xe,t),r(P,e,t),a(e,Qe,t),a(e,Y,t),a(e,Le,t),r(A,e,t),a(e,Ne,t),r(q,e,t),a(e,Ie,t),a(e,S,t),a(e,ze,t),r(K,e,t),a(e,Pe,t),a(e,D,t),a(e,Ye,t),r(O,e,t),a(e,Ae,t),a(e,ee,t),a(e,qe,t),r(te,e,t),a(e,Se,t),r(le,e,t),a(e,Ke,t),a(e,ae,t),a(e,De,t),r(se,e,t),a(e,Oe,t),a(e,ne,t),a(e,et,t),r(pe,e,t),a(e,tt,t),r(oe,e,t),a(e,lt,t),a(e,ie,t),a(e,at,t),r(g,e,t),a(e,st,t),a(e,me,t),a(e,nt,t),r(re,e,t),a(e,pt,t),a(e,J,t),a(e,ot,t),r(fe,e,t),a(e,it,t),a(e,C,t),a(e,mt,t),r(de,e,t),a(e,rt,t),a(e,be,t),a(e,ft,t),r(Me,e,t),a(e,dt,t),r(ue,e,t),a(e,bt,t),a(e,$e,t),Mt=!0},p(e,[t]){const Xt={};t&2&&(Xt.$$scope={dirty:t,ctx:e}),h.$set(Xt);const Gt={};t&2&&(Gt.$$scope={dirty:t,ctx:e}),g.$set(Gt)},i(e){Mt||(f(k.$$.fragment,e),f(_.$$.fragment,e),f(W.$$.fragment,e),f(j.$$.fragment,e),f(V.$$.fragment,e),f(H.$$.fragment,e),f(x.$$.fragment,e),f(N.$$.fragment,e),f(h.$$.fragment,e),f(z.$$.fragment,e),f(P.$$.fragment,e),f(A.$$.fragment,e),f(q.$$.fragment,e),f(K.$$.fragment,e),f(O.$$.fragment,e),f(te.$$.fragment,e),f(le.$$.fragment,e),f(se.$$.fragment,e),f(pe.$$.fragment,e),f(oe.$$.fragment,e),f(g.$$.fragment,e),f(re.$$.fragment,e),f(fe.$$.fragment,e),f(de.$$.fragment,e),f(Me.$$.fragment,e),f(ue.$$.fragment,e),Mt=!0)},o(e){d(k.$$.fragment,e),d(_.$$.fragment,e),d(W.$$.fragment,e),d(j.$$.fragment,e),d(V.$$.fragment,e),d(H.$$.fragment,e),d(x.$$.fragment,e),d(N.$$.fragment,e),d(h.$$.fragment,e),d(z.$$.fragment,e),d(P.$$.fragment,e),d(A.$$.fragment,e),d(q.$$.fragment,e),d(K.$$.fragment,e),d(O.$$.fragment,e),d(te.$$.fragment,e),d(le.$$.fragment,e),d(se.$$.fragment,e),d(pe.$$.fragment,e),d(oe.$$.fragment,e),d(g.$$.fragment,e),d(re.$$.fragment,e),d(fe.$$.fragment,e),d(de.$$.fragment,e),d(Me.$$.fragment,e),d(ue.$$.fragment,e),Mt=!1},d(e){e&&(l(y),l(c),l(T),l(Te),l(we),l(U),l(he),l(v),l(ge),l(w),l(Je),l(F),l(Ce),l(Ze),l(B),l(ke),l(_e),l(R),l(Ue),l(ve),l(Fe),l(E),l(We),l(X),l(Be),l(G),l(je),l(Re),l(Q),l(Ve),l(L),l(He),l(Ee),l(Xe),l(I),l(Ge),l(xe),l(Qe),l(Y),l(Le),l(Ne),l(Ie),l(S),l(ze),l(Pe),l(D),l(Ye),l(Ae),l(ee),l(qe),l(Se),l(Ke),l(ae),l(De),l(Oe),l(ne),l(et),l(tt),l(lt),l(ie),l(at),l(st),l(me),l(nt),l(pt),l(J),l(ot),l(it),l(C),l(mt),l(rt),l(be),l(ft),l(dt),l(bt),l($e)),l(M),b(k,e),b(_,e),b(W,e),b(j,e),b(V,e),b(H,e),b(x,e),b(N,e),b(h,e),b(z,e),b(P,e),b(A,e),b(q,e),b(K,e),b(O,e),b(te,e),b(le,e),b(se,e),b(pe,e),b(oe,e),b(g,e),b(re,e),b(fe,e),b(de,e),b(Me,e),b(ue,e)}}}const el='{"title":"🤗 PEFT로 어댑터 가져오기","local":"load-adapters-with-peft","sections":[{"title":"설정","local":"setup","sections":[],"depth":2},{"title":"지원되는 PEFT 모델","local":"supported-peft-models","sections":[],"depth":2},{"title":"PEFT 어댑터 가져오기","local":"load-a-peft-adapter","sections":[],"depth":2},{"title":"8비트 또는 4비트로 가져오기","local":"load-in-8bit-or-4bit","sections":[],"depth":2},{"title":"새 어댑터 추가","local":"add-a-new-adapter","sections":[],"depth":2},{"title":"어댑터 활성화 및 비활성화","local":"enable-and-disable-adapters","sections":[],"depth":2},{"title":"PEFT 어댑터 훈련","local":"train-a-peft-adapter","sections":[],"depth":2}],"depth":1}';function tl(ce){return It(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class il extends zt{constructor(M){super(),Pt(this,M,tl,Ot,Nt,{})}}export{il as component}; | |
Xet Storage Details
- Size:
- 25.2 kB
- Xet hash:
- 9753f65d62c31f68219679d0016349a47a0748aa4579274a871e52459af53f1d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.