メインコンテンツへスキップ

Qiskit Code Assistant

Qiskit Code Assistant LLMは、Qiskitを初めて利用する方にとって量子コンピューティングをより身近なものにし、既存のユーザーのコーディング体験を向上させることを目指しています。Qiskit SDK数百万件のテキストトークン、長年にわたるQiskitコード例、およびIBM Quantum® の機能を用いてトレーニングされています。Qiskit Code Assistantは、IBMの最新機能を組み込んだ IBM Graniteおよびその他のオープンソースモデル に基づくLLM生成の提案を提供することで、量子開発ワークフローをサポートします。

Notes

Qiskit Code Assistantの基盤となる大規模言語モデル(LLM)

コード提案を提供するために、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 モデルは、高品質なQiskitデータ、PythonコミットおよびチャットデータによるPretraining拡張とFine-tuningを通じて、Mistral-Small-3.2-24B-Instruct-2506 モデルのQiskitに対するコード生成能力を向上させたものです。Mistral AIモデルファミリーの詳細については、Mistral AIのドキュメント を参照してください。.*-qiskit モデルの詳細については、Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code を参照してください。

Qiskit向けに特化したLLMは、オープンソースモデルとしても提供されています。利用可能なすべてのモデルは 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のテストで構成されており、それぞれ関数定義と、モデルが解くべきタスクを詳述するdocstringで構成されています。各例にはリファレンスとなる標準解答と、生成された解の正確さを評価するためのユニットテストも含まれています。テストの難易度は、基本・中級・上級の3段階です。Qiskit HumanEval Hardベンチマークは、Qiskit HumanEvalの変形版ですが、コードのimportに関する情報を除外しているため、LLMが適切なメソッドやクラスのimportを自ら判断する必要があります。この変更により、私たちのテストと初期結果によると、データセットはLLMにとってはるかに難しくなります。

Qiskit HumanEvalおよびQiskit HumanEval Hardのデータセットは次のサイトで入手できます: Qiskit HumanEval および Qiskit HumanEval Hard。これらのベンチマークの開発には、GitHubリポジトリ からコントリビューションできます。

Qiskit Code Assistantのインストール

Qiskit Code Assistantのいずれかのモデルをローカルマシンにインストール、設定、および使用する方法を学びます。

Download from the Hugging Face website

Hugging FaceウェブサイトからQiskit Code Assistant関連モデルをダウンロードするには、以下の手順に従ってください:

  1. Hugging Face上の目的のQiskitモデルページに移動します。
  2. Files and Versions タブに進み、safetensorsまたはGGUFモデルファイルをダウンロードします。
Download using the Hugging Face CLI

Hugging Face CLIを使用して利用可能なQiskit Code Assistantモデルをダウンロードするには、以下の手順に従ってください:

  1. Hugging Face CLI をインストールします

  2. Hugging Faceアカウントにログインします

    huggingface-cli login
  3. 前のリストから希望するモデルをダウンロードします

    huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Manually deploy the Qiskit Code Assistant models in local through Ollama

ダウンロードしたQiskit Code Assistantモデルをデプロイして操作する方法は複数あります。このガイドでは、Ollama を使用する方法を説明します: Hugging Face Hubインテグレーションまたはローカルモデルを使用した Ollamaアプリケーション、または 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
Hugging Face Hubインテグレーションを使ったOllamaのセットアップ

Ollama/Hugging Face Hubインテグレーション は、新しいmodelfileを作成したり、GGUFまたはsafetensorsファイルを手動でダウンロードしたりすることなく、Hugging Face Hub上でホストされているモデルを操作する方法を提供します。モデルの templateparams ファイルは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-GGUFhf.co/Qiskit/granite-3.3-8b-qiskit-GGUF を使用できます。

手動でダウンロードしたQiskit Code Assistant GGUFモデルをOllamaでセットアップする

https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF のような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の手動ダウンロードモデルの実行

