最終更新: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からの呼び出し
https://github.com/m5stack/M5Module-LLM/blob/main/examples/TextAssistant/TextAssistant.ino
- を参考にモデルを指定
m5_module_llm::ApiLlmSetupConfig_t config; config.prompt = "あなたの名前はスタックチャンで、スーパーカワイイロボットです。全力でかわいい会話をしてください。"; config.model = "openbuddy-llama3.2-1B-ax630c";
参考:日本語表示&シリアル入力で返答するサンプル
メモ
トークナイザ
- 何故か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しか返ってこない
- トークナイザの起動が間に合ってない可能性があるのでllm_llmを再起動したりM5Stackの方をリセットしたりして何度か試す
- ↓
https://x.com/hammmm/status/1875071158506422768
- によるとArduinoのライブラリ (M5Module-LLM)の方のタイムアウトを修正すればいいらしい
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
- 下記で修正されたけどM5ModuleLLM 1.3では未反映 (2025/01/17)
エラー例: サービスのリセット時に8080ポートの開放に失敗してポートが利用中になってトークナイザの起動に失敗
- llm_llmを再起動したりして何度か試す
- なんかエラーになっても残ってるほうが応答して動いてるっぽい・・?
中身
- Module LLM/Ubuntu/opt/m5stack/data
- Module LLM/Ubuntu/opt/m5stack/data/models
- Module LLM/Ubuntu/opt/m5stack/data/models/mode_openbuddy-llama3.2-1B-ax630c.json
- 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?