メインコンテンツへスキップ
このプロジェクトはベータ版です。バグを見つけましたか?GitHub Issueを開く。質問やアイデアがありますか?Discussionsで質問する — フィードバックをお待ちしています!
このページの翻訳品質はいかがですか?

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のいずれかのモデルをローカルマシンにインストール、設定、および使用する方法を学びます。

Hugging Faceウェブサイトからダウンロード

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

  1. Hugging Face上の目的のQiskitモデルページに移動します。

  2. Files and Versions タブに進み、safetensorsまたはGGUFモデルファイルをダウンロードします。

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>
Ollamaを使用してQiskit Code Assistantモデルをローカルで手動デプロイする

ダウンロードした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上でホストされているモデルを操作する方法を提供します。モデルの 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 を使用できます。

手動でダウンロードした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 - 現在ロードされているモデルを一覧表示

llama-cpp-pythonパッケージを使用してQiskit Code Assistantモデルをローカルで手動デプロイする

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"]

llama.cppを使用してQiskit Code Assistantモデルをローカルで手動デプロイする

llama.cppライブラリを使用する​

もう1つの代替案は、最小限のセットアップでCPU上でLLM推論を実行するためのオープンソースライブラリであるllama.cppを使用することです。 モデル実行の低レベル制御を提供し、通常はローカルの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を開き、拡張機能(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. 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. 言語モデルの下で、プロバイダーとして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」フィールドを設定します。

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​

チャットで直接質問をします。例えば:「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モデル(個人環境・ラップトップに推奨)​

GGUF形式のモデルはローカルでの使用に最適化されており、必要な計算リソースが少なくて済みます。

  1. mistral-small-3.2-24b-qiskit-GGUF – 2025年10月にリリース

    バージョン2.1までのQiskitデータでトレーニング

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – 2025年6月にリリース

    バージョン2.0までのQiskitデータでトレーニング

  3. qiskit/granite-3.3-8b-qiskit-GGUF – 2025年6月にリリース

    バージョン2.0までのQiskitデータでトレーニング

  4. qiskit/granite-3.2-8b-qiskit-GGUF – 2025年6月にリリース

    バージョン2.0までのQiskitデータでトレーニング

オープンソースのQiskit Code Assistantモデルは、safetensorsまたはGGUFファイル形式で利用可能であり、以下で説明するとおり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.412026年1月2.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.822025年6月2.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.052025年6月2.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.512025年6月2.0
granite-8b-qiskit-rc-0.1015.8938.4159.76———————2025年2月1.3
granite-8b-qiskit17.8844.3753.66———————2024年11月1.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},
}