SWITCH TO EVOSPIKENET LM

EvoSpikeNet LM 移行ガイド

  • 目的: 外部 LLM ではなくローカルの SpikingEvo* 系モデルで推論・学習・進化学習を行う手順。

  • 推論

  • API: 新しく追加された /lm/generate エンドポイントを利用してください。
  • 入力 JSON: { "prompt": "...", "max_new_tokens": 64, "temperature": 1.0, "task_type": "text"}
  • 例: curl -X POST -H "Content-Type: application/json" -d '{"prompt":"こんにちは"}' http://localhost:8000/lm/generate

  • 学習

  • 簡易トレーニングスクリプト: tools/train_spiking_lm.py を提供しています。
  • 実運用では分散学習、チェックポイント、学習率スケジュール等を追加してください。

  • モデル管理

  • AutoModelSelector を通じてモデルのロード/初期化を行います。
  • トレーニング済みの重みは標準の torch.save/torch.load で管理してください。

  • 進化学習 (Evolving)

  • 進化学習ループは学習スクリプトのラッパーとして実装できます(突然変異、交叉、評価関数、世代管理)。
  • 将来的には tools/train_spiking_lm.py を拡張して --evolve フラグで世代管理を追加することを推奨します。

  • 注意点

  • PyTorch / NumPy / OpenMP に起因する環境差異があるため、コンテナ化を推奨します。
  • evospikenet/model_selector.py を使えば自動で最適デバイス(cuda/mps/cpu)を選択します。

API: /process の LM 要約について

  • POST /process は同期処理で映像と音声を受け取り、既存の timeline / summary / counts に加えて以下のフィールドを返します:
  • lm_summary: EvoSpikeNet 内部 LM が生成した短い日本語要約(例: "人が5回移動、音声イベント検出")。空の場合は空文字列。
  • lm_backend: 使用した LM バックエンド名(通常は evospikenet_lm)。

  • LM 要約はデフォルトで有効です。無効化するには環境変数 VIDEO_ANALYSIS_ENABLE_LM=0 を設定してください。

  • LM 要約はポストプロセッサで簡易クリーン(evospikenet/video_analysis/postprocess.pyclean_lm_text)が行われます。必要に応じて本処理を拡張してください。

例(curl):

curl -X POST -H "Content-Type: application/json" -d '{"frames_path":"./data/frames.npy","audio_path":"./data/audio.npy"}' http://localhost:8000/process

レスポンスには lm_summary が含まれ、API のクライアントはこれを UI 表示やログ記録に利用できます。