×
Community Blog การเพิ่มประสิทธิภาพโมเดล GenAI: แนวทางในการปรับแต่งอย่างละเอียดและควอนไทเซชัน

การเพิ่มประสิทธิภาพโมเดล GenAI: แนวทางในการปรับแต่งอย่างละเอียดและควอนไทเซชัน

บทความนี้จะอธิบายวิธีปรับแต่งอย่างละเอียดและการควอนไทซ์โมเดลภาษาที่ได้รับการฝึกล่วงหน้า

ผู้เขียน: Farruh

1_jpeg

ปัญญาประดิษฐ์ได้ก้าวข้ามจากคำศัพท์มาเป็นเครื่องมือสำคัญทั้งในการใช้งานทางธุรกิจและส่วนบุคคล เมื่อสาขา AI เติบโตขึ้น ความต้องการโมเดลที่มีประสิทธิภาพและเฉพาะงานก็เพิ่มมากขึ้นเช่นกัน นี่คือจุดที่การปรับแต่งอย่างละเอียดและควอนไทเซชันเข้ามามีบทบาท ช่วยให้เราปรับแต่งโมเดลที่สร้างไว้ล่วงหน้าเพื่อให้เหมาะกับความต้องการของเราได้ดีขึ้นและดำเนินการได้อย่างมีประสิทธิภาพมากขึ้น ด้านล่างนี้คือคำแนะนำที่ออกแบบมาเพื่อแนะนำผู้เริ่มต้นผ่านกระบวนการปรับแต่งอย่างละเอียดและควอนไทซ์โมเดลภาษาโดยใช้ Python และ Hugging Face ไลบรารี Transformers

ความสำคัญของการปรับแต่งอย่างละเอียดและควอนไทเซชันใน AI

การปรับแต่งอย่างละเอียดนั้นคล้ายกับการฝึกทักษะกว้างๆ ให้เป็นทักษะเฉพาะทาง โมเดลภาษาที่ได้รับการฝึกล่วงหน้าจะรู้มากมายเกี่ยวกับหัวข้อต่างๆ แต่ด้วยการปรับแต่งอย่างละเอียดจะสามารถกลายเป็นผู้เชี่ยวชาญในขอบเขตเฉพาะทางได้ เช่น ศัพท์เฉพาะทางกฎหมายหรือศัพท์ทางการแพทย์

ควอนไทเซชันช่วยสนับสนุนสิ่งนี้ด้วยการทำให้โมเดลขนาดใหญ่เหล่านี้ใช้ทรัพยากรได้อย่างมีประสิทธิภาพมากขึ้น ลดพื้นที่หน่วยความจำและเร่งความเร็วในการประมวลผล ซึ่งเป็นประโยชน์อย่างยิ่งเมื่อปรับใช้โมเดลบนอุปกรณ์ Edge หรือในสภาพแวดล้อมที่มีพลังการประมวลผลจำกัด

2_jpeg

คุณค่าสำหรับธุรกิจและบุคคล

ธุรกิจต่างๆ สามารถใช้ประโยชน์จากโมเดลที่ได้รับการปรับแต่งอย่างละเอียดและการควอนไทซ์ เพื่อสร้างแอปพลิเคชัน AI ขั้นสูงที่ดูเหมือนจะเป็นไปไม่ได้เนื่องจากข้อจำกัดด้านทรัพยากร สำหรับบุคคล เทคนิคเหล่านี้ทำให้สามารถใช้งาน AI ที่ซับซ้อนบนฮาร์ดแวร์มาตรฐานได้ ทำให้สามารถเข้าถึงโครงการส่วนตัวหรือการวิจัยได้มากขึ้น

3_jpeg

การตั้งค่าบัญชี Hugging Face ของคุณ

ก่อนที่จะจัดการกับโค้ด คุณจะต้องเข้าถึงโมเดล AI และชุดข้อมูลก่อน Hugging Face คือจุดเริ่มต้น:

  1. เยี่ยมชมHugging Face
  2. คลิกลงทะเบียนเพื่อสร้างบัญชีใหม่
  3. กรอกข้อมูลลงทะเบียนให้สมบูรณ์
  4. ยืนยันอีเมลของคุณแล้วลุยกันเลย!

4

เตรียมสภาพแวดล้อม

ขั้นแรก ไลบรารีที่จำเป็นจะถูกนำเข้า คุณจะต้องมีไลบรารี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
)

การควอนไทเซชันด้วย BitsAndBytes

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!

ขอให้สนุกกับการเขียนโค้ด!


บทความนี้ถูกเขียนเป็นภาษาอังกฤษ ดูบทความต้นฉบับที่นี่

0 0 0
Share on

Regional Content Hub

36 posts | 2 followers

Comments

Regional Content Hub

36 posts | 2 followers

Related Products