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.

Jalankan 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 komputer Anda

  • 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, yang merupakan Python binding untuk llama.cpp. Ini memberi kamu lebih banyak kontrol dan fleksibilitas untuk menjalankan model GGUF secara lokal, dan cocok untuk pengguna yang ingin mengintegrasikan model lokal ke dalam workflow dan aplikasi Python mereka.

  1. Instal llama-cpp-python

  2. Berinteraksi dengan model dari dalam aplikasi Anda menggunakan llama_cpp. Contohnya:

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"]

Anda juga dapat 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 pengaturan minimal. Library ini menyediakan kontrol tingkat rendah atas eksekusi model dan biasanya dijalankan dari command line, menunjuk ke file model GGUF lokal.

Ada beberapa cara untuk menginstal llama.cpp di komputer Anda:

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


# Use a local model file \{#use-a-local-model-file}
llama-cli -m my_model.gguf -cnv

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

Anda juga dapat meluncurkan server API yang kompatibel dengan OpenAI untuk model dengan cara berikut:

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

Parameter lanjutan

Dengan program llama-cli, Anda dapat mengontrol pembuatan model menggunakan opsi command-line. Misalnya, Anda dapat memberikan prompt "sistem" awal menggunakan flag -p/--prompt. Dalam mode percakapan (-cnv), prompt awal ini bertindak sebagai pesan sistem. Jika tidak, Anda cukup menambahkan instruksi yang diinginkan di depan teks prompt Anda. Anda juga dapat 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 yang tepat dari model Qiskit kami, kami merekomendasikan menggunakan system prompt yang disediakan di repository 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, 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 di versi lama).

3. Konfigurasi model

Tambahkan yang berikut 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. Test it
  • Chat: Buka panel Continue di sidebar dan ajukan pertanyaan (misalnya, "Bagaimana cara membuat circuit yang diparameterisasi di 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: Instruksi 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 Anda mendapatkan v2.x. Paket langchain-ollama diperlukan agar Jupyter AI dapat mendeteksi Ollama sebagai provider. Tanpa itu, Ollama tidak akan muncul di panel pengaturan.

Kemudian restart JupyterLab.

2. Konfigurasi 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 panah kembali untuk mulai chatting.

3. Gunakan perintah magic %%ai

Magic %%ai memungkinkan Anda melakukan query ke model langsung di cell notebook.

%load_ext jupyter_ai_magics

Kemudian di sebuah cell:

%%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 Anda 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. Konfigurasi model Qiskit

Buat file opencode.json di root proyek Anda (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

Jalankan OpenCode di direktori proyek Anda:

opencode

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

4. Test it

Ajukan pertanyaan langsung di chat, misalnya: "Definisikan circuit Bell dan jalankan menggunakan QiskitRuntimeService"

Model yang tersedia

Model saat ini

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

  1. Qiskit/mistral-small-3.2-24b-qiskit - Dirilis Oktober 2025

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Dirilis Juni 2025

  3. qiskit/granite-3.3-8b-qiskit - Dirilis Juni 2025

  4. qiskit/granite-3.2-8b-qiskit - Dirilis Juni 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 – Dirilis Oktober 2025

    Dilatih dengan data Qiskit hingga versi 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Dirilis Juni 2025

    Dilatih dengan data Qiskit hingga versi 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Dirilis Juni 2025

    Dilatih dengan data Qiskit hingga versi 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Dirilis Juni 2025

    Dilatih dengan data Qiskit hingga versi 2.0

Model Qiskit Code Assistant Open Source tersedia dalam format safetensors atau GGUF dan dapat diunduh dari Hugging Face seperti dijelaskan di bawah ini.

Versi Qiskit yang digunakan untuk pelatihan

Model     Metrik Benchmark    Tanggal rilisDilatih pada versi Qiskit
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41Januari 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82Juni 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05Juni 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51Juni 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76Februari 20251.3
granite-8b-qiskit17.8844.3753.66November 20241.2

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

Model yang tidak digunakan lagi (deprecated)

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

  1. qiskit/granite-8b-qiskit-rc-0.10 - Dirilis Februari 2025 (deprecated)

  2. qiskit/granite-8b-qiskit - Dirilis November 2024 (deprecated)

Informasi lebih lanjut dan sitasi

Untuk mempelajari lebih lanjut tentang Qiskit Code Assistant, benchmark Qiskit HumanEval, atau Qiskit HumanEval Hard, dan mengutipnya dalam publikasi ilmiah Anda, tinjau sitasi yang direkomendasikan ini:

@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},
}