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.pyのclean_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 表示やログ記録に利用できます。