Lewati ke konten utama

Qiskit Code Assistant

LLM Qiskit Code Assistant bertujuan membuat komputasi kuantum lebih mudah diakses oleh pengguna Qiskit baru dan meningkatkan pengalaman coding bagi pengguna saat ini. Asisten ini dilatih menggunakan jutaan token teks dari Qiskit SDK, bertahun-tahun contoh kode Qiskit, dan fitur-fitur IBM Quantum®. Qiskit Code Assistant bisa membantu alur kerja pengembangan kuantummu dengan menawarkan saran yang dihasilkan LLM berdasarkan model IBM Granite dan model open-source lainnya, yang mencakup fitur dan fungsionalitas terbaru dari IBM®.

Catatan

Large Language Model (LLM) di balik Qiskit Code Assistant

Untuk memberikan saran kode, Qiskit Code Assistant menggunakan Large Language Model (LLM). Dalam hal ini, Qiskit Code Assistant saat ini mengandalkan model mistral-small-3.2-24b-qiskit, yang dibangun di atas model Mistral-Small-3.2-24B-Qiskit. Model mistral-small-3.2-24b-qiskit meningkatkan kemampuan pembuatan kode model Mistral-Small-3.2-24B-Instruct-2506 untuk Qiskit melalui pelatihan tambahan yang diperluas dan fine-tuning pada data Qiskit berkualitas tinggi, serta commit Python dan chat. Untuk informasi lebih lanjut tentang keluarga model Mistral AI, lihat dokumentasi Mistral AI. Untuk detail lebih lanjut tentang model .*-qiskit, lihat Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code.

LLM yang kami khususkan untuk Qiskit juga tersedia sebagai model open-source. Lihat semua model yang tersedia di https://huggingface.co/Qiskit.

Benchmark Qiskit HumanEval dan Qiskit HumanEval Hard

Untuk menguji mistral-small-3.2-24b-qiskit dan model lainnya, kami berkolaborasi dengan Qiskit Advocates dan para ahli untuk membuat benchmark berbasis eksekusi yang disebut Qiskit HumanEval (QHE) dan Qiskit HumanEval Hard (QHE Hard), lalu menjalankannya pada model-model tersebut. Benchmark ini mirip dengan HumanEval, mencakup berbagai masalah kode yang menantang untuk diselesaikan, semuanya berbasis library Qiskit resmi.

Benchmark ini terdiri dari sekitar 150 tes, masing-masing dibuat dari definisi fungsi, diikuti oleh docstring yang merinci tugas yang harus diselesaikan model. Setiap contoh juga mencakup solusi kanonik referensi, serta unit test, untuk mengevaluasi kebenaran solusi yang dihasilkan. Ada tiga tingkat kesulitan tes: dasar, menengah, dan sulit. Benchmark Qiskit HumanEval Hard adalah variasi dari Qiskit HumanEval, tetapi menghapus informasi terkait impor kode, sehingga LLM perlu mencari tahu impor metode atau kelas yang tepat. Perubahan ini membuat dataset jauh lebih menantang bagi LLM, menurut pengujian dan hasil awal kami.

Dataset untuk Qiskit HumanEval dan Qiskit HumanEval Hard tersedia di situs-situs ini: Qiskit HumanEval dan Qiskit HumanEval. Kamu bisa berkontribusi pada pengembangan benchmark ini di repositori GitHub.

Instal Qiskit Code Assistant

Pelajari cara menginstal, mengonfigurasi, dan menggunakan model Qiskit Code Assistant mana pun di mesin lokalmu.

Unduh dari situs web Hugging Face

Ikuti langkah-langkah ini untuk mengunduh model terkait Qiskit Code Assistant mana pun dari situs web Hugging Face:

  1. Buka halaman model Qiskit yang diinginkan di Hugging Face.
  2. Buka tab Files and Versions dan unduh file model safetensors atau GGUF.
Unduh menggunakan Hugging Face CLI

Untuk mengunduh model Qiskit Code Assistant yang tersedia menggunakan Hugging Face CLI, ikuti langkah-langkah ini:

  1. Instal Hugging Face CLI

  2. Login ke akun Hugging Face-mu

    huggingface-cli login
  3. Unduh model yang kamu suka dari daftar sebelumnya

    huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Deploy model Qiskit Code Assistant secara lokal melalui Ollama secara manual

Ada banyak cara untuk men-deploy dan berinteraksi dengan model Qiskit Code Assistant yang sudah diunduh. Panduan ini mendemonstrasikan penggunaan Ollama sebagai berikut: baik dengan aplikasi Ollama menggunakan integrasi Hugging Face Hub atau model lokal, maupun dengan paket llama-cpp-python.

