メタのラマは、GPT-3.5などのモデルに対抗することを目指して、大規模な言語モデル(LLM)開発の急増を引き起こしました。 オープンソースコミュニティは、ますます強力なモデルを急速に生み出しましたが、これらの進歩には課題はありませんでした。 多くのオープンソースLLMには制限的なライセンスがあり(調査のみ)、微調整にかなりの予算が必要であり、展開に費用がかかりました。
llamaの新しいイテレーションは、これらの問題に商業ライセンスと、メモリが限られている消費者グレードGPUの微調整を可能にする新しい方法で対処しています。これはAIを民主化し、さらに小規模な組織がテーラードモデルを作成できるようにします。このガイドは、リソースの制約を克服するための効率的な手法を利用して、Google Colabで微調整されたLlama-2を示しています。メモリの使用量を最小限に抑え、トレーニングを加速する方法論を調べます。
dall-e 3
を使用して著者によって生成された画像 微調整llama-2:ステップバイステップガイド
このチュートリアルは、T4 GPU(Google ColabまたはKaggleで入手可能)の70億パラメーターllama-2モデルを微調整します。 T4の16GB VRAMは、特にQlora(4ビット精度)を使用して、パラメーター効率の高い微調整を必要とします。ハグする顔のエコシステム(変圧器、加速、PEFT、TRL、bitsandBytes)を利用します。 1。セットアップ:
必要なライブラリをインストールする:
インポートモジュール:
<code>%%capture %pip install accelerate peft bitsandbytes transformers trl</code>
<code>import os import torch from datasets import load_dataset from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, TrainingArguments, pipeline, logging, ) from peft import LoraConfig from trl import SFTTrainer</code>
(公式のllama-2に容易にアクセス可能な等価)を基本モデルとして、を小規模なトレーニングデータセットとして使用します。
NousResearch/Llama-2-7b-chat-hf
ハグする顔モデルとデータセットを示す画像は、オリジナルと同じようにここに含まれています。
mlabonne/guanaco-llama2-1k
<code>base_model = "NousResearch/Llama-2-7b-chat-hf" guanaco_dataset = "mlabonne/guanaco-llama2-1k" new_model = "llama-2-7b-chat-guanaco"</code>
データセットをロードします:
qlora:を使用して4ビット量子化を構成します
4ビット量子化でllama-2モデルをロードします:
<code>dataset = load_dataset(guanaco_dataset, split="train")</code>
<code>compute_dtype = getattr(torch, "float16") quant_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=compute_dtype, bnb_4bit_use_double_quant=False, )</code>
qloraを示す画像は、オリジナルと同じようにここに含まれています
<code>model = AutoModelForCausalLM.from_pretrained( base_model, quantization_config=quant_config, device_map={"": 0} ) model.config.use_cache = False model.config.pretraining_tp = 1</code>
<code>tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True) tokenizer.pad_token = tokenizer.eos_token tokenizer.padding_side = "right"</code>
5。トレーニングパラメーター:
トレーニングハイパーパラメーター(出力ディレクトリ、エポック、バッチサイズ、学習レートなど)を設定します。 詳細はオリジナルと同じです。
6。 SFTでの微調整:
<code>peft_params = LoraConfig( lora_alpha=16, lora_dropout=0.1, r=64, bias="none", task_type="CAUSAL_LM", )</code>
TRLライブラリからを使用して、監視された微調整を行います。 トレーニングの進行とモデルの保存を示す
スクリーンショットは、オリジナルと同じようにここに含まれています。
7。評価:
transformers
パイプラインを使用して、微調整されたモデルをテストします。例は、オリジナルと同じように提供されています。
8。テンソルボードの視覚化:
トレーニングメトリックを監視するためのテンソルボードを起動します
<code>%%capture %pip install accelerate peft bitsandbytes transformers trl</code>
テンソルボードのスクリーンショットは、オリジナルと同じようにここに含まれています 結論:
このガイドは、限られたハードウェアで効率的なllama-2微調整を紹介しています。 Qloraやその他のテクニックを使用すると、高度なLLMがより多くの視聴者がアクセスできます。 その他のリソースと学習パスは、オリジナルと同様に、最後に言及されていますが、マーケティングの呼び出しはありません。
以上が微調整llama2:大規模な言語モデルをカスタマイズするためのステップバイステップガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。