ผู้เขียน: 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
84 posts | 3 followers
Follow84 posts | 3 followers
FollowOffline SDKs for visual production, such as image segmentation, video segmentation, and character recognition, based on deep learning technologies developed by Alibaba Cloud.
Learn MoreAccelerate AI-driven business and AI model training and inference with Alibaba Cloud GPU technology
Learn MoreTop-performance foundation models from Alibaba Cloud
Learn MoreAccelerate innovation with generative AI to create new business success
Learn MoreMore Posts by Regional Content Hub