[{"data":1,"prerenderedAt":613},["ShallowReactive",2],{"\u002Fblog\u002Fsumaho-de-qwen":3,"\u002Fblog\u002Fsumaho-de-qwen-surround":606},{"id":4,"title":5,"body":6,"date":590,"description":591,"extension":592,"meta":593,"navigation":594,"path":595,"seo":596,"stem":597,"tags":598,"__hash__":605},"blog\u002Fblog\u002Fsumaho-de-qwen.md","Qwen3.5をAndroidスマホで動かしてみよう！(not 実用的)",{"type":7,"value":8,"toc":581},"minimark",[9,14,18,21,24,27,43,46,50,112,119,149,152,203,206,240,243,246,249,275,279,319,325,380,383,402,405,418,429,432,435,475,478,512,519,524,527,532,535,540,543,551,554,557,562,565,568,574,577],[10,11,13],"h2",{"id":12},"え-androidスマホでllmを","え!! AndroidスマホでLLMを!?",[15,16,17],"p",{},"出来らあっ！",[15,19,20],{},"…。始めます。",[10,22,23],{"id":23},"今回の環境",[15,25,26],{},"Galaxy S26 12\u002F256GBを使います。",[28,29,30,34,37,40],"ul",{},[31,32,33],"li",{},"Snapdragon 8 Elite gen 5",[31,35,36],{},"DDR5X 12GB",[31,38,39],{},"UFS4.1 256GB",[31,41,42],{},"Android 16",[15,44,45],{},"みたいな感じです。一応最新ハイエンド。",[10,47,49],{"id":48},"termuxの準備","Termuxの準備",[51,52,55,56],"div",{"className":53},[54],"remark-link-card-plus__container","\n  ",[57,58,66,67,103,55],"a",{"href":59,"target":60,"rel":61,"className":64},"https:\u002F\u002Ff-droid.org\u002Fja\u002Fpackages\u002Fcom.termux\u002F","_blank",[62,63],"noreferrer","noopener",[65],"remark-link-card-plus__card","\n    ",[51,68,55,71,55,85],{"className":69},[70],"remark-link-card-plus__main",[51,72,66,75,66,80,55],{"className":73},[74],"remark-link-card-plus__content",[51,76,79],{"className":77},[78],"remark-link-card-plus__title","Termux | F-Droid - 自由かつオープンソースのAndroidアプリ・リポジトリ",[51,81,84],{"className":82},[83],"remark-link-card-plus__description","パッケージを伴ったターミナル・エミュレーター",[51,86,66,89,66,97,55],{"className":87},[88],"remark-link-card-plus__meta",[90,91],"img",{"src":92,"className":93,"width":95,"height":95,"alt":96},"https:\u002F\u002Ff-droid.org\u002Fassets\u002Ffavicon_yJPr4UNteJc-cseeq16P0Hvl1kDbJjTVYcj-KA6-_Fs=.ico",[94],"remark-link-card-plus__favicon",14,"",[98,99,102],"span",{"className":100},[101],"remark-link-card-plus__url","f-droid.org",[51,104,55,107],{"className":105},[106],"remark-link-card-plus__thumbnail",[90,108],{"src":109,"className":110,"alt":96},"https:\u002F\u002Ff-droid.org\u002Frepo\u002Fcom.termux\u002Fen-US\u002Ficon_7jMZ7XD80oeucmGEaTwktIRZexLtGWvJfKdVD6Wu2SI=.png",[111],"remark-link-card-plus__image",[15,113,114,115,118],{},"からapkをダウンロードして、インストールします。",[116,117],"br",{},"\n起動したらミラーの最適化とパッケージのアップデートを行いましょう。",[120,121,125],"pre",{"className":122,"code":123,"language":124,"meta":96,"style":96},"language-shell shiki shiki-themes catppuccin-macchiato","termux-change-repo\npkg upgrade -y\n","shell",[126,127,128,136],"code",{"__ignoreMap":96},[98,129,132],{"class":130,"line":131},"line",1,[98,133,135],{"class":134},"siK8c","termux-change-repo\n",[98,137,139,142,146],{"class":130,"line":138},2,[98,140,141],{"class":134},"pkg",[98,143,145],{"class":144},"sSZ1V"," upgrade",[98,147,148],{"class":144}," -y\n",[15,150,151],{},"完全に蛇足ですが、私はSSHできるようにしておきました。",[120,153,155],{"className":122,"code":154,"language":124,"meta":96,"style":96},"# sshと自動起動用のパッケージをインストール\npkg install openssh termux-services\n# パスワードを設定\npasswd\n# 自動起動の設定\nsv-enable sshd\n",[126,156,157,163,176,182,188,194],{"__ignoreMap":96},[98,158,159],{"class":130,"line":131},[98,160,162],{"class":161},"sfEIy","# sshと自動起動用のパッケージをインストール\n",[98,164,165,167,170,173],{"class":130,"line":138},[98,166,141],{"class":134},[98,168,169],{"class":144}," install",[98,171,172],{"class":144}," openssh",[98,174,175],{"class":144}," termux-services\n",[98,177,179],{"class":130,"line":178},3,[98,180,181],{"class":161},"# パスワードを設定\n",[98,183,185],{"class":130,"line":184},4,[98,186,187],{"class":134},"passwd\n",[98,189,191],{"class":130,"line":190},5,[98,192,193],{"class":161},"# 自動起動の設定\n",[98,195,197,200],{"class":130,"line":196},6,[98,198,199],{"class":134},"sv-enable",[98,201,202],{"class":144}," sshd\n",[15,204,205],{},"接続するときは",[120,207,209],{"className":122,"code":208,"language":124,"meta":96,"style":96},"ssh a@\u003CスマホのIP> -p 8022\n",[126,210,211],{"__ignoreMap":96},[98,212,213,216,219,223,226,230,233,236],{"class":130,"line":131},[98,214,215],{"class":134},"ssh",[98,217,218],{"class":144}," a@",[98,220,222],{"class":221},"sXptk","\u003C",[98,224,225],{"class":144},"スマホのI",[98,227,229],{"class":228},"sFaBz","P",[98,231,232],{"class":221},">",[98,234,235],{"class":144}," -p",[98,237,239],{"class":238},"s7Qn8"," 8022\n",[15,241,242],{},"ユーザー名は何を指定しても大丈夫です。",[10,244,245],{"id":245},"必須パッケージのインストール",[15,247,248],{},"今回はllama.cppを使用して動かすので、ビルドするために必要なパッケージを入れていきます。",[120,250,252],{"className":122,"code":251,"language":124,"meta":96,"style":96},"pkg install git clang cmake wget libandroid-spawn\n",[126,253,254],{"__ignoreMap":96},[98,255,256,258,260,263,266,269,272],{"class":130,"line":131},[98,257,141],{"class":134},[98,259,169],{"class":144},[98,261,262],{"class":144}," git",[98,264,265],{"class":144}," clang",[98,267,268],{"class":144}," cmake",[98,270,271],{"class":144}," wget",[98,273,274],{"class":144}," libandroid-spawn\n",[10,276,278],{"id":277},"llamacppのビルド","llama.cppのビルド",[51,280,55,282],{"className":281},[54],[57,283,66,287,312,55],{"href":284,"target":60,"rel":285,"className":286},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp",[62,63],[65],[51,288,55,290,55,301],{"className":289},[70],[51,291,66,293,66,297,55],{"className":292},[74],[51,294,296],{"className":295},[78],"GitHub - ggml-org\u002Fllama.cpp: LLM inference in C\u002FC++",[51,298,300],{"className":299},[83],"LLM inference in C\u002FC++. Contribute to ggml-org\u002Fllama.cpp development by creating an account on GitHub.",[51,302,66,304,66,308,55],{"className":303},[88],[90,305],{"src":306,"className":307,"width":95,"height":95,"alt":96},"https:\u002F\u002Fgithub.githubassets.com\u002Ffavicons\u002Ffavicon.svg",[94],[98,309,311],{"className":310},[101],"github.com",[51,313,55,315],{"className":314},[106],[90,316],{"src":317,"className":318,"alt":96},"https:\u002F\u002Frepository-images.githubusercontent.com\u002F612354784\u002Fc59e3320-a236-4182-941f-ea3f1a0f50e7",[111],[15,320,321,322,324],{},"を使ってLLMを動かします。",[116,323],{},"\nまずはビルドを行いますよ。",[120,326,328],{"className":122,"code":327,"language":124,"meta":96,"style":96},"git clone https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp.git\ncd llama.cpp\ncmake -B build\ncmake --build build --config Release -j6\n",[126,329,330,341,350,361],{"__ignoreMap":96},[98,331,332,335,338],{"class":130,"line":131},[98,333,334],{"class":134},"git",[98,336,337],{"class":144}," clone",[98,339,340],{"class":144}," https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp.git\n",[98,342,343,347],{"class":130,"line":138},[98,344,346],{"class":345},"sizsb","cd",[98,348,349],{"class":144}," llama.cpp\n",[98,351,352,355,358],{"class":130,"line":178},[98,353,354],{"class":134},"cmake",[98,356,357],{"class":144}," -B",[98,359,360],{"class":144}," build\n",[98,362,363,365,368,371,374,377],{"class":130,"line":184},[98,364,354],{"class":134},[98,366,367],{"class":144}," --build",[98,369,370],{"class":144}," build",[98,372,373],{"class":144}," --config",[98,375,376],{"class":144}," Release",[98,378,379],{"class":144}," -j6\n",[15,381,382],{},"ビルド中にエラーで落ちることがあります。その際は",[120,384,386],{"className":122,"code":385,"language":124,"meta":96,"style":96},"cmake --build build --config Release -j6\n",[126,387,388],{"__ignoreMap":96},[98,389,390,392,394,396,398,400],{"class":130,"line":131},[98,391,354],{"class":134},[98,393,367],{"class":144},[98,395,370],{"class":144},[98,397,373],{"class":144},[98,399,376],{"class":144},[98,401,379],{"class":144},[15,403,404],{},"を連打すると終わります。",[120,406,408],{"className":122,"code":407,"language":124,"meta":96,"style":96},"ls .\u002Fbuild\u002Fbin\n",[126,409,410],{"__ignoreMap":96},[98,411,412,415],{"class":130,"line":131},[98,413,414],{"class":134},"ls",[98,416,417],{"class":144}," .\u002Fbuild\u002Fbin\n",[15,419,420,421,424,425,428],{},"で",[126,422,423],{},"llama-server","とか",[126,426,427],{},"llama-cli","が見えればOKです。",[10,430,431],{"id":431},"動かしてみる",[15,433,434],{},"さて動かしてみますよ。Qwenを。今回はunslothのQwen3.5-0.8B-GGUFを動かしてみます。",[51,436,55,438],{"className":437},[54],[57,439,66,443,468,55],{"href":440,"target":60,"rel":441,"className":442},"https:\u002F\u002Fhuggingface.co\u002Funsloth\u002FQwen3.5-0.8B-GGUF",[62,63],[65],[51,444,55,446,55,457],{"className":445},[70],[51,447,66,449,66,453,55],{"className":448},[74],[51,450,452],{"className":451},[78],"unsloth\u002FQwen3.5-0.8B-GGUF · Hugging Face",[51,454,456],{"className":455},[83],"We’re on a journey to advance and democratize artificial intelligence through open source and open science.",[51,458,66,460,66,464,55],{"className":459},[88],[90,461],{"src":462,"className":463,"width":95,"height":95,"alt":96},"https:\u002F\u002Fwww.google.com\u002Fs2\u002Ffavicons?domain=huggingface.co",[94],[98,465,467],{"className":466},[101],"huggingface.co",[51,469,55,471],{"className":470},[106],[90,472],{"src":473,"className":474,"alt":96},"https:\u002F\u002Fcdn-thumbnails.huggingface.co\u002Fsocial-thumbnails\u002Fmodels\u002Funsloth\u002FQwen3.5-0.8B-GGUF.png",[111],[15,476,477],{},"次のコマンドを実行します。",[120,479,481],{"className":122,"code":480,"language":124,"meta":96,"style":96},".\u002Fbuild\u002Fbin\u002Fllama-server -hf unsloth\u002FQwen3.5-0.8B-GGUF --host 0.0.0.0 --port 2323 --reasoning-budget 0\n",[126,482,483],{"__ignoreMap":96},[98,484,485,488,491,494,497,500,503,506,509],{"class":130,"line":131},[98,486,487],{"class":134},".\u002Fbuild\u002Fbin\u002Fllama-server",[98,489,490],{"class":144}," -hf",[98,492,493],{"class":144}," unsloth\u002FQwen3.5-0.8B-GGUF",[98,495,496],{"class":144}," --host",[98,498,499],{"class":238}," 0.0.0.0",[98,501,502],{"class":144}," --port",[98,504,505],{"class":238}," 2323",[98,507,508],{"class":144}," --reasoning-budget",[98,510,511],{"class":238}," 0\n",[15,513,514,515,518],{},"この状態で",[126,516,517],{},"http:\u002F\u002F\u003CスマホのIP>:2323","にアクセスすると…。",[15,520,521],{},[90,522],{"alt":96,"src":523},"https:\u002F\u002Fstorage.googleapis.com\u002Fzenn-user-upload\u002Fe032c563fd07-20260406.png",[15,525,526],{},"こんな画面が出ます。適当に会話を試みましょう。",[15,528,529],{},[90,530],{"alt":96,"src":531},"https:\u002F\u002Fstorage.googleapis.com\u002Fzenn-user-upload\u002F569cef96f1ec-20260406.png",[15,533,534],{},"日本語は荷が重そうです。",[15,536,537],{},[90,538],{"alt":96,"src":539},"https:\u002F\u002Fstorage.googleapis.com\u002Fzenn-user-upload\u002Fd83426738787-20260406.png",[15,541,542],{},"私は英弱なので翻訳を。",[120,544,549],{"className":545,"code":547,"language":548},[546],"language-text","こんにちは！私はTongyi Labが開発した最新の大規模言語モデル、Qwen3.5です。\n膨大なテキストコーパスで学習済みで、質問への回答からクリエイティブなコンテンツの生成まで、幅広いタスクでお手伝いできます。今日はどのようなお手伝いができますか？😊\n","text",[126,550,547],{"__ignoreMap":96},[15,552,553],{},"開発元はアリババな気もしますけど、なにせ0.8Bなので。気にしない気にしない。",[15,555,556],{},"生成自体は1.4トークン\u002F秒と激遅です。ちなみに私のメインパソコン(R7 5770X+RTX 4060 Ti)では",[15,558,559],{},[90,560],{"alt":96,"src":561},"https:\u002F\u002Fstorage.googleapis.com\u002Fzenn-user-upload\u002Fce80ba874e37-20260406.png",[15,563,564],{},"216トークン\u002F秒です。こっちはGPUでAndroidはCPUですからね。分が悪いレベルの話ではないのですけど。",[10,566,567],{"id":567},"以上",[15,569,570,571,573],{},"以上です。完全に自己満足ですが、一応動いたのに驚いてます。",[116,572],{},"\nできればOpenCLを使った推論もやらせてみたいですね。出来たらですけど。",[15,575,576],{},"それでは！",[578,579,580],"style",{},"html pre.shiki code .siK8c, html code.shiki .siK8c{--shiki-default:#8AADF4;--shiki-default-font-style:italic}html pre.shiki code .sSZ1V, html code.shiki .sSZ1V{--shiki-default:#A6DA95}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sfEIy, html code.shiki .sfEIy{--shiki-default:#939AB7;--shiki-default-font-style:italic}html pre.shiki code .sXptk, html code.shiki .sXptk{--shiki-default:#8BD5CA}html pre.shiki code .sFaBz, html code.shiki .sFaBz{--shiki-default:#CAD3F5}html pre.shiki code .s7Qn8, html code.shiki .s7Qn8{--shiki-default:#F5A97F}html pre.shiki code .sizsb, html code.shiki .sizsb{--shiki-default:#ED8796;--shiki-default-font-style:italic}",{"title":96,"searchDepth":138,"depth":138,"links":582},[583,584,585,586,587,588,589],{"id":12,"depth":138,"text":13},{"id":23,"depth":138,"text":23},{"id":48,"depth":138,"text":49},{"id":245,"depth":138,"text":245},{"id":277,"depth":138,"text":278},{"id":431,"depth":138,"text":431},{"id":567,"depth":138,"text":567},"2026-04-09","Qwen3.5をAndroidスマホで動かしてみたかったログ","md",{},true,"\u002Fblog\u002Fsumaho-de-qwen",{"title":5,"description":591},"blog\u002Fsumaho-de-qwen",[599,601,603],{"name":600},"Android",{"name":602},"Termux",{"name":604},"llama.cpp","6ze60E6sxTxUHYMddQ-Yqm0WvHbCISPRQmhv6Rg-htY",{"next":607,"prev":610},{"path":608,"title":609},"\u002Fblog\u002Fmuryoudemisskey","ほぼ無料でMisskeyインスタンスを立てたよ",{"path":611,"title":612},"\u002Fblog\u002Fanime-encode-study","アニメエンコードの研究(笑)",1775738147823]