[翻訳] Hugging faceのPEFT

[PEFT](https://huggingface.co/docs/peft/index)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

🤗 PEFT、あるいはParameter-Efficient Fine-Tuning (PEFT)は、モデルのすべてのパラメーターをファインチューニングすることなしにることなしに、さまざまな後段のアプリケーションに事前学習済み言語モデル(PLM)を効率的に適応させるライブラリです。PEFTのメソッドは少数の(追加の)モデルパラメーターのみをファインチューンするので、大規模なPLMのファインチューニングは非常に高コストですが、劇的に計算コストとストレージコストを削減することができます。最先端のPEFTテクニックは、完全なファインチューニングと同等のパフォーマンスを達成します。

PEFTはDeepSpeedと[Big Model Inference](https://huggingface.co/docs/accelerate/usage_guides/big_modeling)を活用して大規模モデルに対する🤗 Accelerateとシームレスにインテグレーションされています。

PEFTが初めてであれば、[Quicktour](https://huggingface.co/docs/peft/quicktour)ガイドと[LoRA](https://huggingface.co/docs/peft/conceptual_guides/lora)や[Prompting](https://huggingface.co/docs/peft/conceptual_guides/prompting)メソッドのコンセプトガイドを読むところからスタートしてください。

# サポートされるメソッド

1. LoRA: [LORA: LOW\-RANK ADAPTATION OF LARGE LANGUAGE MODELS](https://arxiv.org/pdf/2106.09685.pdf)
1. Prefix Tuning: [Prefix\-Tuning: Optimizing Continuous Prompts for Generation](https://aclanthology.org/2021.acl-long.353/), [P\-Tuning v2: Prompt Tuning Can Be Comparable to Fine\-tuning Universally Across Scales and Tasks](https://arxiv.org/pdf/2110.07602.pdf)
1. P-Tuning: [GPT Understands, Too](https://arxiv.org/pdf/2103.10385.pdf)
1. Prompt Tuning: [The Power of Scale for Parameter\-Efficient Prompt Tuning](https://arxiv.org/pdf/2104.08691.pdf)
1. AdaLoRA: [Adaptive Budget Allocation for Parameter\-Efficient Fine\-Tuning](https://arxiv.org/abs/2303.10512)
1. [LLaMA\-Adapter: Efficient Fine\-tuning of Language Models with Zero\-init Attention](https://github.com/ZrrSkywalker/LLaMA-Adapter)

# サポートされるモデル

以下のテーブルでは、タスクごとにサポートされるPEFTのメソッドとモデルを一覧しています。タスクに特定のPEFTメソッドを適用するには、対応するタスクガイドを参照ください。

## Causal Language Modeling
![Screenshot 2023-05-26 at 10.07.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/af04ae26-54d9-290e-6fc8-50a33614302a.png)

## Conditional Generation
![Screenshot 2023-05-26 at 10.07.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/9776575b-7bf9-06e6-7968-d49117056b4c.png)

## Sequence Classification
![Screenshot 2023-05-26 at 10.07.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/bc94f1bd-df3a-829c-c4d5-d4f5e21a212d.png)

## Token Classification
![Screenshot 2023-05-26 at 10.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/f4eaf88f-60f5-221b-b134-1552626c6019.png)

## Text-to-Image Generation
![Screenshot 2023-05-26 at 10.08.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/de8d5bfd-edec-51e1-2d11-9eb7059bf1a5.png)

## Image Classification
![Screenshot 2023-05-26 at 10.09.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/85f613f4-ac3e-3d6e-3b7f-bdb790b48939.png)

## Image to text (Multi-modal models)

画像分類でのファインチューニングで[ViT](https://huggingface.co/docs/transformers/model_doc/vit)と[Swin](https://huggingface.co/docs/transformers/model_doc/swin)に対するLoRAをテストしました。しかし、🤗 Transformersのすべての[ViT\-based model](https://huggingface.co/models?pipeline_tag=image-classification&sort=downloads&search=vit)に対してLoRAを使用することは可能に違いありません。詳細は、[Image classification](https://huggingface.co/task_guides/image_classification_lora)タスクガイドをご覧ください。問題に遭遇した場合には、イシューをオープンしてください。
![Screenshot 2023-05-26 at 10.10.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/4f482c8b-046e-6c49-390d-2e491bb52133.png)

## Semantic Segmentation

image-to-textモデルと同様に、すべての[segmentation models](https://huggingface.co/models?pipeline_tag=image-segmentation&sort=downloads)にLoRAを適用できることは可能に違いありません。我々はこれをすべてのアーキテクチャでまだテストしていないことに注意する必要があります。このため、いかなる問題に遭遇した場合にも、イシューレポートを作成ください。
![Screenshot 2023-05-26 at 10.12.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ace3c1ad-116c-79c6-32ed-90d441a91256.png)