今回はFirefoxが持つAI機能の1つ、チャットボット、特にページの要約機能で使用するLLMをローカルLLMに変更する方法を紹介します。
FirefoxとLLM
1か月ほど前の2月3日に、FirefoxのAI機能を一元管理でブロック可能にという記事が公開されました。この記事ではFirefoxのAI機能が5つ紹介されていますが、少なくとも筆者が使用しているUbuntu 24.
要約機能はAIチャットボット機能の1つで、本文中にもあるようにサイドバーから使用するLLMを選択して実行するものです。あとの機能はMozillaのブログ
そしてサイドバーのAIチャットボットを開いてみると、大手のLLMサービスばかりでローカルLLMの選択肢はありません
今回使用するPC
今回使用するPCのスペックは次のとおりです。
| メーカー | 型番 | 備考 | |
|---|---|---|---|
| CPU | Intel | Core-i5 13500 | |
| メモリー | Crucial | CT2K32G4DFD832A | 64GB |
| マザーボード | ASRock | B760M Pro RS/ |
|
| CPUファン | ID-COOLING | IS-55-BLACK | |
| グラフィックボード | 玄人志向 | RD-RX9060XT-E16GB/ |
VRAM 16GB |
| SSD | Crucial | CT500MX500SSD1 | |
| リムーバブルケース | Silver Stone | SST-FS202 | |
| 電源ユニット | Silver Stone | SST-SX750-G | |
| ケース | Silver Stone | SST-SG11B |
諸般の事情で第891回とは替えています。
OSはもちろんUbuntu 24.
ローカルLLMを動作させる
LLM
今回使用するRD-RX9060XT-E16GB/
真っ先に考慮すべきはgpt-oss-20bです。しかし、この記事にあるように2025年8月リリースで、今となってはやや古くなっています。gpt-ossを改変したGPT-OSS Swallowにするのも手です。というわけで、両方紹介します。
gpt-oss-20b
ggml-org/
GPT-OSS Swallow
公式には現在のところllama.
そこで第872回でも紹介した、変換と量子化を行います。ストレージの空き容量を150GB程度確保した上で次のコマンドを実行してください。
$ sudo apt install -y git git-lfs libvulkan-dev glslc python3-pip python3-venv $ mkdir ~/git $ cd ~/git $ git clone https://github.com/ggml-org/llama.cpp.git $ cd llama.cpp $ mkdir build $ cmake -B build -DGGML_VULKAN=1 $ cmake --build build --config Release $ cd ~/git $ python3 -m venv ~/git/.gguf $ source ~/git/.gguf/bin/activate $ pip3 install -r ./llama.cpp/requirements.txt $ git clone https://huggingface.co/tokyotech-llm/GPT-OSS-Swallow-20B-RL-v0.1 $ llama.cpp/convert_hf_to_gguf.py GPT-OSS-Swallow-20B-RL-v0.1/ $ llama.cpp/build/bin/llama-quantize ./GPT-OSS-Swallow-20B-RL-v0.1/GPT-OSS-Swallow-20B-RL-v0.1-BF16.gguf GPT-OSS-Swa llow-20B-RL-v0.1/GPT-OSS-Swallow-20B-RL-v0.1-mxfp4.gguf MXFP4_MOE
これで~/git/が生成されます。
llama.cpp
今回もモデルを動作させるインターフェースはllama.
Releaseページの最新の
AMDユーザー向けにはsudo usermod -a -G render $LOGNAMEを実行して現在のユーザーをrenderグループに追加する必要があります。さらに再起動も必要です。ここまでしてインストールしても現状はVulkanのほうが速いため、わざわざ使用する理由はありません。
ダウンロードしたら適当なフォルダーに展開してください。
起動
llama.
gpt-oss-20b
$ ./llama-server -m ~/Downloads/gpt-oss-20b-mxfp4.gguf --threads -1 --ctx-size 32768 --jinja -ngl 99 --flash-attn on --port 8080 --chat-template-kwargs '{"reasoning_effort": "medium"}' --temp 1.0 --top-p 1.0 --top-k 0.0 --no-mmap --fit on --no-warmup
GPT-OSS Swallow
$ ./llama-server -m ~/git/GPT-OSS-Swallow-20B-RL-v0.1/GPT-OSS-Swallow-20B-RL-v0.1-mxfp4.gguf --threads -1 --ctx-size 32768 --jinja -ngl 99 --flash-attn on --port 8080 --temp 0.6 --top-p 0.95 --top-k 20 --min-p 0 --no-mmap --fit on --no-warmup
注意
複数のVulkanデバイスが認識している場合、具体的にはiGPUとdGPU--device Vulkan0オプションを追加して実行してください。
FirefoxのAI要約機能をローカルLLMで使用する
前置きが長すぎましたが、いよいよ本題です。
AIチャットボットによるローカルLLMはセキュリティの都合でデフォルトでは有効になっていないということで、URLの入力欄に
検索欄に
詳しくは紹介しませんが、
ここでサイドバーを開いてみると、AIチャットボットに
するとチャットボットが開き、左下に
ここをクリックすると、開いているページを要約してくれます
この記事も提出前に要約させ、趣旨と齟齬がないことを確認しています。またチェックもさせたら誤字を見つけてくれて助かりました。校正にも使えそうです。