All Products
Search
Document Center

Platform For AI:Fine-tuning Llama3-8B

Last Updated:Apr 23, 2026

DSW adalah platform pemodelan interaktif yang memungkinkan pengembang menyesuaikan dan mengoptimalkan model melalui fine-tuning. Topik ini menggunakan model Llama-3-8B-Instruct sebagai contoh untuk menunjukkan cara melakukan fine-tuning model bahasa besar Llama3 di DSW. Fine-tuning membantu model lebih memahami dan beradaptasi dengan tugas tertentu, sehingga meningkatkan kinerjanya.

Latar Belakang

Llama3 adalah model terbaru dalam seri Llama, dirilis oleh Meta pada April 2024. Model ini dilatih pada lebih dari 15 triliun token—lebih dari tujuh kali ukuran set data Llama2—dan mendukung panjang konteks 8K. Selain itu, model ini dilengkapi tokenizer yang ditingkatkan dengan kosakata 128K token, sehingga memberikan kinerja yang lebih presisi dan efisien dalam memproses konteks kompleks serta terminologi khusus.

Llama3 tersedia dalam dua ukuran parameter: 8B dan 70B. Masing-masing memiliki dua versi: model pretrained dan model yang telah disesuaikan dengan instruksi (instruction-tuned).

  • Versi 8B

    Versi ini ideal untuk GPU kelas konsumen, memungkinkan penerapan dan pengembangan cepat pada sistem dengan sumber daya komputasi terbatas. Versi ini cocok untuk aplikasi yang memerlukan waktu respons cepat dan efisiensi biaya.

    • Meta-Llama-3-8b: Model pretrained 8B.

    • Meta-Llama-3-8b-instruct: Versi instruction-tuned dari model 8B.

  • Versi 70B

    Dirancang untuk aplikasi AI berskala besar, ukuran parameter yang sangat besar pada versi ini membuatnya cocok untuk tugas dan proyek yang sangat kompleks serta membutuhkan kinerja model unggul.

    • Meta-Llama-3-70b: Model pretrained 70B.

    • Meta-Llama-3-70b-instruct: Versi instruction-tuned dari model 70B.

Prasyarat

  • Buat ruang kerja. Untuk informasi selengkapnya, lihat Create and manage workspaces.

  • Buat instans DSW. Konfigurasikan parameter kunci berikut. Untuk informasi selengkapnya, lihat Create a DSW instance.

    • Jenis instans: Gunakan instans GPU dengan memori GPU minimal 16 GB, seperti V100.

    • Lingkungan Python: Gunakan Python 3.9 atau versi yang lebih baru.

    • Image: Pada bidang Image URL, masukkan 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, seperti cn-hangzhou atau cn-shanghai. Untuk daftar lengkap wilayah beserta ID wilayahnya, lihat tabel berikut.

      Wilayah

      ID Wilayah

      China (Hangzhou)

      cn-hangzhou

      China (Shanghai)

      cn-shanghai

      China (Beijing)

      cn-beijing

      China (Shenzhen)

      cn-shenzhen

  • Sebelum menggunakan model bahasa besar Llama3, baca lisensi resmi Meta.

    Catatan

    Jika Anda tidak dapat mengakses halaman tersebut, Anda mungkin perlu mengonfigurasi proxy dan mencoba lagi.

Langkah 1: Unduh model

Metode 1: Unduh di DSW

  1. Buka lingkungan pengembangan DSW.

    1. Login ke Konsol PAI.

    2. Di pojok kiri atas, pilih wilayah tempat instans DSW Anda berada.

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

    4. Di panel navigasi sebelah kiri, pilih Model Training > Data Science Workshop (DSW).

    5. Temukan instans yang ingin Anda gunakan dan klik Open di kolom Actions untuk masuk ke lingkungan pengembangan DSW.

  2. Di halaman Launcher, pada bagian Notebook, klik Python 3.

  3. Jalankan kode berikut untuk mengunduh file model. Kode ini secara otomatis memilih sumber 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 dari Meta

Kunjungi website Meta untuk meminta dan mengunduh model.

Catatan

Jika Anda tidak dapat mengakses halaman tersebut, Anda mungkin perlu mengonfigurasi proxy dan mencoba lagi.

Langkah 2: Siapkan set data

Contoh ini menggunakan set data puisi berbahasa Inggris untuk melakukan fine-tuning model Llama3 dan meningkatkan kemampuannya dalam menghasilkan puisi. Jalankan perintah berikut di Notebook DSW untuk mengunduh set data pelatihan.

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

Anda juga dapat menyiapkan set data sendiri berdasarkan format contoh ini, menyesuaikannya dengan kasus penggunaan spesifik Anda. Fine-tuning model meningkatkan akurasinya untuk tugas tertentu.

Langkah 3: Fine-tune model

Pelatihan LoRA ringan

Tutorial ini menggunakan skrip pelatihan yang disediakan /ml/code/sft.py untuk melakukan pelatihan Adaptasi Peringkat Rendah (LoRA) ringan. Setelah pelatihan, parameter model dikuantisasi untuk mengurangi penggunaan memori GPU saat inferensi.

Saat Anda menjalankan perintah accelerate launch, skrip Python yang ditentukan akan dijalankan dengan parameter yang diberikan dan melakukan pelatihan berdasarkan pengaturan dalam file konfigurasi multi_gpu.yaml, menggunakan sumber daya komputasi yang tersedia.

