検索
ホームページテクノロジー周辺機器AIラグ用の微調整llama 3.2 3b -Analytics Vidhya

小言語モデル(SLM)がAIに大きな影響を与えています。彼らは効率的で費用対効果が高い一方で、強力なパフォーマンスを提供します。傑出した例の1つは、Llama 3.2 3bです。検索された生成(RAG)タスクで非常にうまく機能し、高い精度を維持しながら、計算コストとメモリの使用量を削減します。この記事では、Llama 3.2 3Bモデルを微調整する方法について説明します。小規模なモデルがぼろきれタスクでどのように優れているかを学び、コンパクトなAIソリューションが達成できる境界を押し広げることができます。

目次

  • llama 3.2 3bとは何ですか?
  • Finetuning llama 3.2 3b
  • ロラ
  • ライブラリが必要です
  • ライブラリをインポートします
  • モデルとトークンザーを初期化します
  • PEFTのモデルを初期化します
  • データ処理
  • トレーナーパラメーターの設定
  • モデルの微調整
  • モデルをテストして保存します
  • 結論
  • よくある質問

llama 3.2 3bとは何ですか?

Metaが開発したLlama 3.2 3Bモデルは、質問応答、要約、ダイアログシステムなどのタスク向けに設計された30億パラメーターを備えた多言語SLMです。業界のベンチマーク上の多くのオープンソースモデルよりも優れており、多様な言語をサポートしています。さまざまなサイズで利用可能なLlama 3.2は、効率的な計算パフォーマンスを提供し、モバイルおよびエッジ環境でのより速く、メモリ効率の高い展開を実現するための量子化されたバージョンが含まれています。

ラグ用の微調整llama 3.2 3b -Analytics Vidhya

また読む:トップ13の小言語モデル(SLM)

Finetuning llama 3.2 3b

微調整は、SLMまたはLLMを医療、法律、またはRAGアプリケーションなどの特定のドメインまたはタスクに適応させるために不可欠です。トレーニング前に言語モデルが多様なトピック全体でテキストを生成できるようにしますが、微調整はドメイン固有またはタスク固有のデータのモデルを再トレーニングして、関連性とパフォーマンスを改善します。すべてのパラメーターの微調整の高い計算コストに対処するために、パラメーターのような技術効率的な微調整(PEFT)などの手法は、モデルのパラメーターのサブセットのみをトレーニングし、パフォーマンスを維持しながらリソースの使用を最適化することに焦点を当てています。

ロラ

そのようなPEFTメソッドの1つは、低ランク適応(LORA)です。

LORAでは、SLMまたはLLMの重量マトリックスが2つの低ランクマトリックスの積に分解されます。

 w = wa * wb

wにm rowsとn列がある場合、m行とr列でWAに分解し、rowsとn列のあるwbに分解できます。ここでは、rはmまたはnよりはるかに少ないです。したがって、m*nの値をトレーニングするのではなく、r*(mn)値のみをトレーニングできます。 Rは、選択できるハイパーパラメーターであるランクと呼ばれます。

 def lora_linear(x):<br> h = x @ w#レギュラーリニア<br> h = scale *(x @ w_a @ w_b)#低ランクアップデート<br> hを返します

チェックアウト:ロラとQloraを使用した大規模な言語モデルのパラメーター効率の高い微調整

Llama 3.2 3bモデルにLoraを実装しましょう。

ライブラリが必要です

  • Unsloth - 2024.12.9
  • データセット - 3.1.0

上記のSLOTHバージョンをインストールすると、互換性のあるPytorch、Transformers、およびNvidia GPUライブラリもインストールされます。 Google Colabを使用してGPUにアクセスできます。

今すぐ実装を見てみましょう!

ライブラリをインポートします

Unsloth Import FastLanguageModelから、IS_BFLOAT16_SUPPORTED、TRAIN_ON_RESPONSES_ONLYから

データセットからload_dataset、データセットをインポートします

TRLインポートSFTTrainerから、Apply_Chat_Templateから

Transformers Import TrainingArguments、DataCollat​​orForSeq2Seq、TextStreamerから

トーチをインポートします

モデルとトークンザーを初期化します

max_seq_length = 2048 
dtype = none#none auto-retectionの場合。
load_in_4bit = true#4bit量子化を使用して、メモリの使用量を削減します。偽である可能性があります。

モデル、tokenizer = fastlanguagemodel.from_pretrained(
	model_name = "unsloth/llama-3.2-3b-instruct"、
	max_seq_length = max_seq_length、
	dtype = dtype、
	load_in_4bit = load_in_4bit、
	#token = "hf _..."、#メタラマ/llama-3.2-11bなどのゲートモデルを使用している場合は使用します
))

Unslothによってサポートされている他のモデルについては、このドキュメントを参照できます。

PEFTのモデルを初期化します

