ผู้เขียน: Farruh
ปัญญาประดิษฐ์ได้ก้าวข้ามจากคำศัพท์มาเป็นเครื่องมือสำคัญทั้งในการใช้งานทางธุรกิจและส่วนบุคคล เมื่อสาขา AI เติบโตขึ้น ความต้องการโมเดลที่มีประสิทธิภาพและเฉพาะงานก็เพิ่มมากขึ้นเช่นกัน นี่คือจุดที่การปรับแต่งอย่างละเอียดและควอนไทเซชันเข้ามามีบทบาท ช่วยให้เราปรับแต่งโมเดลที่สร้างไว้ล่วงหน้าเพื่อให้เหมาะกับความต้องการของเราได้ดีขึ้นและดำเนินการได้อย่างมีประสิทธิภาพมากขึ้น ด้านล่างนี้คือคำแนะนำที่ออกแบบมาเพื่อแนะนำผู้เริ่มต้นผ่านกระบวนการปรับแต่งอย่างละเอียดและควอนไทซ์โมเดลภาษาโดยใช้ Python และ Hugging Face ไลบรารี Transformers
การปรับแต่งอย่างละเอียดนั้นคล้ายกับการฝึกทักษะกว้างๆ ให้เป็นทักษะเฉพาะทาง โมเดลภาษาที่ได้รับการฝึกล่วงหน้าจะรู้มากมายเกี่ยวกับหัวข้อต่างๆ แต่ด้วยการปรับแต่งอย่างละเอียดจะสามารถกลายเป็นผู้เชี่ยวชาญในขอบเขตเฉพาะทางได้ เช่น ศัพท์เฉพาะทางกฎหมายหรือศัพท์ทางการแพทย์
ควอนไทเซชันช่วยสนับสนุนสิ่งนี้ด้วยการทำให้โมเดลขนาดใหญ่เหล่านี้ใช้ทรัพยากรได้อย่างมีประสิทธิภาพมากขึ้น ลดพื้นที่หน่วยความจำและเร่งความเร็วในการประมวลผล ซึ่งเป็นประโยชน์อย่างยิ่งเมื่อปรับใช้โมเดลบนอุปกรณ์ Edge หรือในสภาพแวดล้อมที่มีพลังการประมวลผลจำกัด
ธุรกิจต่างๆ สามารถใช้ประโยชน์จากโมเดลที่ได้รับการปรับแต่งอย่างละเอียดและการควอนไทซ์ เพื่อสร้างแอปพลิเคชัน AI ขั้นสูงที่ดูเหมือนจะเป็นไปไม่ได้เนื่องจากข้อจำกัดด้านทรัพยากร สำหรับบุคคล เทคนิคเหล่านี้ทำให้สามารถใช้งาน AI ที่ซับซ้อนบนฮาร์ดแวร์มาตรฐานได้ ทำให้สามารถเข้าถึงโครงการส่วนตัวหรือการวิจัยได้มากขึ้น
ก่อนที่จะจัดการกับโค้ด คุณจะต้องเข้าถึงโมเดล AI และชุดข้อมูลก่อน Hugging Face คือจุดเริ่มต้น:
ขั้นแรก ไลบรารีที่จำเป็นจะถูกนำเข้า คุณจะต้องมีไลบรารีtorch
สำหรับฟังก์ชัน PyTorch และไลบรารีtransformers
จาก Hugging Face สำหรับสถาปัตยกรรมโมเดลและโมเดลที่ได้รับการฝึกล่วงหน้า การนำเข้าอื่นๆ ได้แก่datasets
สำหรับการโหลดและการจัดการชุดข้อมูลpeft
และtrl
สำหรับกิจวัตรการฝึกอบรมที่มีประสิทธิภาพและสนับสนุนด้านควอนไทเซชัน
import torch
from datasets import load_dataset
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig,
TrainingArguments,
pipeline,
logging,
)
from peft import LoraConfig, PeftModel
from trl import SFTTrainer
ถัดไป โค้ดจะระบุโมเดลและชุดข้อมูลที่จะใช้ ซึ่งมีความสำคัญอย่างยิ่งต่อการปรับแต่งอย่างละเอียด model_name
จะเก็บตัวระบุของโมเดลที่ได้รับการฝึกล่วงหน้าที่คุณต้องการปรับแต่ง และdataset_name
เป็นตัวระบุของชุดข้อมูลที่คุณจะใช้สำหรับการฝึก
model_name = "Qwen/Qwen-7B-Chat"
dataset_name = "mlabonne/guanaco-llama2-1k"
new_model = "Qwen-7B-Chat-SFT"
พารามิเตอร์สำหรับการปรับแต่งอย่างละเอียดได้รับการตั้งค่าโดยใช้TrainingArguments
ประกอบด้วยจำนวนรอบของการเทรน ขนาดแบทช์ อัตราการเรียนรู้ และอื่นๆ ซึ่งกำหนดว่าโมเดลจะเรียนรู้อย่างไรในระหว่างกระบวนการปรับแต่งอย่างละเอียด
training_arguments = TrainingArguments(
output_dir="./results",
num_train_epochs=1,
per_device_train_batch_size=1,
gradient_accumulation_steps=1,
learning_rate=2e-4,
weight_decay=0.001,
# ... other arguments
)
BitsAndBytesConfig
กำหนดค่าโมเดลสำหรับควอนไทเซชัน การตั้งค่าload_in_4bit
เป็นTrue
แสดงว่าคุณกำลังเปิดใช้งานโมเดลเพื่อใช้เวอร์ชันควอนไทซ์ 4 บิต ซึ่งจะลดขนาดลงและอาจเพิ่มความเร็วได้
bnb_config = BitsAndBytesConfig(
load_in_4bit=use_4bit,
bnb_4bit_quant_type=bnb_4bit_quant_type,
bnb_4bit_compute_dtype=compute_dtype,
bnb_4bit_use_double_quant=use_nested_quant,
)
โมเดลถูกโหลดตามค่าที่ระบุและเตรียมโทเค็นไนเซอร์แล้ว จากนั้นSFTTrainer
จะใช้เพื่อปรับแต่งโมเดลบนชุดข้อมูลที่โหลดมา โมเดลจะถูกบันทึกไว้ใช้ในอนาคตหลังจากการฝึก
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
# ... other configurations
)
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
# ... other configurations
)
trainer.train()
trainer.model.save_pretrained(new_model)
ด้วยโมเดลที่ได้รับการปรับแต่งอย่างละเอียดและควอนไทซ์แล้ว ตอนนี้คุณสามารถเขียนพรอมท์เพื่อดูว่ามันมีประสิทธิภาพดีเพียงใด ทำได้โดยใช้ฟังก์ชันpipeline
จากtransformers
pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=200)
result = pipe(f"<s>[INST] {prompt} [/INST]")
print(result[0]['generated_text'])
บทช่วยสอนนี้ควรแนะนำผู้อ่านทีละขั้นตอน ตั้งแต่การตั้งค่าสภาพแวดล้อมไปจนถึงการเรียกใช้โมเดลที่ได้รับการปรับแต่งอย่างละเอียดและควอนไทซ์เป็นครั้งแรก ในแต่ละขั้นตอนควรมีภาพประกอบตัวอย่างจากโค้ดที่ให้มา โดยอธิบายวัตถุประสงค์และแนะนำผู้อ่านเกี่ยวกับวิธีการแก้ไขให้ตรงตามความต้องการ
เมื่อสิ้นสุดบทช่วยสอนนี้ ผู้อ่านจะมีความเข้าใจที่ชัดเจนเกี่ยวกับวิธีการปรับแต่งอย่างละเอียดและการควอนไทซ์โมเดลภาษาที่ได้รับการฝึกล่วงหน้า ความรู้นี้เปิดโลกใหม่แห่งความเป็นไปได้สำหรับแอปพลิเคชัน AI ทำให้โมเดลมีความเชี่ยวชาญและมีประสิทธิภาพมากขึ้น
โปรดจำไว้ว่าสาขา AI มีการพัฒนาอย่างต่อเนื่อง และการอัปเดตเทคนิคล่าสุดเป็นกุญแจสำคัญในการปลดล็อกศักยภาพสูงสุด จงทดลองและอย่าลังเลที่จะแบ่งปันความสำเร็จและการเรียนรู้ของคุณกับชุมชน
เตรียมพร้อมที่จะปรับแต่งแนวทางของคุณสู่ความเป็นเลิศด้าน AI!
ขอให้สนุกกับการเขียนโค้ด!
บทความนี้ถูกเขียนเป็นภาษาอังกฤษ ดูบทความต้นฉบับที่นี่
Tối ưu hóa mô hình GenAI: Hướng dẫn tinh chỉnh và lượng tử hóa
93 posts | 3 followers
Follow93 posts | 3 followers
FollowAccelerate AI-driven business and AI model training and inference with Alibaba Cloud GPU technology
Learn MoreTop-performance foundation models from Alibaba Cloud
Learn MoreOffline SDKs for visual production, such as image segmentation, video segmentation, and character recognition, based on deep learning technologies developed by Alibaba Cloud.
Learn MoreSelf-service network O&M service that features network status visualization and intelligent diagnostics capabilities
Learn MoreMore Posts by Regional Content Hub