全部产品
Search
文档中心

Platform For AI:Menyempurnakan Model Llama3-8B

更新时间:Dec 04, 2025

Data Science Workshop (DSW) dari Platform for AI (PAI) adalah platform pemodelan interaktif yang memungkinkan Anda menyempurnakan model kustom dan mengoptimalkan kinerja model. Topik ini menjelaskan cara menyempurnakan parameter model Llama 3 di DSW untuk menyesuaikan model dengan skenario tertentu dan meningkatkan kinerjanya pada tugas-tugas spesifik. Dalam topik ini, model Meta-Llama-3-8B-Instruct digunakan sebagai contoh.

Informasi latar belakang

Llama 3 adalah keluarga model terbaru dalam seri Llama yang dirilis oleh Meta pada April 2024. Llama 3 dilatih menggunakan lebih dari 15 triliun token, sekitar tujuh kali ukuran dataset Llama 2. Llama 3 mendukung hingga 8K token dan tokenizer yang ditingkatkan dengan ukuran kosakata mencapai 128K token, memastikan pemrosesan konteks kompleks dan istilah teknis secara lebih akurat dan efisien.

Llama 3 tersedia dalam versi pra-pelatihan dan instruksi dengan ukuran 8B dan 70B, cocok untuk berbagai skenario.

  • 8B

    Llama 3 8B ideal untuk penyebaran dan pengembangan berbasis GPU tingkat konsumen. Versi ini dapat digunakan dalam skenario yang memerlukan kecepatan respons tinggi dan efisiensi biaya.

    • Meta-Llama-3-8B: versi pra-pelatihan

    • Meta-Llama-3-8B-Instruct: versi instruksi

  • 70B

    Llama 3 70B memanfaatkan jumlah parameter besar dan cocok untuk aplikasi AI berskala besar, tugas lanjutan serta kompleks, dan optimasi performa.

    • Meta-Llama-3-70B: versi pra-pelatihan

    • Meta-Llama-3-70B-Instruct: versi instruksi

Prasyarat

  • Ruang kerja telah dibuat. Untuk informasi lebih lanjut, lihat Membuat dan Mengelola Ruang Kerja.

  • Instansi DSW telah dibuat. Perhatikan parameter utama berikut. Untuk informasi lebih lanjut, lihat Membuat Instansi DSW.

    • Tipe instansi: Disarankan menggunakan instansi dengan Memori GPU minimal 16 GB, seperti GPU V100.

    • Python: Python 3.9 atau yang lebih baru.

    • Citra: Pada contoh ini, image URL berikut digunakan: dsw-registry-vpc.REGION.cr.aliyuncs.com/pai-training-algorithm/llm_deepspeed_peft:v0.0.3. Ganti REGION dengan ID wilayah tempat instans DSW Anda berada. Contoh: cn-hangzhou atau cn-shanghai. Tabel berikut menjelaskan ID wilayah tersebut.

      Wilayah

      ID Wilayah

      Cina (Hangzhou)

      cn-hangzhou

      Cina (Shanghai)

      cn-shanghai

      Cina (Beijing)

      cn-beijing

      Cina (Shenzhen)

      cn-shenzhen

  • Sebelum menggunakan model Llama 3, baca lisensi resmi Meta.

    Catatan

    Jika Anda tidak dapat mengakses halaman web tersebut, konfigurasikan proxy dan coba lagi.

Langkah 1: Unduh model

Metode 1: Unduh model di DSW

  1. Masuk ke lingkungan pengembangan DSW.

    1. Masuk ke konsol PAI.

    2. Di bilah navigasi atas, pilih wilayah tempat instansi DSW berada.

    3. Di panel navigasi sisi kiri, klik Workspaces. Di halaman Workspaces, klik nama ruang kerja default.

    4. Di panel navigasi sisi kiri, pilih Model Development and Training > Interactive Modeling (DSW).

    5. Klik Open di kolom Actions instansi DSW yang ingin Anda kelola untuk masuk ke lingkungan pengembangan instansi DSW.

  2. Di tab Launcher, klik Python 3 di panel Notebook bagian Quick Start.

  3. Jalankan kode berikut di Notebook untuk mengunduh file model. Sistem secara otomatis memilih alamat unduhan yang sesuai dan mengunduh file model ke direktori saat ini.

    ! pip install modelscope==1.32.0 transformers==4.37.0
    from modelscope.hub.snapshot_download import snapshot_download
    snapshot_download('LLM-Research/Meta-Llama-3-8B-Instruct', cache_dir='.', revision='master')

Metode 2: Unduh model di Meta

