Heim >Technologie-Peripheriegeräte >KI >Wie kann man phi-4 lokal feinstimmen?

Wie kann man phi-4 lokal feinstimmen?

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-03-08 11:49:14782Durchsuche

Diese Anleitung zeigt Feinabstimmung des Microsoft Phi-4 großsprachigen Modells (LLM) für spezielle Aufgaben unter Verwendung von LORA-Adaptern (Low-Rank Adaptation) und dem Umarmungsgesicht. Indem Sie sich auf bestimmte Domänen konzentrieren, können Sie die Leistung von PHI-4 für Anwendungen wie Kundenbetreuung oder medizinische Beratung optimieren. Die Effizienz von Lora macht diesen Prozess schneller und weniger ressourcenintensiv.

Key -Lernergebnisse:

  • Fine-Tune-Microsoft-PHI-4 mit LORA-Adaptern für gezielte Anwendungen.
  • konfigurieren und laden Sie phi-4 effizient mit 4-Bit-Quantisierung.
  • Datensätze vorbereiten und transformieren Sie für die Feinabstimmung mit umarmtem Gesicht und der unsloth Bibliothek.
  • Die Modellleistung optimieren Sie mithilfe der SFTTrainer.
  • .
  • GPU-Verwendung überwachen und fein abgestimmte Modelle speichern/hochladen, um das Gesicht zum Einsatz zu umarmen.

Voraussetzungen:

Stellen Sie vor dem Start sicher, dass Sie:
    haben
  • Python 3.8
  • pytorch (mit CUDA -Unterstützung für die GPU -Beschleunigung)
  • unsloth
  • Bibliothek
  • transformers umarmt Face datasets und
  • Bibliotheken

Installieren Sie die erforderlichen Bibliotheken mit:
pip install unsloth
pip install --force-reinstall --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git

feinstimmend Phi-4: Ein Schritt-für-Schritt-Ansatz

In diesem Abschnitt wird der Feinabstimmungsvorgang beschrieben, vom Setup bis zur Bereitstellung auf dem Umarmungsgesicht.

Schritt 1: Modell -Setup

Dies beinhaltet das Laden des Modells und das Importieren von essentiellen Bibliotheken:
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? How to Fine-Tune Phi-4 Locally?

Schritt 2: Datensatzvorbereitung

unsloth Wir werden den Finetome-100K-Datensatz im Sharegpt-Format verwenden.

hilft, dies in das Format des Gesichts umzuwandeln:
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?

Schritt 3: Modell Feinabstimmung

SFTTrainer Fein-Tune mit der

:
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",
)
-Face-Face

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

Schritt 4: GPU -Verwendung Überwachung

GPU -Speicherverbrauch überwachen:
import torch
# ... (GPU monitoring code as in the original response) ...

How to Fine-Tune Phi-4 Locally?

Schritt 5: Inferenz

Antworten generieren:
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?

Schritt 6: Speichern und Hochladen

lokal speichern oder auf das umarmende Gesicht drücken:

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?

Denken Sie daran, <your_hf_token></your_hf_token> durch Ihr tatsächliches Umarmungs -Gesichts -Token zu ersetzen.

Schlussfolgerung:

Dieser optimierte Leitfaden ermöglicht es Entwicklern, den PHI-4 für bestimmte Bedürfnisse effizient fein abzustimmen, die Leistung von Lora zu nutzen und das Gesicht für optimierte Leistung und einfache Einsatz zu umarmen. Denken Sie daran, die ursprüngliche Antwort für vollständige Codeausschnitte und detaillierte Erklärungen zu konsultieren.

Das obige ist der detaillierte Inhalt vonWie kann man phi-4 lokal feinstimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn