All Products
Search
Document Center

Platform For AI:PAI-ChatLearn: Praktik terbaik untuk reinforcement learning Qwen3

Last Updated:Aug 26, 2026

Topik ini menjelaskan cara menggunakan framework pelatihan PAI-ChatLearn untuk melakukan reinforcement learning terdistribusi yang efisien pada model bahasa besar (LLM) di PAI dengan Sumber daya komputasi cerdas Lingjun, serta cara menerapkan model yang telah dilatih. Solusi ini cocok untuk skenario di mana Anda ingin meningkatkan kemampuan penalaran LLM melalui reinforcement learning.

1. Persiapan

1.1 Siapkan lingkungan pengembangan

Sebelum memulai, pastikan Anda telah menyelesaikan tugas-tugas berikut:

  1. Aktifkan PAI dan buat ruang kerja default.

  2. Beli Sumber daya komputasi cerdas Lingjun dan buat kuota sumber daya. Contoh ini memerlukan dua mesin dengan spesifikasi node ml.gx8xf.8xlarge-gu108. Untuk informasi lebih lanjut mengenai spesifikasi node untuk Sumber daya komputasi cerdas Lingjun, lihat Penagihan sumber daya Komputasi AI.

  3. Buat dataset untuk menyimpan file pelatihan dan hasil yang diperlukan.

    • Dataset Type: Pilih Basic.

    • Storage Type: Pilih jenis penyimpanan file. Topik ini menggunakan File Storage (General-purpose NAS). Jika Anda belum memiliki sistem file NAS, lihat Buat sistem file.

      Catatan

      Jika tugas pelatihan Anda memerlukan kecepatan dan performa baca/tulis tinggi, gunakan File Storage (Intelligent Computing CPFS).

    • Default Mount Path: Gunakan nilai default /mnt/data/.

  4. Buat instans Data Science Workshop (DSW) dengan parameter kunci berikut.

    • Resource Type: Pilih Resource Quota.

    • Resource Quota: Pilih kuota sumber daya yang telah Anda buat untuk sumber daya komputasi cerdas Lingjun.

    • Instance Type: Konfigurasikan spesifikasi sumber daya berikut.

      • GPUs: 8 atau lebih.

      • vCPUs: 90.

      • Memory (GiB): 1024.

      • Shared Memory (GiB): 1024.

    • Image Information: Pilih Image Address dan atur citra runtime menjadi dsw-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-training-algorithm/chatlearn:torch2.5.1-vllm0.6.6-ubuntu22.04-cuda12.6-py310. Anda harus mengubah wilayah dalam alamat registri sesuai dengan wilayah tempat instans DSW Anda berada. Misalnya, jika Anda menggunakan instans DSW di Shanghai, ubah wilayah dalam alamat menjadi cn-shanghai.

    • Dataset Mounting: Klik Custom Dataset, pilih dataset yang telah Anda buat, dan gunakan jalur pemasangan default.

  5. Jika Anda menggunakan Pengguna Resource Access Management (RAM) untuk melakukan operasi berikut, Anda harus memberikan izin yang diperlukan kepada Pengguna RAM agar dapat menggunakan DSW, Deep Learning Containers (DLC), atau Elastic Algorithm Service (EAS). Untuk informasi lebih lanjut, lihat Ketergantungan produk dan otorisasi: DSW, Ketergantungan produk dan otorisasi: DLC, atau Ketergantungan produk dan otorisasi: EAS.

1.2 Unduh repositori kode

  1. Buka lingkungan pengembangan PAI-DSW.

    1. Login ke Konsol PAI. Di pojok kiri atas halaman, pilih wilayah. China (Ulanqab) direkomendasikan.

    2. Pada panel navigasi sebelah kiri, klik Workspace List. Pada halaman yang muncul, klik nama ruang kerja yang ingin Anda kelola.

    3. Pada panel navigasi sebelah kiri, pilih Model Training > Data Science Workshop (DSW), lalu klik Open pada kolom Actions instans target.

  2. Pada bilah menu atas, klik Terminal. Pada tab yang muncul, klik Create Terminal.

  3. Unduh repositori kode ChatLearn.

    git clone https://github.com/alibaba/ChatLearn.git && cd ChatLearn && git checkout 4ad5912306df5d4a814dc2dd5567fcb26f5d473b

