生成されたdebパッケージをインストールする。

root@m5stack-LLM:/mnt/sdcard/tinyswallow-deb# dpkg -i llm-model-tinyswallow-1.5b-ax630c_1.0.0_arm64.deb
Selecting previously unselected package llm-model-tinyswallow-1.5b-ax630c.
(Reading database ... 47062 files and directories currently installed.)
Preparing to unpack llm-model-tinyswallow-1.5b-ax630c_1.0.0_arm64.deb ...
Unpacking llm-model-tinyswallow-1.5b-ax630c (1.0.0) ...
Setting up llm-model-tinyswallow-1.5b-ax630c (1.0.0) ...
root@m5stack-LLM:/mnt/sdcard/tinyswallow-deb# dpkg -L llm-model-tinyswallow-1.5b-ax630c
/.
/opt
/opt/m5stack
/opt/m5stack/data
/opt/m5stack/data/models
/opt/m5stack/data/models/mode_tinyswallow-1.5b-ax630c.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c
/opt/m5stack/data/tinyswallow-1.5b-ax630c/model.embed_tokens.weight.bfloat16.bin
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l0_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l10_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l11_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l12_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l13_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l14_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l15_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l16_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l17_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l18_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l19_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l1_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l20_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l21_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l22_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l23_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l24_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l25_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l26_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l27_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l2_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l3_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l4_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l5_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l6_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l7_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l8_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l9_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_post.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/added_tokens.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/generation_config.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/special_tokens_map.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/tokenizer.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/tokenizer_config.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/vocab.json
/opt/m5stack/scripts
/opt/m5stack/scripts/.cache
/opt/m5stack/scripts/.cache/huggingface
/opt/m5stack/scripts/.cache/huggingface/.gitignore
/opt/m5stack/scripts/.cache/huggingface/download
/opt/m5stack/scripts/.cache/huggingface/download/TinySwallow-1.5B-Instruct-ax630c
/opt/m5stack/scripts/.cache/huggingface/download/TinySwallow-1.5B-Instruct-ax630c/tinyswallow_tokenizer.py.lock
/opt/m5stack/scripts/TinySwallow-1.5B-Instruct-ax630c
/opt/m5stack/scripts/tokenizer_tinyswallow-1.5b-ax630c.py
なんかいらんファイルまで含まれているな... /opt/m5stack/scripts/.cacheとかゴミだな。
root@m5stack-LLM:/mnt/sdcard# rm -rf tinyswallow-deb/work/opt/m5stack/scripts/.cache
root@m5stack-LLM:/mnt/sdcard# rm -rf tinyswallow-deb/work/opt/m5stack/scripts/TinySwallow-1.5B-Instruct-ax630c
再ビルド、インストール済みパッケージ削除、再インストール。
root@m5stack-LLM:/mnt/sdcard# dpkg-deb -Znone --build /mnt/sdcard/tinyswallow-deb/work /mnt/sdcard/tinyswallow-deb/
dpkg-deb: building package 'llm-model-tinyswallow-1.5b-ax630c' in '/mnt/sdcard/tinyswallow-deb//llm-model-tinyswallow-1.5b-ax630c_1.0.0_arm64.deb'.
root@m5stack-LLM:/mnt/sdcard# apt remove --purge llm-model-tinyswallow-1.5b-ax630c
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
llm-model-tinyswallow-1.5b-ax630c*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 47109 files and directories currently installed.)
Removing llm-model-tinyswallow-1.5b-ax630c (1.0.0) ...
root@m5stack-LLM:/mnt/sdcard# dpkg -i tinyswallow-deb//llm-model-tinyswallow-1.5b-ax630c_1.0.0_arm64.deb
Selecting previously unselected package llm-model-tinyswallow-1.5b-ax630c.
(Reading database ... 47062 files and directories currently installed.)
Preparing to unpack .../llm-model-tinyswallow-1.5b-ax630c_1.0.0_arm64.deb ...
Unpacking llm-model-tinyswallow-1.5b-ax630c (1.0.0) ...
Setting up llm-model-tinyswallow-1.5b-ax630c (1.0.0) ...
ゴミは消えた。
root@m5stack-LLM:/mnt/sdcard# dpkg -L llm-model-tinyswallow-1.5b-ax630c
/.
/opt
/opt/m5stack
/opt/m5stack/data
/opt/m5stack/data/models
/opt/m5stack/data/models/mode_tinyswallow-1.5b-ax630c.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c
/opt/m5stack/data/tinyswallow-1.5b-ax630c/model.embed_tokens.weight.bfloat16.bin
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l0_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l10_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l11_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l12_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l13_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l14_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l15_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l16_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l17_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l18_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l19_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l1_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l20_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l21_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l22_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l23_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l24_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l25_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l26_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l27_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l2_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l3_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l4_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l5_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l6_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l7_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l8_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_p128_l9_together.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/qwen2_post.axmodel
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/added_tokens.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/generation_config.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/special_tokens_map.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/tokenizer.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/tokenizer_config.json
/opt/m5stack/data/tinyswallow-1.5b-ax630c/tokenizer/vocab.json
/opt/m5stack/scripts
/opt/m5stack/scripts/tokenizer_tinyswallow-1.5b-ax630c.py
とりあえず、使ってみる。
root@m5stack-LLM:/mnt/sdcard/tinyswallow-deb# telnet localhost 10001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{"request_id":"sys_reset","work_id":"sys","action":"reset","object":"sys.reset"}
{"created":1759135603,"data":"None","error":{"code":0,"message":"llm server restarting ..."},"object":"None","request_id":"sys_reset","work_id":"sys"}
Connection closed by foreign host.
root@m5stack-LLM:/mnt/sdcard# telnet localhost 10001
{"request_id": "audio_setup",
"work_id": "audio","action": "setup","object": "audio.setup",
"data": {"capcard": 0,"capdevice": 0,"capVolume": 0.8,
"playcard": 0,"playdevice": 1,"playVolume": 0.8}}
{"request_id":"kws_setup",
"work_id": "kws","action":"setup","object":"kws.setup",
"data":{
"model":"sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01",
"response_format":"kws.bool","enoutput":true,
"kws":"ECHO","input":["sys.pcm"]}}
{"request_id":"vad_setup",
"work_id":"vad", "action":"setup","object":"vad.setup",
"data":{"model":"silero-vad","response_format":"vad.bool",
"enoutput":true,"input":["sys.pcm","kws.1001"]}}
{"request_id":"whisper_setup","work_id":"whisper",
"action":"setup","object":"whisper.setup",
"data":{"model":"whisper-tiny","response_format":"asr.utf-8","language":"ja",
"enoutput":true,"input":["sys.pcm","kws.1001","vad.1002"]}}
{"request_id":"llm_setup", "work_id":"llm", "action":"setup", "object":"llm.setup", "data":{"model":"tinyswallow-1.5b-ax630c", "language":"ja", "response_format":"llm.utf-8.stream", "enoutput":true, "enkws":true, "max_token_len":256, "prompt":"Respond in Japanese only, keep a fun tone, and be as concise as possible.", "input":["whisper.1003"]}}
よしきた!
{"created":1759136435,"data":"None","error":{"code":0,"message":""},"object":"None","request_id":"llm_setup","work_id":"llm.1005"}
{"request_id":"melotts_setup","work_id":"melotts", "action":"setup","object":"melotts.setup",
"data":{"model":"melotts-ja-jp","response_format":"sys.pcm", "input":["llm.1004"],"enoutput":false,"enaudio":true}}
音声応答させてみる。
"こんにちは."
"こんにちは!👋
\n\n何かお手伝いできることはありますか? 😊"
"日本で一番高い山を教えてください."
"日本で一番高い山は富士山(3,776メートル)です。 🗻"
絵文字を応答に入れてくるな。TTSで読めないのだけどさ。
"雨の日は何をした遊んだらいいですか."
"雨の日は室内で楽しめる活動がおすすめです!\n\n
1. 積読(本屋で新しい本を探そう!)\n
2. 手芸に挑戦(クッションカバーとか簡単なものでいいと思います)\n
3. ドラマ・アニメを観賞(懐かしいドラマを思い出して感動するかも)\n
4. クッキーやパンケーキを作る(楽しい!)\n
5. ぬいぐるみや人形に話しかけてみる(甘えちゃおう♪)\n\n
雨の日はゆっくり家で過ごすのも楽しいですよ!😊"
応答が短くなるように設定してあるので、それを外すかな。
ちょっと面倒なこともあったのでパッケージ化したものをGithubに置いておくか。
デカファイルばかりなので、LFSでもdebは無理とか。これはリリースに置く。
結構めんどくさい。なるほど、LLMモデルがgithubに置かれないわけがわかった。必要なファイルがみなデカいもの。置けないわ。
kinneko/tinyswallow-deb: TinySwallow LLM package for Module LLM.
https://github.com/kinneko/tinyswallow-deb
オリジナル投稿:
ModuleLLMにTinySwallowを入れてみる -3-|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/10648887



