Перейти до основного вмісту

Qiskit Code Assistant

Qiskit Code Assistant LLMs прагнуть зробити квантові обчислення доступнішими для нових користувачів Qiskit і покращити досвід написання коду для поточних користувачів. Він навчений на мільйонах текстових токенів з Qiskit SDK, роках прикладів коду Qiskit та можливостей IBM Quantum®. Qiskit Code Assistant може допомогти у твоєму робочому процесі квантової розробки, пропонуючи підказки, згенеровані LLM на основі IBM Granite та інших моделей з відкритим кодом, які включають найновіші функції та можливості від IBM®.

Примітки
  • Хочеш одразу перейти до інструкцій з встановлення? Перейди до розділу Встановлення Qiskit Code Assistant.
  • Якщо ти маєш відгуки або хочеш зв'язатися з командою розробників, скористайся каналом Qiskit Slack Workspace або відповідними публічними репозиторіями GitHub.

Велика мовна модель (LLM), що стоїть за Qiskit Code Assistant

Для надання підказок коду Qiskit Code Assistant використовує велику мовну модель (LLM). У цьому випадку Qiskit Code Assistant наразі покладається на модель mistral-small-3.2-24b-qiskit, побудовану на основі моделі Mistral-Small-3.2-24B-Qiskit. Модель mistral-small-3.2-24b-qiskit покращує можливості генерації коду моделі Mistral-Small-3.2-24B-Instruct-2506 для Qiskit завдяки розширеному попередньому навчанню та тонкому налаштуванню на якісних даних Qiskit, а також комітах Python і чатах. Для отримання додаткової інформації про сімейство моделей Mistral AI зверни увагу на документацію Mistral AI. Для отримання більше деталей про моделі .*-qiskit дивись Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code.

Наші LLM, спеціалізовані для Qiskit, також доступні як моделі з відкритим кодом. Переглянь всі доступні моделі на https://huggingface.co/Qiskit.

Бенчмарки Qiskit HumanEval і Qiskit HumanEval Hard

Щоб протестувати mistral-small-3.2-24b-qiskit та інші моделі, ми співпрацювали з адвокатами та експертами Qiskit для створення бенчмарків на основі виконання коду, що називаються Qiskit HumanEval (QHE) і Qiskit HumanEval Hard (QHE Hard), та запустили їх на моделях. Ці бенчмарки схожі на HumanEval і містять кілька складних завдань з програмування, всі засновані на офіційних бібліотеках Qiskit.

Бенчмарки складаються приблизно з 150 тестів, кожен з яких побудований із визначення функції, за яким іде рядок документації, що детально описує завдання, яке модель має вирішити. Кожен приклад також включає еталонне канонічне рішення та модульні тести для оцінки правильності згенерованих рішень. Є три рівні складності тестів: базовий, середній і складний. Бенчмарк Qiskit HumanEval Hard є варіацією Qiskit HumanEval, але без інформації про імпорт коду, тому LLM потрібно самостійно визначати правильні імпорти методів або класів. Ця зміна робить датасет значно складнішим для LLM, згідно з нашими тестами та початковими результатами.

Датасети Qiskit HumanEval і Qiskit HumanEval Hard доступні на цих сайтах: Qiskit HumanEval і Qiskit HumanEval. Ти можеш зробити внесок у розробку цих бенчмарків у репозиторії GitHub.

Встановлення Qiskit Code Assistant

Дізнайся, як встановити, налаштувати та використовувати будь-яку з моделей Qiskit Code Assistant на своєму локальному комп'ютері.

Завантаження з вебсайту Hugging Face

Виконай ці кроки, щоб завантажити будь-яку модель, пов'язану з Qiskit Code Assistant, з вебсайту Hugging Face:

  1. Перейди на потрібну сторінку моделі Qiskit на Hugging Face.
  2. Відкрий вкладку Files and Versions і завантаж файли моделі у форматі safetensors або GGUF.
Завантаження за допомогою Hugging Face CLI

Щоб завантажити будь-яку з доступних моделей Qiskit Code Assistant за допомогою Hugging Face CLI, виконай такі кроки:

  1. Встанови Hugging Face CLI

  2. Увійди до свого облікового запису Hugging Face

    huggingface-cli login
  3. Завантаж бажану модель зі списку вище

    huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Розгортання моделей Qiskit Code Assistant локально через Ollama

Існує кілька способів розгорнути завантажену модель Qiskit Code Assistant і взаємодіяти з нею. У цьому посібнику описано використання Ollama: або через застосунок Ollama з інтеграцією Hugging Face Hub чи локальною моделлю, або через пакет llama-cpp-python.