Menggunakan aplikasi Ollama

Aplikasi Ollama menyediakan solusi sederhana untuk menjalankan LLM secara lokal. Aplikasi ini mudah digunakan, dengan CLI yang membuat seluruh proses setup, manajemen model, dan interaksi cukup mudah. Ini ideal untuk eksperimen cepat dan untuk pengguna yang ingin menangani lebih sedikit detail teknis.

Instal Ollama
  1. Unduh aplikasi Ollama

  2. Instal file yang telah diunduh

  3. Luncurkan aplikasi Ollama yang sudah terinstal

    info

    Aplikasi berjalan dengan sukses ketika ikon Ollama muncul di menu bar desktop. Kamu juga bisa memverifikasi layanan berjalan dengan membuka http://localhost:11434/.

  4. Coba Ollama di terminalmu dan mulai menjalankan model. Misalnya:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Menyiapkan Ollama menggunakan integrasi Hugging Face Hub

Integrasi Ollama/Hugging Face Hub menyediakan cara untuk berinteraksi dengan model yang di-host di Hugging Face Hub tanpa perlu membuat modelfile baru atau mengunduh file GGUF atau safetensors secara manual. File template dan params default sudah disertakan untuk model di Hugging Face Hub.

  1. Pastikan aplikasi Ollama sedang berjalan.

  2. Buka halaman model yang diinginkan, dan salin URL-nya. Misalnya, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

  3. Dari terminalmu, jalankan perintah:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit

Kamu bisa menggunakan model hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit atau salah satu model GGUF resmi lainnya yang saat ini direkomendasikan hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF atau hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.

Menyiapkan Ollama dengan model GGUF Qiskit Code Assistant yang diunduh secara manual

Kalau kamu sudah mengunduh model GGUF secara manual seperti https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF dan kamu ingin bereksperimen dengan template dan parameter yang berbeda, kamu bisa mengikuti langkah-langkah ini untuk memuatnya ke aplikasi Ollama lokalmu.

  1. Buat sebuah Modelfile dengan memasukkan konten berikut dan pastikan memperbarui <PATH-TO-GGUF-FILE> ke path sebenarnya dari model yang kamu unduh.

    FROM <PATH-TO-GGUF-FILE>
    TEMPLATE """{{ if .System }}
    System:
    {{ .System }}

    {{ end }}{{ if .Prompt }}Question:
    {{ .Prompt }}

    {{ end }}Answer:
    ```python{{ .Response }}
    """

    PARAMETER stop "Question:"
    PARAMETER stop "Answer:"
    PARAMETER stop "System:"
    PARAMETER stop "```"

    PARAMETER temperature 0
    PARAMETER top_k 1
  2. Jalankan perintah berikut untuk membuat instance model kustom berdasarkan Modelfile.

    ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-file
    catatan

    Proses ini mungkin membutuhkan beberapa waktu agar Ollama bisa membaca file model, menginisialisasi instance model, dan mengonfigurasinya sesuai spesifikasi yang diberikan.

Menjalankan model Qiskit Code Assistant yang diunduh secara manual di Ollama

Setelah model Qwen2.5-Coder-14B-Qiskit sudah disiapkan di Ollama, jalankan perintah berikut untuk meluncurkan model dan berinteraksi dengannya di terminal (dalam mode chat).

ollama run Qwen2.5-Coder-14B-Qiskit

Beberapa perintah yang berguna:

  • ollama list - Daftar model di komputermu
  • ollama rm Qwen2.5-Coder-14B-Qiskit - Hapus model
  • ollama show Qwen2.5-Coder-14B-Qiskit - Tampilkan informasi model
  • ollama stop Qwen2.5-Coder-14B-Qiskit - Hentikan model yang sedang berjalan
  • ollama ps - Daftar model yang sedang dimuat
Deploy model Qiskit Code Assistant secara lokal melalui paket llama-cpp-python secara manual

Alternatif dari aplikasi Ollama adalah paket llama-cpp-python, yaitu binding Python untuk llama.cpp. Paket ini memberimu kontrol dan fleksibilitas lebih besar untuk menjalankan model GGUF secara lokal, dan ideal untuk pengguna yang ingin mengintegrasikan model lokal ke dalam alur kerja dan aplikasi Python mereka.

  1. Instal llama-cpp-python
  2. Berinteraksi dengan model dari dalam aplikasimu menggunakan llama_cpp. Misalnya:
from llama_cpp import Llama

model_path = <PATH-TO-GGUF-FILE>

model = Llama(
model_path,
seed=17,
n_ctx=10000,
n_gpu_layers=37, # to offload in gpu, but put 0 if all in cpu
)

input = 'Generate a quantum circuit with 2 qubits'
raw_pred = model(input)[“choices”][0][“text”]

Kamu juga bisa menambahkan parameter pembuatan teks ke model untuk menyesuaikan inferensi:

generation_kwargs = {
“max_tokens”: 512,
“echo”: False, # Echo the prompt in the output
“top_k”: 1
}

raw_pred = model(input, **generation_kwargs)[“choices”][0][“text”]
Deploy model Qiskit Code Assistant secara lokal melalui llama.cpp secara manual

Gunakan library llama.cpp

Alternatif lain adalah menggunakan llama.cpp, sebuah library open-source untuk melakukan inferensi LLM pada CPU dengan setup minimal. Library ini memberikan kontrol tingkat rendah atas eksekusi model dan biasanya dijalankan dari command line, mengarah ke file model GGUF lokal.

Ada beberapa cara untuk menginstal llama.cpp di mesinmu:

Setelah terinstal, kamu bisa menggunakan llama.cpp untuk berinteraksi dengan model GGUF dalam mode percakapan sebagai berikut:

# Use a local model file
llama-cli -m my_model.gguf -cnv

# Or download and run a model directly from Hugging Face
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF -cnv

Kamu juga bisa meluncurkan server API yang kompatibel dengan OpenAI untuk model tersebut dengan cara berikut:

llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
Parameter lanjutan

Dengan program llama-cli, kamu bisa mengontrol pembuatan model menggunakan opsi command-line. Misalnya, kamu bisa memberikan prompt “system” awal menggunakan flag -p/--prompt. Dalam mode percakapan (-cnv), prompt awal ini berfungsi sebagai pesan sistem. Kalau tidak, kamu bisa cukup menambahkan instruksi yang diinginkan di awal teks promptmu. Kamu juga bisa menyesuaikan parameter sampling - misalnya: temperature (--temp), top-k (--top-k), top-p (--top-p), repetition penalty (--repeat-penalty), dan seed yang digunakan (--seed). Berikut adalah contoh pemanggilan menggunakan opsi-opsi ini:

llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF \
-p “You are a friendly assistant.” -cnv \
--temp 0.7 \
--top-k 50 \
--top-p 0.95 \
--repeat-penalty 1.1 \
--seed 42

Untuk memastikan fungsionalitas model Qiskit kami berjalan dengan baik, kami merekomendasikan penggunaan system prompt yang tersedia di repositori HF GGUF kami: system prompt untuk mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF, dan granite-3.2-8b-qiskit-GGUF.

Hubungkan Continue (VS Code) secara manual

Continue (VS Code)

1. Instal ekstensi

Buka VS Code, buka Extensions (Cmd+Shift+X), cari Continue, lalu instal.

2. Buka konfigurasi

Klik ikon Continue di sidebar, lalu klik ikon gear, atau buka command palette (Cmd+Shift+P) dan jalankan Continue: Open Config File.

Ini akan membuka ~/.continue/config.yaml (atau config.json pada versi lama).

3. Konfigurasikan model

Tambahkan yang berikut ini ke config.yaml:

models:
- name: Qiskit Code Assistant
provider: ollama
model: mistral-small-3.2-24b-qiskit
apiBase: http://localhost:11434

Ini membuat model Qiskit tersedia di panel chat (percakapan sidebar, tanya jawab inline) dan untuk perintah inline edit.

4. Coba
  • Chat: Buka panel Continue di sidebar dan ajukan pertanyaan (misalnya, “How do I create a parameterized circuit in Qiskit?”)
  • Inline edit: Pilih blok kode, tekan Cmd+I (Mac) atau Ctrl+I (Linux/Windows)
Hubungkan Jupyter AI (JupyterLab) secara manual

Jupyter AI (JupyterLab)

Catatan: Petunjuk ini mencakup Jupyter AI v2.x.

1. Instal Jupyter AI dan provider Ollama
pip install “jupyter-ai<3” langchain-ollama

Pin ”jupyter-ai<3” memastikan kamu mendapatkan v2.x. Paket langchain-ollama diperlukan agar Jupyter AI dapat mendeteksi Ollama sebagai provider. Tanpanya, Ollama tidak akan muncul di panel pengaturan.

Kemudian restart JupyterLab.

2. Konfigurasikan model chat

Buka JupyterLab dan klik ikon chat di sidebar kiri. Di panel pengaturan:

  1. Di bawah Language model, pilih Ollama sebagai provider.
  2. Masukkan mistral-small-3.2-24b-qiskit sebagai nama model.
  3. Tidak diperlukan API key untuk Ollama (biarkan field kosong).
  4. Klik tanda panah kembali untuk mulai chatting.
