From fc515ef9ed3362a05b7c46b77c3113c14897906a Mon Sep 17 00:00:00 2001
From: SeongWooChoi <46990061+nuatmochoi@users.noreply.github.com>
Date: Thu, 24 Aug 2023 13:24:56 +0900
Subject: [PATCH 1/5] docs: ko: peft.mdx
---
docs/source/ko/_toctree.yml | 2 +
docs/source/ko/peft.md | 216 ++++++++++++++++++++++++++++++++++++
2 files changed, 218 insertions(+)
create mode 100644 docs/source/ko/peft.md
diff --git a/docs/source/ko/_toctree.yml b/docs/source/ko/_toctree.yml
index 04b1fdf57f4..be3f38ee0eb 100644
--- a/docs/source/ko/_toctree.yml
+++ b/docs/source/ko/_toctree.yml
@@ -19,6 +19,8 @@
title: 스크립트로 학습하기
- local: accelerate
title: 🤗 Accelerate로 분산 학습 구성하기
+ - local: peft
+ title: 🤗 PEFT로 어댑터 로드 및 학습하기
- local: model_sharing
title: 만든 모델 공유하기
- local: transformers_agents
diff --git a/docs/source/ko/peft.md b/docs/source/ko/peft.md
new file mode 100644
index 00000000000..302b614e5f7
--- /dev/null
+++ b/docs/source/ko/peft.md
@@ -0,0 +1,216 @@
+
+
+# Load adapters with 🤗 PEFT
+
+[[open-in-colab]]
+
+[Parameter-Efficient Fine Tuning (PEFT)](https://huggingface.co/blog/peft) methods freeze the pretrained model parameters during fine-tuning and add a small number of trainable parameters (the adapters) on top of it. The adapters are trained to learn task-specific information. This approach has been shown to be very memory-efficient with lower compute usage while producing results comparable to a fully fine-tuned model.
+
+Adapters trained with PEFT are also usually an order of magnitude smaller than the full model, making it convenient to share, store, and load them.
+
+
@@ -32,7 +32,7 @@ PEFT로 훈련된 어댑터는 전체 모델 크기보다 일반적으로 한
pip install peft
```
-새로운 기능을 시도하려면 라이브러리를 소스에서 설치하는 것이 관심을 끌 수 있습니다:
+새로운 기능을 시도할 때 라이브러리를 소스로부터 설치하는 데 관심이 있을 수 있습니다:
```bash
pip install git+https://github.com/huggingface/peft.git
@@ -40,18 +40,18 @@ pip install git+https://github.com/huggingface/peft.git
## 지원되는 PEFT 모델 [[supported-peft-models]]
-🤗 Transformers는 일부 PEFT 방법을 네이티브로 지원하며, 로컬로 저장된 어댑터 가중치를 로드하거나 Hub에서 쉽게 실행하거나 훈련할 수 있습니다. 다음 방법을 지원합니다:
+🤗 Transformers는 기본적으로 일부 PEFT 방법을 지원하며, 로컬로 저장된 어댑터 가중치를 가져오거나 Hub에서 쉽게 실행하거나 훈련할 수 있습니다. 다음 방법을 지원합니다:
- [Low Rank Adapters](https://huggingface.co/docs/peft/conceptual_guides/lora)
- [IA3](https://huggingface.co/docs/peft/conceptual_guides/ia3)
- [AdaLoRA](https://arxiv.org/abs/2303.10512)
-🤗 PEFT와 관련된 다른 방법(예: 프롬프트 학습 또는 프롬프트 튜닝) 또는 일반적인 🤗 PEFT 라이브러리에 대해 자세히 알아보려면 [문서](https://huggingface.co/docs/peft/index)를 참조하세요.
+🤗 PEFT와 관련된 다른 방법(예: 프롬프트 훈련 또는 프롬프트 튜닝) 또는 일반적인 🤗 PEFT 라이브러리에 대해 자세히 알아보려면 [문서](https://huggingface.co/docs/peft/index)를 참조하세요.
-## PEFT 어댑터 로드 [[load-a-peft-adapter]]
+## PEFT 어댑터 가져오기 [[load-a-peft-adapter]]
-🤗 Transformers에서 PEFT 어댑터 모델을 로드하고 사용하려면 Hub 저장소나 로컬 디렉터리에 `adapter_config.json` 파일과 어댑터 가중치가 포함되어 있는지 확인하십시오. 그런 다음 `AutoModelFor` 클래스를 사용하여 PEFT 어댑터 모델을 로드할 수 있습니다. 예를 들어 인과 언어 모델용 PEFT 어댑터 모델을 로드하려면 다음 단계를 따르십시오:
+🤗 Transformers에서 PEFT 어댑터 모델을 가져오고 사용하려면 Hub 저장소나 로컬 디렉터리에 `adapter_config.json` 파일과 어댑터 가중치가 포함되어 있는지 확인하십시오. 그런 다음 `AutoModelFor` 클래스를 사용하여 PEFT 어댑터 모델을 가져올 수 있습니다. 예를 들어 인과 관계 언어 모델용 PEFT 어댑터 모델을 가져오려면 다음 단계를 따르십시오:
1. PEFT 모델 ID를 지정하십시오.
2. [`AutoModelForCausalLM`] 클래스에 전달하십시오.
@@ -63,13 +63,13 @@ peft_model_id = "ybelkada/opt-350m-lora"
model = AutoModelForCausalLM.from_pretrained(peft_model_id)
```
-<팁>
+
-`AutoModelFor` 클래스나 기본 모델 클래스(예: `OPTForCausalLM` 또는 `LlamaForCausalLM`) 중 하나를 사용하여 PEFT 어댑터를 로드할 수 있습니다.
+`AutoModelFor` 클래스나 기본 모델 클래스(예: `OPTForCausalLM` 또는 `LlamaForCausalLM`) 중 하나를 사용하여 PEFT 어댑터를 가져올 수 있습니다.
-팁>
+
-`load_adapter` 메서드를 호출하여 PEFT 어댑터를로드할 수도 있습니다.
+`load_adapter` 메소드를 호출하여 PEFT 어댑터를 가져올 수도 있습니다.
```py
from transformers import AutoModelForCausalLM, AutoTokenizer
@@ -81,9 +81,9 @@ model = AutoModelForCausalLM.from_pretrained(model_id)
model.load_adapter(peft_model_id)
```
-## 8비트 또는 4비트로 로드 [[load-in-8bit-or-4bit]]
+## 8비트 또는 4비트로 가져오기 [[load-in-8bit-or-4bit]]
-`bitsandbytes` 통합은 8비트와 4비트 정밀도 데이터 유형을 지원하므로 큰 모델을로드할 때 유용합니다. 이것은 메모리를 절약합니다. 모델을 하드웨어에 효과적으로 분배하려면 [`~PreTrainedModel.from_pretrained`]에 `load_in_8bit` 또는 `load_in_4bit` 매개변수를 추가하고 `device_map="auto"`를 설정하십시오:
+`bitsandbytes` 통합은 8비트와 4비트 정밀도 데이터 유형을 지원하므로 큰 모델을 가져올 때 유용하며, 메모리를 절약합니다. 모델을 하드웨어에 효과적으로 분배하려면 [`~PreTrainedModel.from_pretrained`]에 `load_in_8bit` 또는 `load_in_4bit` 매개변수를 추가하고 `device_map="auto"`를 설정하십시오:
```py
from transformers import AutoModelForCausalLM, AutoTokenizer
@@ -94,7 +94,7 @@ model = AutoModelForCausalLM.from_pretrained(peft_model_id, device_map="auto", l
## 새 어댑터 추가 [[add-a-new-adapter]]
-기존 어댑터가있는 모델에 새 어댑터를 추가하려면 [`~peft.PeftModel.add_adapter`]를 사용할 수 있습니다. 새 어댑터가 현재 어댑터와 동일한 유형인 한 추가할 수 있습니다. 예를 들어 모델에 연결된 기존 LoRA 어댑터가있는 경우:
+기존 어댑터가 있는 모델에 새 어댑터를 추가하려면 [`~peft.PeftModel.add_adapter`]를 사용할 수 있습니다. 새 어댑터가 현재 어댑터와 동일한 유형이면 추가할 수 있습니다. 예를 들어 모델에 연결된 기존 LoRA 어댑터가 있는 경우:
```py
from transformers import AutoModelForCausalLM, OPTForCausalLM, AutoTokenizer
@@ -166,15 +166,15 @@ output = model.generate(**inputs)
## PEFT 어댑터 훈련 [[train-a-peft-adapter]]
-PEFT 어댑터는 [`Trainer`] 클래스에서 지원되므로 특정 사용 사례에 대한 어댑터를 훈련할 수 있습니다. 몇 줄의 코드를 추가하기만 하면됩니다. 예를 들어 LoRA 어댑터를 훈련하려면 다음과 같습니다:
+PEFT 어댑터는 [`Trainer`] 클래스에서 지원되므로 특정 사용 사례에 대한 어댑터를 훈련할 수 있습니다. 몇 줄의 코드를 추가하기만 하면 됩니다. 예를 들어 LoRA 어댑터를 훈련하려면 다음과 같습니다:
-<팁>
+
[`Trainer`]를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 [미세 조정된 모델을 미세 조정하기](training) 튜토리얼을 확인하세요.
-팁>
+
-1. 과제 유형 및 하이퍼파라미터를 지정하여 어댑터 구성을 정의합니다(하이퍼파라미터에 대한 자세한 내용은 [`~peft.LoraConfig`]를 참조하세요).
+1. 작업 유형 및 하이퍼파라미터를 지정하여 어댑터 구성을 정의합니다. 하이퍼파라미터에 대한 자세한 내용은 [`~peft.LoraConfig`]를 참조하세요.
```py
from peft import LoraConfig
@@ -201,7 +201,7 @@ trainer = Trainer(model=model, ...)
trainer.train()
```
-훈련한 어댑터를 저장하고 다시로드하려면:
+훈련한 어댑터를 저장하고 다시 가져오려면:
```py
model.save_pretrained(save_dir)
From 633f26c61c711353d9643098a423d612bbe5bd67 Mon Sep 17 00:00:00 2001
From: SeongWooChoi <46990061+nuatmochoi@users.noreply.github.com>
Date: Fri, 25 Aug 2023 13:27:16 +0900
Subject: [PATCH 4/5] fix: resolve suggestions
Co-authored-by: Wonhyeong Seo
Co-authored-by: Steven Liu <59462357+stevhliu@users.noreply.github.com>
Co-authored-by: heuristicwave <31366038+heuristicwave@users.noreply.github.com>
---
docs/source/ko/peft.md | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/docs/source/ko/peft.md b/docs/source/ko/peft.md
index 2b430d586ba..653d8639449 100644
--- a/docs/source/ko/peft.md
+++ b/docs/source/ko/peft.md
@@ -9,17 +9,17 @@ specific language governing permissions and limitations under the License.
rendered properly in your Markdown viewer.
-->
-# 🤗 PEFT를 사용하여 어댑터 가져오기 [[load-adapters-with-peft]]
+# 🤗 PEFT로 어댑터 가져오기 [[load-adapters-with-peft]]
-[[Colab에서 열기]]
+[[open-in-colab]]
-[Parameter-Efficient Fine Tuning (PEFT)](https://huggingface.co/blog/peft) 방법은 사전 훈련된 모델 매개변수를 미세 조정하는 동안 모델 매개변수를 고정하고 그 위에 훈련 가능한 매우 적은 수의 매개변수(어댑터)를 추가합니다. 어댑터는 작업별 정보를 학습하도록 훈련됩니다. 이 접근 방식은 전체로 사전 훈련된 모델과 비교 가능한 결과를 생성하면서 메모리 효율적이며 더 낮은 컴퓨팅 리소스를 사용한다는 것이 입증되었습니다.
+[Parameter-Efficient Fine Tuning (PEFT)](https://huggingface.co/blog/peft) 방법은 사전훈련된 모델의 매개변수를 미세 조정 중 고정시키고, 그 위에 훈련할 수 있는 매우 적은 수의 매개변수(어댑터)를 추가합니다. 어댑터는 작업별 정보를 학습하도록 훈련됩니다. 이 접근 방식은 완전히 미세 조정된 모델에 필적하는 결과를 생성하면서, 메모리 효율적이고 비교적 적은 컴퓨팅 리소스를 사용합니다.
-PEFT로 훈련된 어댑터는 전체 모델 크기보다 일반적으로 한 순서 작으므로 공유, 저장 및 가져오기 편리합니다.
+또한 PEFT로 훈련된 어댑터는 일반적으로 전체 모델보다 훨씬 작기 때문에 공유, 저장 및 가져오기가 편리합니다.
-
Hub에 저장된 OPTForCausalLM 모델의 어댑터 가중치는 전체 모델 가중치 크기인 ~700MB 대비 약 6MB입니다.
+
Hub에 저장된 OPTForCausalLM 모델의 어댑터 가중치는 최대 700MB에 달하는 모델 가중치의 전체 크기에 비해 약 6MB에 불과합니다.
🤗 PEFT 라이브러리에 대해 자세히 알아보려면 [문서](https://huggingface.co/docs/peft/index)를 확인하세요.
@@ -32,7 +32,7 @@ PEFT로 훈련된 어댑터는 전체 모델 크기보다 일반적으로 한
pip install peft
```
-새로운 기능을 시도할 때 라이브러리를 소스로부터 설치하는 데 관심이 있을 수 있습니다:
+새로운 기능을 사용해보고 싶다면, 다음 소스에서 라이브러리를 설치하는 것이 좋습니다:
```bash
pip install git+https://github.com/huggingface/peft.git
@@ -40,7 +40,7 @@ pip install git+https://github.com/huggingface/peft.git
## 지원되는 PEFT 모델 [[supported-peft-models]]
-🤗 Transformers는 기본적으로 일부 PEFT 방법을 지원하며, 로컬로 저장된 어댑터 가중치를 가져오거나 Hub에서 쉽게 실행하거나 훈련할 수 있습니다. 다음 방법을 지원합니다:
+🤗 Transformers는 기본적으로 일부 PEFT 방법을 지원하며, 로컬이나 Hub에 저장된 어댑터 가중치를 가져오고 몇 줄의 코드만으로 쉽게 실행하거나 훈련할 수 있습니다. 다음 방법을 지원합니다:
- [Low Rank Adapters](https://huggingface.co/docs/peft/conceptual_guides/lora)
- [IA3](https://huggingface.co/docs/peft/conceptual_guides/ia3)
@@ -83,7 +83,7 @@ model.load_adapter(peft_model_id)
## 8비트 또는 4비트로 가져오기 [[load-in-8bit-or-4bit]]
-`bitsandbytes` 통합은 8비트와 4비트 정밀도 데이터 유형을 지원하므로 큰 모델을 가져올 때 유용하며, 메모리를 절약합니다. 모델을 하드웨어에 효과적으로 분배하려면 [`~PreTrainedModel.from_pretrained`]에 `load_in_8bit` 또는 `load_in_4bit` 매개변수를 추가하고 `device_map="auto"`를 설정하십시오:
+`bitsandbytes` 통합은 8비트와 4비트 정밀도 데이터 유형을 지원하므로 큰 모델을 가져올 때 유용하면서 메모리도 절약합니다. 모델을 하드웨어에 효과적으로 분배하려면 [`~PreTrainedModel.from_pretrained`]에 `load_in_8bit` 또는 `load_in_4bit` 매개변수를 추가하고 `device_map="auto"`를 설정하세요:
```py
from transformers import AutoModelForCausalLM, AutoTokenizer
@@ -94,7 +94,7 @@ model = AutoModelForCausalLM.from_pretrained(peft_model_id, device_map="auto", l
## 새 어댑터 추가 [[add-a-new-adapter]]
-기존 어댑터가 있는 모델에 새 어댑터를 추가하려면 [`~peft.PeftModel.add_adapter`]를 사용할 수 있습니다. 새 어댑터가 현재 어댑터와 동일한 유형이면 추가할 수 있습니다. 예를 들어 모델에 연결된 기존 LoRA 어댑터가 있는 경우:
+새 어댑터가 현재 어댑터와 동일한 유형인 경우에 한해 기존 어댑터가 있는 모델에 새 어댑터를 추가하려면 [`~peft.PeftModel.add_adapter`]를 사용할 수 있습니다. 예를 들어 모델에 기존 LoRA 어댑터가 연결되어 있는 경우:
```py
from transformers import AutoModelForCausalLM, OPTForCausalLM, AutoTokenizer
@@ -166,11 +166,11 @@ output = model.generate(**inputs)
## PEFT 어댑터 훈련 [[train-a-peft-adapter]]
-PEFT 어댑터는 [`Trainer`] 클래스에서 지원되므로 특정 사용 사례에 대한 어댑터를 훈련할 수 있습니다. 몇 줄의 코드를 추가하기만 하면 됩니다. 예를 들어 LoRA 어댑터를 훈련하려면 다음과 같습니다:
+PEFT 어댑터는 [`Trainer`] 클래스에서 지원되므로 특정 사용 사례에 맞게 어댑터를 훈련할 수 있습니다. 몇 줄의 코드를 추가하기만 하면 됩니다. 예를 들어 LoRA 어댑터를 훈련하려면:
-[`Trainer`]를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 [미세 조정된 모델을 미세 조정하기](training) 튜토리얼을 확인하세요.
+[`Trainer`]를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 [사전 훈련된 모델을 미세 조정하기](training) 튜토리얼을 확인하세요.
@@ -207,10 +207,3 @@ trainer.train()
model.save_pretrained(save_dir)
model = AutoModelForCausalLM.from_pretrained(save_dir)
```
-
-
\ No newline at end of file
From 94673840973f8b5fd41bc88daf1e4ad75708afa8 Mon Sep 17 00:00:00 2001
From: SeongWooChoi <46990061+nuatmochoi@users.noreply.github.com>
Date: Sat, 26 Aug 2023 16:53:52 +0900
Subject: [PATCH 5/5] fix: resolve suggestions
Co-authored-by: Sohyun Sim <96299403+sim-so@users.noreply.github.com>
---
docs/source/ko/peft.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/source/ko/peft.md b/docs/source/ko/peft.md
index 653d8639449..90327e62c27 100644
--- a/docs/source/ko/peft.md
+++ b/docs/source/ko/peft.md
@@ -170,7 +170,7 @@ PEFT 어댑터는 [`Trainer`] 클래스에서 지원되므로 특정 사용 사
-[`Trainer`]를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 [사전 훈련된 모델을 미세 조정하기](training) 튜토리얼을 확인하세요.
+[`Trainer`]를 사용하여 모델을 미세 조정하는 것이 익숙하지 않다면 [사전훈련된 모델을 미세 조정하기](training) 튜토리얼을 확인하세요.