Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Parameter-Efficient Fine-Tuning, PEFT","local":"parameter-efficient-fine-tuning-peft","sections":[{"title":"사용 가능한 방법","local":"사용-가능한-방법","sections":[{"title":"1️⃣ LoRA (Low-Rank Adaptation)","local":"1-lora-low-rank-adaptation","sections":[],"depth":3},{"title":"2️⃣ 프롬프트 튜닝","local":"2-프롬프트-튜닝","sections":[],"depth":3}],"depth":2},{"title":"참고","local":"참고","sections":[],"depth":2}],"depth":1}"> | |
| <link href="/docs/smol-course/pr_296/ko/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/entry/start.4b8aa76a.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/scheduler.f38f3a0e.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/singletons.9dc2cfa6.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/paths.19dfb0c8.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/entry/app.f0d4b751.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/preload-helper.9248d1a9.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/index.a03143fc.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/nodes/0.ef9bb04f.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/each.e59479a4.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/nodes/7.b6c9e7d8.js"> | |
| <link rel="modulepreload" href="/docs/smol-course/pr_296/ko/_app/immutable/chunks/MermaidChart.svelte_svelte_type_style_lang.a813f85d.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{"title":"Parameter-Efficient Fine-Tuning, PEFT","local":"parameter-efficient-fine-tuning-peft","sections":[{"title":"사용 가능한 방법","local":"사용-가능한-방법","sections":[{"title":"1️⃣ LoRA (Low-Rank Adaptation)","local":"1-lora-low-rank-adaptation","sections":[],"depth":3},{"title":"2️⃣ 프롬프트 튜닝","local":"2-프롬프트-튜닝","sections":[],"depth":3}],"depth":2},{"title":"참고","local":"참고","sections":[],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"><div class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg></span> <span>Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg></button></div> </div> <h1 class="relative group"><a id="parameter-efficient-fine-tuning-peft" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#parameter-efficient-fine-tuning-peft"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Parameter-Efficient Fine-Tuning, PEFT</span></h1> <p data-svelte-h="svelte-py0ejm">언어 모델이 커지면서 전통적인 미세 조정 방식을 적용하는 것이 점점 어려워지고 있습니다. 1.7B 모델조차도 전체 미세 조정을 수행하려면 상당한 GPU 메모리가 필요하며, 모델 사본을 별도로 저장하기 위한 비용이 많이 들고, 모델의 원래 능력을 상실하는 위험이 존재합니다. Parmeter-Efficient Fine-Tuning(PEFT) 방법은 대부분의 모델 파라미터가 고정된 상태에서 모델 파라미터의 일부만 수정하여 전체 미세 조정 과정에서 발생하는 문제를 해결헙니다.</p> <p data-svelte-h="svelte-nm67l3">학습 과정에서 모델의 모든 파라미터를 업데이트하는 전통적인 미세 조정 방법을 대형 언어 모델에 적용하는 것은 현실적으로 어렵습니다. PEFT는 원래 모델 크기의 1% 미만에 해당하는 파라미터만 학습시켜 모델을 조정하는 방법입니다. 학습 가능한 파라미터를 크게 줄이는 것은 다음과 같은 이점을 제공합니다:</p> <ul data-svelte-h="svelte-rq746v"><li>제한된 GPU 메모리를 가진 하드웨어에서도 미세 조정 가능</li> <li>효율적인 태스크별 적응 모델 저장</li> <li>데이터가 적은 상황에서도 뛰어난 일반화 성능 제공</li> <li>더 빠른 학습 및 반복 가능</li></ul> <h2 class="relative group"><a id="사용-가능한-방법" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#사용-가능한-방법"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>사용 가능한 방법</span></h2> <p data-svelte-h="svelte-d4zncx">이 모듈에서는 많이 사용되는 두 가지 PEFT 방법을 다룹니다:</p> <h3 class="relative group"><a id="1-lora-low-rank-adaptation" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#1-lora-low-rank-adaptation"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>1️⃣ LoRA (Low-Rank Adaptation)</span></h3> <p data-svelte-h="svelte-pb5pyg">LoRA는 효율적인 모델 적응을 위한 멋진 솔루션을 제공하면서 가장 많이 사용되는 PEFT 방법으로 자리 잡았습니다. LoRA는 전체 모델을 수정하는 대신 <strong>학습 가능한 파라미터를 모델의 어텐션 레이어에 주입</strong>합니다. 이 접근법은 전체 미세 조정과 비슷한 성능을 유지하면서 학습 가능한 파라미터를 약 90%까지 줄입니다. <a href="./lora_adapters">LoRA (Low-Rank Adaptation)</a> 섹션에서 LoRA에 대해 자세히 알아보겠습니다.</p> <h3 class="relative group"><a id="2-프롬프트-튜닝" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#2-프롬프트-튜닝"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>2️⃣ 프롬프트 튜닝</span></h3> <p data-svelte-h="svelte-1c5cen9">프롬프트 튜닝은 모델 가중치를 수정하는 대신 <strong>입력에 학습 가능한 토큰을 추가</strong>하여 <strong>더 경량화된</strong> 접근법을 제공합니다. 프롬프트 튜닝은 LoRA만큼 유명하지는 않지만, 모델을 새로운 태스크나 도메인에 빠르게 적용할 때 유용하게 쓰일 수 있는 기술입니다. <a href="./prompt_tuning">프롬프트 튜닝</a> 섹션에서 프롬프트 튜닝에 대해 탐구해볼 예정입니다.</p> <h2 class="relative group"><a id="참고" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#참고"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>참고</span></h2> <ul data-svelte-h="svelte-9h0x7q"><li><a href="https://huggingface.co/docs/peft" rel="nofollow">Hugging Face PEFT 문서</a></li> <li><a href="https://huggingface.co/papers/2106.09685" rel="nofollow">LoRA 논문</a></li> <li><a href="https://huggingface.co/papers/2305.14314" rel="nofollow">QLoRA 논문</a></li> <li><a href="https://huggingface.co/papers/2104.08691" rel="nofollow">프롬프트 튜닝 논문</a></li> <li><a href="https://huggingface.co/blog/peft" rel="nofollow">Hugging Face PEFT 가이드</a></li> <li><a href="https://www.philschmid.de/fine-tune-llms-in-2024-with-trl" rel="nofollow">How to Fine-Tune LLMs in 2024 with Hugging Face</a></li> <li><a href="https://huggingface.co/docs/trl/index" rel="nofollow">TRL</a></li></ul> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/smol-course/blob/main/units/ko/unit3/1.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg> <span data-svelte-h="svelte-zjs2n5"><span class="underline">Update</span> on GitHub</span></a> <p></p> | |
| <script> | |
| { | |
| __sveltekit_11xhwgo = { | |
| assets: "/docs/smol-course/pr_296/ko", | |
| base: "/docs/smol-course/pr_296/ko", | |
| env: {} | |
| }; | |
| const element = document.currentScript.parentElement; | |
| const data = [null,null]; | |
| Promise.all([ | |
| import("/docs/smol-course/pr_296/ko/_app/immutable/entry/start.4b8aa76a.js"), | |
| import("/docs/smol-course/pr_296/ko/_app/immutable/entry/app.f0d4b751.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 7], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 15 kB
- Xet hash:
- df934ecfe2c42dfe3501ddccb3a03825e3f384dd6d755d59930af4e79e8278e0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.