---
title: AImeetup発表スライド
tags: 
author: [gyu-don](https://convert.docswell.com/user/gyu-don)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJ895X3ZED.jpg?width=480
description: このプロジェクトでの取り組みをプレゼンテーションしたいです。  qiskitや量子コンピュータを知らない人を相手にプレゼンします。Claude Codeのノウハウ共有会です。 ほとんどこれはClaude Codeでコーディングしました。はじめに、既にOSSになっているClientライブラリのレポジトリの上にプロトタイプを作って 、このプロジェクトにはプロトタイプも渡しましたが、あんまり参照してくれませんでした。  ドキュメントやgitの履歴をもとに、素敵なプレゼンスライドをHTMLで書いてください。ultrathink
published: December 22, 25
canonical: https://convert.docswell.com/s/gyu-don/ZX684G-2025-12-22-205929
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJ895X3ZED.jpg)

Claude Codeで
量子コンピュータシミュレ
ーション
サーバーを開発した話
Claude Codeノウハウ共有会
2025年


# Page. 2

![Page Image](https://bcdn.docswell.com/page/LJLWY8V17R.jpg)

プロジェクト概要
Qiskit Runtime Server
IBM Qiskit Runtime互換の
セルフホスト型REST APIサーバー
CPU/GPU対応のマルチエグゼキュータ
59種類の仮想量子バックエンド
完全なAPI互換性
ローカル開発環境での量子アルゴリズム実験


# Page. 3

![Page Image](https://bcdn.docswell.com/page/47M9N6G5JW.jpg)

量子コンピュータとは？
通常のコンピュータ
ビット（0 or 1）で計算
順番に処理
量子コンピュータ
量子ビット（0 かつ 1の重ね合わせ）
並列に大量の計算を同時実行
特定の問題で圧倒的に高速


# Page. 4

![Page Image](https://bcdn.docswell.com/page/P7RGDPZZJ9.jpg)

Qiskitとは？
IBMが提供する量子コンピューティングフレームワーク
from qiskit import QuantumCircuit
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2
量子回路を作成
#
circuit = QuantumCircuit(2)
circuit.h(0)
#
circuit.cx(0, 1) #
circuit.measure_all()
重ね合わせ状態を作る
量子もつれを作る
の実機またはシミュレータで実行
# IBM Cloud
service = QiskitRuntimeService(channel=&quot;ibm_cloud&quot;)
backend = service.backend(&quot;ibm_brisbane&quot;)
sampler = SamplerV2(mode=backend)
job = sampler.run([circuit])
result = job.result()


# Page. 5

![Page Image](https://bcdn.docswell.com/page/PJXX1391JX.jpg)

なぜ作ったのか？
課題1: IBM Cloudへの依存
開発にインターネット接続が必須
課題2: GPU加速が使えない
大規模シミュレーションが遅い
課題3: テスト環境の制約
CI/CDパイプラインで使いづらい
→ ローカルで動く互換サーバーを作ろう！


# Page. 6

![Page Image](https://bcdn.docswell.com/page/3JKW2YPMJD.jpg)

Claude Codeとの開発の旅
12日
開発期間
コミット数
1,904
2,386
ソースコード行数
55
テストコード行数
2025年12月5日 〜 12月16日


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LE3149X275.jpg)

開発の流れ
2025-12-05
Phase 1: 設計ドキュメント作成
アーキテクチャ設計、API仕様策定
2025-12-05〜06
Phase 2: コア実装
Executor、JobManager、FastAPI統合
2025-12-08〜09
Phase 3: セッション管理
SessionManager、統合テスト
2025-12-14〜16


# Page. 8

![Page Image](https://bcdn.docswell.com/page/8EDXQG26JG.jpg)

プロトタイプとの関係
最初にクライアントライブラリの上に
プロトタイプを作成
既存のOSSライブラリを拡張
動作確認とAPI理解が目的
しかし...
Claude Codeにプロトタイプコードを渡したが
ほとんど参照されず、ゼロから設計・実装
→ 結果的にクリーンなアーキテクチャに！


# Page. 9

![Page Image](https://bcdn.docswell.com/page/V7PPL3LZ78.jpg)

アーキテクチャのハイライト
仮想バックエンドシステム
メタデータと実行エンジンの分離
&lt;metadata&gt;@&lt;executor&gt;
型5量子ビット × CPU
型5量子ビット × GPU
59種類のメタデータ × N個のエグゼキュータ
= 59N個の仮想バックエンド
fake_manila@aer
fake_manila@custatevec
← Manila
← Manila
メタデータ: トポロジー、ノイズパラメータ
エグゼキュータ: CPU/GPU実行エンジン


# Page. 10

![Page Image](https://bcdn.docswell.com/page/2JV2Q4QMJQ.jpg)

システムアーキテクチャ
┌─────────────────────────────────────┐
│
QiskitRuntimeService (Client)
│
└──────────────┬──────────────────────┘
│ HTTP/REST
▼
┌─────────────────────────────────────┐
│
FastAPI REST API Server
│
├──────────────┬──────────────────────┤
│ Backend
│
JobManager
│
│ Metadata
│
│
│
│ Provider
│
▼
│
│
│
┌──────────────┐
│
│
│
│ Executors
│
│
│
│
├──────────────┤
│
│
│
│ Aer (CPU)
│
│
│
│
│ CuStateVec
│
│
│
│
│ (GPU)
│
│
│
│
└──────────────┘
│
└─────────────────────────────────────┘
FastAPI: 高速、型安全、自動ドキュメント生成
Executor抽象化: プラグイン可能な実行エンジン
依存性注入: テスタブルで拡張可能


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5EGRW1WXJL.jpg)

技術スタック
フレームワーク
量子コンピューティング
開発ツール
CI/CD
FastAPI (REST API)
Pydantic v2 (バリデーション)
uvicorn (ASGIサーバー)
uv (パッケージ管理)
ruff (リント/フォーマット)
mypy --strict (型チェック)
qiskit-aer (CPUシミュレータ)
cuQuantum (GPUシミュレー
タ)
qiskit-ibm-runtime (クライア
ント)
GitHub Actions
pre-commit hooks
自動リリース


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JQV3D357P.jpg)

Claude Code活用のノウハウ
1. CLAUDE.mdの威力
💡プロジェクト構造、コーディング規約を明記
💡Python 3.12+の型ヒント規約を強制
💡開発コマンド、よくある問題の解決法
# Type Annotations
**This project targets Python 3.12+**
- `list[str]` instead of `List[str]`
- `dict[str, int]` instead of `Dict[str, int]`
- `int | None` instead of `Optional[int]`
Only import from `typing` for special types


# Page. 13

![Page Image](https://bcdn.docswell.com/page/K74M1Z1VJ1.jpg)

Claude Code活用のノウハウ
2. 詳細なドキュメント作成
💡ARCHITECTURE.md - システム設計
💡API_SPECIFICATION.md - API仕様
💡DESIGN_DECISIONS.md - 設計判断の記録
💡BACKEND_EXECUTOR_CONFIG.md - 設定ガイド
→ Claude Codeが文脈を理解し、一貫性のある実装を生成


# Page. 14

![Page Image](https://bcdn.docswell.com/page/LJ18GRG4EG.jpg)

Claude Code活用のノウハウ
3. pre-commitフックで品質保証
repos:
- repo: local
hooks:
- id: ruff-format
name: ruff format
entry: uv run ruff format
- id: ruff-check
name: ruff check
entry: uv run ruff check --fix
- id: mypy
name: mypy
entry: uv run mypy src --strict
→ Claudeが生成したコードも自動で品質チェック


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJWZK1KZJ2.jpg)

Claude Code活用のノウハウ
4. テストファーストの徹底
💡テストコード2,386行 &gt; ソースコード1,904行
💡統合テストでAPI互換性を保証
💡pytest + FastAPI TestClient
125%
テストコード比率


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EZ1ZPZL73.jpg)

Claude Code活用のノウハウ
5. Pull Requestベースの開発
💡Claude Codeが自動でPR作成
💡明確な変更履歴
💡レビュー可能な単位で実装
例: claude/implement-sessionmanager-01HVFk...
→ 機能ごとにブランチが切られ、PRでマージ


# Page. 17

![Page Image](https://bcdn.docswell.com/page/Y76LZMZMJV.jpg)

学んだこと
✓ プロトタイプは無駄じゃない
自分の理解が深まり、要件が明確になる
✓ ドキュメントが鍵
詳細なドキュメント = 高品質な実装
✓ Claude Codeは設計パートナー
単なるコード生成ツールではなく、
アーキテクチャを一緒に考える相棒
✓ 品質はツールで担保
型チェック、リント、テストを自動化


# Page. 18

![Page Image](https://bcdn.docswell.com/page/G751WZWQE4.jpg)

ハマったポイント
1. プロトタイプの扱い
Claudeに渡したが参照されず
→ 要点を抽出してドキュメント化が必要
2. QPYバージョン互換性
量子回路のシリアライズ形式の違い
→ バージョンパッチで解決
3. GPU環境のセットアップ
cuQuantum + CUDA 12.xの組み合わせ
→ Dockerコンテナで環境統一


# Page. 19

![Page Image](https://bcdn.docswell.com/page/9J21QRQW7R.jpg)

使い方デモ
サーバー起動
サーバー起動
#
uv run uvicorn app:app --host 0.0.0.0 --port 8000
クライアント
from local_service_helper import local_service_connection
from qiskit_ibm_runtime import SamplerV2
with local_service_connection(&quot;http://localhost:8000&quot;) as service:
# CPU
backend_cpu = service.backend(&quot;fake_manila@aer&quot;)
実行
実行
# GPU
backend_gpu = service.backend(&quot;fake_manila@custatevec&quot;)
sampler = SamplerV2(mode=backend_cpu)
result = sampler.run([circuit]).result()


# Page. 20

![Page Image](https://bcdn.docswell.com/page/DEYZWDW97M.jpg)

今後の展望
💡より多くのバックエンドメタデータ対応
💡分散実行のサポート
💡永続化ストレージ対応（現在はインメモリ）
💡WebUIの追加
💡カスタムエグゼキュータの例を増やす
github.com/gyu-don/qiskit-runtime-server


# Page. 21

![Page Image](https://bcdn.docswell.com/page/VJN3969DJ8.jpg)

まとめ
開発期間
12日
💡Claude Codeは強力な開発パートナー
💡ドキュメントが成功の鍵
💡自動化で品質を担保
💡プロトタイプで理解を深める
完全なAPI実装
✓


# Page. 22

![Page Image](https://bcdn.docswell.com/page/YE992L28E3.jpg)

ありがとうございました
質問・ディスカッション
Repository: github.com/gyu-don/qiskit-runtime-server


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GE895X5Z7D.jpg)

Appendix: 開発履歴
2025-12-05
2025-12-05
2025-12-05
2025-12-06
2025-12-06
2025-12-08
2025-12-08
2025-12-14
2025-12-16
2025-12-16
設計ドキュメント作成
Executor実装（Aer、cuStateVec）
Backend Metadata Provider実装
Job Manager実装
FastAPIアプリケーション統合
SessionManager実装
統合テスト追加
GPU Executor (cuStateVec) 実装
Python 3.11対応
CI/CD改善


# Page. 24

![Page Image](https://bcdn.docswell.com/page/LELWY8Y1JR.jpg)

Appendix: コード統計
1,904
2,386
ソースコード (src/)
テストコード (tests/)
59
100%
仮想バックエンド種類
API互換性