1.3 Siapkan model Qwen3

Unduh bobot model Qwen3 dari ModelScope.

modelscope download --model Qwen/Qwen3-8B --local_dir Qwen3-8B

1.4 Siapkan training dataset

Contoh ini menggunakan dataset MATH-lighteval untuk mendemonstrasikan alur kerja reinforcement learning ChatLearn.

  • Dataset ini digunakan untuk tugas penalaran matematika dan menggunakan aturan tetap untuk validasi skor reward.

  • Untuk melakukan reinforcement learning pada tugas kustom, Anda dapat mengimplementasikan fungsi penilaian reward kustom dengan merujuk pada examples/fsdp/models/rule_reward.py dalam repositori kode ChatLearn.

# Unduh dataset
mkdir -p dataset
modelscope download --dataset AI-ModelScope/MATH-lighteval --local_dir dataset/MATH-lighteval
# Pra-proses dataset
python examples/fsdp/data/data_preprocess/math_lighteval.py --input_dir dataset/MATH-lighteval --local_dir dataset/MATH-lighteval

2. Pelatihan reinforcement learning

Catatan

Kembangkan dan uji kode Anda di lingkungan DSW sebelum mengirimkan tugas pelatihan terdistribusi pada server multi-GPU di lingkungan DLC.

Contoh ini menggunakan Fully Sharded Data Parallel (FSDP) sebagai engine pelatihan. Untuk menggunakan Megatron-LM guna mempercepat pelatihan, lihat tutorial_grpo_mcore.

2.1 Pelatihan single-node di DSW

Lanjutkan di lingkungan DSW dan jalankan perintah berikut untuk memulai pelatihan. Model yang telah dilatih disimpan ke dataset yang dipasang untuk penerapan selanjutnya.

bash examples/fsdp/scripts/train_grpo_qwen3.sh
Catatan

Dengan parameter default untuk train_grpo_qwen3.sh, pelatihan diperkirakan memerlukan waktu 2 hingga 3 jam.

2.2 Pelatihan multi-node di DLC

Setelah mengembangkan dan menguji pada satu node, Anda dapat mengonfigurasi tugas terdistribusi pada server multi-GPU di lingkungan DLC untuk mempercepat pelatihan model.

  1. Buka halaman Create Task.

    1. Login ke Konsol PAI. Di bagian atas halaman, pilih Wilayah tujuan. Di sebelah kanan, pilih ruang kerja tujuan, lalu klik Enter DLC.

    2. Pada halaman Deep Learning Containers (DLC), klik Create Task.

  2. Pada halaman Create Job, konfigurasikan parameter kunci berikut. Gunakan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat tugas pelatihan.

    Parameter

    Deskripsi

    Basic Information

    Job Name

    Nama tugas kustom. Contoh ini menggunakan test_qwen3_dlc.

    Environment Information

    Image Information

    Pilih Image Address dan masukkan alamat berikut di kotak teks: dsw-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-training-algorithm/chatlearn:torch2.5.1-vllm0.6.6-ubuntu22.04-cuda12.6-py310. Anda harus mengubah wilayah dalam alamat registri agar sesuai dengan wilayah Anda saat ini.

    Mount dataset

    Klik Custom Dataset, pilih dataset yang telah Anda buat, dan gunakan jalur pemasangan default /mnt/data/.

    Startup Command

    Konfigurasikan perintah berikut. Parameter startup untuk skrip train_grpo_qwen3.sh sama dengan parameter untuk pre-training single-node di DSW.

    cd /mnt/data/ChatLearn && bash examples/fsdp/scripts/train_grpo_qwen3.sh

    Resource Information

    Resource Type

    Pilih Lingjun Intelligent Computing.

    Source

    Pilih Resource Quota.

    Resource Quota

    Pilih kuota sumber daya yang telah Anda buat untuk Sumber daya komputasi cerdas Lingjun.

    Framework

    Pilih PyTorch.

    Job Resource

    Pada tab konfigurasi node Worker, konfigurasikan parameter berikut:

    • Quantity: 2. Untuk pelatihan multi-node, atur Number of Nodes sesuai jumlah mesin yang Anda perlukan.

    • GPUs: 8

    • vCPUs: 90

    • Memory (GiB): 1024

    • Shared Memory (GiB): 1024

  3. Klik OK. Anda akan diarahkan ke halaman Deep Learning Containers (DLC). Anda dapat mengklik nama tugas untuk melihat status eksekusi tugas pada halaman Task Details. Saat Status berubah menjadi Succeeded, tugas pelatihan selesai.

    Catatan

    Jika pekerjaan DLC gagal dan muncul pesan error ray.exceptions.RpcError: Timed out while waiting for GCS to become available., tugas pelatihan sebenarnya telah selesai. Anda dapat melanjutkan untuk menerapkan model yang disimpan sebagai layanan.