3. Gunakan magic command %%ai

Magic %%ai memungkinkan kamu mengkueri model langsung di sel notebook.

%load_ext jupyter_ai_magics

Lalu dalam sebuah sel:

%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit
4. Host Ollama kustom (opsional)

Secara default, Jupyter AI terhubung ke http://127.0.0.1:11434. Jika server Ollama-mu berjalan di alamat atau port yang berbeda:

Di UI chat: Atur field “Base API URL” di panel pengaturan AI.

Hubungkan OpenCode (Terminal) secara manual

OpenCode (Terminal)

1. Instal OpenCode
curl -fsSL https://opencode.ai/install | bash
2. Konfigurasikan model Qiskit

Buat file opencode.json di direktori root proyekmu (atau ~/.config/opencode/opencode.json untuk konfigurasi global):

{
“$schema”: “https://opencode.ai/config.json”,
“provider”: {
“ollama”: {
“npm”: “@ai-sdk/openai-compatible”,
“name”: “Ollama (local)”,
“options”: {
“baseURL”: “http://localhost:11434/v1”
},
“models”: {
“mistral-small-3.2-24b-qiskit”: {
“name”: “Qiskit Code Assistant”
}
}
}
}
}
3. Pilih model

Luncurkan OpenCode di direktori proyekmu:

opencode

Di dalam TUI, jalankan perintah /models dan pilih Qiskit Code Assistant dari daftar.

4. Coba

Ajukan pertanyaan langsung di chat, misalnya: “Define a Bell circuit and run it using QiskitRuntimeService”

Model yang tersedia

Model saat ini

Berikut adalah model-model terbaru yang direkomendasikan untuk digunakan dengan Qiskit Code Assistant:

  1. Qiskit/mistral-small-3.2-24b-qiskit - Released October 2025
  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Released June 2025
  3. qiskit/granite-3.3-8b-qiskit - Released June 2025
  4. qiskit/granite-3.2-8b-qiskit - Released June 2025

Model GGUF (direkomendasikan untuk lingkungan pribadi/laptop)

Model format GGUF dioptimalkan untuk penggunaan lokal dan memerlukan lebih sedikit sumber daya komputasi:

  1. mistral-small-3.2-24b-qiskit-GGUF – Released October 2025
    Trained with Qiskit data up to version 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

Model Qiskit Code Assistant Open Source tersedia dalam safetensors atau format file GGUF dan bisa diunduh dari Hugging Face sebagaimana dijelaskan di bawah.

Versi Qiskit yang digunakan untuk pelatihan

Model     Benchmark Metrics    Release dateTrained on Qiskit version
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41January 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82June 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05June 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51June 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76February 20251.3
granite-8b-qiskit17.8844.3753.66November 20241.2

Catatan: Semua model yang tercantum dalam tabel benchmark dievaluasi menggunakan system prompt masing-masing, yang didefinisikan dalam model Hugging Face mereka.

Model yang sudah tidak didukung

Model-model ini tidak lagi dirawat secara aktif tetapi tetap tersedia:

  1. qiskit/granite-8b-qiskit-rc-0.10 - Released February 2025 (deprecated)
  2. qiskit/granite-8b-qiskit - Released November 2024 (deprecated)

Informasi lebih lanjut dan kutipan

Untuk mempelajari lebih lanjut tentang Qiskit Code Assistant, Qiskit HumanEval, atau benchmark Qiskit HumanEval Hard, dan mengutipnya dalam publikasi ilmiahmu, tinjau kutipan-kutipan yang direkomendasikan berikut:

@misc{2405.19495,
Author = {Nicolas Dupuis and Luca Buratti and Sanjay Vishwakarma and Aitana Viudes Forrat and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code},
Year = {2024},
Eprint = {arXiv:2405.19495},
}
@misc{2406.14712,
Author = {Sanjay Vishwakarma and Francis Harkins and Siddharth Golecha and Vishal Sharathchandra Bajpe and Nicolas Dupuis and Luca Buratti and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit HumanEval: An Evaluation Benchmark For Quantum Code Generative Models},
Year = {2024},
Eprint = {arXiv:2406.14712},
}
@misc{2508.20907,
Author = {Nicolas Dupuis and Adarsh Tiwari and Youssef Mroueh and David Kremer and Ismael Faro and Juan Cruz-Benito},
Title = {Quantum Verifiable Rewards for Post-Training Qiskit Code Assistant},
Year = {2025},
Eprint = {arXiv:2508.20907},
}