All Products
Search
Document Center

Platform For AI:Latih, evaluasi, kompres, dan sebarkan Qwen2.5-Coder

Last Updated:Jun 22, 2026

Qwen2.5-Coder, juga dikenal sebagai CodeQwen, adalah rangkaian model bahasa besar dari Alibaba Cloud yang mengkhususkan diri pada tugas-tugas terkait kode. Rangkaian ini mencakup enam ukuran model (0,5B; 1,5B; 3B; 7B; 14B; dan 32B) untuk memenuhi berbagai kebutuhan pengembang. Dilatih menggunakan volume data kode yang sangat besar, Qwen2.5-Coder unggul dalam aplikasi berbasis kode sekaligus mempertahankan kemampuan matematika dan penalaran yang kuat. Tutorial ini menggunakan model Qwen2.5-Coder-32B-Instruct sebagai contoh.

Ikhtisar model

Qwen2.5-Coder adalah rangkaian model kuat yang berfokus pada kode, mendukung panjang konteks hingga 128K token, serta kompatibel dengan 92 bahasa pemrograman. Model ini unggul dalam berbagai tugas terkait kode, termasuk generasi kode multibahasa, penyelesaian kode, dan perbaikan kode. Varian yang telah disesuaikan dengan instruksi, Qwen2.5-Coder-Instruct, dibangun di atas model dasar untuk meningkatkan performa dalam tugas-tugas tersebut dan memberikan generalisasi yang sangat baik.

Fitur utama meliputi:

  • Kemampuan pemrograman multibahasa: Qwen2.5-Coder-Instruct menunjukkan performa luar biasa pada benchmark McEval, yang mencakup lebih dari 40 bahasa, termasuk bahasa pemrograman niche.

  • Kemampuan penalaran kode: Model ini mencapai hasil mengesankan pada benchmark CRUXEval, menunjukkan kemampuan penalaran kode yang kuat. Penalaran yang ditingkatkan ini juga berkorelasi dengan peningkatan performa pada tugas-tugas kompleks yang mengikuti instruksi.

  • Kemampuan matematika: Sebagai disiplin dasar dalam pemrograman, matematika merupakan bidang lain di mana model ini unggul, menunjukkan kemampuan komprehensifnya di bidang STEM.

  • Kemampuan umum: Qwen2.5-Coder-Instruct mewarisi kemampuan umum yang kuat dari model dasar Qwen2.5 untuk stabilitas dan penerapan luas dalam berbagai tugas.

Persyaratan lingkungan

Wilayah yang didukung

Anda dapat menggunakan Model Gallery untuk menjalankan model ini di wilayah China (Beijing), China (Shanghai), China (Shenzhen), China (Hangzhou), China (Ulanqab), dan Singapura.

Persyaratan sumber daya

Ukuran model

Persyaratan penerapan

Persyaratan pelatihan

Qwen2.5-Coder-0,5B/1,5B

Minimum: satu kartu P4. Direkomendasikan: satu kartu GU30, A10, V100, atau T4.

GPU dengan VRAM 16 GB atau lebih, seperti T4, P100, atau V100.

Qwen2.5-Coder-3B/7B

Minimum: satu kartu P100, T4, atau V100 (gn6v). Direkomendasikan: satu kartu GU30 atau A10.

GPU dengan VRAM 24 GB atau lebih, seperti A10 atau T4.

Qwen2.5-Coder-14B

Minimum: satu kartu L20 atau GU60, atau dua kartu GU30. Direkomendasikan: dua kartu GU60 atau L20.

GPU dengan VRAM 32 GB atau lebih, seperti V100.

Qwen2.5-Coder-32B

Minimum: dua kartu GU60 atau L20, atau empat kartu A10. Direkomendasikan: empat kartu GU60 atau L20, atau delapan kartu V100-32G.

GPU dengan VRAM 80 GB atau lebih, seperti A800 atau H800.

Sebarkan dan panggil model

Sebarkan model

  1. Buka halaman Model Gallery.

    1. Masuk ke Konsol PAI.

    2. Di pojok kiri atas bilah navigasi atas, pilih wilayah.

    3. Di panel navigasi kiri, klik Workspaces, lalu klik nama ruang kerja yang ingin Anda buka.

    4. Di panel navigasi kiri, pilih Quick Start > Model Gallery.

  2. Di halaman Model Gallery, temukan dan klik kartu model Qwen2.5-Coder-32B-Instruct untuk membuka halaman detail model.

  3. Di pojok kanan atas, klik Deploy. Terima konfigurasi default dan klik OK untuk menyebarkan layanan. Penerapan berhasil jika status berubah menjadi Running.

