コンテンツにスキップ

Edge Phase 1-5 実装報告

[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。

更新日時: 2026-04-09

概要: - Edge 実装プランのフェーズ 1-5 をローカルで再実行可能な形にまとめました。 - 実行パイプライン、代表サンプル生成、変換差分検証、実機ランブック生成、評価レポート生成まで実装済みです。 - Raspberry Pi / Android / iPhone の実機測定だけはハードウェア不在のため未実施ですが、実行手順と成果物受け皿は用意済みです。

実装した内容

  1. フェーズ 1: 準備
  2. scripts/device/generate_rep_samples.py を追加し、量子化用 .npy サンプルを自動生成可能にしました。
  3. scripts/device/run_edge_phase_pipeline.py 内で依存関係の有無を自動検査し、JSON に保存するようにしました。

  4. フェーズ 2: ローカル PoC

  5. scripts/device/run_edge_phase_pipeline.py から edge_server.py を起動し、mobile_client_sim.py で 100 リクエストの遅延計測を自動化しました。
  6. ローカル実行では steady-state で約 1ms 台、cold-start を含む最大値は約 4.6 秒でした。

  7. フェーズ 3: 変換と量子化検証

  8. scripts/device/convert_torchscript.py を修正し、eager / TorchScript / ONNX artifact を出力するようにしました。
  9. scripts/device/ios_convert_coreml.py の破損していた実行フローを修正しました。
  10. scripts/device/android_convert_tflite.py を eager / TorchScript artifact に対応させました。
  11. scripts/device/validate_converted_model.py を追加し、eager と TorchScript の出力差分を L2 距離で比較できるようにしました。
  12. 今回のローカル実行では TorchScript 差分は平均 0.0、最大 0.0 でした。

  13. フェーズ 4: 実機検証準備

  14. scripts/device/run_edge_phase_pipeline.py から phase4_device_runbook.md を自動生成し、Raspberry Pi / Android / iPhone の実行手順を固定化しました。
  15. 実機の電力測定は外部 USB 電力計、Android Studio Profiler、Xcode Instruments を使う前提です。

  16. フェーズ 5: 評価と意思決定

  17. ローカル実行結果から Markdown レポートを自動生成し、現時点の推奨判断を出すようにしました。
  18. 現在の判定は「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 は変換デプロイに切り替える価値があります。

次の実施候補

  1. onnx, onnx-tf, tensorflow, coremltools を導入して Phase 3 を完全実行する
  2. 実機で phase4_device_runbook.md を実行し、電力・熱・長時間安定性データを取得する
  3. 本番モデルで代表サンプルを作り、同じ検証パイプラインを再実行する