410 Views
August 15, 25
スライド概要
OSC京都2025で発表した資料です。生成AIをコマンドラインで改造するテーマです。無限の可能性を秘めております。
低スペックPCから高度なハックまでご紹介いたします
最狂タブレットハッカー。*BSDやLinux大好き。なろうで異世界製造業小説も書いてます Hacking Tablet devices now .I enjoy in opensource conference.
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料API でコマンドラインをAI革命するセミナー。CPUでもGPUでも。 NetBSDもOK 1.自己紹介、生成AIとは 2.SimonW/LLMインストール 3.SimonW/LLM簡単な使い方 4.SimonW/LLMのネタ、応用事例 5.ハードウェア、GPU高速化 メインテーマ「ガジェット&生成AI」 OSC京都2025 2025年8月3日 Place: 中小企業振興会館 発表者:Kapper ガジェットハッキング ユーザーグループ This Presentation: Slideshare & PDF files publication of my HP http://kapper1224.sakura.ne.jp Gadget Hacking User Group Speaker:Kapper
自己紹介 Self Introduction • My name: Kapper • X(Twitter) account:@kapper1224 • HP:http://kapper1224.sakura.ne.jp • Slideshare: http://www.slideshare.net/kapper1224 • Docsell: https://pawoo.net/@kapper1224/ • Mastodon: https://pawoo.net/@kapper1224/ • Facebook:https://www.facebook.com/kapper1224/ • My nobels:https://ncode.syosetu.com/n7491fi/ • My Posfie(Togetter):https://posfie.com/@kapper1224 • My Youtube:http://kapper1224.sakura.ne.jp/Youtube.html • My Hobby:Linux、*BSD、Generative AI and Mobile Devices • My favorite words:The records are the more important than the experiment. 「記録は実験より勝る」 • Test Model:Netwalker、Nokia N900、DynabookAZ、RaspberryPi、Nexus7、Nexus5、Chromebook、GPD-WIN、GPD-Pocket、Macbook、 NANOTE、SteamDeck、Windows Tablet、SailfishOS、UBPorts、postmarketOS、NetBSD and The others... • Recent my Activity: • • Hacking Generative AI (Images and LLM) on a lot of devices. Hacking Linux on Windows1x Tablet (Intel Atom and Gaming tablet) and Android Smartphone. • • Hacking NetBSD and OpenBSD on UEFI and Windows Tablet. Hacking SimonW/LLM, RAG and Finetuning LLM. • 後、最近小説家になろうで異世界で製造業と産業革命の小説書いていますなう。
Recently my activities Generative AI on Junk GPU Boards(2GB) Linux on Gaming Tablet PC Tiny Stable-diffuson (VRAM 1GB) Junk Windows Tablet SimonW/LLM and Python (CUDA,vulkan,CPU) Generative AI on NetBSD RAG,LLM Finetuning on Python OSC,KOF参加
OSC名古屋2024,OSC京都2024で発表したローカル生 成AIの資料を公開中。よろしくお願いします。 • Slideshare、ドクセル、Speakerdeck、PDFファイルなど
事前ご連絡 • 今回はコマンドラインでSimonW/LLMの使い方 • 可能であればOllama,llamafileとSimonW/LLMを インストールお願いします。 • Androidの人はTermuxかLinuxコンテナ。 • iOSの人はエミュレータで(適当なネイティブアプリなし?) • GPUは必ずも必須ではなく、CPUの計算が遅いだけ AMD RadeonやIntel Arc、UHDでも動く • CUDAが無いOSでもvulkanを入れればGPU高速化可能 • 低スペックPC・VRAMならQwen3 1.7B Q4_K_M(1.28GB) か Gemma3 1B Q4_1(764MB)オススメ • 内容がコマンドラインなので眠くなるかもしれませんが LLM作業しながらリラックスして頂きたくお願いします
事前アンケートお願い (挙手にてお願いします) • ①生成AIをコマンドラインで使っている人、使ってみたい人? • ②ローカル生成AIで無料API(llama.cpp,llamafile,Ollama)を使いたい人? • ③IntelやAMD、AppleのMetalのNVIDIA以外のGPUで生成AI使いたい人? • ④ローカルLLMのRAGやFinetuningに興味のある人?(KOF2025で予定) 今日のセミナーのペース時間配分と今後の参考とさせて下さい
生成AIとは? • テキストなど 小さい情報から画像、動画、文章などを生成 • 短時間で複雑なデータを生成可能で生産性が良い • 複雑な計算が必要なので高性能なCPU,GPU,NPUが必要 • 大規模言語モデル(Large Language models)が有名 • 最近はAndroidやiPhoneでもOK • 他にも画像生成AIなど 定番モデルpony diffusion、Animagine XL他 参考としあき wiki https://wikiwiki.jp/sd_toshiaki/SDXLモデル
最近GoogleがGemini CLIを出してきました • 毎分60回、1日1,000回までのLLMリクエストが無料 • 無料アカウントでの使用はGoogleの学習用に利用される??? • 高性能ツールとしてユーザー数増えそう • ただしコマンドラインはコスト優先で擬人化しなければ性能 不問かも・・・
SimonW/LLMとはそもそもなんぞや? • Simon Willisonさんが作ったコマンドラインLLMツール。 • 星の数ほどありそうな、コマンドラインLLMツールの一つ。世界中で広く使用 • 多数のプラグインとOS対応で広く使われている。無料APIに公式対応 • 挙動がシンプルで短いコマンドで使用可能なのが長所。Shell script,Awk,Pythonで拡張すると凄く応用性が高まる • 基本的な使い方は ①LLMに情報をインプットして出力する方法。日本語で指示や翻訳など ②コマンドの出力をLLMにパイプで送り解析、日本語化など ③バッチファルやAWKなどに組み込んで自動化 ④PythonやJavascriptに組み込んで多数の機能をAI化 ⑤Whisper.cppや音声合成AIと連携してAIボイス出力 ・Pythonで書かれているが依存関係が少なくNetBSDでも動作確認済 ・Python APIとしてimport llmと直接プログラムで叩いて使用も可能 ・AIオートサジェスチョン機能としてはFish Shell-AIを使った方が良いかも
デモ動画をYoutubeで公開中
デモ動画をYoutubeで公開中
SimonW/LLMはとにかく応用力が無限大 • コマンドにLLM。たったこれだけで何でも出来てしまう • まだKapperの想像力がSimonW/LLMに追いついていませんw • 皆さんの想像力でコマンドラインを無敵に改造しませんか?
LLM動作イメージ • 一旦モデルをメモリの中に入れる (モデルサイズのメモリが必要) • CPU・GPUで計算 マルチGPU対応 モデル データ CPU,GPU oメモリ メモリ • LoRaがあれば追加 モデル データ LoRa • 結果出力
SimonW/LLMのイメージ図 ユーザー 情報 コマンド 出力情報 プログラム 前処理 LLM 後処理 SimonW/LLM +各種プログラム前処理 LLMサーバ プラグイン対応 各種プログラム加工 (必要に応じて) 有料API OpenAI互換 出力、翻訳 コマンド実行 プログラム 後処理 情報入力 コマンド出力 プログラム 前処理 Or 各種コマンド プロンプト加工 Shell,AWK Javascript,Python他 Web FFmpeg,Whisper.cpp ChromaDB RAG 無料(ローカル) llama.cpp llamafile Ollama 文字生成・画像認識 ソースコード生成 プロンプト再生成 日本語翻訳 アプリ実行 Stable diffusion Python他、 LibreOffice、 音声・PDF生成 Open_jtalk Web動作など 繰り返し実行しても良い(時間がかかります) フルスクラッチでPythonでLLMプログラムを組んだ方が速いかも 最終出力 情報出力 加工ファイル サーバ送信 DB保存
SimonW/LLMで出来る面白いコマンドライン革命 • ①コマンドの入力、出力を日本語に変換。 • ②エラーメッセージをLLMで解析、日本語で対応 • ③スクリプトで分岐、変数など自動作成して簡単なAIプログラム作成 • ④犬・猫、各種キャラクターのAI擬人化出力(高性能モデル推奨) • ⑤Web(Javascript,Python)に組み込んで自作AIサーバ • ⑥FFmpeg,Whisper.cpp,Open_jtalkなどと連携して音声入力と出力 • ⑦足りない機能はJavascriptやPythonから借りて、実は何でも出来る まだ想像力の限りコマンドラインで生成AIは使えそうです。 フルスクラッチでPythonコードを組むには負けますが、シンプル簡単です。 ローカル生成AIで無料APIサーバを使えば、トークン使いたい放題
SimonW/LLMのインストール • Python3が必須です。pipx もしくはpython3-venv環境を使用 python3 -m venv env/ NetBSDの場合は source env/bin/activate pkgin install python3.11-pip rust pip3.11 install llm pip install llm llm install llm-llamafile llm keys set openai • OpenAIサーバを使う場合は export OPENAI_API_KEY='(キー)' を.bashrcか.bash_profileなどに追記して実行 • llamaflieやllama.cppのローカルAPIサーバはキー不要だが ダミーの入力が必要
SimonW/LLMをOllamaサーバで使う • Ollamaをインストール。 Linuxの場合、 curl -fsSL https://ollama.com/install.sh | sh MacとWindowsの場合は公式HPよりダウンロード • Ollamaモデルの実行、例えば①〜③のどれか モデル①ollama run llama3.2:latest (要VRAM 2.0GB) モデル②ollama run gemma3n:e2b (要VRAM 5.6GB) モデル③ollama run gemma3n:e4b (要VRAM 7.5GB) • llm-ollamaプラグインのインストール(APIキー不要) llm install llm-ollama • SimonW/llmを実行 llm –m llama3.2:latest "NetBSDの長所" 注)Ollamaは起動と同時に http://localhost:11435 を APIサーバとして起動します
SimonW/LLMをllamafile,llama.cppサーバで使う 注)llama.cppとllamafileは 起動と同時に http://localhost:8080 を APIサーバとして起動します • llm-llamafileを入れる python3 -m venv venv source venv/bin/activate llm install llm-llamafile • ①適当なllamafileをダウンロードして実行 chmod +x google_gemma-3-4b-it-Q6_K.llamafile ./google_gemma-3-4b-it-Q6_K.llamafile ②もしくはllama.cppをビルドしてサーバーモードで起動 ./llama-server –m (モデル名) -ngl 999 • ダミーAPIキー登録。キーは適当で何でも良い llm keys set openai • SimonW/llmを実行 llm –m llamafile "NetBSDの長所"
llamafile, llama.cppの-ngl オプションとは? • -ngl とはLLMモデルのレイヤー数をどれだけGPUに置くか? という設定項目。CPUとGPUの比率を調整できる • VRAMが少ない場合-ngl 値を下げる事でCPUのメインメモリに置ける が当然処理速度は大幅に低下する • VRAMを節約したい場合、-cオプションでモデルが設定出来るトーク ン長を調整する事も可能。default:4096 (VRAMによる)
Ollama,llamafile,llama.cppサーバを止めてメモリを開放する • Ollamaサーバを止めてメモリを開放 ollama stop llama3.2:latest (←モデル名) • llamafile,llama.cppサーバを止めてメモリを開放 Ctrl+Zでアプリを停止 ps でプロセス番号を確認 kill –9 (プロセス番号) でllama-serverを停止
簡単なSimonW/LLM使い方例 • llm "NetBSDの説明" ●通常のLLM(OpenAI API) • llm "Ubuntuの長所" -m llama3.2:latest ●ローカルLLMモデル使用時 • llm –c "会話しましょう" -m llama3.2:latest ●チャットモード • llm -m llama3.2:latest "Linuxでストレージを表示. コマンドのみ出力." ●モデル選択 • cat sample.py | llm –s "日本語でソースコードを解析" ●出力をパイプで処理+システムモード • echo "LinuxでSSHポート(22番)を開けるファイアウォール設定のコマンドとその説明を日本語で教 えてください" | llm –m llama3.2:latest ●Linuxコマンド解説 • man curl | llm -s "以下を要約して、日本語で使用方法と代表的なオプションを簡潔に説明してください。" -m llama3.2:latest ●Man を日本語訳と要約 • cat script.sh | llm -s "このシェルスクリプトの問題点を修正して、修正後の完全なコードだけを出力してください " -m llama3.2:latest > fixed_script.sh ●>で結果をファイルに出力
SimonW/LLMのオプション 1️⃣ プロンプト実行・対話系 • • • prompt:プロンプトを実行(基本コマンド) chat:モデルと対話モードでやり取り Templates:プロンプトテンプレートを管理 • • • • models:インストール済みモデルの管理 aliases:モデルのエイリアス管理 ollama:Ollama サーバー上のモデル操作 openai:OpenAI API 経由でモデル操作 • • • • • embed:テキストを埋め込みに変換 embed-multi:複数テキストを一括で埋め込み embed-models:埋め込みモデルを管理 collections:埋め込みコレクション管理 similar:コレクションから類似データを検索 • • • fragments:データベース内のフラグメントを管理 schemas:保存済みスキーマを管理 logs:プロンプト・レスポンスのログを探索 • • • • • install:パッケージを LLM 環境にインストール uninstall:パッケージをアンインストール plugins:インストール済みプラグインの一覧 keys:APIキーを管理 tools:LLMで使えるツールを管理 2️⃣ モデル管理系 3️⃣ 埋め込み(ベクトル化)系 4️⃣ データ管理系 5️⃣ 環境・パッケージ管理系
SimonW/LLMの-s システムモード • -s (--system) オプションをつける事でシステムモード 2つ目以上の指示をする場合に指定する • 一例 cat myfile.py | llm -s "このコードを日本語で解説" "指示内容" を入力する事でllmに指示する事が出来る • cat script.sh | llm --system "あなたは世界で最も天才的なハッカーです。上 から目線でこのコードをダメ出ししてください" • cat error.log | llm --system "お前は関西弁のヤクザや。エラーログの内容を 一言でまとめて脅すように説明せぇや"
SimonW/LLMのTemplates • よく使うプロンプトなどをTemplatesとして保存 llm "文章を日本語で要約して説明" --save 要約 echo "Linuxの特徴" | llm -m llamafile -t 要約 • 保存してあるTemplatesを表示 llm templates 要約 : 文章を日本語で要約して説明 • 保存してあるTemplatesのファイルの場所を表示 llm templates path /home/kapper/.config/io.datasette.llm/templates
SimonW/LLMの -f フラグメントオプション • -f オプションをつけるとURLやファイルを指定できる • llm -f https://llm.datasette.io/robots.txt 'このページを説明' • llm -f cli.py 'このコードをショートポエム風に解説' • 過去に保存したFragmentsのデータを表示 llm fragments - hash: d781b5048438501b18427157ea2f1bba68816edd8086cb272e77b4000115e6b5 aliases: [] datetime_utc: '2025-08-12 23:59:00' source: https://llm.datasette.io/robots.txt content: |# This robots.txt file is autogenerated by Read the Docs. # It controls the crawling and indexing... ・過去のFragmentsを再利用 llm -f d781b5048438501b18427157ea2f1bba68816edd8086cb272e77b4000115e6b5' "日本語で解析"
SimonW/LLMのlogs • 過去のlogを表示(N=履歴数、0指定の場合全て) llm logs –n 0 • JSON形式にてlogを表示 llm logs -n 1 -t –json • チャットのlog llm logs –c • Logの検索 llm logs –q linux • Logのバックアップ llm logs backup /tmp/backup.db
SimonW/LLMのPlugins • llm install (プラグイン名) でインストール • llm install llm-ollama Ollamaの無料API接続 • llm install llm-llamafile llamafile,llama.cppの無料API接続 • llm install llm-gemini Google Geminiの有料API接続(他もあり) • llm install llm-tools-sqlite Sqliteのデータを日本語等でLLMで検索 • llm install llm-tools-rag SqliteのDBへ読み書きしてRAG再現 • llm install llm-video-frames 動画ファイルをFFMPEGでフレーム解析 • llm install llm-fragmens-youtube Youtube動画の要約 • llm install llm-fragments-github Githubの解析 • llm install llm-python llmの操作をPythonから実行 • https://simonwillison.net/tags/plugins/ https://llm.datasette.io/en/stable/plugins/directory.html
人気あるローカルLLMモデルデータ • 主にHuggingfaceなどからGGUFファイルをダウンロードしてmodels以下の各フォルダに保存して使用 • 日本語対応:llama3.2 1B,3B(古いけどサイズが小さく1.5GB相当から) • 高性能:Gemma3n n2b(5.6GB)、n4b(7.5GB)、Gemma3 4B(3.3GB) • 中国系:Deepseek-r1(1.1~404GB)、Qwen3(1.2~142GB) <think>で高性能化 • 最軽量:Qwen3 1.7B Q4_K_M(1.28GB) 、Gemma3 1B Q4_1(764MB)、Gemma3 270M Q4 (253MB) 日本語可モデル。低スペックPC、低VRAMに特にオススメ • マルチモーダル:Qwen2.5vl(3.2~49GB)、llava (4.7~20GB) • コーダー系:Qwen2.5-coder(1.0~20GB) • ベクトル埋め込みモデル:mxbai-embed-large • ~1GB 殆ど会話出来ない、1~1.5GB 辛うじて会話が成立、 1.5〜2.0GB ギリギリ日本語可。英語混じり、2.0〜3.0GB 日本語で多少会話出来る、 3.0~4.0GB この位あると普通、5.0〜6.0GB 犬猫レベルの簡単な擬人化、 7.0〜8.0GB 超最低限の人格の語尾を再現
生成AIでこんな使い方も ②生成AI文章作成 ChtGPT llama.cpp など ①音声入力 Whisper.cpp Windowsキー+H など ③音声合成 Open-Jtalkなど
SimonW/LLMの練習①基本コマンド ・llm -m llama3.2:latest "2*2" 2*2=4 ・llm -m llama3.2:latest "NetBSDの長所" NetBSDは、オペレーティングシステムの開発と使用にさまざまな利点を提供する、オープンソース なオペレーティングシステムです。以下に、NetBSDの長所がまとめられています。 ・export LLM_MODEL=llama3.2:latest llm "モデルのデフォルト設定" • llm -f https://llm.datasette.io/robots.txt 'このページを日本語で説明' • llm -f setup.py 'このプログラムを日本語で解析'
SimonW/LLMの練習②echoやパイプ,> ファイル出力 ・echo "現在のディレクトリ以下のすべての空フォルダを削除するbashコマンドを教えて" |llm -m llama3.2:latest find . -type d -empty | xargs rm -i ・cat *.sh | llm –m llama3.2:latest --system "これらのシェルスクリプトの概要と全体構成を説明してください " > 全体説明.md *README** ================ **JTalk Voice Assistant** ------------------------ このコードは、現在の日付と時間を英語で発声するための shスクリプトです。 ### how to use
SimonW/LLMの練習③curl(カール)+Web情報 • CurlコマンドでWebから各種データを入手して解析 curl -s "http://kapper1224.sakura.ne.jp/UNIX.html" | llm "このサイトのLinuxに関する情報の 長所を分析" -m llamafile
SimonW/LLMで練習④jqコマンドでjson解析 • curl -s "https://api.openmeteo.com/v1/forecast?latitude=35&longitude=139&hourly=temperature_2m" | jq -r '.hourly | " 気温は ¥(.temperature_2m[0]) 度です"' | llm "今日の天気について健康管理を分析してくだ さい。" -m gemma3n:e4b
SimonW/LLMで練習⑤pdftotextで抽出・解析 • PDFファイルをpdftotextで変換してSimonW/LLMで解析 pdftotext -f 1 -l 1 Netwalker¥ osc¥ kyoto2025.pdf - | llm -m llamafile "この文章の改善方法"
SimonW/LLMの練習⑥マルチモーダル ・llm -a GD9BEIKaoAAmL_A.jpeg '画像を解説。このキャラはドラゴンボールのヤムチャです。' -m qwen2.5vl:3b
SimonW/LLMのネタ的使い方①擬人化 ・sudo tcpdump -c 10 | llm -m llama3.2 "これを犬と猫たちが会話している様に変換してください"
SimonW/LLMのネタ的使い方②Historyで精神鑑定 ・history | tail -n 20 | llm "このコマンド履歴は、とある変人 の心理状態と今日の行動を詳細に表しています 。 この人物の性格、趣味、そして今日最も興味を持っていたことを、精神科医の視 点から分析し、結論と してこの人物に最適な治療法を提案してください。" -m gemma3n:e2b
SimonW/LLMの応用①プログラムに組み込む ・ChatGPTの様な賢いLLMでシェルスクリプトやPythonプログラムを作成し、SimonW/LLMを実行する
SimonW/LLMの応用②Python+openpyxlでエクセル生成 ・LLMアプリを使ってエクセルファイルを編集する。次のPythonプログラムのソースコードを作成 ①LLMにローカルモデル-m llama3.2オプションを使用。 ②日本語の文章とエクセルファイルを入力してLLMに読み込ませる。 ③LLMにてPython3とopenpyxlを使用してソースコードを作成 ④作成したソースコードを実行してエクセルファイルを編集して保存 ⑤作成したソースコードにファイル名を付けて保存。
SimonW/LLMの応用③Stable-Diffusion.cppのプロンプトを 日本語から変換して生成 ・PythonとSimonW/LLMでStable-Diffusion.cppのプロンプトを日本語から生成
SimonW/LLMの応用④1行簡易RAG Retrieval-Augmented Generation (検索拡張生成) • ネットから必要なデータを検索してSimonW/LLMで解析 curl -s https://www3.nhk.or.jp/rss/news/cat0.xml | llm "このRSSのタイトルと概要を日本語で 5件にまとめて" -m gemma3n:e4b
SimonW/LLMの応用⑤Arduinoを操作 • プログラムを自動作成。スクリプトで自動化も出来る echo "LEDを13番ピンで1秒ごとに点滅させるArduinoコードを書いて" | llm -m llamafile -s " あなたはArduino開発の専門家です。ユーザーの要求をもとに、コンパイル可能なC++の Arduinoスケッチだけを出力してください。説明文やMarkdown、余分なテキストは一切不 要です。" | sed '/^```/d' > sketch/sketch.ino arduino-cli compile --fqbn arduino:avr:uno sketch arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno sketch • 音声入力と組み合わせても可能
SimonW/LLMの応用⑥Open_jtalk音声出力 ・lm -m llama3.2:latest 'NetBSDの解説を完結に一文で長文で説明' > /tmp/llm_output.txt && open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /tmp/output.wav < /tmp/llm_output.txt && aplay --quiet /tmp/output.wav ・さらにFFmpeg(音声をwav保存) + whipser.cpp (wavをテキスト変換) + llmでローカルLLMに文字出力 + Open_jtalkで音声出力 みたいな事をすれば疑似会話出来ます。処理が遅いけど。
さらに応用。生成AI会話アプリ作成 • aplayで音声をWav保存 whisper.cppでwavをテキストに変換 SimonW/LLMとllama.cppでテキストを生成AIで変換 Open_jtalkで変換したテキストを読み上げ
ハードウェア目安 • 最低(動くだけ。速度は一切考慮しない) x86:SSE3搭載CPU、メモリ+Swap:1GB以上(モデル量子化の例外あり) Android メモリ+Swap 1GB以上(モデル量子化の例外あり) RapsberryPi4,5 メモリ+Swap 1GB以上 • 必要 x86:第8世代Intel、AMD Ryzen以降、メモリ+Swap 3GB以上 Android メモリ+Swap 3GB以上 GPU:VRAMメモリ2GB以上 (Intel内蔵GPU iris Xe、UHD以上) • 推奨(GPU前提) x86:第8世代Intel、AMD Ryzen以降、メモリ8GB以上 GPU:NVIDIA GTX1060、AMD RX580以降 VRAMメモリ6GB以上(gpt-oss 20Bなどで12GB以上が望ましい) • できれば10 tokens / sec 以上の速度を狙う(推奨15〜25 tokens / sec) • 速度を上げるには小さいモデル+高速GPU+オプション(-B 512 –C 2024 –t (コア数))など使用 • 低スペックPC、低VRAMならGemma3 1B Q4_1(764MB)かQwen3 1.7B Q4_K_M(1.28GB)のモデルを推奨 • 賢い擬人化させる場合には出来るだけGPU VRAMを増やしてデータサイズの大きいモデルを使用 • 邪道であるが、CPUメインメモリを増やして内蔵GPUかNPUで処理する方法もあり
アンケート結果(ご協力ありがとうございました
実は爆安ジャンクGPUボードLLMに使えます • 日本語対応のLLAMA3.2 3Bの容量が1.5GBなのでVRAM2GBで動きます。 • AMDのAPU内蔵GPUでもOK。ゲーミングタブレットPCなど。 • 情報収集には物足りなくてもSimonW/LLMなら十分な性能 GTX1030 VRAM 2GB Ayaneo 2021 Pro VRAM 3GB
実は爆安ジャンクGPUボードLLMに使えます
GPGPU • GPUで高速化するにはそれぞれのツール、ハードのセットアップが必要 GPU Driver ・NVIDIA GPU ・AMD GPU ・Intel GPU ・メーカー製 Driver ・AMD内蔵APU ・Intel内蔵GPU ・/・ / (Iris Xe,UHD) ・OSS Driver (MESA他) ・/・ / Framework APPLICATIONS C言語 ・NVIDIA CUDA Vulkan ・/・ ・AMD ROCm / Vulkan,ZLUDA ・Intel oneAPI SYCL、Vulkan ・Ollama llama.cpp LM Studio他 Python ・NVIDIA CUDA Vulkan ・/・ ・AMD ROCm / Vulkan,ZLUDA ・Intel OpenVINO Vulkan ・Stable-Diffusion Stable diffusion.CPP SD.Next ・/・ / FastSD CPU他 ・Yolo ・Gimp ・Tensor-flow
GPUベンチマーク • llama.cpp公式GithubにVulkanベンチマーク結果。 おおよそ他のベンチマークと類似(CUDA,ROCm,SYCLはvulkanより高速) https://github.com/ggml-org/llama.cpp/discussions/10879 • 代表例(llama 2 7B) NVIDIA RTX4090:170.95 tokens/sec NVIDIA RTX3090:136.81 tokens/sec AMD RX 7900XT:123.18 tokens/sec Apple M3 Ultra:115.54 tokens/sec AMD RX 9060XT:70.13 tokens/sec NVIDIA RX3060:64.76 tokens/sec Intel Arc A770:49.43 tokens/sec AMD Ryzen AI Max+395:46.75 tokens/sec NVIDIA GTX1070Ti:42.86 tokens/sec Intel Core Ultra 7 258V:21.86 tokens/sec AMD Ryzen AI 9 HX 370:21.23 tokens/sec AMD Ryzen Z1 Extreme:18.77 tokens/sec Intel Core i7 1100:7.28 tokens/sec Intel Core i5 8000:3.23 tokens/sec
VRAM量を考慮するとこのくらいのグラボがお買い得(VRAM≦8GBは ゲームでは使いにくいためお安い)eGPUもあり
中古デスクトップならこの価格。将来性より今安く生成AI使える物。 生成AIではCPUはあまり重要ではない。グラボ代+OS代+おまけ扱い
NVIDIA CUDAインストール • Ubuntu22.04の場合 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cudaubuntu2204.pin • sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 • wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repoubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb • sudo dpkg -i cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb • sudo cp /var/cuda-repo-ubuntu2204-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/ • sudo apt-get update • sudo apt-get -y install cuda sudo nano .bashrc テキストエディタで下記を保存 export PATH="/usr/local/cuda/bin:$PATH" • export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH" • https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
GTX1060 6GBでもまずまずの速度。十分実用 GTX1030 2GBでも頑張ればここまでは
Vulkan AMD GPUインストール(*BSD推奨) • AMDのサイトからamdgpu-install~.debをダウンロード sudo apt-get install ./amdgpu-install-VERSION.deb • sudo apt-get update sudo amdgpu-install • Vulkan-SDKのインストール(SDKに必要ファイルあり) wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc • sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list http://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list • sudo apt update • sudo apt install vulkan-sdk • GPU Driverはメーカー公式でもOSS版でもどちらでも使えます(MESA、OpenCL) 申し訳ありませんが、*BSDへのVulkanインストールは勉強中です
SteamDeck(AMD Zen2)でVulkan GPU • AMD APU内蔵GPUの割に侮れない性能。GTX1060の半分程度? 小さいLLMモデルなら快適に動く(問題はVRAM)
ipex-llm(oneAPI+SYCL)Intel GPUインストール • Ubuntu24.04の場合。Intel GPUドライバインストール 下記の内容をコピペ https://dgpu-docs.intel.com/driver/client/overview.html • oneAPIのインストール。コピペ https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2025-0/apt-005.html#BASEAPT • Ipex-LLMバイナリをダウンロードして展開 llama-cpp-ipex-llm-2.3.0b20250612-ubuntu-core.tgz を解凍 https://github.com/ipex-llm/ipex-llm/releases/tag/v2.3.0-nightly • ExportしてSYCLを許可 export GGML_SYCL_DISABLE_OPT=0 export GGML_SYCL_DISABLE_GRAPH=0 export ZES_ENABLE_SYSMAN=1 • 対応モデルをダウンロードして実行 echo "NetBSDの使い方事例" |./llama-cli -m ../Llama-3.2-3B-Instruct-Q4_K_L.gguf -ngl 999 -b 512 -t 12
Intel oneAPI対応ハード • 第11世代 以降CoreシリーズCPU、N100系 UHD、Iris Xe GPU • Intel Arc GPU • Intel XeonサーバCPU • Intel Datacenter GPU • NVIDIA,AMD の GPU (Codeplay の oneAPI プラグインを使用) • 注) Core 第8〜10世代のGPU(UHD)は未対応 →とても遅いけどvulkanを使うしか無い • LLMモデルサイズが同じでも計算速度に差が出るので注意
ipex-llm ベンチマーク Intel 12世代 1245U Iris Xe • Core第12世代 Iris XeでもoneAPI+SYCLでGPU動作しました • CPU12コアの2倍程度の速度で動作。小さいモデルならそこそこ動く。メイ ンメモリとVRAM共有なので大きなモデルも動きます Intel Iris Xe GPU CPU
ipex-llm ベンチマーク Intel 12世代 1245U Iris Xe • Phi-3,3.5,4のベンチマーク比較。容量同じでも速度違いあり
Vulkan ベンチマーク Intel Core第8世代 UHD • Core第8世代 UHDでもvulkanでGPU動作しましたが遅い • CPUプロセスを少ししか食わないのでブラウザを使いながらllama.cppを 使う程度には良いですが・・・ Intel UHD GPU CPU
Vulkan ベンチマーク Intel Core第8世代 UHD • Gemma3 1B Q4_1なら8.10 tokens/sec 日本語怪しいですが Gemma3 270M Q4で17.75 tokens/sec • これだけモデルサイズが小さければRaspberryPiでも動きそうです。 Intel UHD GPU Intel UHD GPU
最軽量日本語対応モデル Qwen3 1.7B Q4 K_M • 僅か1.28GBなのにギリギリ日本語が使える。とても軽量・高速 CPUやIntel UHDなど限られたリソースに最適。ipex_LLMで高速 おおよそllama3.2 3Bの1.5倍高速モデル。オススメ https://huggingface.co/Alcoft/Qwen_Qwen3-1.7B-GGUF/tree/main N100内蔵UHD+ipex-LLM(oneAPI+SYCL): 7.68 tokens/sec Core 第8世代 内蔵UHD+Vulkan:5.66 tokens/sec
RaspberryPi5 のベンチマーク報告例
AIサジェスチョンならFish shell AIも • AIオートサジェスチョン機能ならFish-AIの方が操作系が良いです。 https://github.com/Realiserad/fish-ai
よくある質問・疑問点 • CPUではだめなんですか? --- 遅いだけです。その分CPUメモリは安い。 • 古いPCあるんですが・・・---ジャンクGPUかノートパソコンならeGPUで高速化。 • AndroidスマホのGPUは動きますか?--- VRAMが機種により差があるがVulkan Termuxとllama.cppで標準でvulkanが動くそうですが問題もあり。 Subtle Vulkan shader compilation bug when running on Adreno GPUs (Samsung Galaxy S23 Ultra) #5186 https://github.com/ggml-org/llama.cpp/issues/5186 • NVIDIA以外のGPUは動くのですか? --- ROCm,DirectML,Metal,oneAPI+SYCLでも動く • なぜIntel Arcは生成AIであまり使われないの? --- 動作は問題なし。ipex-llm推奨 • Intel NPUでも動きますか?--- OpenVINOかoneAPI+SYCL推奨(ipex-llm) • ノートパソコンの内蔵GPUは使えますか? ---遅いけどIntel内蔵GPUは動く。Intel Iris XeやUHD動作確認 AMDのデスクトップやゲーミングPCは内蔵VRAMをBIOSで変更できるかも。 • Ollamaのモデルを追加したけどSimonW/LLMで動かない?---llm install llm-ollamaをもう一度実行 • Ollamaは何故*BSDに対応していないの?---vulkanを強制指定してエラーが出るバグあり。どうも開発者が*BSDのサポートに興味が無い らしく修正されていません。FreeBSDコミュニティが過去に大騒ぎしていました。 https://github.com/ollama/ollama/issues/1102 • そもそもPythonフルスクラッチの方が良くない?--- もちろんYES。SimonW/LLMは手軽さと汎用性重視
まとめ • 簡単なSimonW/LLMの使い方と説明 • SimonW/LLMのインストール方法を説明 • 簡単なコマンドラインを実例に各OSで動作 • 各種GPUをLinuxで動作確認。ノートパソコン内蔵GPUもOK • 現時点最軽量日本語対応モデル Gemma3 1B Q4_1かQwen3 1.7B Q4_K_M を低スペックPCでも推奨