Skip to main content
IBM Quantum Platform

Qiskitコードアシスタント

Qiskit Code Assistant LLMは、Qiskitを新たに導入するユーザーにとって量子コンピューティングをより身近なものにし、既存のユーザーのコーディング体験を向上させることを目的としています。 このモデルは、 Qiskit SDK の何百万ものテキストトークン、長年にわたるQiskitのコード例、および IBM Quantum® の機能を用いて学習されています。 Qiskit Code Assistant IBM Granite やその他のオープンソースモデルに基づいてLLMが生成した提案を提供することで、量子開発ワークフローを支援します。これらのモデルには、 IBM® の最新機能が組み込まれています。

ノート

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 関連のモデルをダウンロードするには、以下の手順に従ってください:

    1. Hugging Face で、目的の Qiskit モデルのページに移動します。
    2. ファイルとバージョン 」タブに移動し、safetensors または GGUF モデルファイルをダウンロードしてください。
  • 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>
      
  • ダウンロードした Qiskit Code Assistant モデルを展開し、操作するには、いくつかの方法があります。 このガイドでは、 Ollama の使用方法を次のように紹介します。 Hugging Face Hub との連携機能やローカルモデルを利用して Ollama アプリケーションを使用する方法、あるいは パッケージ llama-cpp-python を使用する方法です。

    Ollamaアプリの使用方法

    Ollamaアプリは、LLMをローカルで実行するためのシンプルなソリューションを提供します。 使いやすく、CLI(コマンドラインインターフェース)により、セットアッププロセス全体、モデルの管理、および操作が非常に簡単に行えます。 手軽な試行錯誤に最適で、技術的な詳細をあまり扱いたくないユーザーにも適しています。

    Ollama をインストールする
    1. Ollama アプリをダウンロード

    2. ダウンロードしたファイルをインストールしてください

    3. インストール済みのOllamaアプリケーションを起動する

      Info

      デスクトップのメニューバーにOllamaのアイコンが表示されていれば、アプリケーションは正常に動作しています。 また、以下のページにアクセスして、サービスが実行中かどうか http://localhost:11434/を確認することもできます。

    4. ターミナルで「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 ファイルがすでに含まれています。

    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 モデル、あるいは現在推奨 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 アプリケーションに読み込むことができます。

    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
      
      Note

      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 - 現在読み込まれているモデルを一覧表示する
  • Ollama アプリケーションの代替として、 Pythonllama.cpp 向けのバインディングであるパッケージ 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 を使用する

    もう一つの選択肢として、最小限の設定でCPU上でLLMの推論を実行 llama.cppできるオープンソースライブラリ「」を利用する方法があります。 モデルの実行を低レベルで制御することができ、通常はコマンドラインから実行され、ローカルのGGUFモデルファイルを指定します。

    お使いのマシンに llama.cpp インストールするには、いくつかの方法があります:

    インストールが完了したら、次のようにして会話モードで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 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 用のシステムプロンプト。

  • 続行 (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 を開き、左側のサイドバーにあるチャットアイコンをクリックしてください。 設定パネルで:

    1. 言語モデル」 で、プロバイダーとして 「Ollama」 を選択します。
    2. モデル名として「Enter 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ホスト(任意)

    http://127.0.0.1:11434デフォルトでは、Jupyter AI は に接続します。 Ollamaサーバーが別のアドレスまたはポートで動作している場合は:

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

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

    チャットで直接質問してください。例えば、「ベル回路を定義し、 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-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のバージョン

モデル
 
 
 
 
 
ベンチマーク指標
 
 
 
 
リリース日
Qiskitのバージョンでトレーニングを実施
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (英語)TruthfulQA ( MC1 アカウント)  
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.762025年2月1.3
granite-8b-qiskit17.8844.3753.662024年11月1.2

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

非推奨のモデル

これらのモデルは現在、積極的なメンテナンスは行われていませんが、引き続き利用可能です:

  1. qiskit/granite-8b-qiskit-rc-0.10 - 2025年2月リリース(非推奨)
  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},
}
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。