モデル= fastLanguageModel.get_Peft_model(
	モデル、
	r = 16、
	Target_modules = ["q_proj"、 "k_proj"、 "v_proj"、 "o_proj"、
                  	"gate_proj"、 "up_proj"、 "down_proj"、]、
	lora_alpha = 16、
	lora_dropout = 0、 
	bias = "none"、
	use_gradient_checkpointing = "unsloth"、
	random_state = 42、
	use_rslora = false、 
	loftq_config = none、
))

各パラメーターの説明

  • R :ロラのランク。値が高いほど精度が向上しますが、より多くのメモリを使用します(提案:8–128)。
  • Target_Modules :微調整するモジュール。より良い結果を得るためにすべてを含めてください
  • lora_alpha :スケーリングファクター。通常、ランクrに等しく、または2倍になります。
  • lora_dropout :ドロップアウト率。最適化された高速トレーニングのために0に設定します。
  • バイアス:バイアスタイプ。 「なし」は、速度と最小限の過剰適合のために最適化されています。
  • use_gradient_checkpointing :長いコンテキストトレーニングのメモリを削減します。 「Unsloth」を強くお勧めします。
  • RANDAM_STATE :決定論的な実行のシード、再現性のある結果が確保されます(例:42)。
  • use_rslora :アルファ選択を自動化します。ランク安定化されたロラに役立ちます。
  • loftq_config :メモリが集中しているものの、より良い精度を得るために、トップr singularベクターでLORAを初期化します。

データ処理

RAGデータを使用してFinetuneにします。 Huggingfaceからデータをダウンロードします。

 dataset = load_dataset( "Neural-Bridge/Rag-Dataset-1200"、split = "Train"))

データセットには次のように3つのキーがあります。

データセット({feature:['context'、 'question'、 'answer']、num_rows:960})

データは、言語モデルに応じて特定の形式である必要があります。詳細については、こちらをご覧ください。

それでは、データを必要な形式に変換しましょう。

 def convert_dataset_to_dict(dataset):
    dataset_dict = {
        "プロンプト": []、
        "完了": []
    }

    データセットの行の場合:
        user_content = f "context:{row ['context']} \ nquestion:{row ['question']}"
        Assistant_content = row ['answer']

        dataset_dict ["prompt"]。
            {「役割」:「user "、" content ":user_content}
        ]))
        dataset_dict ["complete"]。
            {「役割」:「アシスタント」、「コンテンツ」:Assistant_Content}
        ]))
    dataset_dictを返します
    
    
converted_data = convert_dataset_to_dict(dataset)
dataset = dataset.from_dict(converted_data)
dataset = dataset.map(apply_chat_template、fn_kwargs = {"tokenizer":tokenizer})

データセットメッセージは次のとおりです。

ラグ用の微調整llama 3.2 3b -Analytics Vidhya

トレーナーパラメーターの設定

SLMを微調整するためにトレーナーを初期化できます。

トレーナー= sfttrainer(
	モデル=モデル、
	トークンザー=トークネザー、
	train_dataset = dataset、
	max_seq_length = max_seq_length、
	data_collat​​or = datacollat​​orforseq2seq(tokenizer = tokenizer)、
	dataset_num_proc = 2、
	パッキング= false、#は、短いシーケンスでトレーニングを5倍高速にすることができます。
	args = Trainingarguments(
    	per_device_train_batch_size = 2、
    	gradient_accumulation_steps = 4、
    	warmup_steps = 5、
    	#num_train_epochs = 1、#これを1回の完全なトレーニング実行に設定します。
    	max_steps = 6、#少数を使用してテストします
    	Learning_rate = 2e-4、
    	fp16 = not is_bfloat16_supported()、
    	bf16 = is_bfloat16_supported()、
    	logging_steps = 1、
    	optime = "adamw_8bit"、
    	weight_decay = 0.01、
    	lr_scheduler_type = "linear"
    	シード= 3407、
    	output_dir = "outputs"、
    	report_to = "none"、#これをwandbなどに使用します
	)、、
))

いくつかのパラメーターの説明:

  • per_device_train_batch_size:デバイスごとのバッチサイズ。より多くのGPUメモリを利用するために増加しますが、パディングの非効率性に注意してください(提案:2)。
  • Gradient_Accumulation_Steps:追加のメモリ使用なしで大きなバッチサイズをシミュレートします。より滑らかな損失曲線の増加(提案:4)。
  • MAX_STEPS:総トレーニングステップ。より速い実行(例えば、60)に設定するか、完全なデータセットパス(例えば、1〜3)に `num_train_epochs`を使用します。
  • Learning_rate:トレーニング速度と収束を制御します。より低いレート(例、2E-4)は精度を改善しますが、トレーニングが遅くなります。

応答テンプレートを指定することによってのみ、応答のモデルトレーニングを作成します。