2.3 Deskripsi parameter utama

Klik untuk melihat parameter utama yang perlu dikonfigurasi dalam train_grpo_qwen3.sh

Parameter

Deskripsi

model_path

Jalur bobot model

output_dir

Jalur output untuk log, model, dan data

train_data_path

Jalur training dataset

eval_data_path

Jalur set data evaluasi

sp_size

Konfigurasi parallelisme urutan Ulysses untuk melatih model dengan proses pemikiran panjang

tensor_model_parallel_size

Konfigurasi parallelisme tensor untuk layanan inferensi vLLM

gpu_memory_utilization

Persentase VRAM yang dialokasikan sebelumnya oleh layanan inferensi vLLM

seq_length

Panjang urutan maksimum (panjang prompt + panjang generasi)

max_new_tokens

Panjang generasi maksimum

num_inference_per_prompt

Jumlah respons yang dihasilkan untuk setiap prompt

sample_per_episode

Jumlah sampel yang dilatih dalam setiap iterasi = jumlah prompt × num_inference_per_prompt

train_micro_batch_size

Ukuran batch untuk forward pass selama pelatihan

enable_eval_before_training

Menentukan apakah akan melakukan evaluasi sebelum pelatihan

num_episode

Jumlah epoch pelatihan reinforcement learning

eval_episode_interval

Interval epoch evaluasi

save_episode_interval

Interval epoch penyimpanan model

3. Terapkan dan panggil model

Setelah pelatihan model selesai, Anda dapat menerapkan model sebagai layanan online dan memanggilnya di lingkungan produksi.

