Tongyi Qianwen 2.5-Coder (Qwen2.5-Coder), juga dikenal sebagai CodeQwen, adalah seri model bahasa besar (LLM) terbaru dari Alibaba Cloud yang berfokus pada pemrosesan kode. Seri ini menawarkan enam ukuran model (0,5B; 1,5B; 3B; 7B; 14B; dan 32B) untuk memenuhi berbagai kebutuhan pengembang. Dilatih menggunakan data kode dalam jumlah sangat besar, Qwen2.5-Coder secara signifikan meningkatkan kinerjanya dalam skenario terkait kode sekaligus mempertahankan kemampuan matematika dan inferensi yang kuat. PAI memberikan dukungan penuh untuk rangkaian model ini. Topik ini menggunakan model Qwen2.5-Coder-32B-Instruct sebagai contoh untuk menjelaskan cara menerapkan, melakukan fine-tuning, mengevaluasi, dan mengompresi rangkaian model ini di Model Gallery.
Ikhtisar
Qwen2.5-Coder adalah model dari Alibaba Cloud dengan kemampuan pemrograman yang kuat. Model ini mendukung konteks hingga 128K token dan kompatibel dengan 92 bahasa pemrograman. Model ini unggul dalam berbagai tugas terkait kode, termasuk pembuatan kode multi-bahasa, penyelesaian kode, dan perbaikan kode. Melalui fine-tuning instruksi, Alibaba Cloud meluncurkan Qwen2.5-Coder-Instruct, yang dibangun di atas Qwen2.5-Coder. Model baru ini lebih meningkatkan kinerja di berbagai tugas dan menunjukkan kemampuan generalisasi yang luar biasa.
Kemampuan pemrograman multi-bahasa
Qwen2.5-Coder-Instruct menunjukkan kemampuan pemrograman multi-bahasa yang sangat baik. Model ini diuji secara ekstensif menggunakan benchmark McEval, yang mencakup lebih dari 40 bahasa pemrograman, termasuk beberapa bahasa yang jarang digunakan. Hasilnya menunjukkan bahwa model ini berkinerja baik dalam tugas multi-bahasa.
Inferensi kode
Qwen2.5-Coder-Instruct berkinerja baik dalam tugas inferensi kode. Saat dievaluasi menggunakan benchmark CRUXEval, model ini menunjukkan kemampuan inferensi yang kuat. Seiring peningkatan kemampuan inferensi kode, kinerja model dalam eksekusi instruksi kompleks juga meningkat. Hal ini memberikan perspektif baru dalam mengeksplorasi dampak kemampuan kode terhadap kemampuan inferensi umum.
Kemampuan matematika
Qwen2.5-Coder-Instruct berkinerja baik dalam tugas matematika maupun kode. Matematika merupakan disiplin dasar bagi pemrograman, dan kinerja luar biasa model ini dalam kedua bidang tersebut mencerminkan kemampuan ilmiah komprehensifnya yang kuat.
Kemampuan dasar
Dalam evaluasi kemampuan umum, Qwen2.5-Coder-Instruct mempertahankan keunggulan Qwen2.5, membuktikan penerapan dan stabilitasnya yang luas di berbagai tugas.
Dengan atribut-atribut ini, rangkaian model Qwen2.5-Coder memberikan dukungan teknis yang kuat untuk pemrograman multi-bahasa dan pemrosesan tugas kompleks.
Persyaratan lingkungan
Contoh ini dapat dijalankan di Model Gallery di wilayah-wilayah seperti Tiongkok (Beijing), Tiongkok (Shanghai), Tiongkok (Shenzhen), Tiongkok (Hangzhou), Tiongkok (Ulanqab), dan Singapura.
Persyaratan konfigurasi resource:
Ukuran model
Persyaratan Sumber Daya
Qwen2.5-Coder-0.5B/1.5B
Tahap pelatihan: Gunakan jenis kartu dengan memori video 16 GB atau lebih, seperti T4, P100, dan V100.
Tahap penerapan: Konfigurasi minimum adalah satu kartu P4. Kami merekomendasikan Anda menerapkan model pada satu kartu GU30, A10, V100, atau T4.
Qwen2.5-Coder-3B/7B
Tahap pelatihan: Gunakan jenis kartu dengan memori video 24 GB atau lebih, seperti A10 dan T4.
Tahap penerapan: Konfigurasi minimum adalah satu kartu P100, T4, atau V100 (gn6v). Kami merekomendasikan Anda menerapkan model pada satu kartu GU30 atau A10.
Qwen2.5-Coder-14B
Tahap pelatihan: Gunakan jenis kartu dengan memori video 32 GB atau lebih, seperti V100.
Tahap penerapan: Konfigurasi minimum adalah satu kartu L20, satu kartu GU60, atau dua kartu GU30. Kami merekomendasikan Anda menerapkan model pada dua kartu GU60 atau dua kartu L20.
Qwen2.5-Coder-32B
Tahap pelatihan: Gunakan jenis kartu dengan memori video 80 GB atau lebih, seperti A800/H800.
Tahap penerapan: Konfigurasi minimum adalah dua kartu GU60, dua kartu L20, atau empat kartu A10. Kami merekomendasikan Anda menerapkan model pada empat kartu GU60, empat kartu L20, atau delapan kartu V100-32G.
Gunakan model di PAI-Model Gallery
Terapkan dan panggil model
Pergi ke halaman Model Gallery.
Masuk ke Konsol PAI.
Di pojok kiri atas, pilih wilayah yang diperlukan.
Di panel navigasi sebelah kiri, klik Workspaces. Kemudian, klik nama ruang kerja yang ingin Anda kelola untuk membuka halaman detailnya.
Di panel navigasi kiri, pilih QuickStart > Model Gallery.
Di halaman Model Gallery, pada daftar model di sebelah kanan, klik kartu model Qwen2.5-Coder-32B-Instruct untuk membuka halaman produknya.
Di pojok kanan atas, klik Deploy dan konfigurasikan Deployment Method, Service Name, dan Deployment Resources ke platform layanan inferensi EAS.

