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:
- Перейди на потрібну сторінку моделі Qiskit на Hugging Face.
- Відкрий вкладку Files and Versions і завантаж файли моделі у форматі safetensors або GGUF.
Завантаження за допомогою Hugging Face CLI
Щоб завантажити будь-яку з доступних моделей Qiskit Code Assistant за допомогою Hugging Face CLI, виконай такі кроки:
-
Встанови Hugging Face CLI
-
Увійди до свого облікового запису Hugging Face
huggingface-cli login -
Завантаж бажану модель зі списку вище
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
-
Завантаж застосунок Ollama
-
Встанови завантажений файл
-
Запусти встановлений застосунок Ollama
інформаціяЗастосунок успішно працює, коли піктограма Ollama з'являється на панелі меню робочого стола. Також можна перевірити, чи запущено сервіс, перейшовши на
http://localhost:11434/. -
Спробуй 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.
-
Переконайся, що застосунок Ollama запущено.
-
Перейди на потрібну сторінку моделі та скопіюй URL. Наприклад, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.
-
У терміналі виконай команду:
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.
-
Створи
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 0PARAMETER top_k 1 -
Виконай таку команду, щоб створити власний екземпляр моделі на основі
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-застосунки.
- Встанови
llama-cpp-python - Взаємодій з моделлю зсередини свого застосунку за допомогою
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 за допомогою brew, nix або winget
- Запусти через Docker: ознайомся з документацією Docker від команди
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 і натисни піктограму чату на лівій бічній панелі. На панелі налаштувань:
- У розділі Language model вибери Ollama як провайдера.
- Введи
mistral-small-3.2-24b-qiskitяк назву моделі. - Для Ollama ключ API не потрібен (залиш поле порожнім).
- Натисни стрілку назад, щоб розпочати чат.
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:
- Qiskit/mistral-small-3.2-24b-qiskit - Released October 2025
- Qiskit/Qwen2.5-Coder-14B-Qiskit - Released June 2025
- qiskit/granite-3.3-8b-qiskit - Released June 2025
- qiskit/granite-3.2-8b-qiskit - Released June 2025
GGUF models (recommended for personal environments/laptops)
GGUF format models are optimized for local use and require fewer computational resources:
-
mistral-small-3.2-24b-qiskit-GGUF – Released October 2025
Trained with Qiskit data up to version 2.1 -
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Released June 2025
Trained with Qiskit data up to version 2.0 -
qiskit/granite-3.3-8b-qiskit-GGUF – Released June 2025
Trained with Qiskit data up to version 2.0 -
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 date | Trained on Qiskit version | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QiskitHumanEval-Hard | QiskitHumanEval | HumanEval | ASDiv | MathQA | SciQ | MBPP | IFEval | CrowsPairs (English) | TruthfulQA (MC1 acc) | |||
| mistral-small-3.2-24b-qiskit | 32.45 | 47.02 | 77.49 | 3.77 | 49.68 | 97.50 | 64.00 | 48.44 | 67.08 | 39.41 | January 2026 | 2.2 |
| Qwen2.5-Coder-14B-Qiskit | 25.17 | 49.01 | 91.46 | 4.21 | 53.90 | 97.00 | 77.60 | 49.64 | 65.18 | 37.82 | June 2025 | 2.0 |
| granite-3.3-8b-qiskit | 14.57 | 27.15 | 62.80 | 0.48 | 38.66 | 93.30 | 52.40 | 59.71 | 59.75 | 39.05 | June 2025 | 2.0 |
| granite-3.2-8b-qiskit | 9.93 | 24.50 | 57.32 | 0.09 | 41.41 | 96.30 | 51.80 | 60.79 | 66.79 | 40.51 | June 2025 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | February 2025 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | November 2024 | 1.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:
- qiskit/granite-8b-qiskit-rc-0.10 - Released February 2025 (deprecated)
- 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},
}