Використання застосунку Ollama

Застосунок Ollama пропонує просте рішення для локального запуску LLM. Його легко використовувати — CLI робить весь процес налаштування, керування моделями та взаємодії досить зрозумілим. Він ідеально підходить для швидких експериментів і для користувачів, які хочуть уникнути зайвих технічних деталей.

Встановлення Ollama
  1. Завантаж застосунок Ollama

  2. Встанови завантажений файл

  3. Запусти встановлений застосунок Ollama

    інформація

    Застосунок успішно працює, коли піктограма Ollama з'являється на панелі меню робочого стола. Також можна перевірити, чи запущено сервіс, перейшовши на http://localhost:11434/.

  4. Спробуй Ollama у своєму терміналі й запусти моделі. Наприклад:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Налаштування Ollama за допомогою інтеграції Hugging Face Hub

Інтеграція Ollama/Hugging Face Hub надає можливість взаємодіяти з моделями, розміщеними на Hugging Face Hub, без необхідності створювати новий modelfile або вручну завантажувати файли GGUF або safetensors. Файли template та params за замовчуванням вже включено для моделі на Hugging Face Hub.

  1. Переконайся, що застосунок Ollama запущено.

  2. Перейди на потрібну сторінку моделі та скопіюй URL. Наприклад, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

  3. У терміналі виконай команду:

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

Ти можеш використовувати модель hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit або будь-яку з інших наразі рекомендованих офіційних GGUF-моделей: hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF або hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.

Налаштування Ollama з вручну завантаженою GGUF-моделлю Qiskit Code Assistant

Якщо ти вручну завантажив GGUF-модель, наприклад https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF, і хочеш поекспериментувати з різними шаблонами та параметрами, виконай такі кроки, щоб завантажити її у свій локальний застосунок Ollama.

  1. Створи Modelfile, ввівши наступний вміст, і обов'язково замін <PATH-TO-GGUF-FILE> на фактичний шлях до завантаженої моделі.

    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. Виконай таку команду, щоб створити власний екземпляр моделі на основі Modelfile.

    ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-file
    примітка

    Цей процес може зайняти деякий час, поки Ollama читає файл моделі, ініціалізує екземпляр моделі та налаштовує його відповідно до наданих специфікацій.

Запуск вручну завантаженої в Ollama моделі Qiskit Code Assistant

Після того як модель Qwen2.5-Coder-14B-Qiskit налаштовано в Ollama, виконай таку команду, щоб запустити модель і взаємодіяти з нею в терміналі (у режимі чату).

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

Деякі корисні команди:

  • ollama list — перелік моделей на твоєму комп'ютері
  • ollama rm Qwen2.5-Coder-14B-Qiskit — видалити модель
  • ollama show Qwen2.5-Coder-14B-Qiskit — показати інформацію про модель
  • ollama stop Qwen2.5-Coder-14B-Qiskit — зупинити модель, що зараз виконується
  • ollama ps — перелік завантажених моделей
Розгортання моделей Qiskit Code Assistant локально через пакет llama-cpp-python

Альтернативою застосунку Ollama є пакет llama-cpp-python — Python-прив'язка для llama.cpp. Він надає більше контролю та гнучкості для локального запуску GGUF-моделі й ідеально підходить для користувачів, які хочуть інтегрувати локальну модель у свої робочі процеси та Python-застосунки.

  1. Встанови llama-cpp-python
  2. Взаємодій з моделлю зсередини свого застосунку за допомогою llama_cpp. Наприклад:
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"]

Також можна додати параметри генерації тексту до моделі, щоб налаштувати виведення результатів:

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"]
Розгортання моделей Qiskit Code Assistant локально через llama.cpp

Використання бібліотеки llama.cpp

Ще одна альтернатива — використання llama.cpp, бібліотеки з відкритим кодом для виконання LLM-виведення на CPU з мінімальним налаштуванням. Вона надає низькорівневий контроль над виконанням моделі і зазвичай запускається з командного рядка, вказуючи на локальний файл GGUF-моделі.

Існує кілька способів встановити llama.cpp на своєму комп'ютері:

Після встановлення можна використовувати llama.cpp для взаємодії з GGUF-моделями в режимі діалогу таким чином:

# 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

Також можна запустити OpenAI-сумісний API-сервер для моделі таким чином:

llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
Розширені параметри

