Qiskitコードアシスタント
Qiskit Code Assistant LLMは、Qiskitを新たに導入するユーザーにとって量子コンピューティングをより身近なものにし、既存のユーザーのコーディング体験を向上させることを目的としています。 このモデルは、 Qiskit SDK の何百万ものテキストトークン、長年にわたるQiskitのコード例、および IBM Quantum® の機能を用いて学習されています。 Qiskit Code Assistant IBM Granite やその他のオープンソースモデルに基づいてLLMが生成した提案を提供することで、量子開発ワークフローを支援します。これらのモデルには、 IBM® の最新機能が組み込まれています。
- インストール手順に直接進みたいですか? 「 Qiskit Code Assistant のインストール」 セクションに進んでください。
- フィードバックや開発チームへの連絡は、 Qiskit Slack Workspaceチャンネルまたは関連する公開リポジトリ( GitHub )をご利用ください。
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 のコミットとチャットデータを用いた微調整を通じて、Qiskit向けのコード生成能力 Mistral-Small-3.2-24B-Instruct-2506 を向上させます。 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 ハードベンチマーク
Qiskit および mistral-small-3.2-24b-qiskit その他のモデルをテストするため、Qiskit アドボケイトおよび専門家と協力し、Qiskit HumanEval (QHE) および Qiskit HumanEval Hard (QHE Hard) と呼ばれる実行ベースのベンチマークを作成し、これらのモデル上で実行しました。 これらのベンチマークはHumanEval と類似しており、公式のQiskitライブラリを基盤とした複数の困難なコード問題の解決を含んでいます。
ベンチマークは約150のテストで構成されており、各テストは関数定義から始まり、モデルが解決すべきタスクを詳細に説明するドキュメント文字列が続く。 各例には、生成された解の正しさを評価するための参照用標準解と、単体テストも含まれています。 テストには三つの難易度レベルがあります:基礎、中級、上級。 Qiskit HumanEval HardベンチマークはQiskit HumanEval Oneのバリエーションですが、コードインポートに関連する情報を除去しているため、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 モデルのページに移動します。
- 「ファイルとバージョン 」タブに移動し、safetensors または GGUF モデルファイルをダウンロードしてください。
Hugging Face CLI を使用して、利用可能な Qiskit Code Assistant モデルをダウンロードするには、以下の手順に従ってください:
-
Hugging Face CLI をインストールする
-
Hugging Face アカウントにログインしてください
huggingface-cli login -
前のリストからお好みのモデルをダウンロードしてください
huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
-
ダウンロードした Qiskit Code Assistant モデルを展開し、操作するには、いくつかの方法があります。 このガイドでは、 Ollama の使用方法を次のように紹介します。 Hugging Face Hub との連携機能やローカルモデルを利用して Ollama アプリケーションを使用する方法、あるいは パッケージ
llama-cpp-pythonを使用する方法です。Ollamaアプリの使用方法
Ollamaアプリは、LLMをローカルで実行するためのシンプルなソリューションを提供します。 使いやすく、CLI(コマンドラインインターフェース)により、セットアッププロセス全体、モデルの管理、および操作が非常に簡単に行えます。 手軽な試行錯誤に最適で、技術的な詳細をあまり扱いたくないユーザーにも適しています。
Ollama をインストールする
-
Ollama アプリをダウンロード
-
ダウンロードしたファイルをインストールしてください
-
インストール済みのOllamaアプリケーションを起動する
InfoデスクトップのメニューバーにOllamaのアイコンが表示されていれば、アプリケーションは正常に動作しています。 また、以下のページにアクセスして、サービスが実行中かどうか
http://localhost:11434/を確認することもできます。 -
ターミナルで「Ollama」を実行し、モデルの実行を開始してください。 例:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Hugging Face Hubとの連携機能を使用してOllamaを設定する
Ollamaと Hugging Face Hub の連携機能により、新しいモデルファイルを作成したり、GGUFファイルやsafetensorsファイルを手動でダウンロードしたりすることなく、 Hugging Face Hubでホストされているモデルを操作できるようになります。 Hugging Face Hub には、このモデル用のデフォルトの
templateおよびparamsファイルがすでに含まれています。-
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モデル、あるいは現在推奨hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUFされている他のGGUF公式hf.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 アプリケーションに読み込むことができます。
-
以下の内容を入力して
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 -
以下のコマンドを実行して、.
Modelfileに基づいてカスタムモデルインスタンスを作成します。ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-fileNoteOllamaがモデルファイルを読み込み、モデルインスタンスを初期化し、指定された仕様に基づいて設定を行うには、多少時間がかかる場合があります。
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- 現在読み込まれているモデルを一覧表示する
-
Ollama アプリケーションの代替として、 Python
llama.cpp向けのバインディングであるパッケージllama-cpp-pythonがあります。 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"]- インストール
ライブラリ
llama.cppを使用するもう一つの選択肢として、最小限の設定でCPU上でLLMの推論を実行
llama.cppできるオープンソースライブラリ「」を利用する方法があります。 モデルの実行を低レベルで制御することができ、通常はコマンドラインから実行され、ローカルのGGUFモデルファイルを指定します。お使いのマシンに
llama.cppインストールするには、いくつかの方法があります:- llama.cpp をbrew、nix、またはwinget を使ってインストールする
- Docker を使って実行: チーム
llama.cppによる Docker のドキュメントをご覧ください - リリースページからコンパイル済みのバイナリをダウンロードしてください
- このリポジトリをクローンして、ソースからビルドしてください
インストールが完了したら、次のようにして会話モードでGGUFモデルとやり取り
llama.cppすることができます:# 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-compatible APIサーバーを起動することもできます:
llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF拡張パラメーター
この
llama-cliプログラムでは、コマンドラインオプションを使用してモデル生成を制御できます。 たとえば、--system-p/--promptオプションを使用して、初期の「システム」プロンプトを設定することができます。 会話モード(-cnv)では、この最初のプロンプトがシステムメッセージとして機能します。 それ以外の場合は、プロンプトのテキストの先頭に任意の指示を付けるだけで済みます。 サンプリングパラメータ(例えば、temperature (--temp)、top-k (--top-k)、top-p (--top-p)、repetition penalty (--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 42Qiskitモデルの正常な動作を確保するため、当社の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 用のシステムプロンプト。
続行 (VS Code)
1. 拡張機能をインストールする
VS Codeを開き、「拡張機能」(
Cmd+Shift+X) へ移動して、 「Continue」 を検索し、インストールします。2. 設定ファイルを開く
サイドバーの「続行」アイコンをクリックし、次に歯車アイコンをクリックするか、コマンドパレット(
Cmd+Shift+P)を開いて 「続行:設定ファイルを開く」 を実行してください。これで開きます
~/.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でパラメータ化された回路を作成するにはどうすればよいですか?」)
-
インライン編集: コードのブロックを選択し、 (Mac) または
Ctrl+I( Linux /Windows) を押Cmd+Iしてください
-
Jupyter AI ( JupyterLab )
注: この手順は、Jupyter AI( v2.x )を対象としています。
1. Jupyter AI と Ollama プロバイダーをインストールする
pip install "jupyter-ai<3" langchain-ollamaこの
"jupyter-ai<3"ピンにより、 v2.x が確実に取得できます。 Jupyter AIがOllamaをプロバイダーとして検出するには、このlangchain-ollamaパッケージが必要です。 これがないと、Ollamaは設定パネルに表示されません。その後、 JupyterLab を再起動してください。
2. チャットモデルの設定
JupyterLab を開き、左側のサイドバーにあるチャットアイコンをクリックしてください。 設定パネルで:
- 「 言語モデル」 で、プロバイダーとして 「Ollama」 を選択します。
- モデル名として「Enter
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 Qiskit4. カスタムOllamaホスト(任意)
http://127.0.0.1:11434デフォルトでは、Jupyter AI は に接続します。 Ollamaサーバーが別のアドレスまたはポートで動作している場合は:チャットUIで: AI設定パネルの「Base API URL 」フィールドを設定します。
OpenCode (ターミナル)
1. 「 OpenCode 」をインストールする
curl -fsSL https://opencode.ai/install | bash2. 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を実行します:opencodeTUI内でコマンド
/modelsを実行し、リストから「 Qiskit Code Assistant 」を選択します。4. テストする
チャットで直接質問してください。例えば、「ベル回路を定義し、 QiskitRuntimeService" を使って実行してください」といった具合です
使用可能なモデル
現行モデル
以下は、 Qiskit Code Assistant での使用に推奨される最新のモデルです:
- Qiskit/mistral-small-3.2-24b-qiskit - 2025年10月発売
- Qiskit/Qwen2.5-Coder-14B-Qiskit - 2025年6月発売
- qiskit/granite-3.3-8b-qiskit - 2025年6月発売
- qiskit/granite-3.2-8b-qiskit - 2025年6月発売
GGUFモデル(個人用環境やノートパソコンでの使用におすすめ)
GGUF形式のモデルはローカルでの利用に最適化されており、必要な計算リソースが少なくて済みます:
-
mistral-small-3.2-24b-qiskit-GGUF – 2025年10月 リリース 。Qiskitのバージョン2.1
までのデータを用いて学習済み -
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – 2025
年6月リリース 。Qiskitのバージョン2.0までのデータを用いて学習済み -
qiskit/granite-3.3-8b-qiskit-GGUF – 2025年6月 リリース 。Qiskitのバージョン2.0
までのデータを用いて学習済み -
qiskit/granite-3.2-8b-qiskit-GGUF – 2025年6月 リリース 。Qiskitのバージョン2.0
までのデータを用いて学習済み
オープンソースの Qiskit Code Assistant モデルは、 Safetensorsは、機械学習モデルの重みとテンソルを安全かつ効率的に保存するために特別に設計されたファイル形式です。 または GGUFは、モデルの読み込みと保存を高速化するとともに、可読性を高めることを目的として設計されたバイナリ形式です。 で入手可能であり、後述するように Hugging Face からダウンロードできます。
トレーニングに使用したQiskitのバージョン
モデル | ベンチマーク指標 | リリース日 | Qiskitのバージョンでトレーニングを実施 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QiskitHumanEval-Hard | QiskitHumanEval | HumanEval | ASDiv | MathQA | SciQ | MBPP | IFEval | CrowsPairs (英語) | TruthfulQA ( MC1 アカウント) | |||
| 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 | 2026年1月 | 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 | 2025年6月 | 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 | 2025年6月 | 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 | 2025年6月 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | 2025年2月 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | 2024年11月 | 1.2 |
注:ベンチマーク表に記載されているすべてのモデルは、 Hugging Face モデルで定義されたそれぞれのシステムプロンプトを使用して評価されました。
非推奨のモデル
これらのモデルは現在、積極的なメンテナンスは行われていませんが、引き続き利用可能です:
- qiskit/granite-8b-qiskit-rc-0.10 - 2025年2月リリース(非推奨)
- qiskit/granite-8b-qiskit - 2024年11月リリース(非推奨)
詳細情報と引用文献
Qiskit HumanEval, または Qiskit HumanEval Hard ベンチマークの詳細について学び Qiskit Code Assistant、科学論文でそれらを引用するには、以下の推奨引用例を参照してください:
@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},
}