Open1

Module-LLMでのStackFlow llm-llmについて

nnn112358nnn112358

LLMモジュール詳細仕様書

概要

LLMモジュールは、大規模言語モデル(Large Language Model)を利用したテキスト生成システムです。TCP/IP通信を介してJSONベースのプロトコルを採用し、ストリーミング形式での応答に対応しています。複数の言語モデルをサポートし、柔軟な設定オプションを提供します。

システム要件

通信仕様

  • プロトコル:TCP/IP
  • デフォルトホスト名:m5stack-LLM.local
  • デフォルトポート:10001
  • データフォーマット:UTF-8エンコードされたJSON
  • 通信方式:ストリーミング対応の双方向通信

サポートモデル

本システムは以下の言語モデルをサポートしています:

  1. Qwenシリーズ

    • qwen2.5-0.5B-prefill-20e
    • qwen2.5-1.5B-ax630c
  2. Llamaシリーズ

    • llama3.2-1B-prefill-ax630c
    • openbuddy-llama3.2-1B-ax630c

通信プロトコル仕様

セッション初期化

初期化リクエスト形式:

{
    "request_id": "llm_001",
    "work_id": "llm",
    "action": "setup",
    "object": "llm.setup",
    "data": {
        "model": "<モデル名>",
        "response_format": "llm.utf-8.stream",
        "input": "llm.utf-8.stream",
        "enoutput": true,
        "max_token_len": 1023,
        "prompt": "<システムプロンプト>"
    }
}

設定可能なパラメータ:

  • model:使用する言語モデルの指定
  • response_format:応答フォーマット(ストリーミング形式推奨)
  • input:入力フォーマット
  • max_token_len:最大トークン長(1〜1023の範囲)
  • prompt:システムプロンプト(モデルの初期設定)

推論リクエスト

テキスト生成リクエスト形式:

{
    "request_id": "llm_001",
    "work_id": "<セッションID>",
    "action": "inference",
    "object": "llm.utf-8.stream",
    "data": {
        "delta": "<入力テキスト>",
        "index": 0,
        "finish": true
    }
}

ストリーミング応答

応答データ形式:

{
    "created": "<タイムスタンプ>",
    "data": {
        "delta": "<生成テキスト断片>",
        "finish": false,
        "index": 0
    },
    "error": {
        "code": 0,
        "message": ""
    },
    "object": "llm.utf-8.stream",
    "request_id": "<リクエストID>",
    "work_id": "<セッションID>"
}

セッション終了

終了リクエスト形式:

{
    "request_id": "llm_exit",
    "work_id": "<セッションID>",
    "action": "exit"
}

モデル特性

Qwen 2.5シリーズ

  1. qwen2.5-0.5B-prefill-20e

    • サイズ:0.5Bパラメータ
    • 特徴:軽量かつ高速な応答
    • 用途:一般的な対話や短文生成
  2. qwen2.5-1.5B-ax630c

    • サイズ:1.5Bパラメータ
    • 特徴:より高度な文脈理解と生成能力
    • 用途:複雑な対話や長文生成

Llama 3.2シリーズ

  1. llama3.2-1B-prefill-ax630c

    • サイズ:1Bパラメータ
    • 特徴:バランスの取れた性能
    • 用途:汎用的な対話システム
  2. openbuddy-llama3.2-1B-ax630c

    • サイズ:1Bパラメータ
    • 特徴:対話に最適化された応答
    • 用途:自然な会話システム

システム動作仕様

初期化プロセス

  1. TCP接続の確立
  2. モデルの初期化リクエスト送信
  3. セッションIDの取得と保持
  4. システムプロンプトの適用

推論プロセス

  1. ユーザー入力の受信と処理
  2. ストリーミング形式での逐次応答
  3. 応答完了の確認(finish: true)
  4. エラー処理とリカバリ

性能特性

  • 最大トークン長:1023トークン
  • ストリーミング遅延:モデルサイズにより可変
  • メモリ使用量:モデルサイズに依存
  • 同時接続処理:シングルセッション推奨

エラー処理

システムは以下のエラー状況に対応しています:

  1. 通信エラー

    • 接続エラー
    • タイムアウト
    • データ形式エラー
  2. モデルエラー

    • 初期化エラー
    • 推論エラー
    • リソース不足
  3. セッション管理

    • セッションタイムアウト
    • 不正なセッションID
    • リソース解放エラー