Kunjungi situs web Meta untuk mengajukan model.

Catatan

Jika Anda tidak dapat mengakses halaman web tersebut, konfigurasikan proxy dan coba lagi.

Langkah 2: Siapkan dataset

Dalam contoh ini, dataset puisi bahasa Inggris digunakan untuk menyempurnakan model Llama 3 guna meningkatkan ekspresivitas puitis dari puisi yang dihasilkan. Jalankan perintah berikut di Notebook DSW untuk mengunduh set data pelatihan yang diperlukan oleh model:

!wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/tutorial/llm_instruct/en_poetry_train.json

Anda dapat menggunakan dataset yang sesuai dengan skenario bisnis Anda berdasarkan format dataset pelatihan sampel. Anda dapat meningkatkan akurasi respons model bahasa besar (LLM) untuk tugas-tugas tertentu dengan menyempurnakan LLM.

Langkah 3: Menyempurnakan model

Pelatihan LoRA ringan

Pada contoh ini, skrip pelatihan /ml/code/sft.py digunakan untuk melakukan pelatihan Low-Rank Adaptation (LoRA) ringan pada model. Setelah pelatihan, sistem melakukan kuantisasi parameter model untuk mengurangi penggunaan Memori GPU saat inferensi.

Saat Anda menjalankan perintah accelerate launch, sistem menggunakan parameter tersebut untuk menjalankan skrip Python tertentu dan melakukan pelatihan berdasarkan sumber daya komputasi yang ditentukan dalam file konfigurasi multi_gpu.yaml.

! accelerate launch --num_processes 1 --config_file /ml/code/multi_gpu.yaml /ml/code/sft.py \
    --model_name  ./LLM-Research/Meta-Llama-3-8B-Instruct/ \
    --model_type llama \
    --train_dataset_name en_poetry_train..json \
    --num_train_epochs 3 \
    --batch_size 8 \
    --seq_length 128 \
    --learning_rate 5e-4 \
    --lr_scheduler_type linear \
    --target_modules k_proj o_proj q_proj v_proj \
    --output_dir lora_model/ \
    --apply_chat_template \
    --use_peft \
    --load_in_4bit \
    --peft_lora_r 32 \
    --peft_lora_alpha 32 

Berikut ini menjelaskan parameter yang digunakan dalam contoh ini. Modifikasi parameter berdasarkan kebutuhan bisnis Anda.

  • Perintah accelerate launch digunakan untuk menjalankan dan mengelola skrip pelatihan pembelajaran mendalam pada beberapa GPU.

    • num_processes: jumlah proses paralel. Dalam contoh ini, parameter ini diatur ke 1 untuk menonaktifkan pemrosesan paralel multiproses.

    • config_file/ml/code/multi_gpu.yaml: jalur file konfigurasi.

    • /ml/code/sft.py: jalur skrip Python yang ingin Anda jalankan.

  • Untuk menjalankan skrip /ml/code/sft.py, konfigurasikan parameter berikut:

    • --model_name./LLM-Research/Meta-Llama-3-8B-Instruct/: jalur model pretrained.

    • --model_type: jenis model. Pada contoh ini, digunakan Llama.

    • --train_dataset_namechinese_medical_train_sampled.json: jalur dataset pelatihan.

    • --num_train_epochs: jumlah epoch pelatihan. Pada contoh ini, parameter diatur ke 3.

    • --batch_size: ukuran batch. Pada contoh ini, parameter diatur ke 8.

    • --seq_length: panjang sekuens. Pada contoh ini, parameter diatur ke 128.

    • --learning_rate: tingkat pembelajaran. Pada contoh ini, parameter diatur ke 5e-4, yang setara dengan 0,0005.

    • --lr_scheduler_type: jenis penjadwal tingkat pembelajaran. Pada contoh ini, parameter diatur ke linear.

    • --target_modules: bagian model yang menjadi fokus selama fine-tuning. Pada contoh ini, parameter diatur ke k_proj o_proj q_proj v_proj.

    • --output_dir: direktori output tempat model hasil fine-tuning disimpan. Pada contoh ini, parameter diatur ke lora_model/.

    • --apply_chat_template: templat chat yang digunakan selama pelatihan.

    • --use_peft: Gunakan Parameter-Efficient Fine-Tuning (PEFT) selama pelatihan.

    • --load_in_4bit: Muat bobot model dengan presisi 4-bit untuk mengurangi konsumsi memori.

    • --peft_lora_r 32: Jika LoRA digunakan sebagai bagian dari metode fine-tuning efisien parameter, nilai ini menentukan nilai 32 untuk LoRA.

    • --peft_lora_alpha: nilai alpha LoRA. Pada contoh ini, parameter diatur ke 32.

