Panduan ini menunjukkan penalaan halus Microsoft PHI-4 Model Besar (LLM) untuk tugas-tugas khusus menggunakan penyesuaian penyesuaian peringkat rendah (LORA) dan muka yang memeluk. Dengan memberi tumpuan kepada domain tertentu, anda boleh mengoptimumkan prestasi PHI-4 untuk aplikasi seperti sokongan pelanggan atau nasihat perubatan. Kecekapan LORA menjadikan proses ini lebih cepat dan kurang berintensifkan sumber.
Hasil Pembelajaran Utama:
unsloth
perpustakaan. SFTTrainer
. Prasyarat:
Sebelum memulakan, pastikan anda mempunyai:
unsloth
Perpustakaan transformers
dan datasets
perpustakaan Pasang perpustakaan yang diperlukan menggunakan:
pip install unsloth pip install --force-reinstall --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git
Fine-Tuning Phi-4: Pendekatan Langkah demi Langkah
Bahagian ini memperincikan proses penalaan halus, dari persediaan untuk digunakan pada muka yang memeluk.
Langkah 1: Persediaan Model
Ini melibatkan memuatkan model dan mengimport perpustakaan penting:
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, )
Langkah 2: Penyediaan dataset
Kami akan menggunakan dataset Finetome-100K dalam format ShareGPT. unsloth
membantu menukar ini untuk memeluk format wajah:
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)
Langkah 3: Model Fine-Tuning
Fine-Tune Menggunakan Hugging Face's SFTTrainer
:
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", )
Langkah 4: Pemantauan Penggunaan GPU
memantau penggunaan memori GPU:
import torch # ... (GPU monitoring code as in the original response) ...
Langkah 5: Kesimpulan
Menjana respons:pip install unsloth pip install --force-reinstall --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git
Langkah 6: Menjimatkan dan memuat naik
simpan secara tempatan atau tolak untuk memeluk wajah:
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, )
dengan token muka pelukan sebenar anda. <your_hf_token></your_hf_token>
Kesimpulan:
Panduan yang diperkemas ini memberi kuasa kepada pemaju untuk menyempurnakan Phi-4 dengan cekap untuk keperluan khusus, memanfaatkan kuasa LORA dan memeluk muka untuk prestasi yang dioptimumkan dan penggunaan mudah. Ingatlah untuk berunding dengan respons asal untuk coretan kod lengkap dan penjelasan terperinci.Atas ialah kandungan terperinci Bagaimana cara menyempurnakan Phi-4 secara tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!