3.1 Terapkan layanan model

  1. Login ke Konsol PAI. Di bagian atas halaman, pilih Wilayah tujuan. Di sebelah kanan, pilih ruang kerja tujuan, lalu klik Enter EAS.

  2. Klik Deploy Service. Di area Custom Model Deployment, klik Custom Deployment.

  3. Pada halaman Custom Deployment, konfigurasikan parameter kunci berikut. Gunakan nilai default untuk parameter lainnya.

    Parameter

    Deskripsi

    Basic Information

    Service Name

    Nama kustom untuk layanan model. Nama harus unik dalam wilayah yang sama. Contoh ini menggunakan test_qwen3.

    Environment Information

    Deployment Method

    Pilih Image-based Deployment.

    Image Configuration

    Pilih Image Address dan masukkan alamat registri berikut di kotak teks: eas-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-eas/vllm:v0.8.5.post1. Anda harus mengubah wilayah dalam alamat registri agar sesuai dengan wilayah Anda saat ini.

    Mount storage

    Pilih General-purpose NAS dan konfigurasikan parameter berikut:

    • Select File System: Pilih sistem file NAS yang Anda gunakan untuk membuat dataset.

    • File System Mount Target: Pilih titik pemasangan yang Anda gunakan untuk membuat dataset.

    • File System Path: Jalur ke model Hugging Face yang disimpan di NAS. Contoh ini menggunakan /ChatLearn/output/qwen3-grpo/save_model/policy_trainer/20/huggingface/.

    • Mount Path: Jalur setelah pemasangan. Contoh ini menggunakan /qwen3_rlhf.

    Command

    Atur ke vllm serve /qwen3_rlhf --host 0.0.0.0 --port 8000 --max-model-len 8192.

    Catatan

    Jika Anda menerapkan pada instans V100, atur perintah run menjadi vllm serve /qwen3_rlhf --host 0.0.0.0 --port 8000 --max-model-len 8192 --dtype=half.

    Port Number

    Atur ke 8000.

    Resource Information

    Resource Type

    Pilih Public Resources.

    Number of Replicas

    Konfigurasikan berdasarkan model dan sumber daya yang dipilih. Untuk model 8B, atur ke 1.

    Deployment

    Untuk spesifikasi sumber daya, pilih instans A10 atau V100. Contoh ini menggunakan ecs.gn7i-c32g1.8xlarge.

    Network Information

    VPC

    Setelah Anda mengonfigurasi titik pemasangan NAS, sistem secara otomatis mencocokkan VPC dan vSwitch dengan sistem file NAS yang telah ditentukan. Atur grup keamanan sesuai kebutuhan.

    vSwitch

    Security group

  4. Klik Deploy. Penerapan layanan memerlukan waktu sekitar 6 menit. Saat Service Status berubah menjadi Running, penerapan layanan selesai.

3.2 Panggil layanan

  1. Dapatkan endpoint dan token layanan. Pada tab Inference Service, temukan layanan target dan buka halaman Overview. Di bagian Basic Information, klik View Endpoint Information.

  2. Gunakan kode berikut untuk memanggil layanan. Ganti <YOUR EAS URL> dengan endpoint yang Anda peroleh pada langkah sebelumnya. Atur token sebagai Variabel lingkungan.

    import os
    from openai import OpenAI
    
    # Set the token as an environment variable.
    openai_api_key = os.environ.get("Token")
    # Replace <YOUR EAS URL> with the service endpoint.
    openai_api_base = "<YOUR EAS URL>/v1"
    
    client = OpenAI(
        api_key=openai_api_key,
        base_url=openai_api_base,
    )
    
    chat_response = client.chat.completions.create(
        model="/qwen3_rlhf",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Find the smallest positive integer solution to $\\tan{19x^{\\circ}}=\\dfrac{\\cos{96^{\\circ}}+\\sin{96^{\\circ}}}{\\cos{96^{\\circ}}-\\sin{96^{\\circ}}}$. Let's think step by step and output the final answer within \\boxed{}."},
        ],
        temperature=0.7,
        top_p=0.8,
        presence_penalty=1.5,
        extra_body={
            "top_k": 20, 
            "chat_template_kwargs": {"enable_thinking": False},
        }
    )
    print("Chat response:", chat_response)

Lampiran: Referensi spesifikasi sumber daya untuk pelatihan dan penerapan

Tabel berikut mencantumkan spesifikasi sumber daya yang didukung untuk ukuran model yang berbeda.

Ukuran Model

Sumber Daya Pelatihan Full-parameter (Minimum)

Sumber Daya Inferensi (Minimum)

Jumlah

Spesifikasi

Qwen3-8B

1 mesin

ml.gu7xf.c96m1600.8-gu108 atau

ml.gu7ef.c96m1600.8-gu100 atau

ml.gx8xf.8xlarge-gu108

1 × V100 (32 GB VRAM) / 1 × A10 (24 GB VRAM)

Qwen3-32B

2 mesin

4 × V100 (32 GB VRAM) / 4 × A10 (24 GB VRAM)

Qwen3-30B-A3B

2 mesin

4 × V100 (32 GB VRAM) / 4 × A10 (24 GB VRAM)