Edge Phase 1-5 実装報告
[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。
更新日時: 2026-04-09
概要: - Edge 実装プランのフェーズ 1-5 をローカルで再実行可能な形にまとめました。 - 実行パイプライン、代表サンプル生成、変換差分検証、実機ランブック生成、評価レポート生成まで実装済みです。 - Raspberry Pi / Android / iPhone の実機測定だけはハードウェア不在のため未実施ですが、実行手順と成果物受け皿は用意済みです。
実装した内容
- フェーズ 1: 準備
scripts/device/generate_rep_samples.pyを追加し、量子化用.npyサンプルを自動生成可能にしました。-
scripts/device/run_edge_phase_pipeline.py内で依存関係の有無を自動検査し、JSON に保存するようにしました。 -
フェーズ 2: ローカル PoC
scripts/device/run_edge_phase_pipeline.pyからedge_server.pyを起動し、mobile_client_sim.pyで 100 リクエストの遅延計測を自動化しました。-
ローカル実行では steady-state で約 1ms 台、cold-start を含む最大値は約 4.6 秒でした。
-
フェーズ 3: 変換と量子化検証
scripts/device/convert_torchscript.pyを修正し、eager / TorchScript / ONNX artifact を出力するようにしました。scripts/device/ios_convert_coreml.pyの破損していた実行フローを修正しました。scripts/device/android_convert_tflite.pyを eager / TorchScript artifact に対応させました。scripts/device/validate_converted_model.pyを追加し、eager と TorchScript の出力差分を L2 距離で比較できるようにしました。-
今回のローカル実行では TorchScript 差分は平均 0.0、最大 0.0 でした。
-
フェーズ 4: 実機検証準備
scripts/device/run_edge_phase_pipeline.pyからphase4_device_runbook.mdを自動生成し、Raspberry Pi / Android / iPhone の実行手順を固定化しました。-
実機の電力測定は外部 USB 電力計、Android Studio Profiler、Xcode Instruments を使う前提です。
-
フェーズ 5: 評価と意思決定
- ローカル実行結果から Markdown レポートを自動生成し、現時点の推奨判断を出すようにしました。
- 現在の判定は「SNN 特有の処理を含む本番モデルでは SDK on edge を第一候補、単純な dense 系モデルは変換も有力」です。
今回の実行結果
- 実行レポート:
bench_output/edge_phase_runs/20260409-130535/edge_phase1_5_report.md - 検証 JSON:
bench_output/edge_phase_runs/20260409-130535/phase3_validation.json - レイテンシ要約:
bench_output/edge_phase_runs/20260409-130535/phase2_latency_summary.json - 実機ランブック:
bench_output/edge_phase_runs/20260409-130535/phase4_device_runbook.md
主要数値
- 依存関係:
- 利用可能:
torch,requests,psutil,fastapi,uvicorn,zenoh - 未導入:
onnx,onnx_tf,tensorflow,coremltools - レイテンシ:
- 平均: 約 46.97 ms
- p50: 約 1.02 ms
- p95: 約 1.26 ms
- 最大: 約 4592.98 ms
- 変換差分:
- TorchScript L2 平均: 0.0
- TorchScript L2 最大: 0.0
未完了項目
- TFLite 実変換
- 理由:
onnx,onnx_tf,tensorflowが未導入 - CoreML 実変換
- 理由:
coremltoolsが未導入 - 実機電力測定
- 理由: ハードウェアと測定器がこの環境から利用できない
判断
- 現時点では SDK on edge を優先します。
- ただし、本番モデルが dense 系で構成され、TFLite / CoreML 変換後の差分と実機消費電力が許容範囲なら、Android / iPhone は変換デプロイに切り替える価値があります。
次の実施候補
onnx,onnx-tf,tensorflow,coremltoolsを導入して Phase 3 を完全実行する- 実機で
phase4_device_runbook.mdを実行し、電力・熱・長時間安定性データを取得する - 本番モデルで代表サンプルを作り、同じ検証パイプラインを再実行する