Penting

Tutorial ini menggunakan sumber daya publik, yang ditagih berdasarkan skema bayar sesuai penggunaan. Untuk menghindari biaya, hentikan atau hapus layanan setelah selesai.

Panggil model

Dapatkan informasi pemanggilan

Di halaman detail model, klik View Call Information untuk melihat titik akhir publik dan token.

Di panel Invocation Information yang muncul, pilih tab Shared Gateway dan salin Public Endpoint serta Token.

Panggil melalui API

Contoh berikut menunjukkan cara memanggil model menggunakan API:

from openai import OpenAI
# 1. Konfigurasikan klien.
# Ganti <EAS_TOKEN> dengan Token dari panel Invocation Information.
openai_api_key = "<EAS_TOKEN>"
# Ganti <EAS_ENDPOINT> dengan Public Endpoint dari panel Invocation Information.
openai_api_base = "<EAS_ENDPOINT>/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)
# 2. Dapatkan nama model.
# Untuk BladeLLM, atur model = "". BladeLLM tidak memerlukan parameter model dan tidak mendukung penggunaan client.models.list() untuk mendapatkan nama model. Atur ke string kosong agar sesuai dengan persyaratan parameter wajib SDK OpenAI.
models = client.models.list()
model = models.data[0].id
print(model)
# 3. Ajukan permintaan chat completion.
# Mendukung output streaming (stream=True) maupun non-streaming (stream=False).
stream = True
chat_completion = client.chat.completions.create(
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "hello"},          
    ],
    model=model,
    top_p=0.8,
    temperature=0.7,
    max_tokens=1024,
    stream=stream,
)
if stream:
    for chunk in chat_completion:
        print(chunk.choices[0].delta.content, end="")
else:
    result = chat_completion.choices[0].message.content
    print(result)

Untuk informasi lebih lanjut tentang pemanggilan API, lihat Panggil Model Menggunakan API.

Panggil melalui antarmuka web

Anda juga dapat memanggil model menggunakan antarmuka web. Untuk petunjuk lengkap, lihat kartu model.

Setelah penerapan model selesai, Anda dapat mengunduh kode klien dari bagian Web Application di halaman detail kartu model dan menjalankan python webui_client.py --eas_endpoint "<EAS API Endpoint>" --eas_token "<EAS API Token>" untuk menjalankan aplikasi web lokal guna inferensi. EAS API Endpoint dan EAS API Token dapat diperoleh dari detail layanan EAS yang telah diterapkan. Jalankan python webui_client.py -h untuk melihat deskripsi parameter tambahan.

Fine-tuning model

Model Gallery menyediakan dua algoritma fine-tuning siap pakai untuk model Qwen2.5-Coder-32B-Instruct: supervised fine-tuning (SFT) dan direct preference optimization (DPO).

Supervised fine-tuning (SFT)

Algoritma pelatihan SFT mendukung input dalam format JSON, di mana setiap entri data terdiri dari instruksi dan output, yang masing-masing direpresentasikan oleh field "instruction" dan "output". Contohnya:

