Bu konu, Lingjun kaynaklarını kullanarak PAI üzerinde bir büyük dil modelinde (LLM) verimli ve dağıtılmış pekiştirmeli öğrenme yapmak amacıyla PAI-ChatLearn eğitim çerçevesinin nasıl kullanılacağını açıklar. Ayrıca eğitilen modelin nasıl dağıtılacağını anlatır. Bu çözüm, bir LLM'in akıl yürütme yeteneklerini pekiştirmeli öğrenme yoluyla geliştirmek istediğiniz senaryolar için uygundur.
1. Hazırlıklar
1,1 Geliştirme ortamını hazırlayın
Başlamadan önce aşağıdaki görevleri tamamladığınızdan emin olun:
Lingjun kaynaklarını satın alın ve bir kaynak kotası oluşturun. Bu örnekte Lingjun kaynakları gereklidir. Örnek,
ml.gx8xf.8xlarge-gu108düğüm teknik özelliklerine sahip iki makine gerektirir. Lingjun kaynaklarının düğüm teknik özellikleri hakkında daha fazla bilgi için bkz. Yapay zeka bilişim kaynaklarının faturalandırılması.-
Gerekli eğitim ve sonuç dosyalarını depolamak için bir veri kümesi oluşturun.
Dataset Type: Basic seçeneğini belirleyin.
-
Storage Type: Bir dosya depolama türü seçin. Bu konuda Genel Amaçlı NAS için Dosya Depolama kullanılır. Bir NAS dosya sisteminiz yoksa bkz. Bir dosya sistemi oluşturma.
NotEğitim göreviniz yüksek okuma/yazma hızı ve performans gerektiriyorsa File Storage (Intelligent Computing CPFS) kullanın.
Default Mount Path: Varsayılan değeri (/mnt/data/) kullanın.
-
Aşağıdaki anahtar parametrelerle bir Data Science Workshop (DSW) örneği oluşturun.
Resource Type: Resource Quota seçeneğini belirleyin.
Resource Quota: Lingjun kaynakları için oluşturduğunuz kaynak kotasını seçin.
-
Instance Type: Aşağıdaki kaynak teknik özelliklerini yapılandırın.
GPUs: 8 veya daha fazla.
vCPUs: 90.
Memory (GiB): 1024.
Shared Memory (GiB): 1024.
Image Information: Image Address seçeneğini belirleyin ve çalışma zamanı görüntüsünü
dsw-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-training-algorithm/chatlearn:torch2.5.1-vllm0.6.6-ubuntu22.04-cuda12.6-py310olarak ayarlayın. Kayıt defteri adresindeki bölgeyi, DSW örneğinizin bulunduğu bölgeyle eşleşecek şekilde değiştirmeniz gerekir. Örneğin, Şanghay'da bir DSW örneği kullanıyorsanız adresteki bölgeyicn-shanghaiolarak değiştirin.Dataset Mounting: Custom Dataset seçeneğine tıklayın, oluşturduğunuz veri kümesini seçin ve varsayılan bağlama yolunu kullanın.
Aşağıdaki işlemleri bir Resource Access Management (RAM) kullanıcısı ile gerçekleştiriyorsanız RAM kullanıcısına DSW, Deep Learning Containers (DLC) veya Elastic Algorithm Service (EAS) kullanımı için gerekli izinleri vermeniz gerekir. Daha fazla bilgi için bkz. Ürün bağımlılıkları ve yetkilendirme: DSW, Ürün bağımlılıkları ve yetkilendirme: DLC veya Ürün bağımlılıkları ve yetkilendirme: EAS.
1,2 Kod deposunu indirin
-
PAI-DSW geliştirme ortamına gidin.
PAI konsolu üzerinden oturum açın. Sayfanın sol üst köşesinde bir bölge seçin. China (Ulanqab) bölgesi önerilir.
Sol gezinme bölmesinde Workspace List seçeneğine tıklayın. Görüntülenen sayfada yönetmek istediğiniz çalışma alanının adına tıklayın.
Sol gezinme bölmesinden Model Training > Data Science Workshop (DSW) seçeneklerini belirleyin ve hedef örneğin Actions sütunundaki Open seçeneğine tıklayın.
Üst menü çubuğunda Terminal seçeneğine tıklayın. Görüntülenen sekmede Create Terminal seçeneğine tıklayın.
-
ChatLearn kod deposunu indirin.
git clone https://github.com/alibaba/ChatLearn.git && cd ChatLearn && git checkout 4ad5912306df5d4a814dc2dd5567fcb26f5d473b
1,3 Qwen3 modelini hazırlayın
Qwen3 model ağırlıklarını ModelScope'tan indirin.
modelscope download --model Qwen/Qwen3-8B --local_dir Qwen3-8B
1,4 Eğitim veri kümesini hazırlayın
Bu örnekte ChatLearn pekiştirmeli öğrenme iş akışını göstermek için MATH-lighteval veri kümesi kullanılır.
Bu veri kümesi matematiksel akıl yürütme görevleri içindir. Ödül puanı doğrulaması için sabit kurallar kullanır.
Özel bir görevde pekiştirmeli öğrenme yapmak için ChatLearn kod deposundaki
examples/fsdp/models/rule_reward.pydosyasına referans alarak özel bir ödül puanlama işlevi uygulayabilirsiniz.
# Download the dataset
mkdir -p dataset
modelscope download --dataset AI-ModelScope/MATH-lighteval --local_dir dataset/MATH-lighteval
# Pre-process the dataset
python examples/fsdp/data/data_preprocess/math_lighteval.py --input_dir dataset/MATH-lighteval --local_dir dataset/MATH-lighteval
2. Pekiştirmeli öğrenme eğitimi
DLC ortamında çoklu GPU sunucularında dağıtılmış bir eğitim görevi göndermeden önce kodunuzu DSW ortamında geliştirin ve test edin.
Bu örnekte eğitim motoru olarak Fully Sharded Data Parallel (FSDP) kullanılır. Eğitimi hızlandırmak için Megatron-LM kullanmak isterseniz bkz. tutorial_grpo_mcore.
2,1 DSW'de tek düğümlü eğitim
DSW ortamında çalışmaya devam edin ve eğitimi başlatmak için aşağıdaki komutu çalıştırın. Eğitilen model, sonraki dağıtım aşaması için bağlı veri kümesine kaydedilir.
bash examples/fsdp/scripts/train_grpo_qwen3.sh
Varsayılan train_grpo_qwen3.sh parametreleriyle eğitimin 2 ila 3 saat sürmesi beklenir.
2,2 DLC'de çok düğümlü eğitim
Tek bir düğümde geliştirme ve test işlemlerini tamamladıktan sonra model eğitimini hızlandırmak için DLC ortamında çoklu GPU sunucularında dağıtılmış bir görev yapılandırabilirsiniz.
-
Create Task sayfasına gidin.
PAI konsolu üzerinden oturum açın. Sayfanın üst kısmında hedef bölgeyi seçin. Sağ tarafta hedef çalışma alanını seçin ve ardından Enter DLC seçeneğine tıklayın.
Deep Learning Containers (DLC) sayfasında Create Task seçeneğine tıklayın.
-
Create Job sayfasında aşağıdaki anahtar parametreleri yapılandırın. Diğer parametreler için varsayılan değerleri kullanın. Daha fazla bilgi için bkz. Bir eğitim görevi oluşturma.
Parametre
Açıklama
Basic Information
Job Name
Özel bir görev adı. Bu örnekte test_qwen3_dlc kullanılır.
Environment Information
Image Information
Image Address seçeneğini belirleyin ve metin kutusuna aşağıdaki adresi girin: dsw-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-training-algorithm/chatlearn:torch2.5.1-vllm0.6.6-ubuntu22.04-cuda12.6-py310. Kayıt defteri adresindeki bölgeyi geçerli bölgenizle eşleşecek şekilde değiştirmeniz gerekir.
Mount dataset
Custom Dataset seçeneğine tıklayın, oluşturduğunuz veri kümesini seçin ve varsayılan bağlama yolunu (
/mnt/data/) kullanın.Startup Command
Aşağıdaki komutu yapılandırın. train_grpo_qwen3.sh betiğinin başlatma parametreleri, DSW'deki tek düğümlü ön eğitim parametreleriyle aynıdır.
cd /mnt/data/ChatLearn && bash examples/fsdp/scripts/train_grpo_qwen3.shResource Information
Resource Type
Lingjun Intelligent Computing seçeneğini belirleyin.
Source
Resource Quota seçeneğini belirleyin.
Resource Quota
Lingjun kaynakları için oluşturduğunuz kaynak kotasını seçin.
Framework
PyTorch seçeneğini belirleyin.
Job Resource
Worker düğümü yapılandırması sekmesinde aşağıdaki parametreleri yapılandırın:
-
Quantity: 2. Çok düğümlü eğitim için Number of Nodes değerini ihtiyacınız olan makine sayısına ayarlayın.
-
GPUs: 8
-
vCPUs: 90
-
Memory (GiB): 1024
-
Shared Memory (GiB): 1024
-
-
OK seçeneğine tıklayın. Deep Learning Containers (DLC) sayfasına yönlendirilirsiniz. Görevin yürütme durumunu Task Details sayfasında görüntülemek için görev adına tıklayabilirsiniz. Status durumu Succeeded olarak değiştiğinde eğitim görevi tamamlanmış demektir.
NotDLC işi başarısız olursa ve
ray.exceptions.RpcError: Timed out while waiting for GCS to become available.hata iletisi görünürse eğitim görevi aslında tamamlanmıştır. Kaydedilen modeli hizmet olarak dağıtmaya devam edebilirsiniz.
2,3 Ana parametre açıklamaları
3. Modeli dağıtma ve çağırma
Model eğitimi tamamlandıktan sonra modeli çevrimiçi bir hizmet olarak dağıtabilir ve üretim ortamında çağırabilirsiniz.
3,1 Model hizmetini dağıtın
PAI konsolu üzerinden oturum açın. Sayfanın üst kısmında hedef bölgeyi seçin. Sağ tarafta hedef çalışma alanını seçin ve ardından Enter EAS seçeneğine tıklayın.
Deploy Service seçeneğine tıklayın. Custom Model Deployment alanında Custom Deployment seçeneğine tıklayın.
-
Custom Deployment sayfasında aşağıdaki anahtar parametreleri yapılandırın. Diğer parametreler için varsayılan değerleri kullanın.
Parametre
Açıklama
Basic Information
Service Name
Model hizmeti için özel bir ad. Ad, aynı bölgede benzersiz olmalıdır. Bu örnekte test_qwen3 kullanılır.
Environment Information
Deployment Method
Image-based Deployment seçeneğini belirleyin.
Image Configuration
Image Address seçeneğini belirleyin ve metin kutusuna aşağıdaki kayıt defteri adresini girin:
eas-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai-eas/vllm:v0.8.5.post1. Kayıt defteri adresindeki bölgeyi geçerli bölgenizle eşleşecek şekilde değiştirmeniz gerekir.Mount storage
Genel Amaçlı NAS seçeneğini belirleyin ve aşağıdaki parametreleri yapılandırın:
-
Select File System: Veri kümesini oluştururken kullandığınız NAS dosya sistemini seçin.
-
File System Mount Target: Veri kümesini oluştururken kullandığınız bağlama hedefini seçin.
-
File System Path: NAS'ta depolanan Hugging Face modelinin yolu. Bu örnekte
/ChatLearn/output/qwen3-grpo/save_model/policy_trainer/20/huggingface/kullanılır. -
Mount Path: Bağlama sonrası yol. Bu örnekte
/qwen3_rlhfkullanılır.
Command
vllm serve /qwen3_rlhf --host 0.0.0.0 --port 8000 --max-model-len 8192olarak ayarlayın.NotV100 örneğinde dağıtım yapıyorsanız çalıştırma komutunu
vllm serve /qwen3_rlhf --host 0.0.0.0 --port 8000 --max-model-len 8192 --dtype=halfolarak ayarlayın.Port Number
8000 olarak ayarlayın.
Resource Information
Resource Type
Public Resources seçeneğini belirleyin.
Number of Replicas
Bu değeri modele ve seçilen kaynaklara göre yapılandırın. 8B model için bu değeri 1 olarak ayarlayın.
Deployment
Kaynak teknik özellikleri için bir A10 veya V100 örneği seçin. Bu örnekte
ecs.gn7i-c32g1.8xlargekullanılır.Network Information
VPC
NAS bağlama hedefini yapılandırdıktan sonra sistem VPC ve vSwitch'i önceden ayarlanmış NAS dosya sistemiyle otomatik olarak eşleştirir. Güvenlik grubunu gerektiği gibi ayarlayın.
vSwitch
Security group
-
Deploy seçeneğine tıklayın. Hizmet dağıtımı yaklaşık 6 dakika sürer. Service Status durumu Running olarak değiştiğinde hizmet dağıtımı tamamlanmış demektir.
3,2 Hizmeti çağırın
Hizmet uç noktasını ve belirtecini edinin. Inference Service sekmesinde hedef hizmeti bulun ve Overview sayfasına gidin. Basic Information bölümünde View Endpoint Information seçeneğine tıklayın.
-
Hizmeti çağırmak için aşağıdaki kodu kullanın. <YOUR EAS URL> ifadesini önceki adımda edindiğiniz uç nokta ile değiştirin. Belirteci bir ortam değişkeni olarak ayarlayın.
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)
Ek: Eğitim ve dağıtım için kaynak teknik özellikleri referansı
Aşağıdaki tabloda farklı model boyutları için desteklenen kaynak teknik özellikleri listelenmiştir.
|
Model Boyutu |
Tam Parametreli Eğitim Kaynakları (Minimum) |
Çıkarım Kaynakları (Minimum) |
|
|
Miktar |
Teknik Özellik |
||
|
Qwen3-8B |
1 makine |
|
1 × V100 (32 GB VRAM) / 1 × A10 (24 GB VRAM) |
|
Qwen3-32B |
2 makine |
4 × V100 (32 GB VRAM) / 4 × A10 (24 GB VRAM) |
|
|
Qwen3-30B-A3B |
2 makine |
4 × V100 (32 GB VRAM) / 4 × A10 (24 GB VRAM) |
|