Přeskočit na hlavní obsah

Qiskit Code Assistant

Qiskit Code Assistant LLM si kladou za cíl zpřístupnit kvantové výpočty novým uživatelům Qiskitu a zlepšit zážitek z programování pro stávající uživatele. Je natrénován na milionech textových tokenů z Qiskit SDK, letech příkladů Qiskit kódu a funkcích IBM Quantum®. Qiskit Code Assistant ti může pomoci ve vývojovém procesu kvantových aplikací tím, že nabízí návrhy generované LLM na základě IBM Granite a dalších open-source modelů, které zahrnují nejnovější funkce a možnosti od IBM®.

Poznámky

Velký jazykový model (LLM) za Qiskit Code Assistantem​

Pro poskytování návrhů kódu využívá Qiskit Code Assistant velký jazykový model (LLM). V tomto případě se Qiskit Code Assistant aktuálně opírá o model mistral-small-3.2-24b-qiskit, postavený na modelu Mistral-Small-3.2-24B-Qiskit. Model mistral-small-3.2-24b-qiskit vylepšuje schopnosti generování kódu modelu Mistral-Small-3.2-24B-Instruct-2506 pro Qiskit prostřednictvím rozšířeného předtrénování a doladění na vysoce kvalitních datech Qiskit, commitech Pythonu a chatu. Více informací o rodině modelů Mistral AI najdeš v dokumentaci Mistral AI. Další podrobnosti o modelech .*-qiskit najdeš v článku Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code.

Naše LLM specializované pro Qiskit jsou dostupné také jako open-source modely. Všechny dostupné modely najdeš na https://huggingface.co/Qiskit.

Benchmarky Qiskit HumanEval a Qiskit HumanEval Hard​

Pro testování modelu mistral-small-3.2-24b-qiskit a dalších modelů jsme spolupracovali s Qiskit Advocates a odborníky na vytvoření benchmarků založených na spouštění kódu, nazvaných Qiskit HumanEval (QHE) a Qiskit HumanEval Hard (QHE Hard), a spustili jsme je na těchto modelech. Tyto benchmarky jsou podobné HumanEval a zahrnují řadu náročných programovacích úloh, všechny postavené na oficiálních knihovnách Qiskit.

Benchmarky se skládají přibližně z 150 testů, přičemž každý je tvořen definicí funkce, za níž následuje docstring popisující úkol, který má model vyřešit. Každý příklad také obsahuje referenční kanonické řešení a jednotkové testy pro hodnocení správnosti generovaných řešení. Testy mají tři úrovně obtížnosti: základní, středně pokročilou a obtížnou. Benchmark Qiskit HumanEval Hard je variantou Qiskit HumanEval, ale odstraňuje informace týkající se importů kódu, takže LLM musí sám přijít na správné importy metod nebo tříd. Tato změna podle našich testů a počátečních výsledků datovou sadu pro LLM výrazně ztěžuje.

Datové sady pro Qiskit HumanEval a Qiskit HumanEval Hard jsou dostupné na těchto stránkách: Qiskit HumanEval a Qiskit HumanEval. K rozvoji těchto benchmarků můžeš přispět v repozitáři na GitHubu.

Instalace Qiskit Code Assistantu​

Zjisti, jak nainstalovat, nakonfigurovat a používat libovolný model Qiskit Code Assistantu na svém lokálním počítači.

Stáhnout z webu Hugging Face

Pro stažení libovolného modelu souvisejícího s Qiskit Code Assistantem z webu Hugging Face postupuj takto:

  1. Přejdi na stránku požadovaného modelu Qiskit na Hugging Face.

  2. Přejdi na záložku Files and Versions a stáhni soubory modelu ve formátu safetensors nebo GGUF.

Stáhnout pomocí Hugging Face CLI

Pro stažení libovolného z dostupných modelů Qiskit Code Assistantu pomocí Hugging Face CLI postupuj takto:

  1. Nainstaluj Hugging Face CLI

  2. Přihlas se ke svému účtu Hugging Face

    huggingface-cli login
  3. Stáhni model, který preferuješ, ze seznamu výše

    huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Ruční nasazení modelů Qiskit Code Assistantu lokálně přes Ollama

Existuje několik způsobů, jak nasadit a pracovat se staženým modelem Qiskit Code Assistantu. Tato příručka demonstruje použití Ollama takto: buď pomocí aplikace Ollama s využitím integrace Hugging Face Hub nebo lokálního modelu, nebo pomocí balíčku llama-cpp-python.

Použití aplikace Ollama​

Aplikace Ollama poskytuje jednoduché řešení pro lokální spouštění LLM. Je snadná na použití, s CLI, které celý proces nastavení, správu modelů a interakci s nimi činí poměrně přímočarými. Je ideální pro rychlé experimentování a pro uživatele, kteří chtějí mít méně technických detailů na starosti.

Instalace Ollamy​
  1. Stáhni aplikaci Ollama

  2. Nainstaluj stažený soubor

  3. Spusť nainstalovanou aplikaci Ollama

    info

    Aplikace běží úspěšně, když se ikona Ollamy zobrazí v pruhu nabídek plochy. Funkčnost služby můžeš také ověřit přechodem na http://localhost:11434/.

  4. Vyzkoušej Ollamu v terminálu a začni spouštět modely. Například:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Nastavení Ollamy pomocí integrace Hugging Face Hub​

