最終更新:2025-01-17 (金) 15:52:23 (22d)  

llm-openbuddy-llama3.2-1B-ax630c_0.2-m5stack1_arm64.deb
Top / llm-openbuddy-llama3.2-1B-ax630c_0.2-m5stack1_arm64.deb

1.40GB

使い方

  • 基本はパッケージ入れてArduino側からモデル指定して呼び出すだけ

Module LLM/ファームウェア

パッケージのインストール

  • adb pushなりで本体に転送、インストール
    • dpkg -i llm-openbuddy-llama3.2-1B-ax630c_0.2-m5stack1_arm64.deb
  • Module LLMを再起動

Arduinoからの呼び出し

参考:日本語表示&シリアル入力で返答するサンプル

メモ

トークナイザ

  • 何故かROM内(パッケージ外)にトークナイザが2箇所に存在。StackFlowからはscriptsのほう(古い方)が呼ばれている
    • shareのほうがhello worldがコメントされていて新しい (動作に差はない)
    rw-rw-r-- 1 root root 4497 Dec  3  2024 /opt/m5stack/scripts/openbuddy-llama3.2-1B-ax630c_tokenizer.py
    rw-rw-r-- 1 root root 4501 Dec  4  2024 /opt/m5stack/share/openbuddy-llama3.2-1B-ax630c_tokenizer.py

うまく起動しない時

  • 下記でllm_llmのログを出すと何かわかるかも
    cd /opt/m5stack && systemctl stop llm-llm && bin/llm_llm

エラー例: nullしか返ってこない

M5ModuleLLM (Arduinoのライブラリの修正)

  • https://github.com/m5stack/M5Module-LLM/blob/main/src/api/api_llm.cpp#L50
  • ApiLlm?::setupの中でやっている_module_msg->sendCmdAndWaitToTakeMsg?のタイムアウトが10秒になっていて、llm.setup時にllm_work_idを取得するのにタイムアウトしてしまっているため、タイムアウト時間を延ばす
        _module_msg->sendCmdAndWaitToTakeMsg(
            cmd.c_str(), request_id,
            [&llm_work_id](ResponseMsg_t& msg) {
                // Copy work id
                llm_work_id = msg.work_id;
            },
    -        10000);
    +        60000);
  • 書き換えるファイルの場所
    • %USERPROFILE%\Documents\Arduino\libraries\M5ModuleLLM\src\api\api_llm.cpp

エラー例: サービスのリセット時に8080ポートの開放に失敗してポートが利用中になってトークナイザの起動に失敗

  • llm_llmを再起動したりして何度か試す
  • なんかエラーになっても残ってるほうが応答して動いてるっぽい・・?

中身

  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/hashes.txt?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l0_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l10_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l11_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l12_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l13_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l14_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l15_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l1_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l2_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l3_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l4_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l5_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l6_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l7_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l8_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_p128_l9_together.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/llama_post.axmodel?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/mode_openbuddy-llama3.2-1b-ax630c.json?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/model.embed_tokens.weight.bfloat16.bin?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer/config.json
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer/generation_config.json?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer/special_tokens_map.json?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer/tokenizer.json?
  • Module LLM/Ubuntu/opt/m5stack/data/openbuddy-llama3.2-1B-ax630c/tokenizer/tokenizer_config.json?

関連