Перейти до основного вмісту
Цей проєкт у бета-версії. Знайшов(-ла) помилку? Відкрити issue на GitHub. Є запитання чи ідея? Запитати в Discussions — будемо раді твоєму відгуку!
Яка якість перекладу на цій сторінці?

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 Advocates та експертами для створення бенчмарків на основі виконання коду, що називаються 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 \{#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

Ти також можеш запустити сумісний з 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. Test it​
  • Чат: відкрий панель Continue на бічній панелі та постав запитання (наприклад, «Як створити параметризовану схему в 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. Test it​

Постав запитання безпосередньо в чаті, наприклад: «Визнач схему Белла та запусти її за допомогою QiskitRuntimeService»

Доступні моделі​

Поточні моделі​

Це найновіші рекомендовані моделі для використання з Qiskit Code Assistant:

  1. Qiskit/mistral-small-3.2-24b-qiskit - Випущено у жовтні 2025 року

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Випущено у червні 2025 року

  3. qiskit/granite-3.3-8b-qiskit - Випущено у червні 2025 року

  4. qiskit/granite-3.2-8b-qiskit - Випущено у червні 2025 року

Моделі GGUF (рекомендовані для персональних середовищ/ноутбуків)​

Моделі у форматі GGUF оптимізовані для локального використання та потребують менше обчислювальних ресурсів:

  1. mistral-small-3.2-24b-qiskit-GGUF – Випущено у жовтні 2025 року

    Навчено на даних Qiskit до версії 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Випущено у червні 2025 року

    Навчено на даних Qiskit до версії 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Випущено у червні 2025 року

    Навчено на даних Qiskit до версії 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Випущено у червні 2025 року

    Навчено на даних Qiskit до версії 2.0

Моделі Qiskit Code Assistant з відкритим кодом доступні у форматі safetensors або GGUF file format і їх можна завантажити з Hugging Face, як пояснено нижче.

Версії Qiskit, використані для навчання​

Модель     Метрики бенчмарків    Дата випускуНавчено на версії Qiskit
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41Січень 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82Червень 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05Червень 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51Червень 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76———————Лютий 20251.3
granite-8b-qiskit17.8844.3753.66———————Листопад 20241.2

Примітка: усі моделі, перелічені в таблиці бенчмарків, оцінювалися з використанням відповідного системного промпту, визначеного в їхній моделі Hugging Face.

Застарілі моделі​

Ці моделі більше не підтримуються активно, але залишаються доступними:

  1. qiskit/granite-8b-qiskit-rc-0.10 - Випущено у лютому 2025 року (застаріла)

  2. qiskit/granite-8b-qiskit - Випущено у листопаді 2024 року (застаріла)

Додаткова інформація та цитування​

Щоб дізнатися більше про Qiskit Code Assistant, бенчмарки Qiskit HumanEval або Qiskit HumanEval Hard, а також процитувати їх у своїх наукових публікаціях, переглянь ці рекомендовані цитати:

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