Integrace Ollama/Hugging Face Hub poskytuje způsob, jak pracovat s modely hostovanými na Hugging Face Hub, aniž by bylo nutné vytvářet nový modelfile nebo ručně stahovat soubory GGUF či safetensors. Výchozí soubory template a params jsou pro model na Hugging Face Hub již zahrnuty.

  1. Ujisti se, že aplikace Ollama běží.

  2. Přejdi na stránku požadovaného modelu a zkopíruj URL. Například https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

  3. V terminálu spusť příkaz:

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

Můžeš použít model hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit nebo kterýkoli z dalších aktuálně doporučených oficiálních modelů GGUF hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF nebo hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.

Nastavení Ollamy s ručně staženým modelem GGUF Qiskit Code Assistantu​

Pokud jsi ručně stáhl model GGUF, například https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF, a chceš experimentovat s různými šablonami a parametry, můžeš jej načíst do lokální aplikace Ollama podle těchto kroků.

  1. Vytvoř soubor Modelfile s následujícím obsahem a nezapomeň aktualizovat <PATH-TO-GGUF-FILE> na skutečnou cestu ke staženému modelu.

    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. Spusť následující příkaz pro vytvoření vlastní instance modelu na základě souboru Modelfile.

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

    poznámka

    Tento proces může chvíli trvat, než Ollama přečte soubor modelu, inicializuje instanci modelu a nakonfiguruje ji podle zadaných specifikací.

Spuštění ručně staženého modelu Qiskit Code Assistantu v Ollamě​

Jakmile je model Qwen2.5-Coder-14B-Qiskit nastaven v Ollamě, spusť následující příkaz pro spuštění modelu a interakci s ním v terminálu (v režimu chatu).

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

Několik užitečných příkazů:

  • ollama list - Zobrazí seznam modelů na tvém počítači

  • ollama rm Qwen2.5-Coder-14B-Qiskit - Smaže model

  • ollama show Qwen2.5-Coder-14B-Qiskit - Zobrazí informace o modelu

  • ollama stop Qwen2.5-Coder-14B-Qiskit - Zastaví model, který je aktuálně spuštěný

  • ollama ps - Zobrazí seznam modelů, které jsou aktuálně načtené

Ruční nasazení modelů Qiskit Code Assistantu lokálně přes balíček llama-cpp-python

Alternativou k aplikaci Ollama je balíček llama-cpp-python, což je Python binding pro llama.cpp. Poskytuje ti více kontroly a flexibility při lokálním spouštění modelu GGUF a je ideální pro uživatele, kteří chtějí integrovat lokální model do svých workflow a Python aplikací.

  1. Nainstaluj llama-cpp-python

  2. Komunikuj s modelem přímo ve tvé aplikaci pomocí llama_cpp. Například:

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

Můžeš také přidat parametry generování textu k modelu, abys přizpůsobil inferenci:

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

Ruční nasazení modelů Qiskit Code Assistantu lokálně přes llama.cpp

Použij knihovnu llama.cpp​

Další alternativou je použít llama.cpp, open-source knihovnu pro provádění LLM inference na CPU s minimálním nastavením. Poskytuje nízkoúrovňovou kontrolu nad prováděním modelu a obvykle se spouští z příkazové řádky, přičemž ukazuje na lokální soubor modelu GGUF.

Existuje několik způsobů, jak nainstalovat llama.cpp na tvém počítači:

Jakmile je nainstalováno, můžeš použít llama.cpp pro komunikaci s modely GGUF v konverzačním režimu následovně:


# 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

Můžeš také spustit API server kompatibilní s OpenAI pro daný model následujícím způsobem:

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

Pokročilé parametry​

S programem llama-cli můžeš ovládat generování modelu pomocí voleb příkazové řádky. Můžeš například poskytnout počáteční „systémový“ prompt pomocí příznaku -p/--prompt. V konverzačním režimu (-cnv) funguje tento počáteční prompt jako systémová zpráva. Jinak můžeš jednoduše připojit jakoukoli požadovanou instrukci před text svého promptu. Můžeš také upravit parametry vzorkování - například: teplotu (--temp), top-k (--top-k), top-p (--top-p), penalizaci za opakování (--repeat-penalty) a seed, který se má použít (--seed). Následuje příklad volání pomocí těchto voleb:

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

Aby byla zajištěna správná funkčnost našich Qiskit modelů, doporučujeme použít systémový prompt uvedený v našich repozitářích HF GGUF: systémový prompt pro mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF a granite-3.2-8b-qiskit-GGUF.

Ruční připojení Continue (VS Code)

Continue (VS Code)​

1. Nainstaluj rozšíření​

Otevři VS Code, přejdi na Extensions (Cmd+Shift+X), vyhledej Continue a nainstaluj ho.

2. Otevři konfiguraci​

Klikni na ikonu Continue v postranním panelu, poté klikni na ikonu ozubeného kola, nebo otevři paletu příkazů (Cmd+Shift+P) a spusť Continue: Open Config File.

