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 - Zobrazit seznam modelů v počítači
  • ollama rm Qwen2.5-Coder-14B-Qiskit - Smazat model
  • ollama show Qwen2.5-Coder-14B-Qiskit - Zobrazit informace o modelu
  • ollama stop Qwen2.5-Coder-14B-Qiskit - Zastavit aktuálně běžící model
  • ollama ps - Zobrazit seznam aktuálně načtených modelů
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ětší kontrolu a flexibilitu 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 pracovních postupů a Python aplikací.

  1. Nainstaluj llama-cpp-python
  2. Interaguj s modelem ze své aplikace 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 do modelu pro přizpůsobení inference:

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žití knihovny llama.cpp

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

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

Po instalaci můžeš použít llama.cpp pro interakci s modely GGUF v režimu konverzace takto:

# 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

Můžeš také spustit OpenAI-kompatibilní API server pro model tímto způsobem:

llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
Pokročilé parametry

S programem llama-cli můžeš řídit generování modelu pomocí voleb příkazové řádky. Například můžeš zadat počáteční „systémový” prompt pomocí příznaku -p/--prompt. V režimu konverzace (-cnv) tento počáteční prompt funguje jako systémová zpráva. Jinak můžeš jednoduše přidat libovolnou požadovanou instrukci na začátek textu promptu. Můžeš také upravovat parametry vzorkování – například: teplota (--temp), top-k (--top-k), top-p (--top-p), penalizace opakování (--repeat-penalty) a seed (--seed). Níže je příklad spuštění s těmito možnostmi:

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 naše modely Qiskit fungovaly správně, doporučujeme použít systémový prompt uvedený v našich HF GGUF repozitářích: 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. Instalace rozšíření

Otevři VS Code, přejdi do Rozšíření (Cmd+Shift+X), vyhledej Continue a nainstaluj ho.

2. Otevření konfigurace

Klikni na ikonu Continue v postranním panelu, poté klikni na ikonu ozubeného kolečka 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. Konfigurace modelu

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

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

Tím bude model Qiskit dostupný v panelu chatu (konverzace v postranním panelu, inline Q&A) a pro příkazy inline editace.

4. Otestování
  • Chat: Otevři panel Continue v postranním panelu a polož otázku (např. „How do I create a parameterized circuit in Qiskit?")
  • Inline editace: 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 pokyny se vztahují na Jupyter AI v2.x.

1. Instalace 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 detekoval Ollamu jako poskytovatele. Bez něj se Ollama nezobrazí v panelu nastavení.

Poté restartuj JupyterLab.

2. Konfigurace modelu 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 Ollamu není potřeba žádný API klíč (ponech pole prázdné).
  4. Klikni na šipku zpět pro zahájení chatu.
3. Použití magic příkazu %%ai

Magic příkaz %%ai ti umožňuje dotazovat model 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 Ollamy (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. Instalace OpenCode
curl -fsSL https://opencode.ai/install | bash
2. Konfigurace modelu Qiskit

Vytvoř soubor opencode.json v kořenovém adresáři 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. Výběr modelu

Spusť OpenCode v adresáři projektu:

opencode

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

4. Otestování

Polož otázku přímo v chatu, například: „Define a Bell circuit and run it using 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
    Natrénováno na datech Qiskit do verze 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Vydáno v červnu 2025
    Natrénováno na datech Qiskit do verze 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Vydáno v červnu 2025
    Natrénováno na datech Qiskit do verze 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Vydáno v červnu 2025
    Natrénováno na datech Qiskit do verze 2.0

Modely Qiskit Code Assistant s otevřeným zdrojovým kódem jsou dostupné ve formátu safetensors nebo GGUF file format a lze je stáhnout z Hugging Face, jak je popsáno níže.

Verze Qiskie použité pro trénování

Model     Benchmark Metrics    Datum vydáníNatrénováno na verzi Qiskie
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41Leden 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82Červen 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05Červen 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51Červen 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76Únor 20251.3
granite-8b-qiskit17.8844.3753.66Listopad 20241.2

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

Zastaralé modely

Tyto modely již 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é)

Více informací a citace

Pokud se chceš 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 tato 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},
}