ホームページ >テクノロジー周辺機器 >AI >PHI-4をローカルに微調整する方法は?

PHI-4をローカルに微調整する方法は?

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2025-03-08 11:49:14784ブラウズ

このガイドは、低ランク適応(LORA)アダプターと抱き合った顔を使用した特殊なタスクのMicrosoft Phi-4大言語モデル(LLM)の微調整を示しています。 特定のドメインに焦点を当てることにより、カスタマーサポートや医学的アドバイスなどのアプリケーションのPHI-4のパフォーマンスを最適化できます。 LORAの効率は、このプロセスをより速く、リソース集約的ではないようにします。

重要な学習成果:

ターゲットアプリケーションにLORAアダプターを使用してMicrosoft PHI-4を微調整します 4ビット量子化でPHI-4を効率的に構成してロードします。
  • hugging hugging faceと
  • ライブラリで微調整するためのデータセットを準備して変換します。
  • hugging hugging faceの
  • GPUの使用を監視し、微調整されたモデルを保存/アップロードして、展開のために顔を抱き締める。 unsloth
  • 前提条件:SFTTrainer
  • 開始する前に、
  • を持っていることを確認してください

python 3.8 pytorch(gpu加速度のCUDAサポートを備えています)

ライブラリ
  • 顔のhugging
  • and
  • ライブラリ
  • unsloth
  • を使用して必要なライブラリをインストールします
  • transformersdatasets微調整PHI-4:ステップバイステップのアプローチ

このセクションでは、セットアップからハグの顔への展開まで、微調整プロセスについて詳しく説明しています。

pip install unsloth
pip install --force-reinstall --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git
ステップ1:モデルのセットアップ

これには、モデルの読み込みと必須ライブラリのインポートが含まれます

ステップ2:データセットの準備

ShareGPT形式でFinetome-100Kデータセットを使用します。
from unsloth import FastLanguageModel
import torch

max_seq_length = 2048
load_in_4bit = True

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Phi-4",
    max_seq_length=max_seq_length,
    load_in_4bit=load_in_4bit,
)

model = FastLanguageModel.get_peft_model(
    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=3407,
)
これをFaceのフォーマットの抱きしめに変換するのに役立ちます:

How to Fine-Tune Phi-4 Locally? How to Fine-Tune Phi-4 Locally?

ステップ3:モデル微調整

unsloth

ハグを使用して微調整します
from datasets import load_dataset
from unsloth.chat_templates import standardize_sharegpt, get_chat_template

dataset = load_dataset("mlabonne/FineTome-100k", split="train")
dataset = standardize_sharegpt(dataset)
tokenizer = get_chat_template(tokenizer, chat_template="phi-4")

def formatting_prompts_func(examples):
    texts = [
        tokenizer.apply_chat_template(convo, tokenize=False, add_generation_prompt=False)
        for convo in examples["conversations"]
    ]
    return {"text": texts}

dataset = dataset.map(formatting_prompts_func, batched=True)

How to Fine-Tune Phi-4 Locally? How to Fine-Tune Phi-4 Locally?

ステップ4:GPUの使用監視

SFTTrainer

GPUメモリの使用量を監視:
from trl import SFTTrainer
from transformers import TrainingArguments, DataCollatorForSeq2Seq
from unsloth import is_bfloat16_supported
from unsloth.chat_templates import train_on_responses_only

trainer = SFTTrainer(
    # ... (Trainer configuration as in the original response) ...
)

trainer = train_on_responses_only(
    trainer,
    instruction_part="user",
    response_part="assistant",
)

How to Fine-Tune Phi-4 Locally? How to Fine-Tune Phi-4 Locally?

ステップ5:推論

応答を生成:

pip install unsloth
pip install --force-reinstall --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git

How to Fine-Tune Phi-4 Locally? How to Fine-Tune Phi-4 Locally?

ステップ6:保存とアップロード

ローカルで保存するか、顔を抱き締めるようにプッシュ:

from unsloth import FastLanguageModel
import torch

max_seq_length = 2048
load_in_4bit = True

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Phi-4",
    max_seq_length=max_seq_length,
    load_in_4bit=load_in_4bit,
)

model = FastLanguageModel.get_peft_model(
    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=3407,
)

How to Fine-Tune Phi-4 Locally?

<your_hf_token></your_hf_token>を実際の抱きしめている顔のトークンに置き換えることを忘れないでください。

結論:

この合理化されたガイドは、開発者が特定のニーズに合わせてPHI-4を効率的に微調整することを可能にし、LORAの力を活用し、最適化されたパフォーマンスと簡単な展開のために顔を抱きしめます。 完全なコードスニペットと詳細な説明については、元の応答を忘れないでください。

以上がPHI-4をローカルに微調整する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。