[
  {
    "instruction": "Create a function to calculate the sum of a sequence of integers.",
    "output": "# Python code\ndef sum_sequence(sequence):\n  sum = 0\n  for num in sequence:\n    sum += num\n  return sum"
  },
  {
    "instruction": "Generate a Python code for crawling a website for a specific type of data.",
    "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 pelatihan DPO mendukung input dalam format JSON. Setiap entri data terdiri dari prompt, respons yang dipilih, dan respons yang ditolak, yang masing-masing direpresentasikan oleh field "prompt", "chosen", dan "rejected". Contohnya:

[
  {
    "prompt": "Create a function to calculate the sum of a sequence of integers.",
    "chosen": "# Python code\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": "Generate a Python code for crawling a website for a specific type of data.",
    "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)"
  }
]
  1. Di halaman Model Gallery, klik kartu model Qwen2.5-Coder-32B-Instruct untuk membuka halaman detail model.

  2. Di halaman detail model, klik Train di pojok kanan atas. Konfigurasikan parameter berikut:

    • Konfigurasi dataset: Setelah menyiapkan data Anda, unggah ke bucket Object Storage Service (OSS) atau pilih dataset di NAS atau CPFS dengan menentukan objek dataset. Anda juga dapat menggunakan dataset publik yang disediakan oleh PAI untuk mengirimkan pekerjaan dan menguji algoritma.

    • Konfigurasi sumber daya komputasi: Algoritma ini memerlukan GPU dengan VRAM minimal 80 GB. Pastikan kuota sumber daya yang Anda pilih mencakup sumber daya komputasi yang mencukupi. Untuk spesifikasi sumber daya yang diperlukan oleh model dengan ukuran berbeda, lihat Persyaratan lingkungan.

    • Konfigurasi hiperparameter: Tabel berikut mencantumkan hiperparameter latih. Anda dapat menyesuaikan nilainya atau menggunakan nilai default.

      Konfigurasi hiperparameter

      Hiperparameter

      Tipe

      Default

      Wajib

      Deskripsi

      training_strategy

      String

      sft

      Ya

      Algoritma pelatihan. Nilai yang valid: SFT dan DPO.

      learning_rate

      Float

      5e-5

      Ya

      Tingkat pembelajaran, yang mengontrol besarnya penyesuaian bobot model.

      num_train_epochs

      Integer

      1

      Ya

      Jumlah epoch pelatihan.

      per_device_train_batch_size

      Integer

      1

      Ya

      Jumlah sampel yang diproses oleh setiap GPU per iterasi pelatihan. Ukuran batch yang lebih besar dapat meningkatkan efisiensi tetapi juga meningkatkan kebutuhan VRAM.

      seq_length

      Integer

      128

      Ya

      Panjang urutan maksimum (dalam token) untuk input model.

      lora_dim

      Integer

      32

      Tidak

      Dimensi LoRA. Jika lora_dim > 0, pelatihan LoRA atau QLoRA ringan digunakan.

      lora_alpha

      Integer

      32

      Tidak

      Bobot LoRA. Parameter ini aktif ketika lora_dim > 0 (pelatihan LoRA atau QLoRA digunakan).

      dpo_beta

      Float

      0.1

      Tidak

      Mengontrol ketergantungan model terhadap informasi preferensi selama pelatihan.

      load_in_4bit

      Boolean

      false

      Tidak

      Menentukan apakah model dimuat dalam presisi 4-bit.

      Jika lora_dim > 0, load_in_4bit diatur ke true, dan load_in_8bit diatur ke false, ini mengaktifkan pelatihan QLoRA 4-bit ringan.

      load_in_8bit

      Boolean

      false

      Tidak

      Menentukan apakah model dimuat dalam presisi 8-bit.

      Jika lora_dim > 0, load_in_4bit diatur ke false, dan load_in_8bit diatur ke true, ini mengaktifkan pelatihan QLoRA 8-bit ringan.

      gradient_accumulation_steps

      Integer

      8

      Tidak

      Jumlah langkah untuk akumulasi gradien.

      apply_chat_template

      Boolean

      true

      Tidak

      Menentukan apakah templat chat default model diterapkan pada data pelatihan. Untuk model seri Qwen2, formatnya sebagai berikut:

      • Pertanyaan:<|im_end|>\n<|im_start|>user\n + instruction + <|im_end|>\n

      • Jawaban: <|im_start|>assistant\n + output + <|im_end|>\n

      system_prompt

      String

      You are a helpful assistant

      Tidak

      Prompt sistem yang digunakan untuk pelatihan model.

  3. Klik Train. Model Gallery secara otomatis mengarahkan Anda ke halaman detail pekerjaan, tempat Anda dapat memantau status pelatihan dan melihat log.

Model yang telah dilatih secara otomatis terdaftar di AI Asset - Model Management, tempat Anda dapat melihat atau menyebarkannya. Untuk informasi lebih lanjut, lihat Daftarkan dan Kelola Model.

Evaluasi model

PAI menyediakan algoritma evaluasi bawaan untuk model Qwen2.5-Coder-32B-Instruct. Gunakan algoritma ini untuk menilai performa model asli dan versi fine-tuning Anda. Untuk informasi lebih lanjut, lihat Evaluasi Model dan Praktik Terbaik Evaluasi Model Bahasa Besar.

Kompresi model

Setelah pelatihan, Anda dapat melakukan kuantisasi (kompresi) model sebelum penerapan untuk mengurangi kebutuhan penyimpanan dan komputasi. Untuk informasi lebih lanjut, lihat Kompresi Model.

Referensi