Ollamaで Qwen2.5-Coder-14B-Qiskit モデルのセットアップが完了したら、以下のコマンドを実行してモデルを起動し、ターミナル(チャットモード)で操作します。

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 - 現在読み込まれているモデルを一覧表示
Manually deploy the Qiskit Code Assistant models in local through the llama-cpp-python package

Ollamaアプリケーションの代替として、llama.cpp のPythonバインディングである llama-cpp-python パッケージがあります。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"]
Manually deploy the Qiskit Code Assistant models in local through llama.cpp

llama.cpp ライブラリの使用

もう一つの代替手段は、最小限のセットアップでCPU上のLLM推論を実行するオープンソースライブラリ llama.cpp を使用することです。 モデルの実行に対する低レベルの制御を提供し、通常はコマンドラインからローカルの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 フラグを使って初期の「system」プロンプトを指定できます。会話モード(-cnv)では、この初期プロンプトがシステムメッセージとして機能します。それ以外の場合は、プロンプトテキストの先頭に任意の指示を追加するだけで構いません。サンプリングパラメーターも調整できます: temperature(--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-GGUFQwen2.5-Coder-14B-Qiskit-GGUFgranite-3.3-8b-qiskit-GGUF、および granite-3.2-8b-qiskit-GGUF のシステムプロンプトです。

Manually connect 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モデルが チャットパネル(サイドバーの会話、インラインQ&A)と インライン編集 コマンドで使用できるようになります。

4. テスト
  • チャット: サイドバーのContinueパネルを開いて質問します(例: 「Qiskitでパラメータ化された回路を作成するにはどうすればよいですか?」)
  • インライン編集: コードブロックを選択して、Cmd+I(Mac)または Ctrl+I(Linux/Windows)を押します
Manually connect 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サーバーが別のアドレスやポートで動作している場合:

チャットUIで: AI設定パネルの「Base API URL」フィールドを設定します。

Manually connect OpenCode (Terminal)

OpenCode (Terminal)

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. テスト

チャットで直接質問します。例: 「Bell回路を定義してQiskitRuntimeServiceを使って実行してください」

利用可能なモデル

現在のモデル

Qiskit Code Assistantで使用するための最新の推奨モデルです:

  1. Qiskit/mistral-small-3.2-24b-qiskit - 2025年10月リリース
  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - 2025年6月リリース
  3. qiskit/granite-3.3-8b-qiskit - 2025年6月リリース
  4. qiskit/granite-3.2-8b-qiskit - 2025年6月リリース

GGUFフォーマットのモデルはローカル使用向けに最適化されており、必要な計算リソースが少なくて済みます:

  1. mistral-small-3.2-24b-qiskit-GGUF2025年10月リリース
    Qiskitバージョン 2.1 までのデータでトレーニング済み

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF2025年6月リリース
    Qiskitバージョン 2.0 までのデータでトレーニング済み

  3. qiskit/granite-3.3-8b-qiskit-GGUF2025年6月リリース
    Qiskitバージョン 2.0 までのデータでトレーニング済み

  4. qiskit/granite-3.2-8b-qiskit-GGUF2025年6月リリース
    Qiskitバージョン 2.0 までのデータでトレーニング済み

オープンソースQiskit Code Assistantモデルは safetensors または GGUFファイル形式 で提供されており、以下の説明に従ってHugging Faceからダウンロードできます。

トレーニングに使用したQiskitバージョン

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

注: ベンチマーク表に記載されているすべてのモデルは、Hugging Faceモデルで定義されたそれぞれのシステムプロンプトを使用して評価されました。

廃止されたモデル

これらのモデルは現在アクティブにメンテナンスされていませんが、引き続き利用可能です:

  1. qiskit/granite-8b-qiskit-rc-0.10 - 2025年2月リリース(廃止)
  2. qiskit/granite-8b-qiskit - 2024年11月リリース(廃止)

詳細情報と引用

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