トレーナー= train_on_responses_only(
	トレーナー、
	instruction_part = " user  \ n \ n"、
	Response_Part = " Assistant  \ n \ n"、
))

モデルの微調整

trainer_stats = trainer.train()

これがトレーニングの統計です:

ラグ用の微調整llama 3.2 3b -Analytics Vidhya

モデルをテストして保存します

推論にモデルを使用しましょう。

 fastlanguageModel.for_inference(モデル)

メッセージ= [
	{「役割」:「ユーザー」、「コンテンツ」:「コンテキスト:空は日中は一般的に透明です。質問:水は何色ですか?}、
]
入力= tokenizer.Apply_chat_template(
	メッセージ、
	tokenize = true、
	add_generation_prompt = true、
	return_tensors = "pt"、
).to( "cuda")

text_streamer = textStreamer(tokenizer、skip_prompt = true)
_ = model.generate(input_ids = inputs、streamer = text_streamer、max_new_tokens = 128、
               	use_cache = true、温度= 1.5、min_p = 0.1)

LORAウェイトを含むトレーニングを受けたものを保存するには、以下のコードを使用します

model.save_pretrained_merged( "model"、tokenizer、save_method = "merged_16bit")

チェックアウト:大規模な言語モデルを微調整するガイド

結論

ラグタスク用の微調整llama 3.2 3bは、計算コストを削減して高性能を提供する小さなモデルの効率を示しています。 LORAなどの手法は、精度を維持しながらリソースの使用を最適化します。このアプローチは、ドメイン固有のアプリケーションを強化し、高度なAIをよりアクセスしやすく、スケーラブルで、費用対効果の高い、検索された生成における革新を促進し、現実世界の課題に対するAIを民主化するようにします。

また読む:メタラマ3.2を始めましょう

よくある質問

Q1。ラグとは何ですか?

A. RAGは、検索システムと生成モデルを組み合わせて、外部の知識に接地することで応答を強化し、質問の回答や要約などのタスクに理想的にします。

Q2。なぜ微調整するためにllama 3.2 3bを選ぶのですか?

A. llama 3.2 3bは、パフォーマンス、効率、およびスケーラビリティのバランスを提供するため、計算およびメモリの要件を削減しながら、ラグタスクに適しています。

Q3。ロラとは何ですか、そしてそれはどのように微調整を改善しますか?

A.低ランク適応(LORA)は、すべてのモデルパラメーターではなく低ランクマトリックスのみをトレーニングすることにより、リソースの使用を最小限に抑え、制約付きハードウェアで効率的な微調整を可能にします。

Q4。この記事では、どのデータセットが微調整されていますか?

A.ハギングフェイスは、コンテキスト、質問、回答を含むRAGデータセットを提供し、ラマ3.2 3Bモデルを微調整して、タスクのパフォーマンスを向上させます。

Q5。微調整されたモデルはエッジデバイスに展開できますか?

A.はい、Llama 3.2 3bは、特にその量子化された形式で、エッジ環境とモバイル環境でのメモリ効率の高い展開に最適化されています。

以上がラグ用の微調整llama 3.2 3b -Analytics Vidhyaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
ChatGPTが使えない!原因とすぐ試せる対処法を解説【2025年最新】ChatGPTが使えない!原因とすぐ試せる対処法を解説【2025年最新】May 14, 2025 am 05:04 AM

ChatGptはアクセスできませんか?この記事では、さまざまな実用的なソリューションを提供しています!多くのユーザーは、ChatGPTを毎日使用する場合、アクセス不能や応答が遅いなどの問題に遭遇する可能性があります。この記事では、さまざまな状況に基づいてこれらの問題を段階的に解決するように導きます。 ChatGPTのアクセス不能性と予備的なトラブルシューティングの原因 まず、問題がOpenaiサーバー側にあるのか、ユーザー自身のネットワークまたはデバイスの問題にあるのかを判断する必要があります。 以下の手順に従って、トラブルシューティングしてください。 ステップ1:OpenAIの公式ステータスを確認してください OpenAIステータスページ(status.openai.com)にアクセスして、ChatGPTサービスが正常に実行されているかどうかを確認してください。赤または黄色のアラームが表示されている場合、それは開くことを意味します

ASIのリスクを計算することは、人間の心から始まりますASIのリスクを計算することは、人間の心から始まりますMay 14, 2025 am 05:02 AM

2025年5月10日、MIT物理学者のMax Tegmarkは、AI Labsが人工的なスーパーインテリジェンスを解放する前にOppenheimerの三位一体計算をエミュレートすべきだとGuardianに語った。 「私の評価では、「コンプトン定数」、競争が

ChatGPTで作詞・作曲する方法とおすすめツールをわかりやすく解説ChatGPTで作詞・作曲する方法とおすすめツールをわかりやすく解説May 14, 2025 am 05:01 AM

