Penulis: Farruh
Kecerdasan Buatan telah meningkat pesat dari sebuah buzzword menjadi alat penting dalam aplikasi bisnis dan pribadi. Seiring pertumbuhan bidang AI, kebutuhan akan model yang lebih efisien dan khusus tugas pun meningkat. Di sinilah penyempurnaan dan kuantisasi berperan, yang memungkinkan kita untuk menyempurnakan model siap pakai agar lebih sesuai dengan kebutuhan kita dan melakukannya dengan lebih efisien. Di bawah ini adalah panduan yang dirancang untuk membawa pemula melalui proses penyempurnaan dan kuantisasi model bahasa menggunakan Python dan pustaka Hugging Face Transformers
.
Penyesuaian berkaitan dengan mengasah sekumpulan keterampilan yang luas menjadi keterampilan khusus. Model bahasa yang telah terlatih mungkin tahu banyak tentang berbagai topik, namun melalui penyempurnaan, model tersebut dapat menjadi ahli dalam ranah tertentu, seperti jargon hukum atau terminologi medis.
Kuantitasi melengkapinya dengan menjadikan model besar ini lebih hemat sumber daya, mengurangi jejak memori dan mempercepat komputasi, yang bermanfaat terutama ketika menyebarkan model pada perangkat tepi atau di lingkungan dengan kekuatan komputasi terbatas.
Bisnis dapat memanfaatkan model yang disempurnakan dan dikuantifikasi untuk membuat aplikasi AI canggih yang tampaknya tidak layak karena adanya kendala sumber daya. Bagi individu, teknik ini memungkinkan untuk menjalankan AI canggih pada perangkat keras standar, sehingga proyek, atau penelitian pribadi lebih dapat diakses.
Sebelum menangani kode, Anda memerlukan akses ke model dan set data AI. Hugging Face adalah tempat untuk memulai:
Pertama, pustaka yang diperlukan diimpor. Anda akan membutuhkan pustaka torch
untuk fungsi PyTorch, dan pustaka transformer
dari Hugging Face arsitektur model dan bobot yang telah terlatih. Impor lainnya termasuk datasets
untuk pemuatan dan penanganan set data, dan peft
dan trl
untuk rutinitas pelatihan dan dukungan kuantisasi yang efisien.
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
Selanjutnya, kode tersebut menjelaskan model dan set data yang akan digunakan, yang sangat penting untuk penyempurnaan. Variabel model_name
berisi pengenal model yang telah terlatih yang ingin Anda sempurnakan, dan dataset_name
adalah pengenal set data yang akan Anda gunakan untuk pelatihan.
model_name = "Qwen/Qwen-7B-Chat"
dataset_name = "mlabonne/guanaco-llama2-1k"
new_model = "Qwen-7B-Chat-SFT"
Parameter untuk penyempurnaan diatur menggunakan TrainingArguments
. Ini mencakup jumlah epoch, ukuran batch, tingkat pembelajaran, dan banyak lagi, yang menentukan cara model akan belajar selama proses penyempurnaan.
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
mengonfigurasi model untuk kuantisasi. Dengan mengatur load_in_4bit
kntukTrue
, Anda memungkinkan model untuk menggunakan versi terkuantisasi 4 bit, yang mengurangi ukurannya dan berpotensi meningkatkan kecepatan.
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,
)
Model dimuat dengan konfigurasi yang ditentukan, dan tokenizer disiapkan. SFTTrainer
kemudian digunakan untuk menyesuaikan model pada set data yang dimuat. Setelah pelatihan, model ini disimpan untuk penggunaan di masa mendatang.
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)
Dengan model yang disempurnakan dan terkuantisasi, Anda sekarang dapat membuat teks berdasarkan prompt untuk melihat seberapa baik fungsinya berjalan. Ini dilakukan menggunakan fungsi pipeline
dari 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'])
Panduan ini seharusnya mengarahkan pembaca langkah demi langkah, dari menyiapkan lingkungan hingga menjalankan model pertama mereka yang disempurnakan dan terkuantisasi. Setiap langkah harus digambarkan dengan cuplikan dari kode yang disediakan, yang menjelaskan tujuannya dan memandu pembaca tentang cara mengubahnya sesuai kebutuhan mereka.
Di akhir tutorial ini, pembaca akan memiliki pemahaman yang kuat tentang cara menyesuaikan dan mengkuantisasi model bahasa yang telah terlatih. Pengetahuan ini membuka dunia kemungkinan baru untuk aplikasi AI, sehingga model menjadi lebih khusus dan efisien.
Ingat bahwa bidang AI terus berkembang, dan tetap terkini dengan teknik terbaru adalah kunci untuk membuka potensi lengkapnya. Jadi selami, bereksperimen, dan jangan ragu untuk membagikan pencapaian dan pembelajaran Anda kepada komunitas.
Bersiaplah untuk menyesuaikan cara Anda menuju keunggulan AI!
Selamat membuat kode!
Artikel ini ditulis dalam bahasa Inggris. Lihat artikel asli di sini.
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
FollowRegional Content Hub - August 19, 2024
Regional Content Hub - April 1, 2024
Regional Content Hub - May 20, 2024
Regional Content Hub - July 15, 2024
Alibaba Cloud Indonesia - October 24, 2022
Alibaba Cloud_Academy - March 14, 2023
84 posts | 3 followers
FollowTop-performance foundation models from Alibaba Cloud
Learn MoreAccelerate AI-driven business and AI model training and inference with Alibaba Cloud GPU technology
Learn MoreAccelerate innovation with generative AI to create new business success
Learn MoreA platform that provides enterprise-level data modeling services based on machine learning algorithms to quickly meet your needs for data-driven operations.
Learn MoreMore Posts by Regional Content Hub