<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AI | wholenotism::blog</title>
	<atom:link href="https://www.wholenotism.com/blog/tag/ai/feed" rel="self" type="application/rss+xml" />
	<link>https://www.wholenotism.com/blog</link>
	<description>日々の雑感とかバイクとか英語とか...なんかそんなん諸々</description>
	<lastBuildDate>Thu, 25 Jun 2026 19:15:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.wholenotism.com/blog/wp-content/uploads/cropped-favicon-32x32.png</url>
	<title>AI | wholenotism::blog</title>
	<link>https://www.wholenotism.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>llama.cppで始めるローカルAI入門—古いIntel Macでも意外と動く【8.5 t/s】</title>
		<link>https://www.wholenotism.com/blog/2026/06/build-llamacpp-intel-mac.html</link>
					<comments>https://www.wholenotism.com/blog/2026/06/build-llamacpp-intel-mac.html#respond</comments>
		
		<dc:creator><![CDATA[watary]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 21:58:49 +0000</pubDate>
				<category><![CDATA[コンピュータ関連]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[プログラム・スクリプト]]></category>
		<guid isPermaLink="false">https://www.wholenotism.com/blog/?p=17111</guid>

					<description><![CDATA[古いIntel MacでローカルLLMが動くのか、どの程度動くのかの検証です。 前回の記事でOllamaを使ってみたものの、遅過ぎて使えない。 なのでllama.cppを直接ビルドして使ったら Ollamaの約4倍の速度 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>古いIntel MacでローカルLLMが動くのか、どの程度動くのかの検証です。</p>
<p><a rel="noopener" href="https://www.wholenotism.com/blog/2026/05/ollama-local-llm-intel-imac.html" target="_blank">前回の記事</a>でOllamaを使ってみたものの、遅過ぎて使えない。<br />
なのでllama.cppを直接ビルドして使ったら <strong>Ollamaの約4倍の速度が出た！</strong> そんなお話です。</p>
<p>llama.cppのインストールからAIモデルを動かすまでをさらっとまとめてみます。</p>
<p><span id="more-17111"></span></p>

  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">llama.cppがollamaより早いと聞いて</a></li><li><a href="#toc2" tabindex="0">llama.cppについて</a></li><li><a href="#toc3" tabindex="0">まずはHomebrew版 llama.cpp を試す</a></li><li><a href="#toc4" tabindex="0">Githubからllama.cppを持ってきてビルド。メタルはオフ</a></li><li><a href="#toc5" tabindex="0">モデルファイル（gguf）をダウンロードして実行</a><ol><li><a href="#toc6" tabindex="0">速度感の比較</a></li></ol></li><li><a href="#toc7" tabindex="0">ブラウザからアクセスして llama-ui（WebUI）も使える</a></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">llama.cppがollamaより早いと聞いて</span></h2>
<p>前回は iMac2017 に Ollama をインストール、ローカルでAIモデルを動かしてみました。</p>
<p>でも遅い、あまりにも遅い。<br />
動いたことには感動だけれど <strong>1.92 t/s</strong> くらいで字面を追うのは地味にストレス。</p>
<p>もう少し軽いモデルはないかと色々試してみました。</p>
<p>軽いモデルを使えば若干速度は上がるもののやはり性能が落ちます。<br />
わけわかんないこと回答したり、なぜか英語と日本語のノイズ混じりの不思議な文章になっていたり。</p>
<p><strong>軽さと賢さはトレードオフ</strong>と知りながらも、何かないかと試していました。</p>
<p>結論としては・・・</p>
<p><span class="bold" style="font-size:150%;">ない！多分！（残念</span></p>
<p>やはり無理があったかと諦めかけたのですが、もう一つの可能性として <strong>実行環境を変えてみたらどうなるだろう</strong>、と。<br />
反応速度も上がるらしいと聞いたので llama.cpp を直接使ってみることにしました。</p>
<h2><span id="toc2">llama.cppについて</span></h2>
<p>実は Ollama の内部では llama.cpp が推論エンジンとして動いています。</p>
<ul>
<li><strong>llama.cpp</strong> = 「LLMをローカルで高速実行するための低レイヤー推論エンジン」</li>
<li><strong>Ollama</strong> = 「llama.cppなどを内部で利用して、モデル管理や実行を簡単にした上位ツール（ラッパー）」</li>
</ul>
<p>Ollamaを使えば、手軽で簡単にローカルAIを試すことができます。<br />
例えば画像を読み込ませれば楽々読み込んで説明してくれる。超簡単。</p>
<p>が、その反面動作はもっさりしてしまう。<br />
スペックが足りてないのだから仕方ないけど。</p>
<p>そこで余計なものは省き、直接 llama.cpp を適切な設定で動かせばもう少し快適に走らせることができるかなと。</p>
<p>iMac2017のような古いPCではその差が顕著に出るかもしれない。</p>
<h2><span id="toc3">まずはHomebrew版 llama.cpp を試す</span></h2>
<p>最初にHomebrewにある llama.cpp を試してみました。</p>
<pre class="language-bash"><code>brew install llama.cpp
</code></pre>
<p>でも結論から言うと、ダメ。</p>
<p>速度的には多少（気持ち程度）良くなった気がしますが、ただトークン/sを見てもさほど変わらない。<br />
変わらないなら意味がない。（※1）</p>
<p>テキストチャットでの問答くらいなら問題はありません。</p>
<h2><span id="toc4">Githubからllama.cppを持ってきてビルド。メタルはオフ</span></h2>
<p>さて、自分の環境に合わせてビルドしたらどのくらい変わるのか。<br />
Githubなんて必要な時にたまに眺めるくらいで使ったことなんてなかったけれど、トライしてみます。</p>
<p>まずは cmake と git をhomebrewからインストール</p>
<pre class="language-bash"><code>brew install cmake git 
</code></pre>
<p>次に llama.cpp のリポジトリをクローン（手元にダウンロード）します。</p>
<pre class="language-bash"><code>#git clone <リポジトリURL> <ローカル保存先パス>
git clone https://github.com/ggml-org/llama.cpp.git ~/Projects/llama.cpp
</code></pre>
<p>自分の環境に合わせてビルドします。</p>
<pre class="language-bash"><code>cd ~/Projects/llama.cpp
cmake -B build -DGGML_NATIVE=ON -DGGML_ACCELERATE=ON -DGGML_METAL=OFF
cmake --build build --config Release -j
</code></pre>
<p><strong>オプションの説明</strong></p>
<dl>
<dt><strong>-DGGML_NATIVE=ON</strong></dt>
<dd>実行しているパソコンのCPUが持つ高速化命令（AVX2やNEONなど）をフルに使うように指示します。速度アップ。</dd>
<dt><strong>-DGGML_ACCELERATE=ON</strong></dt>
<dd>Apple Accelerateフレームワーク(BLAS実装)をリンクするオプション。<br />
高精度・超高速の数学計算用機能（Accelerate）を有効にします。CPUでの計算が速くなります。</dd>
<dt><strong>-DGGML_METAL=OFF</strong></dt>
<dd>MacのGPUを使う機能（Metal）を「オフ」にし、cpuオンリーで使用する。</dd>
</dl>
<p>最初はメタルをオフにせずビルドし、画像を読む <code>--mmproj</code> も使って画像を説明させようとしました。<br />
ところが何回やってもエラーで止まってしまう。<br />
そのまま設定を詰めていくよりいっそのこと cpuオンリー にしたほうが良いように思えたのでそのように。<br />
結果としてうまく行きました。<br />
足を引っ張るGPUを切ったからか通常のレスポンスも、僅かにですが、早いです。</p>
<p>兎にも角にもインストールは完了。</p>
<p>最後にパスを通しておきます。</p>
<pre class="language-bash"><code>echo 'export PATH=~/Projects/llama.cpp/build/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
</code></pre>
<h2><span id="toc5">モデルファイル（gguf）をダウンロードして実行</span></h2>
<p>さぁAIの脳みそとも言うべきモデルファイルを入手します。<br />
<a rel="noopener" href="https://huggingface.co/models" target="_blank">Hugging Face<span class="fa fa-external-link external-icon anchor-icon"></span></a> からモデルを検索してダウンロードしました。</p>
<p><a rel="noopener" href="https://huggingface.co/unsloth/gemma-3-4b-it-qat-GGUF" target="_blank">gemma-3-4b-it-qat-Q4_K_M.gguf<span class="fa fa-external-link external-icon anchor-icon"></span></a>　あたりが安定して動いてくれる気がします。<br />
Googleが開発したオープンなAIモデル「Gemma 3」を、PCやスマートフォンなどの一般的な端末で軽量・高速に動かせるように最適化した、テキストおよび画像（マルチモーダル）対応のAIモデルファイルです。</p>
<p>ダウンロードが完了したらいよいよ実行します。</p>
<pre class="language-bash"><code>#パスは環境に合わせて
llama-cli -m ./models/gemma-3-4b-it-qat-Q4_K_M.gguf
</code></pre>
<p>起動したら　hi　とだけ挨拶してみます。</p>
<pre class="language-bash"><code>
Loading model...


▄▄ ▄▄
██ ██
██ ██  ▀▀█▄ ███▄███▄  ▀▀█▄    ▄████ ████▄ ████▄
██ ██ ▄█▀██ ██ ██ ██ ▄█▀██    ██    ██ ██ ██ ██
██ ██ ▀█▄██ ██ ██ ██ ▀█▄██ ██ ▀████ ████▀ ████▀
                                    ██    ██
                                    ▀▀    ▀▀

build      : b9691-2e88c49c9
model      : gemma-3-4b-it-qat-Q4_K_M.gguf
modalities : text

available commands:
  /exit or Ctrl+C     stop or exit
  /regen              regenerate the last response
  /clear              clear the chat history
  /read &lt;file&gt;        add a text file
  /glob &lt;pattern&gt;     add text files using globbing pattern


> hi

Hi there! How’s your day going so far? Is there anything I can help you with today? &#x1f60a; 

Just let me know what’s on your mind!

[ Prompt: 17.5 t/s | Generation: 8.5 t/s ]

> 
</code></pre>
<p>動きましたね。<code>Ctrl+C</code>で終了します。</p>
<p><strong>Generation: 8.5 t/s</strong></p>
<p>なので Ollama の時（※1）の <strong>1.92 t/s</strong> や、<br />
homebrewで入れた llama.cpp の <strong>1.5 t/s</strong> に比べると4倍以上の速度になりました。</p>
<h3><span id="toc6">速度感の比較</span></h3>
<p>画面収録の影響が出てますがそれでも以前よりぜんぜんマシ<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260618-001.gif"><img fetchpriority="high" decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260618-001.gif" alt="llama.cpp" width="800" height="420" class="alignnone size-full wp-image-17121" /></a></p>
<p>前回のollamaでの実行速度<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3j.gif"><img decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3j.gif" alt="20260407-g3j" width="850" height="460" class="alignnone size-full wp-image-17029" /></a></p>
<div class="information-box">※1 ollama 0.30.9 では同じ内容で <strong>6.20 t/s</strong> に、<br />
homebrewで入れたllama.cppも 9430 -> 9670 にしたら <strong>8.1 t/s</strong> になりました。</div>
<h2><span id="toc7">ブラウザからアクセスして llama-ui（WebUI）も使える</span></h2>
<p>これまでは <code>llama-cli</code> で動かしてきましたが、 <code>llama-server</code> で起動するとブラウザからアクセスして ChatGPT のような画面で使うこともできます。<br />
httpサーバーを起動</p>
<pre><code>llama-server -m ./models/gemma-3-4b-it-qat-Q4_K_M.gguf</code></pre>
<p>ブラウザを立ち上げ、<code>http://localhost:8080/</code>にアクセスすると、llama-ui という画面にアクセスできます。<br />
こっちの方が馴染みがありますね。画面を見ると相変わらず訳わかんないこと言ってますが笑<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260618-002.jpg"><img decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260618-002.jpg" alt="llama-ui" width="1130" height="783" class="alignnone size-full wp-image-17128" srcset="https://www.wholenotism.com/blog/wp-content/uploads/20260618-002.jpg 1130w, https://www.wholenotism.com/blog/wp-content/uploads/20260618-002-300x208.jpg 300w, https://www.wholenotism.com/blog/wp-content/uploads/20260618-002-800x554.jpg 800w, https://www.wholenotism.com/blog/wp-content/uploads/20260618-002-768x532.jpg 768w" sizes="(max-width: 1130px) 100vw, 1130px" /></a></p>
<p>ちなみにWebUI使うとやはりちょっと遅いです。</p>
<p>WebUIと、ターミナルからcurlでアクセスしたものとの差を比較してみます。</p>
<p>別のターミナルウインドウを開き、</p>
<pre><code>curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{ "model": "gemma-3", "messages": [{"role": "user", "content": "部屋に5本のキャンドルが灯っています。風が吹いて2本が消えました。翌朝、部屋には何本のキャンドルが残っているでしょうか？ 理由も添えて答えてください。"}]}'</code></pre>
<p>と打つと同じように答えてくれますが、</p>
<ul class="bold">
<li>WebUI → 約6.68 t/s</li>
<li>curl → 約8.4t/s</li>
</ul>
<p>1.25倍くらいの速度差があります。</p>
<h2><span id="toc8">まとめ</span></h2>
<p>とりあえず簡単なチャットならストレスなく行えるようになりました。</p>
<p>本当は、ビルドしたら早くなったのでそうすると良いよーって言いたかったのですが、<br />
この記事を書いている最中にアップデートしてみたらollamaもHomebrew版 llama.cppも普通に早くなったって言うね・・・</p>
<p><span class="bold" style="font-size:150%;">なんだったんじゃーーーー！</span></p>
<p>んまぁ、少しでも早く動くならいいか。</p>
<p>次の記事では画像を読ませて、その画像について説明させてみます。</p>
<p>ということで一連の流れを備忘録として記事化しました。<br />
では。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="17111"
					data-ulike-nonce="c1c39e195f"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_17111"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://www.wholenotism.com/blog/2026/06/build-llamacpp-intel-mac.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Intel MacでもローカルAIは動く？iMac2017 Ollamaで検証してみた【1.98 t/s】</title>
		<link>https://www.wholenotism.com/blog/2026/05/ollama-local-llm-intel-imac.html</link>
					<comments>https://www.wholenotism.com/blog/2026/05/ollama-local-llm-intel-imac.html#respond</comments>
		
		<dc:creator><![CDATA[watary]]></dc:creator>
		<pubDate>Sat, 09 May 2026 01:47:26 +0000</pubDate>
				<category><![CDATA[コンピュータ関連]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[mac]]></category>
		<guid isPermaLink="false">https://www.wholenotism.com/blog/?p=17027</guid>

					<description><![CDATA[Mチップが搭載されていない古いiMac（2017, Intel Mac）でもLocal LLM（AI）は動くのか！？ やってみたくなったので試してみました。 まぁ結論としてはもちろん動くし、使えます。いや使えるというのは [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Mチップが搭載されていない古いiMac（2017, Intel Mac）でもLocal LLM（AI）は動くのか！？</strong></p>
<p>やってみたくなったので試してみました。</p>
<p>まぁ結論としてはもちろん動くし、使えます。いや使えるというのはちと・・・語弊がある？</p>
<p>OllamaのインストールからローカルでAIモデルを動かすまで、その一通りの流れを備忘録として記事化。</p>
<p><span id="more-17027"></span></p>

  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4"><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Local LLMを動かすにはApple Mチップ（Apple Silicon）が良い？</a></li><li><a href="#toc2" tabindex="0">ローカルLLMを動かすために必要なツール</a></li><li><a href="#toc3" tabindex="0">Ollamaをインストール</a></li><li><a href="#toc4" tabindex="0">Ollamaを起動</a></li><li><a href="#toc5" tabindex="0">モデルファイルをダウンロードして実行する</a></li><li><a href="#toc6" tabindex="0">AIのカスタマイズ、Modelfileの作成</a><ol><li><a href="#toc7" tabindex="0">手順</a></li><li><a href="#toc8" tabindex="0">カスタムモデルとして登録</a></li></ol></li><li><a href="#toc9" tabindex="0">実際に動かしてみた速度感（トークン/s）</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">Local LLMを動かすにはApple Mチップ（Apple Silicon）が良い？</span></h2>
<p>Apple独自のアーキテクチャがAI処理と非常に相性が良いらしい。</p>
<p>通常、CPUとGPU（グラフィック）のメモリは分けて搭載されているが、近年のMacはこれらが一体になった「ユニファイドメモリ」を採用。<br />
これにより、搭載されているメモリのほぼ全てをAIモデルの読み込みに使えるため、大容量のモデルを快適に動作させることができる。</p>
<p>そしてLLMを動かすにはGPUの性能が重要。<br />
Apple Mチップはチップ内に強力なGPUを内蔵しており、これが高速処理を可能にする、のだとか。</p>
<p>と、ここまで書いておいてなんですが、<strong>そんなこたぁどうでも良い。</strong></p>
<p>だって手元にあるのは、<strong>貧弱なグラフィックボードを搭載し、Mチップを搭載していないIntel Mac（iMac2017）なのだから！それで動かした結果どうなのかという検証なのだから！</strong></p>
<p>・・・。</p>
<p>負け惜しみはさておき、必要なものを見ていきます。</p>
<h2><span id="toc2">ローカルLLMを動かすために必要なツール</span></h2>
<p>AIモデルファイルは例えるなら<strong>「脳」</strong>。<br />
脳だけでは何もできません。動かすための<strong>「入れ物（実行環境）」</strong>が必要。それが Ollama などのツールです。</p>
<p>モデルファイルが「ゲームのディスク」、実行環境が「ゲーム機」と言ったらわかりやすいのかもしれない。イメージ的に。</p>
<p>そして今回使う Ollama は、</p>
<ul class="bold">
<li>モデルを管理し</li>
<li>ダウンロードし</li>
<li>実行し</li>
<li>APIとして提供する</li>
</ul>
<p>それらが簡単に行えるツールの一つです。</p>
<h2><span id="toc3">Ollamaをインストール</span></h2>
<p>モデルファイルは Ollama からダウンロード、実行することができるので、<br />
まずは Ollama をセッティングし、その後いろんなモデルを試すことになります。</p>
<p>Homebrew版を使います。<br />
Homebrewをあらかじめインストールしておいてください。-> <a rel="noopener" href="https://brew.sh/ja/" target="_blank">https://brew.sh/ja/<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>
<p>ターミナルから</p>
<pre><code>brew install ollama</code></pre>
<pre class="nohighlight">% brew install ollama
&#x2714;︎ JSON API formula.jws.json Downloaded   32.0MB/ 32.0MB
==> Fetching downloads for: ollama
&#x2714;︎ Bottle Manifest ollama (0.23.2) Downloaded   13.9KB/ 13.9KB
&#x2714;︎ Bottle ollama (0.23.2) Downloaded   15.0MB/ 15.0MB
==> Pouring ollama--0.23.2.sonoma.bottle.tar.gz
==> Caveats
To start ollama now and restart at login:
brew services start ollama
Or, if you don't want/need a background service you can just run:
OLLAMA_FLASH_ATTENTION="1" OLLAMA_KV_CACHE_TYPE="q8_0" /usr/local/opt/ollama/bin/ollama serve
==> Summary
&#x1f37a;  /usr/local/Cellar/ollama/0.23.2: 9 files, 40.5MB
</pre>
<p>Ollamaがインストールされました。</p>
<h2><span id="toc4">Ollamaを起動</span></h2>
<p>インストールしたOllamaを起動します。</p>
<p>バックグラウンドで常時起動させておきたいなら下記のように入力しデーモンとして起動します。</p>
<p>ターミナルから</p>
<pre><code>brew services start ollama</code></pre>
<p>でも常に動かしておく必要は自分にはないので、使いたい時に起動します。</p>
<pre><code>ollama serve</code></pre>
<p>あるいはインストール時のログにあったように</p>
<pre><code>OLLAMA_FLASH_ATTENTION="1" OLLAMA_KV_CACHE_TYPE="q8_0" ollama serve</code></pre>
<p>と打ち込みます。</p>
<ul>
<li><strong>OLLAMA_FLASH_ATTENTION=&#8221;1&#8243;</strong><br />
Flash Attention という高速化技術を有効にするための環境変数<br />
主にGPU向けに最適化された技術なのでCPU環境ではおまじない程度
</li>
<li><strong>OLLAMA_KV_CACHE_TYPE=&#8221;q8_0&#8243;</strong><br />
キャッシュを量子化（圧縮）することでメモリ消費量を抑える</li>
</ul>
<p>※環境変数については公式FAQを参照のこと。</p>
<h2><span id="toc5">モデルファイルをダウンロードして実行する</span></h2>
<p>さて、今のターミナルウインドウはそのままに、新しいウインドウを開きます。</p>
<p>「<strong>Gemma 3:4b-it-qat</strong>」というAIモデルを試してみます。</p>
<ol>
<li> <strong>圧倒的な日本語の自然さ:</strong> 文脈の理解がスムーズ</li>
<li> <strong>Intel Macでも動く軽さ:</strong> 4b（約40億パラメータ）なので、専用GPUがないiMac 2017でも実用的な速度で返ってくる（※環境による）</li>
<li> <strong>QAT（量子化）の恩恵:</strong> <code>qat</code> 版は精度を維持しつつメモリ消費を抑えているため、Intel Macの限られたリソースに最適</li>
</ol>
<p>ターミナルから</p>
<pre><code>ollama run gemma3:4b-it-qat</code></pre>
<p><code>ollama <strong>pull</strong> gemma3:4b-it-qat</code> で<strong>取得だけ</strong>もできますが、<br />
<code>ollama <strong>run</strong> gemma3:4b-it-qat</code> とすると実行する際にまだDLしていなければ<strong>取得して実行</strong>してくれます。</p>
<pre class="nohighlight"><code>% ollama run gemma3:4b-it-qat
pulling manifest 
pulling 529850705c08: 100% 4.0 GB
pulling 5be6630b666f: 100% 359 B
pulling 3116c5225075: 100% 77 B
pulling 34ec2fc9f116: 100% 413 B
verifying sha256 digest 
writing manifest 
success 
>>> Send a message (/? for help)
</code></pre>
<p>動きました。</p>
<p><code>>>> Send a message</code>　となっているところに質問を書けば会話が始まります。</p>
<p>簡単ですね。素晴らしい。</p>
<p>会話を終えるには ctrl + d<br />
<code>ollama serve</code>したターミナルでは ctrl + c で終了します。</p>
<p>終了せずに間違ってターミナルを閉じてしまった場合は改めてターミナルを開き、<code>pkill ollama</code> か、<br />
アクティビティモニタを起動して ollama のプロセスを終了させます。</p>
<p>ちなみにモデルは ollama の<a rel="noopener" href="https://ollama.com/" target="_blank">公式サイト<span class="fa fa-external-link external-icon anchor-icon"></span></a>から探せます。</p>
<h2><span id="toc6">AIのカスタマイズ、Modelfileの作成</span></h2>
<p>そのまま <code>ollama run</code> しても動きますが、より使いやすく、反応の仕方や性格付けをするために<strong>Modelfile</strong>を作成します。</p>
<h3><span id="toc7">手順</span></h3>
<p>適当なディレクトリに <code>Modelfile</code>（拡張子なし）というファイルを作成します。<br />
ただそれだと後から分かりづらいので <code>Modelfile.gemma3-creative</code> のように名前をつけると良いかも。<br />
こうすることで複数のModelfileを一箇所において管理できます。</p>
<p>以下の内容を書き込みます。</p>
<pre><code># ベースとなるモデルを指定
FROM gemma3:4b-it-qat

# パラメータ設定（創造性と正確性のバランス）
PARAMETER temperature 1.0
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1

# システムプロンプト（ここで日本語の振る舞いを固定する）
SYSTEM """
あなたは日本語で自然に会話するアシスタントです。
必ず日本語で、わかりやすく説明してください。
機械翻訳のような不自然な表現は避けてください。
"""
</code></pre>
<p>パラメータはOllamaの<a rel="noopener" href="https://docs.ollama.com/modelfile#parameter" target="_blank">Modelfileリファレンス<span class="fa fa-external-link external-icon anchor-icon"></span></a>で確認できます。</p>
<p>まずは <code>temperature</code> をいじるのが一番変化を実感しやすいです。プログラミングや事実確認なら 0.1〜0.3、小説執筆やアイデア出しなら 1.0以上 を試してみてください。</p>
<h3><span id="toc8">カスタムモデルとして登録</span></h3>
<p>ターミナルでModelfileがある場所に移動し、カスタムモデル（例：<code>gemma3-creative</code>）として登録します。</p>
<pre><code># カスタムモデルの作成 -f で作成したModelfileを指定
ollama create gemma3-creative -f Modelfile.gemma3-creative

# 実行
ollama run gemma3-creative
</code></pre>
<p>削除したい時は</p>
<pre><code># モデルのリスト表示
ollama list
# 削除したい時は
ollama rm gemma3-creative
</code></pre>
<h2><span id="toc9">実際に動かしてみた速度感（トークン/s）</span></h2>
<div class="information-box">環境：iMac 2017（2.3GHz デュアルコアIntel Core i5/Intel Iris Plus Graphics 640 1536MB/16GB 2133MHz DDR4）</div>
<p>実際に動かしてみた感じが伝わるようGIFにしてみました。伝わるかな？</p>
<p>1.98 tokens/s くらい。<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3j.gif"><img loading="lazy" decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3j.gif" alt="20260407-g3j" width="850" height="460" class="alignnone size-full wp-image-17029" /></a><br />
遅いね・・・遅い。</p>
<p>英語なら？<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3e.gif"><img loading="lazy" decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g3e.gif" alt="20260407-g3e" width="850" height="460" class="alignnone size-full wp-image-17030" /></a><br />
うん、変わらんね。遅すぎる。</p>
<p>ちなみに最近公開された「Gemma4」も試してみました。<br />
<a href="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g4e.gif"><img loading="lazy" decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260407-g4e.gif" alt="20260407-g4e" width="850" height="460" class="alignnone size-full wp-image-17031" /></a></p>
<p>Thinking modeというAIが考えている内容（推論）を見ることができて大変興味深いのですが、回答が出てくるまでがもんのすごい遅いので・・・飽きます。最初は楽しいんだけどね。<br />
オフにすることもできるし、そうすると回答までの時間が若干短縮されたように思えたけど遅いことには変わりなし。<br />
ただモデルが悪いのではなく、遅い環境なのが問題なのでそこはお間違い無く。</p>
<div class="information-box"><code>--verbose</code> オプションをつけて起動すると終了時にスタッツが見れます。</div>
<h2><span id="toc10">まとめ</span></h2>
<p>ごくごく簡単に iMac2017 でローカルLLMを動かす説明をしてみました。<br />
速度はお世辞にも快適とは言えません。レスポンスを待つ時間は覚悟が必要です。ただ、<strong>ローカルで動く・データが外に出ない・APIコストがかからない</strong> という点は大きなメリットです。</p>
<p>なにより素人でも少しいじればAIをローカルで動かせるってすごいよね。</p>
<p>でも実は Ollama の中で動いている llama.cpp を自分の環境に合わせてビルドし、直接使うことによって速度を上げることができるのです。<br />
正直使い道も何もあったもんじゃないなと思っていたのに試してみてビックリ。</p>
<p>4倍くらいは早くなったので、すこしは光明が見えてきたかも？</p>
<p>そのあたりは次の記事で。</p>

<a href="https://www.wholenotism.com/blog/2026/06/build-llamacpp-intel-mac.html" title="llama.cppで始めるローカルAI入門—古いIntel Macでも意外と動く【8.5 t/s】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-160x90.png 160w, https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-300x169.png 300w, https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-768x432.png 768w, https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-120x68.png 120w, https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci-320x180.png 320w, https://www.wholenotism.com/blog/wp-content/uploads/20260407-eci.png 800w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">llama.cppで始めるローカルAI入門—古いIntel Macでも意外と動く【8.5 t/s】</div><div class="blogcard-snippet internal-blogcard-snippet">古いIntel MacでローカルLLMが動くのか、どの程度動くのかの検証です。前回の記事でOllamaを使ってみたものの、遅過ぎて使えない。なのでllama.cppを直接ビルドして使ったら Ollamaの約4倍の速度が出た！ そんなお話です...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.wholenotism.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.wholenotism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.06.18</div></div></div></div></a>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="17027"
					data-ulike-nonce="c187c5e519"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_17027"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://www.wholenotism.com/blog/2026/05/ollama-local-llm-intel-imac.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GeminiのBANが怖いので、ログアウト運用＋前提プロンプト挿入を自動化してみた</title>
		<link>https://www.wholenotism.com/blog/2026/04/gemini-one-click-prompt.html</link>
					<comments>https://www.wholenotism.com/blog/2026/04/gemini-one-click-prompt.html#respond</comments>
		
		<dc:creator><![CDATA[watary]]></dc:creator>
		<pubDate>Sun, 05 Apr 2026 05:41:16 +0000</pubDate>
				<category><![CDATA[コンピュータ関連]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[tampermonkey]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[プログラム・スクリプト]]></category>
		<guid isPermaLink="false">https://www.wholenotism.com/blog/?p=16732</guid>

					<description><![CDATA[目次 AIは基本的に一時チャットで使いたい派Tampermonkeyを使ってプロンプト挿入ボタンを置く注意点ログアウト状態での長いやりとりはブラックリスト入り！？まとめ AIは基本的に一時チャットで使いたい派 普段から  [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6"><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AIは基本的に一時チャットで使いたい派</a></li><li><a href="#toc2" tabindex="0">Tampermonkeyを使ってプロンプト挿入ボタンを置く</a><ol><li><a href="#toc3" tabindex="0">注意点</a></li><li><a href="#toc4" tabindex="0">ログアウト状態での長いやりとりはブラックリスト入り！？</a></li></ol></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">AIは基本的に一時チャットで使いたい派</span></h2>
<p>普段から Google Gemini を利用させてもらっていますが、<strong>ログアウトした状態</strong>で使っています。</p>
<p>AIは基本的に一時チャットで使いたい派。<br />
会話履歴とか引きずって欲しくないんです。</p>
<p>ChatGPTもClaudeも一時チャット（シークレット/インコグニートモード）。全部無料版ですが。<br />
Geminiはログアウトした状態でも使えるのでログインせずに使っています。</p>
<p>最近小耳に挟んだ話で「<strong>GeiminiでアカウントがBANされると、そのGoogleアカウントに紐づいた全てのサービスが使えなくなる</strong>」なんてことを聞きました。GmailからGoogle driveから全てだとか。恐ろしいにも程がある。<br />
それならなるべくログアウトした状態で使いたい。</p>
<p>ただちょっとだけ困るのが、<strong>プロンプト（カスタム指示）が設定できないこと。</strong></p>
<p>当の本人に聞いてみたら<br />
「会話の初めに書くと良いよ！」<br />
とのことなので、必要な時にワンクリックで前提プロンプトを挿入できるようにしてみました。</p>
<p><span id="more-16732"></span></p>
<h2><span id="toc2">Tampermonkeyを使ってプロンプト挿入ボタンを置く</span></h2>
<p>「Tampermonkey」はFirefoxやChromeなどでユーザースクリプト（JavaScript）を管理・実行できる無料のブラウザ拡張機能です。<br />
その機能を使って「プロンプト挿入ボタン」を作成します。</p>
<p>ダッシュボードの「＋」ボタンから新規スクリプトを追加。<br />
下記コードをコピペします。保存したら有効化しているかも確認。</p>
<pre><code>
// ==UserScript==
// @name         Gemini 定型文挿入（1回使い切りボタン）
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  定型文挿入後、すぐ入力できるように末尾にカーソルを移動し、ボタンを消去
// @match        https://gemini.google.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const myPrompt = "【前提条件：①事実と推測を分離 ②ハルシネーション回避。根拠が不十分な場合は「不明」と明記し断定をしない ③ユーザーの意図や期待に迎合して、事実認識や論理的な結論を歪めないこと（忖度禁止）。】\n\n";
    // ボタンの作成
    const btn = document.createElement('button');
    btn.id = 'gemini-prompt-btn'; // IDを付与
    btn.textContent = "&#x1f6e1;&#xfe0f; 厳格モード"
    btn.setAttribute('style', 'position:fixed; bottom:120px; right:20px; z-index:9999; padding:12px 20px; background:#1a73e8; color:white; border:none; border-radius:30px; cursor:pointer; font-weight:bold; box-shadow: 0 4px 12px rgba(0,0,0,0.2); transition: opacity 0.3s;');

    btn.onclick = function() {
        const container = document.querySelector('div[contenteditable="true"]');

        if (container) {
            // 1. テキストをセット
            container.innerText = myPrompt;

            // 2. 入力イベントを発火
            container.dispatchEvent(new Event('input', { bubbles: true }));

            // 3. カーソルを末尾に移動
            const range = document.createRange();
            const sel = window.getSelection();
            range.selectNodeContents(container);
            range.collapse(false);
            sel.removeAllRanges();
            sel.addRange(range);

            container.focus();

            // 4. ボタンを消去（フェードアウトさせてから削除）
            btn.style.opacity = '0';
            setTimeout(() => {
                btn.remove();
            }, 300);

        } else {
            alert('入力欄が見つかりませんでした。ページを更新してみてください。');
        }
    };

    // ページ読み込み時にボタンを追加
    document.body.appendChild(btn);
})();
</code></pre>
<p>やってることはシンプル。</p>
<ol class="bold">
<li>入力欄を取得</li>
<li>テキストをセット</li>
<li>カーソルを末尾に移動</li>
<li>ボタンをフェードアウトして削除</li>
</ol>
<p>あらかじめ <code>myPrompt</code> に前提となるプロンプトを記述しておき、<br />
厳格なプロンプトを適用したい時にボタン押下で入力欄に挿入します。</p>
<p><a href="https://www.wholenotism.com/blog/wp-content/uploads/20260405-001.jpg"><img loading="lazy" decoding="async" src="https://www.wholenotism.com/blog/wp-content/uploads/20260405-001-800x501.jpg" alt="プロンプト挿入ボタン" width="800" height="501" class="alignnone size-large wp-image-16736" srcset="https://www.wholenotism.com/blog/wp-content/uploads/20260405-001-800x501.jpg 800w, https://www.wholenotism.com/blog/wp-content/uploads/20260405-001-300x188.jpg 300w, https://www.wholenotism.com/blog/wp-content/uploads/20260405-001-768x481.jpg 768w, https://www.wholenotism.com/blog/wp-content/uploads/20260405-001.jpg 874w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<div class="ad-area no-icon ad-shortcode ad-fluid ad-label-invisible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-4405475467092514"
  data-ad-slot="2803567186"     data-ad-layout="in-article"
  data-ad-format="fluid"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>

<p>もう少し細かく説明すると、</p>
<p>ボタンがクリックされたら、<br />
<code>contenteditable="true"</code> が付いた div を探します。これが入力欄。</p>
<pre><code>const container = document.querySelector('div[contenteditable="true"]');</code></pre>
<p>見つかったらプロンプトをセット</p>
<pre><code>container.innerText = myPrompt;</code></pre>
<p>inputイベントを発火<br />
テキストが挿入されて「変更があった」ことを認識させ</p>
<pre><code>container.dispatchEvent(new Event('input', { bubbles: true }));</code></pre>
<p>カーソルを末尾に移動</p>
<pre><code>const range = document.createRange(); //空の選択範囲を作成
const sel = window.getSelection(); //現在の選択状態を取得
range.selectNodeContents(container); //containerの中身全体を選択
range.collapse(false); //末尾に折りたたむ -> 最後にカーソルを移動
sel.removeAllRanges(); //今の選択を全部クリア
sel.addRange(range); //「現在の選択」として設定
</code></pre>
<p>入力欄をアクティブにして、続けてユーザーが入力できるようにします。</p>
<p>最後にもう必要ないのでボタンを消去。</p>
<p>ちなみに会話の途中からプロンプトを挿入することは想定していません。<br />
ログアウト状態なので、毎回サイトを開くたびにフレッシュスタート、初めましての状態です。<br />
その<strong>最初に入力することを想定</strong>しています。</p>
<h3><span id="toc3">注意点</span></h3>
<p>これは現在（2026年4月）の時点で有効なものです。ページの構成や仕様が変わったら動かなくなる可能性があります。<br />
特に</p>
<pre><code>const container = document.querySelector('div[contenteditable="true"]');</code></pre>
<p>この部分は変更されたら入力欄が取得できないので、動かなくなったらソースを見て適宜変更してください。</p>
<h3><span id="toc4">ログアウト状態での長いやりとりはブラックリスト入り！？</span></h3>
<div class="alert-box"><strong>長いやり取りをログアウト状態で続けると一時的にブラックリストに入る可能性があります。</strong></div>
<p>具体的にはそのチャット画面で送信ができなくなり、改めてアクセスしても「502エラー」の画面が出たりするようになります。<br />
502は基本的にサーバー側のエラーなのですが、ある時Firefoxでは繋がらなくなり、safariなら問題なくアクセスできるという状況になりました。FIrefoxのキャッシュやらなにやらクリアしても状況は変わらず。<br />
IPアドレスによる拒否ではないようで、そのままsafariでgeminiに起きている事象を聞いてみたら「一時的に接続拒否されているかも」、と。</p>
<p>時間を開ければ復活するようですが、あまり長いやり取りをするのは避けましょう。<br />
様子がおかしくなってきたら切り上げるか、<br />
「ここまでの内容を次のスレで使えるように要約して」と話をまとめてメモし、少し間をあけましょう。</p>
<h2><span id="toc5">まとめ</span></h2>
<p>ということでGeminiを開いたらボタンが現れ、必要な時はワンクリックでプロンプトを挿入できるようになりました。</p>
<p>他愛のない話をする分には必要ありませんが、調べ物なんかの時に嘘つかれるのが厄介というか、面倒なんですよね。</p>
<p>いちいち手入力するのもかったるいので作ってみました。</p>
<p>ただログアウト状態で使っていると画像が扱えないなどの機能制限がありますし、やり取りが長引いた時はそれとなくログインするよう勧めてきます。<br />
自分の場合は聞きたいことを必要な時に聞くだけなので特に支障はありませんが。</p>
<p>そして上記の方法は、Googleアカウントに紐づかないからと言ってリスクが無くなるわけではありません。<br />
<strong>「リスクをゼロにする」のではなく「被害範囲を限定する」アプローチ</strong>であることもお忘れなく。<br />
何をしてもいいわけではありませんから。</p>
<p>以上、備忘録として記事化してみました。<br />
なにかの参考になれば幸いです。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="16732"
					data-ulike-nonce="021792a2eb"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_16732"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://www.wholenotism.com/blog/2026/04/gemini-one-click-prompt.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Firefox147にアップデートしたらChatGPTが壊れた話</title>
		<link>https://www.wholenotism.com/blog/2026/01/firefox147breakchatgpt.html</link>
					<comments>https://www.wholenotism.com/blog/2026/01/firefox147breakchatgpt.html#respond</comments>
		
		<dc:creator><![CDATA[watary]]></dc:creator>
		<pubDate>Fri, 16 Jan 2026 20:20:42 +0000</pubDate>
				<category><![CDATA[コンピュータ関連]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[設定]]></category>
		<guid isPermaLink="false">https://www.wholenotism.com/blog/?p=16446</guid>

					<description><![CDATA[Mozillaから 147.0.1 がリリースされました。問題は修正されています。 FirefoxをアップデートしたらChatGPTの挙動がおかしくなった話。 アップデートの通知が来ていたので最新版にアップデートしたとこ [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="information-box">Mozillaから 147.0.1 がリリースされました。問題は修正されています。</div>
<p>FirefoxをアップデートしたらChatGPTの挙動がおかしくなった話。</p>
<p>アップデートの通知が来ていたので最新版にアップデートしたところ、直前まで普通に使えていたChatGPTの挙動がおかしくなりました。<br />
ページ自体は表示されるものの、入力やレスポンス周りが不安定で、実用にならない状態です。<br />
具体的には<strong>入力欄から送信ができない</strong>、<strong>返信が表示されない</strong>、<strong>ログインボタンが押下できない</strong>、などなど。</p>
<p>困るよね、こういうの&#8230;</p>
<p><span id="more-16446"></span></p>

  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8"><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まずは定番の切り分けから</a></li><li><a href="#toc2" tabindex="0">Firefoxのバージョンを戻したら復旧</a></li><li><a href="#toc3" tabindex="0">about:configで回避できるという情報も</a><ol><li><a href="#toc4" tabindex="0">network.http.dictionaries.enable とは</a></li><li><a href="#toc5" tabindex="0">false にすると直る可能性がある理由（推察）</a></li></ol></li><li><a href="#toc6" tabindex="0">自分の対応とおすすめ</a></li><li><a href="#toc7" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">まずは定番の切り分けから</span></h2>
<p>ブラウザ絡みの不具合ということで、最初に疑ったのはアドオンや設定の影響です。</p>
<ol class="bold">
<li>トラブルシューティングモード（旧セーフモード）で起動</li>
<li>アドオンやテーマをすべて無効化</li>
</ol>
<p>しかし、結果は変わらず。<br />
この時点で<strong>「少なくともアドオン由来ではなさそうだ」</strong>と判断しました。</p>
<p>キャッシュやクッキーも削除してみましたが、状況は変わらず。<br />
それどころかログインすらできない状態に。</p>
<h2><span id="toc2">Firefoxのバージョンを戻したら復旧</span></h2>
<p>次に試したのがFirefox本体のバージョン変更です。</p>
<p><span class="bold" style="font-size:150%;">本来ダウングレードは推奨されません！</span>が、</p>
<p>たまたま数日前にMacOSのアップデートを実施。<br />
その際にアップデート前のプロファイルを保存していたので、新たに一つ前のver146をダウンロード＆インストール、プロファイルの中身全コピペで復旧しました。</p>
<p>結果として問題はあっさり解消。</p>
<p>このことから、今回の不具合はFirefox本体で発生している可能性が高そうです。</p>
<h2><span id="toc3">about:configで回避できるという情報も</span></h2>
<p>調べていく中で、一つ興味深い情報を見つけました。</p>
<p><strong>about:config</strong> を開き、以下の設定を変更すると問題を回避できる場合がある、というものです。</p>
<ol class="bold">
<li>network.http.dictionaries.enable</li>
<li>値を false に変更</li>
</ol>
<p><cite>参考サイト：<a rel="noopener" href="https://connect.mozilla.org/t5/discussions/chatgpt-not-working-anymore-in-firefox-147-0-64-bit-updated/m-p/116062#M45311" target="_blank">Mozilla Connect（公式）「ChatGPT not working anymore in Firefox 147.0 (64 bit) updated today」<span class="fa fa-external-link external-icon anchor-icon"></span></a></cite></p>
<p>どうやら最近のFirefoxで導入・変更されたHTTP周りの挙動が、ChatGPT側と相性問題を起こしている可能性がありそうです。</p>
<h3><span id="toc4">network.http.dictionaries.enable とは</span></h3>
<p>ちなみに、<br />
<strong>network.http.dictionaries.enable</strong> とは Mozilla Firefox の内部設定の一つで、HTTP圧縮における「圧縮辞書（compression dictionaries）」の利用を制御するためのフラグ、らしいです。</p>
<p>この設定を <strong>false</strong> にすると、Firefox は圧縮辞書機能を無効化し、特定の辞書ベース圧縮のやり取りをしなくなります。</p>
<h3><span id="toc5">false にすると直る可能性がある理由（推察）</span></h3>
<p>以下は 観測ベースの推察としてまとめたものです。</p>
<ol class="bold">
<li>設定を false にすると、Firefox は圧縮辞書を一切使わなくなる。</li>
<li>その結果、ChatGPT 側とやり取りされる通信は標準的な圧縮（gzip など）にフォールバックされる。</li>
<li>これにより、圧縮辞書による不整合が回避され、Web UI等 が正常に読み込まれるようになる。</li>
</ol>
<p>簡潔に言えば</p>
<p>圧縮辞書機能が原因で出ている不整合／エラーを無効化するため、従来どおりの圧縮処理になる→結果としてトラブルが回避される可能性がある<br />
という考え方です。（※あくまで現時点での推測です）</p>
<p>ただし多くの改善報告がある一方、<br />
Geminiの方で不具合が出るなどの報告もあるようです（<a rel="noopener" href="https://connect.mozilla.org/t5/discussions/proposed-fix-for-chatgbt-breaks-google-gemini/td-p/116042" target="_blank">※<span class="fa fa-external-link external-icon anchor-icon"></span></a>）</p>
<h2><span id="toc6">自分の対応とおすすめ</span></h2>
<p>自分の場合は、特に急ぎではなかったため、</p>
<p><strong>Firefox 146に戻し、<br />
次のマイナーアップデートで修正されるのを待つ</strong></p>
<p>という対応を選びました。</p>
<p>ただし、</p>
<ol class="bold">
<li>Firefoxをどうしても最新版のまま使いたい</li>
<li>ダウングレードは避けたい、できない</li>
</ol>
<p>という人は、一時的に <strong>network.http.dictionaries.enable</strong> を <strong>false</strong> にする方法を試してみる価値はあると思います。</p>
<p>Mozilla 側でも修正を含んだ 147.0.1 リリースが進行中という話なので、<br />
そう時間を空けずに公開されるでしょう。</p>
<p>数日待ったら解決するような気もします、たぶんね。</p>
<div class="information-box">数時間後に ver147.0.1 がリリースされました。前述の設定の値をデフォルトで変更した模様（<a rel="noopener" href="https://www.firefox.com/en-US/firefox/147.0.1/releasenotes/" target="_blank">リリースノート<span class="fa fa-external-link external-icon anchor-icon"></span></a>）。再度アップデートした後は問題ありません</div>
<h2><span id="toc7">まとめ</span></h2>
<p>今回の件を整理すると、</p>
<ol class="bold">
<li>Firefoxアップデート後にChatGPTの挙動が不安定になる場合がある</li>
<li>トラブルシューティングモードでも改善しない場合、アドオン以外が原因の可能性が高い</li>
<li>Firefox 146に戻すと正常動作した</li>
<li>about:config の設定変更で回避できるケースもあるらしい</li>
</ol>
<p>という状況です。</p>
<p>ブラウザとWebサービスの組み合わせによる不具合は、ユーザー側ではなかなか厄介ですが、同じ現象に遭遇した人の参考になれば幸いです。<br />
ただし、あくまでも今回の不具合に際して、という点にご留意ください。</p>
<p>では。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="16446"
					data-ulike-nonce="e108340ae9"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_16446"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://www.wholenotism.com/blog/2026/01/firefox147breakchatgpt.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