Tím se otevře ~/.continue/config.yaml (nebo config.json ve starších verzích).

3. Nakonfiguruj model​

Přidej následující do config.yaml:

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

Tím zpřístupníš model Qiskit v chatovacím panelu (konverzace v postranním panelu, inline dotazy) a pro příkazy inline úprav.

4. Test it​
  • Chat: Otevři panel Continue v postranním panelu a polož otázku (např. „Jak vytvořím parametrizovaný obvod v Qiskitu?“)

  • Inline úprava: Vyber blok kódu, stiskni Cmd+I (Mac) nebo Ctrl+I (Linux/Windows)

Ruční připojení Jupyter AI (JupyterLab)

Jupyter AI (JupyterLab)​

Poznámka: Tyto instrukce se týkají Jupyter AI v2.x.

1. Nainstaluj Jupyter AI a poskytovatele Ollama​
pip install "jupyter-ai<3" langchain-ollama

Pin "jupyter-ai<3" zajišťuje, že získáš v2.x. Balíček langchain-ollama je vyžadován, aby Jupyter AI dokázal detekovat Ollama jako poskytovatele. Bez něj se Ollama neobjeví v panelu nastavení.

Poté restartuj JupyterLab.

2. Nakonfiguruj model chatu​

Otevři JupyterLab a klikni na ikonu chatu v levém postranním panelu. V panelu nastavení:

  1. V části Language model vyber Ollama jako poskytovatele.

  2. Zadej mistral-small-3.2-24b-qiskit jako název modelu.

  3. Pro Ollama není potřeba žádný API klíč (ponech pole prázdné).

  4. Klikni na šipku zpět, aby ses začal bavit.

3. Použij magický příkaz %%ai​

Magický příkaz %%ai ti umožní dotazovat se modelu přímo v buňkách notebooku.

%load_ext jupyter_ai_magics

Poté v buňce:

%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit

4. Vlastní hostitel Ollama (volitelné)​

Ve výchozím nastavení se Jupyter AI připojuje k http://127.0.0.1:11434. Pokud tvůj server Ollama běží na jiné adrese nebo portu:

V uživatelském rozhraní chatu: Nastav pole „Base API URL“ v panelu nastavení AI.

Ruční připojení OpenCode (terminál)

OpenCode (terminál)​

1. Nainstaluj OpenCode​
curl -fsSL https://opencode.ai/install | bash

2. Nakonfiguruj model Qiskit​

Vytvoř soubor opencode.json v kořeni tvého projektu (nebo ~/.config/opencode/opencode.json pro globální konfiguraci):

{
"$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. Vyber model​

Spusť OpenCode ve svém adresáři projektu:

opencode

Uvnitř TUI spusť příkaz /models a vyber Qiskit Code Assistant ze seznamu.

4. Test it​

Polož otázku přímo v chatu, například: „Definuj Bellův obvod a spusť ho pomocí QiskitRuntimeService“

Dostupné modely​

Aktuální modely​

Toto jsou nejnovější doporučené modely pro použití s Qiskit Code Assistantem:

  1. Qiskit/mistral-small-3.2-24b-qiskit - Vydáno v říjnu 2025

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Vydáno v červnu 2025

  3. qiskit/granite-3.3-8b-qiskit - Vydáno v červnu 2025

  4. qiskit/granite-3.2-8b-qiskit - Vydáno v červnu 2025

Modely GGUF (doporučeno pro osobní prostředí/notebooky)​

Modely ve formátu GGUF jsou optimalizovány pro lokální použití a vyžadují méně výpočetních zdrojů:

  1. mistral-small-3.2-24b-qiskit-GGUF – Vydáno v říjnu 2025

    Trénováno na datech Qiskitu do verze 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Vydáno v červnu 2025

    Trénováno na datech Qiskitu do verze 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Vydáno v červnu 2025

    Trénováno na datech Qiskitu do verze 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Vydáno v červnu 2025

    Trénováno na datech Qiskitu do verze 2.0

Open Source modely Qiskit Code Assistantu jsou dostupné ve formátu safetensors nebo GGUF a lze je stáhnout z Hugging Face, jak je vysvětleno níže.

Verze Qiskitu použité pro trénování​

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.76———————February 20251.3
granite-8b-qiskit17.8844.3753.66———————November 20241.2

Poznámka: Všechny modely uvedené v tabulce benchmarků byly hodnoceny pomocí příslušného systémového promptu, definovaného v jejich modelu na Hugging Face.

Zastaralé modely​

Tyto modely už nejsou aktivně udržovány, ale zůstávají dostupné:

  1. qiskit/granite-8b-qiskit-rc-0.10 - Vydáno v únoru 2025 (zastaralé)

  2. qiskit/granite-8b-qiskit - Vydáno v listopadu 2024 (zastaralé)

Další informace a citace​

Chceš-li se dozvědět více o Qiskit Code Assistantu, benchmarcích Qiskit HumanEval nebo Qiskit HumanEval Hard a citovat je ve svých vědeckých publikacích, prohlédni si tyto doporučené citace:

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