! 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 

Bagian berikut menjelaskan parameter yang digunakan dalam contoh ini. Anda dapat memodifikasinya sesuai kebutuhan.

  • Alat baris perintah accelerate launch menjalankan dan mengelola skrip pelatihan pembelajaran mendalam di beberapa GPU.

    • num_processes 1: Menetapkan jumlah proses menjadi 1, sehingga menonaktifkan paralelisasi multiproses.

    • config_file/ml/code/multi_gpu.yaml: Menentukan path ke file konfigurasi.

    • /ml/code/sft.py: Menentukan path ke skrip Python yang akan dijalankan.

  • Parameter untuk skrip /ml/code/sft.py:

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

    • --model_type llama: Menentukan jenis model. Contoh ini menggunakan llama.

    • --train_dataset_name en_poetry_train.json: Menentukan path ke set data pelatihan.

    • --num_train_epochs 3: Menetapkan jumlah epoch pelatihan menjadi 3.

    • --batch_size 8: Menetapkan ukuran batch menjadi 8.

    • --seq_length 128: Menetapkan panjang sekuens menjadi 128.

    • --learning_rate 5e-4: Menetapkan tingkat pembelajaran menjadi 0,0005.

    • --lr_scheduler_type linear: Menetapkan jenis penjadwal tingkat pembelajaran menjadi linear.

    • --target_modules k_proj o_proj q_proj v_proj: Menentukan modul model yang menjadi target selama fine-tuning.

    • --output_dir lora_model/: Menentukan direktori output tempat model hasil fine-tuning disimpan.

    • --apply_chat_template: Menerapkan templat chat selama pelatihan.

    • --use_peft: Mengaktifkan penggunaan metode Fine-Tuning Efisien Parameter (PEFT) selama pelatihan.

    • --load_in_4bit: Menginstruksikan model untuk memuat bobot menggunakan presisi 4-bit guna mengurangi konsumsi memori.

    • --peft_lora_r 32: Menetapkan rank (r) matriks LoRA menjadi 32. Ini digunakan ketika LoRA dipilih sebagai metode PEFT.

    • --peft_lora_alpha 32: Menetapkan faktor penskalaan LoRA (alpha) menjadi 32.

Gabungkan bobot LoRA

Jalankan perintah berikut untuk menggabungkan bobot LoRA dengan model pretrained.

! 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/

Bagian berikut menjelaskan parameter yang digunakan dalam contoh ini:

  • RANK=0: Variabel lingkungan RANK digunakan dalam pelatihan terdistribusi untuk menunjukkan rank proses saat ini. Nilai 0 berarti ini adalah proses tunggal atau proses utama dalam pengaturan terdistribusi.

  • python /ml/code/convert.py: Menjalankan skrip convert.py untuk konversi bobot.

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

  • --model_type llama: Menentukan jenis model. Contoh ini menggunakan llama.

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

  • --adapter_dir lora_model/: Menentukan direktori yang berisi bobot adapter LoRA.

Langkah 4: Jalankan inferensi

Jalankan kode berikut untuk melakukan inferensi dan memverifikasi hasil fine-tuning. Dalam contoh ini, kami meminta model untuk menulis 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": "Write a poem on a topic 'spring' "},
]

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):])

Output berikut adalah contoh tanggapan. Model hasil fine-tuning kini menunjukkan kemampuan menulis puisi:

Here's a poem on the topic of "Spring":

As winter's chill begins to fade,
The earth awakens from its shade,
And spring's sweet breath begins to blow,
Bringing life to all that's cold and slow.

The trees regain their vibrant hue,
And flowers bloom, both old and new,
Their petals dancing in the breeze,
As sunshine warms the world with ease.

The air is filled with sweet perfume,
As blossoms burst forth in their room,
And robins sing their morning song,
As spring's awakening is strong.

The world is fresh, and new, and bright,
As spring's warm light begins to take flight,
And all around, new life unfolds,
As winter's grip begins to grow old.

So let us bask in spring's warm rays,
And let our spirits soar and sway,
For in this season, we're reborn,
And all around, new life is sworn.

I hope you enjoy it!

Langkah 5: Terapkan model

Anda dapat mengunggah bobot model hasil fine-tuning ke Object Storage Service (OSS) dan menggunakan Elastic Algorithm Service (EAS) ChatLLM untuk menerapkan model sebagai layanan. Untuk informasi selengkapnya, lihat Deploy LLM applications in EAS.

Lampiran: Jalankan Llama3 dari DSW Gallery

DSW Gallery menyediakan contoh Notebook Llama3 yang telah dibuat sebelumnya. Anda dapat membuka contoh tersebut di instans DSW Anda dan menjalankannya dengan satu klik, atau memodifikasinya sesuai kebutuhan. Untuk informasi selengkapnya, lihat Notebook Gallery.

FAQ

Pertanyaan: Error FileDownloadError: File config.json download incomplete...

Di Terminal, jalankan pip install -U modelscope untuk meningkatkan paket modelscope. Kemudian, di bagian atas halaman Notebook, klik ikon image untuk me-restart kernel Python, lalu jalankan kembali kode pengunduhan model.

Referensi

Untuk informasi penting mengenai rilis ChatLLM-WebUI, lihat Catatan rilis ChatLLM-WebUI.