Gunakan layanan inferensi.
Setelah layanan diterapkan, Anda dapat memanggil layanan model untuk memverifikasi kinerjanya. Untuk informasi selengkapnya tentang metode inferensi, lihat halaman detail model.

Fine-tune model
Model Gallery menyediakan dua algoritma fine-tuning untuk model Qwen2.5-Coder-32B-Instruct: supervised fine-tuning (SFT) dan direct preference optimization (DPO). Anda dapat langsung menggunakan algoritma-algoritma ini untuk melakukan fine-tuning pada model.
Supervised fine-tuning (SFT)
Algoritma SFT mendukung input dalam format JSON. Setiap entri data terdiri dari pertanyaan dan jawaban, yang direpresentasikan oleh field "instruction" dan "output", masing-masing. Contohnya:
[
{
"instruction": "Buat fungsi untuk menghitung jumlah urutan bilangan bulat.",
"output": "# Kode Python\ndef sum_sequence(sequence):\n sum = 0\n for num in sequence:\n sum += num\n return sum"
},
{
"instruction": "Hasilkan kode Python untuk merayapi situs web untuk jenis data tertentu.",
"output": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n response = requests.get(website)\n phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n return phone_numbers\n \nif __name__ == '__main__':\n print(crawl_website_for_phone_numbers('www.example.com'))"
}
]Direct preference optimization (DPO)
Algoritma DPO mendukung input dalam format JSON. Setiap entri data terdiri dari pertanyaan, jawaban yang dipilih, dan jawaban yang ditolak. Ketiganya direpresentasikan oleh field "prompt", "chosen", dan "rejected", masing-masing. Contohnya:
[
{
"prompt": "Buat fungsi untuk menghitung jumlah urutan bilangan bulat.",
"chosen": "# Kode Python\ndef sum_sequence(sequence):\n sum = 0\n for num in sequence:\n sum += num\n return sum",
"rejected": "[x*x for x in [1, 2, 3, 5, 8, 13]]"
},
{
"prompt": "Hasilkan kode Python untuk merayapi situs web untuk jenis data tertentu.",
"chosen": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n response = requests.get(website)\n phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n return phone_numbers\n \nif __name__ == '__main__':\n print(crawl_website_for_phone_numbers('www.example.com'))",
"rejected": "def remove_duplicates(string): \n result = \"\" \n prev = '' \n\n for char in string:\n if char != prev: \n result += char\n prev = char\n return result\n\nresult = remove_duplicates(\"AAABBCCCD\")\nprint(result)"
}
]Di halaman Model Gallery, pada daftar model di sebelah kanan, klik kartu model Qwen2.5-Coder-32B-Instruct untuk membuka halaman detail model.
Di halaman detail model, klik Train di pojok kanan atas. Konfigurasi utama adalah sebagai berikut:
Konfigurasi dataset: Setelah Anda menyiapkan data, Anda dapat mengunggahnya ke bucket Object Storage Service (OSS) atau memilih dataset di NAS atau CPFS dengan menentukan objek dataset. Anda juga dapat menggunakan dataset publik yang telah disediakan di PAI untuk mengirimkan task dan menguji algoritma.
Konfigurasi resource komputasi: Algoritma ini memerlukan resource GPU dengan memori video 80 GB atau lebih. Pastikan kuota sumber daya Anda memiliki cukup resource komputasi. Untuk informasi selengkapnya tentang spesifikasi resource yang diperlukan untuk ukuran model lainnya, lihat Persyaratan lingkungan.
Konfigurasi hiperparameter: Tabel berikut menjelaskan hiperparameter yang didukung oleh algoritma pelatihan. Anda dapat menyesuaikan hiperparameter berdasarkan data dan resource komputasi Anda, atau menggunakan hiperparameter default dari algoritma.
Hiperparameter
Tipe
Nilai default
Diperlukan
Deskripsi
training_strategy
string
sft
Ya
Algoritma pelatihan. Nilai yang valid: SFT dan DPO.
learning_rate
float
5e-5
Ya
Tingkat pembelajaran, yang digunakan untuk mengontrol bobot model dan rentang penyesuaian.
num_train_epochs
int
1
Ya
Jumlah kali set data pelatihan digunakan berulang-ulang.
per_device_train_batch_size
int
1
Ya
Jumlah sampel yang diproses oleh setiap GPU dalam satu iterasi pelatihan. Ukuran batch yang lebih besar dapat meningkatkan efisiensi dan meningkatkan permintaan terhadap memori video.
seq_length
int
128
Ya
Panjang sekuens, yang mengacu pada panjang data masukan yang diproses oleh model dalam satu pelatihan.
lora_dim
int
32
Tidak
Dimensi LoRA. Saat lora_dim > 0, digunakan pelatihan ringan LoRA/QLoRA.
lora_alpha
int
32
Tidak
Bobot LoRA. Parameter ini berlaku saat lora_dim > 0 dan digunakan pelatihan ringan LoRA/QLoRA.
dpo_beta
float
0,1
Tidak
Tingkat ketergantungan model terhadap informasi preferensi selama pelatihan.
load_in_4bit
bool
false
Tidak
Menentukan apakah model dimuat dalam 4-bit.
Pelatihan ringan QLoRA 4-bit digunakan jika lora_dim lebih besar dari 0, load_in_4bit diatur ke true, dan load_in_8bit diatur ke false.
load_in_8bit
bool
false
Tidak
Menentukan apakah model dimuat dalam 8-bit.
Pelatihan ringan QLoRA 8-bit digunakan jika lora_dim lebih besar dari 0, load_in_4bit diatur ke false, dan load_in_8bit diatur ke true.
gradient_accumulation_steps
int
8
Tidak
Jumlah langkah akumulasi gradien.
apply_chat_template
bool
true
Tidak
Menentukan apakah algoritma menambahkan templat chat default model ke data pelatihan. Misalnya, untuk model seri Qwen2, formatnya adalah:
Pertanyaan:
<|im_end|>\n<|im_start|>user\n + instruction + <|im_end|>\nJawaban:
<|im_start|>assistant\n + output + <|im_end|>\n
system_prompt
string
Anda adalah asisten yang membantu
Tidak
Prompt sistem yang digunakan untuk pelatihan model.
Klik Train. Model Gallery secara otomatis mengarahkan Anda ke halaman detail pekerjaan, tempat Anda dapat melihat status dan log saat pelatihan dimulai.

Model yang telah dilatih secara otomatis didaftarkan di AI Asset - Model Management, tempat Anda dapat melihat atau menerapkannya. Untuk informasi selengkapnya, lihat Daftarkan dan kelola model.
Evaluasi model
Evaluasi model yang ilmiah dan efisien membantu pengembang mengukur dan membandingkan kinerja berbagai model. Evaluasi ini juga membimbing mereka dalam memilih dan mengoptimalkan model, sehingga mempercepat inovasi AI dan implementasi aplikasi.
Model Gallery menyediakan algoritma evaluasi untuk model Qwen2.5-Coder-32B-Instruct. Anda dapat langsung menggunakan algoritma ini untuk mengevaluasi model asli atau model yang telah difine-tune. Untuk informasi selengkapnya tentang evaluasi model, lihat Evaluasi model dan Praktik terbaik evaluasi LLM.
Kompresi model
Setelah model dilatih, Anda dapat melakukan kuantisasi dan kompresi sebelum penerapan untuk mengurangi penggunaan storage dan resource komputasi. Untuk informasi selengkapnya tentang kompresi model, lihat Kompresi model.