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:
-
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. -
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.
CatatanJika tugas pelatihan Anda memerlukan kecepatan dan performa baca/tulis tinggi, gunakan File Storage (Intelligent Computing CPFS).
-
Default Mount Path: Gunakan nilai default /mnt/data/.
-
-
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 menjadicn-shanghai. -
Dataset Mounting: Klik Custom Dataset, pilih dataset yang telah Anda buat, dan gunakan jalur pemasangan default.
-
-
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
-
Buka lingkungan pengembangan PAI-DSW.
-
Login ke Konsol PAI. Di pojok kiri atas halaman, pilih wilayah. China (Ulanqab) direkomendasikan.
-
Pada panel navigasi sebelah kiri, klik Workspace List. Pada halaman yang muncul, klik nama ruang kerja yang ingin Anda kelola.
-
Pada panel navigasi sebelah kiri, pilih Model Training > Data Science Workshop (DSW), lalu klik Open pada kolom Actions instans target.
-
-
Pada bilah menu atas, klik Terminal. Pada tab yang muncul, klik Create Terminal.
-
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.pydalam 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
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
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.
-
Buka halaman Create Task.
-
Login ke Konsol PAI. Di bagian atas halaman, pilih Wilayah tujuan. Di sebelah kanan, pilih ruang kerja tujuan, lalu klik Enter DLC.
-
Pada halaman Deep Learning Containers (DLC), klik Create Task.
-
-
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.shResource 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
-
-
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.
CatatanJika 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
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
-
Login ke Konsol PAI. Di bagian atas halaman, pilih Wilayah tujuan. Di sebelah kanan, pilih ruang kerja tujuan, lalu klik Enter EAS.
-
Klik Deploy Service. Di area Custom Model Deployment, klik Custom Deployment.
-
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.CatatanJika 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
-
-
Klik Deploy. Penerapan layanan memerlukan waktu sekitar 6 menit. Saat Service Status berubah menjadi Running, penerapan layanan selesai.
3.2 Panggil layanan
-
Dapatkan endpoint dan token layanan. Pada tab Inference Service, temukan layanan target dan buka halaman Overview. Di bagian Basic Information, klik View Endpoint Information.
-
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 |
|
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) |
|