AI Music Creation Technologyは、1日ごとに変化しています。この記事では、ChatGPTなどのAIモデルを例として使用して、AIを使用して音楽の作成を支援し、実際のケースで説明する方法を詳細に説明します。 Sunoai、Hugging Face、PythonのMusic21 Libraryを通じて音楽を作成する方法を紹介します。 これらのテクノロジーを使用すると、誰もがオリジナルの音楽を簡単に作成できます。ただし、AIに生成されたコンテンツの著作権問題は無視できないことに注意する必要があります。使用する際には注意する必要があります。 音楽分野でのAIの無限の可能性を一緒に探りましょう! Openaiの最新のAIエージェント「Openai Deep Research」が紹介します。 [chatgpt] ope

ChatGPT-4とは?できることや料金、GPT-3.5との違いを徹底解説!ChatGPT-4とは?できることや料金、GPT-3.5との違いを徹底解説!May 14, 2025 am 05:00 AM

ChATGPT-4の出現により、AIアプリケーションの可能性が大幅に拡大しました。 GPT-3.5と比較して、CHATGPT-4は大幅に改善されました。強力なコンテキスト理解能力を備えており、画像を認識して生成することもできます。普遍的なAIアシスタントです。それは、ビジネス効率の改善や創造の支援など、多くの分野で大きな可能性を示しています。ただし、同時に、その使用における予防策にも注意を払わなければなりません。 この記事では、ChATGPT-4の特性を詳細に説明し、さまざまなシナリオの効果的な使用方法を紹介します。この記事には、最新のAIテクノロジーを最大限に活用するためのスキルが含まれています。参照してください。 Openaiの最新のAIエージェント、「Openai Deep Research」の詳細については、以下のリンクをクリックしてください

ChatGPTのアプリの使い方を解説!日本語対応で音声会話機能もChatGPTのアプリの使い方を解説!日本語対応で音声会話機能もMay 14, 2025 am 04:59 AM

ChatGPTアプリ:AIアシスタントで創造性を解き放つ!初心者向けガイド ChatGPTアプリは、文章作成、翻訳、質問応答など、多様なタスクに対応する革新的なAIアシスタントです。創作活動や情報収集にも役立つ、無限の可能性を秘めたツールです。 この記事では、ChatGPTスマホアプリのインストール方法から、音声入力機能やプラグインといったアプリならではの機能、そしてアプリ利用上の注意点まで、初心者にも分かりやすく解説します。プラグインの制限やデバイス間の設定同期についてもしっかりと触れていきま

ChatGPTの中文版の利用方法は?登録手順や料金について解説ChatGPTの中文版の利用方法は?登録手順や料金について解説May 14, 2025 am 04:56 AM

Chatgpt中国語版:中国語のAIの対話の新しい体験のロックを解除する ChatGptは世界中で人気がありますが、中国語版も提供していることをご存知ですか?この強力なAIツールは、毎日の会話をサポートするだけでなく、プロのコンテンツを処理し、簡素化された伝統的な中国語と互換性があります。中国のユーザーであろうと、中国語を学んでいる友人であろうと、あなたはそれから利益を得ることができます。 この記事では、アカウント設定、中国語の迅速な単語入力、フィルターの使用、さまざまなパッケージの選択を含むChatGpt中国語のバージョンの使用方法を詳細に紹介し、潜在的なリスクと対応戦略を分析します。さらに、ChatGpt中国語版を他の中国のAIツールと比較して、その利点とアプリケーションシナリオをよりよく理解するのに役立ちます。 Openaiの最新のAIインテリジェンス

5 AIエージェントの神話あなたは今信じるのをやめる必要があります5 AIエージェントの神話あなたは今信じるのをやめる必要がありますMay 14, 2025 am 04:54 AM

これらは、生成AIの分野で次の飛躍と考えることができ、ChatGptやその他の大規模なモデルのチャットボットを提供しました。単に質問に答えたり情報を生成したりするのではなく、彼らは私たちに代わって行動を起こすことができます。

ChatGPTで複数アカウントを作成・管理する不法をわかりやすく解説ChatGPTで複数アカウントを作成・管理する不法をわかりやすく解説May 14, 2025 am 04:50 AM

ChatGPTを活用した効率的な複数アカウント管理術|ビジネスとプライベートの使い分けも徹底解説! 様々な場面で活用されているChatGPTですが、複数アカウントの管理に頭を悩ませている方もいるのではないでしょうか。この記事では、ChatGPTの複数アカウント作成方法、利用上の注意点、そして安全かつ効率的な運用方法を詳しく解説します。ビジネス利用とプライベート利用の使い分け、OpenAIの利用規約遵守といった重要な点にも触れ、複数アカウントを安全に活用するためのガイドを提供します。 OpenAI

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)