Fusi bobot LoRA dengan model

Jalankan perintah berikut untuk menggabungkan bobot LoRA dengan model Llama 3:

! RANK=0 python /ml/code/convert.py \
    --model_name ./LLM-Research/Meta-Llama-3-8B-Instruct/ \
    --model_type llama \
    --output_dir trained_model/ \
    --adapter_dir lora_model/

Berikut ini menjelaskan parameter dan nilai yang digunakan dalam contoh ini:

  • RANK=0: Variabel lingkungan RANK digunakan untuk menentukan nomor urut proses saat ini di antara semua proses dalam pelatihan terdistribusi. Nilai 0 menunjukkan bahwa proses saat ini merupakan proses independen atau berperan sebagai proses utama dalam pelatihan terdistribusi.

  • python /ml/code/convert.py: Jalankan skrip convert.py untuk konversi bobot atau tugas konversi lainnya.

  • --model_name ./LLM-Research/Meta-Llama-3-8B-Instruct/: jalur menuju model.

  • --model_type llama: jenis model. Pada contoh ini, digunakan Llama.

  • --output_dir trained_model/: direktori output tempat model dan bobot hasil konversi disimpan.

  • --adapter_dir lora_model/: direktori tempat bobot adapter LoRA berada.

Langkah 4: Lakukan inferensi model

Jalankan perintah berikut untuk melakukan inferensi model dan memverifikasi efek fine-tuning. Dalam contoh ini, model diminta untuk menghasilkan puisi tentang musim semi:

import torch, transformers

# model_id = "./LLM-Research/Meta-Llama-3-8B-Instruct/"
model_id = "./trained_model/"
pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device="cuda",
)

messages = [
    {"role": "user", "content": "Tulis sebuah puisi tentang topik 'musim semi' "},
]

prompt = pipeline.tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
)

terminators = [
    pipeline.tokenizer.eos_token_id,
    pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = pipeline(
    prompt,
    max_new_tokens=1024,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])

Berikut ini memberikan contoh respons model, yang menunjukkan bahwa model dapat menghasilkan puisi berkualitas tinggi setelah fine-tuning.

Berikut adalah puisi tentang topik "Musim Semi":

Saat dingin musim dingin mulai memudar,
Bumi terbangun dari bayangannya,
Dan napas manis musim semi mulai berhembus,
Membawa kehidupan bagi semua yang dingin dan lambat.

Pohon-pohon kembali ke warna cerah mereka,
Dan bunga-bunga mekar, baik yang lama maupun yang baru,
Kelopak mereka menari dalam angin sepoi-sepoi,
Saat sinar matahari menghangatkan dunia dengan mudah.

Udara dipenuhi dengan wewangian manis,
Saat bunga-bunga mekar di tempat mereka,
Dan burung robin bernyanyi lagu pagi mereka,
Saat kebangkitan musim semi kuat.

Dunia segar, baru, dan cerah,
Saat cahaya hangat musim semi mulai terbang,
Dan di sekitarnya, kehidupan baru terbuka,
Saat cengkeraman musim dingin mulai menua.

Jadi mari kita nikmati sinar hangat musim semi,
Dan biarkan semangat kita melayang dan bergoyang,
Karena dalam musim ini, kita dilahirkan kembali,
Dan di sekitarnya, kehidupan baru diucapkan.

Semoga Anda menikmatinya!

Langkah 5. Terapkan model

Anda dapat mengunggah bobot model yang disempurnakan ke Object Storage Service (OSS) dan menerapkan model Llama 3 yang disempurnakan di Elastic Algorithm Service (EAS) dari PAI. Untuk informasi lebih lanjut, lihat Terapkan Aplikasi LLM di EAS.

Lampiran: Gunakan Llama 3 di DSW Gallery

DSW Gallery menyediakan kasus penggunaan Notebook pada Llama 3. Anda dapat menggunakan kasus tersebut pada instansi DSW berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Notebook Gallery.

FAQ

T: Terjadi error saat mengunduh model: FileDownloadError: File config.json download imcomlete, content_length: None but the ......

Di Terminal, jalankan pip install -U modelscope untuk melakukan upgrade paket modelscope. Klik ikon image di bagian atas halaman Notebook untuk memuat ulang kernel Python. Kemudian, jalankan kembali kode pengunduhan model.

Referensi

Untuk informasi lebih lanjut tentang versi ChatLLM-WebUI, lihat Catatan Rilis untuk ChatLLM WebUI.