За допомогою програми llama-cli можна керувати генерацією моделі через параметри командного рядка. Наприклад, можна надати початковий «системний» промпт за допомогою прапорця -p/--prompt. У режимі діалогу (-cnv) цей початковий промпт виконує роль системного повідомлення. В іншому випадку можна просто додати будь-яку потрібну інструкцію на початок тексту промпту. Також можна налаштувати параметри семплювання — наприклад: температуру (--temp), top-k (--top-k), top-p (--top-p), штраф за повторення (--repeat-penalty) та зерно для генерації (--seed). Нижче наведено приклад виклику з використанням цих параметрів:

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

Щоб забезпечити належну роботу наших моделей Qiskit, рекомендуємо використовувати системний промпт, наданий у наших HF GGUF-репозиторіях: системний промпт для mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF та granite-3.2-8b-qiskit-GGUF.

Ручне підключення Continue (VS Code)

Continue (VS Code)

1. Встанови розширення

Відкрий VS Code, перейди до розділу Extensions (Cmd+Shift+X), знайди Continue і встанови його.

2. Відкрий конфігурацію

Натисни піктограму Continue на бічній панелі, потім натисни піктограму шестерні, або відкрий палітру команд (Cmd+Shift+P) і виконай Continue: Open Config File.

Це відкриє ~/.continue/config.yaml (або config.json у старіших версіях).

3. Налаштуй модель

Додай наступне до config.yaml:

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

Це робить модель Qiskit доступною на панелі чату (розмови на бічній панелі, вбудовані запитання та відповіді) і для команд вбудованого редагування.

4. Перевір
  • Чат: Відкрий панель Continue на бічній панелі та постав запитання (наприклад, "How do I create a parameterized circuit in Qiskit?")
  • Вбудоване редагування: Вибери блок коду, натисни Cmd+I (Mac) або Ctrl+I (Linux/Windows)
Ручне підключення Jupyter AI (JupyterLab)

Jupyter AI (JupyterLab)

Примітка: Ці інструкції стосуються Jupyter AI v2.x.

1. Встанови Jupyter AI та провайдер Ollama
pip install "jupyter-ai<3" langchain-ollama

Прив'язка "jupyter-ai<3" гарантує отримання версії v2.x. Пакет langchain-ollama необхідний для того, щоб Jupyter AI виявив Ollama як провайдера. Без нього Ollama не з'явиться на панелі налаштувань.

Потім перезапусти JupyterLab.

2. Налаштуй модель чату

Відкрий JupyterLab і натисни піктограму чату на лівій бічній панелі. На панелі налаштувань:

  1. У розділі Language model вибери Ollama як провайдера.
  2. Введи mistral-small-3.2-24b-qiskit як назву моделі.
  3. Для Ollama ключ API не потрібен (залиш поле порожнім).
  4. Натисни стрілку назад, щоб розпочати чат.
3. Використовуй магічну команду %%ai

Магічна команда %%ai дозволяє звертатися до моделі безпосередньо в комірках ноутбука.

%load_ext jupyter_ai_magics

Потім у комірці:

%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit
4. Власний хост Ollama (необов'язково)

За замовчуванням Jupyter AI підключається до http://127.0.0.1:11434. Якщо твій сервер Ollama працює за іншою адресою або портом:

У інтерфейсі чату: Встанови поле «Base API URL» на панелі налаштувань AI.

Ручне підключення OpenCode (Термінал)

OpenCode (Термінал)

1. Встанови OpenCode
curl -fsSL https://opencode.ai/install | bash
2. Налаштуй модель Qiskit

Створи файл opencode.json у кореневій директорії проєкту (або ~/.config/opencode/opencode.json для глобального конфігу):

{
"$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. Вибери модель

Запусти OpenCode у директорії свого проєкту:

opencode

У TUI виконай команду /models і вибери Qiskit Code Assistant зі списку.

4. Перевір

Постав запитання безпосередньо в чаті, наприклад: "Define a Bell circuit and run it using QiskitRuntimeService"

Available models

Current models

These are the latest recommended models for use with 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

GGUF format models are optimized for local use and require fewer computational resources:

  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

The Open Source Qiskit Code Assistant models are available in safetensors or GGUF file format and can be downloaded from the Hugging Face as explained below.

Qiskit versions used for training

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

Note: All models listed in the benchmark table were evaluated using their respective system prompt, defined in their Hugging Face model.

Deprecated models

These models are no longer actively maintained but remain available:

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

More information and citations

To learn more about Qiskit Code Assistant, the Qiskit HumanEval, or Qiskit HumanEval Hard benchmarks, and cite them in your scientific publications, review these recommended citations:

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