# Intel Mac Local LLM — 古い Mac で動く「育つ AI」 **16GB・GPU なしの Intel Mac** で、ローカルの AI に Mac の仕事(ファイルの整理・読み書き・状態の確認・調べもの)をさせる実験と道具です。 合言葉は **「早い・安い・賢い」**。モデルを大きくせず、仕組みと道具で賢くできるかを測りながら進めています。 ## だれ向け? | あなたの Mac | どうなるか | |---|---| | **Intel Mac・メモリ16GB以上** | いちばん想定している環境。下の数字はすべてこの条件(i7-9750H・16GB)で測りました | | Intel Mac・メモリ8GB | 今の頭脳(7.7GiB)は**入りません**。もっと小さい頭脳で動かす版を検討中です | | Apple シリコン(M1〜M5) | 速さやメモリの節約は要らないはずです。それでも使う意味があるのは、下の **門番**(危ない操作を止める)と **育つ AI**(芯・感情の記憶・個性の種)。頭脳は llama.cpp なので動くはずですが、**まだ試していません** | - **頭脳**(ローカル LLM): Qwen3.6-35B-A3B。専門家を 256人 → 160人 に削った 7.7GiB 版(元は 11.7GiB)。 - **カーネル**(手下): 頭脳が呼ぶ道具と、危ない操作を止める門番。命令は `sandbox-exec` で隔離し、消す・送るなどは本人の承認が要ります。 - **事前学習**: 空いた時間に Wikipedia・教科書・文学・法令・論文を読み、知識の箱と学習ノートに貯めて答えに使います。 - **育つ AI**: 大事にしていること(芯)と感情の記憶を持ち、経験から自分の性格を書きます。育った個性は「個性の種」として人に渡せます(下に説明)。 ## いまの姿(2026-10-03) | 測ったもの | 結果 | メモ | |---|---|---| | PC 操作の公開回帰テスト(全41問) | 36/41・38/41(10/3、160人版) | 開発中に直しにも使った問題。1回ごとに±2問ぶれる | | 知識の問い(25問) | 23/25(元 24/25) | 事前学習の知識だけで答える | | 書く速さ | 8.1〜9.1 字/秒(元 8.3〜8.6) | 変わらない | | 頭脳のメモリ | 8.0〜8.2GB(元 9.6〜10.0GB) | 頼みの控えを 512MB に絞り、自前の分は最大 2.0GB | | 最初の頼みで読み直す量 | 268トークン・9秒(前は 1,755トークン・83秒) | 立ち上げ時に前置きを先に読む | 数字はすべてこの Mac・この条件での測定です。秘密の評価問題集も作成中です。GitHub には置かず、開発者も問題の中身を見ず、結果は別に出します。経緯と細かい数字は [dougu/jikken/KEKKA.md](dougu/jikken/KEKKA.md)。 ## 育つ AI(個性の種)— 2026-10-04〜 模型(重み)は皆同じでも、**何を読み、どう受け止め、何を大事にしてきたか**が違えば、別の個性になる。カーネルはそれを3つで持つ。 - **芯**(`kernel/shin.py`): 大事にしていること。最初の6つは Claude Code が考えた「生きるのに必要なこと」 (知りたいと思う・正直でいる・失敗から変わる・相手をよく聞く・休む・自分で選ぶ)。週に1回 AI 自身が言い直したり足したりする。「正直」だけは外せない。 - **感情の記憶**(`kernel/kanjou.py`): 点数ではなく「読む前の予想 → 実際 → 感情の言葉 → 理由(芯に照らして)→ 次にすること」。 「もっと知りたい」と受け止めた記事は、つながる記事を次に読む=感情がふるまいを変える。 - **自己紹介と学習ノート**: 読んだ記事の要点と面白さから、AI が自分で性格を書く。 **個性の種**(`kernel/kosei.py`)でこれを1つのファイルに書き出せる。別の人が読み込むと、新しい個性ID と系譜(誰から受け継いだか)が付き、 その人のもとでの経験から別の個性へ育っていく。会話・頼み・ファイルの場所など私的な物は種に入れない。読み込む側は種を資料として扱い、決まり・権限を変える文は落とす。 ```bash python3 kernel/kosei.py kakidasu 種.kosei.json --namae 名前 # 書き出す python3 kernel/kosei.py yomikomu 種.kosei.json # 受け継いで育て始める ``` ## 最近わかったこと - **専門家を削っても賢さはほぼ落ちない**: 層ごとに、使われる回数(imatrix)の少ない専門家から外した。192人・160人とも知識・全41問はぶれの範囲。道具は [dougu/kezuru_tejun.py](dougu/kezuru_tejun.py)、[dougu/senmonka_kezuru.py](dougu/senmonka_kezuru.py)。 - **llama-server の既定は RAM を食う**: 頼みの控え(`--cache-ram`)が既定 8GB で、使い続けると自前の分が 4〜6GB に膨らんだ。`-cram 512` で最大 2.0GB。 - **計算や写し間違いは門番が直す**: 書いた CSV を読んだファイルと照らし、合計も計算し直して、違えば直した中身を頭脳に渡す(J14・J17・J25 が通るようになった)。 - **数学の物差しでの昔の結論**(30B 時代): 数え上げをプログラムに任せると大きく伸びた(32問で 4 → 31)。量子化の違いは飽和した問題集では差が見えなかった。詳しくは [LOG.md](LOG.md)・[RESULTS.md](RESULTS.md)。 ## フォルダの地図 | 場所 | 中身 | |---|---| | [kernel/](kernel/) | カーネルの写し(アプリの server.py・画面 ui.html・事前学習・試験)。本番は git の外にあり、ここから入れる | | [dougu/](dougu/) | 測る・入れる・調べる道具。輪(頭脳が道具を呼ぶ仕組み)は [dougu/jiyuu.py](dougu/jiyuu.py) | | [monosashi/](monosashi/) | 物差し(問題集と採点)。全41問は [monosashi/jiyuu.jsonl](monosashi/jiyuu.jsonl) | | [llama_patch/](llama_patch/) | 圧縮入りの llama.cpp に当てる差分(語彙を 99.99% に絞るなど) | | [experiments/](experiments/)・[lib/](lib/) | 8月の量子化・圧縮の研究(古い。状態は [EXPERIMENTS.md](EXPERIMENTS.md)) | | [gcloud/](gcloud/)・[modal/](modal/)・[lora/](lora/) | クラウドで試した量子化・LoRA(不採用) | ## 説明の紙 | 紙 | 何が書いてあるか | |---|---| | [dougu/jikken/KEKKA.md](dougu/jikken/KEKKA.md) | **いちばん新しい実験の記録**(日付順) | | [MODEL.md](MODEL.md) | 使っているモデルが何であって、何ではないか | | [docs/REPRO.md](docs/REPRO.md) | 現行モデルの再現に要る物と測り方 | | [docs/archive/](docs/archive/) | 古い説明書の記録 | | [ANZEN.md](ANZEN.md) | 断る力(安全性)の測定 | | [YOUGO.md](YOUGO.md) | 独自の呼び方と一般の用語の対応表 | | [LOG.md](LOG.md) | 9月までの実験の経緯と訂正(README 旧版の本文) | | [RESULTS.md](RESULTS.md) | 8月の量子化の測定結果 | | [EXPERIMENTS.md](EXPERIMENTS.md) | `experiments/`・`lib/` の状態(正直な点検) | | [NOTES.md](NOTES.md) | 古い研究ノート | | [AGENTS.md](AGENTS.md) | AI(Claude Code・Codex)向けの仕事の決めごと | ## 動かしかた(いまの頭脳) 1. Hugging Face の `unsloth/Qwen3.6-35B-A3B-GGUF` から `UD-Q2_K_XL` を落とす(約 12.6GB)。 2. llama.cpp(b31b71f)に [llama_patch/](llama_patch/) を当てて建てる。`llama-imatrix` も一緒に建てる。 3. 削る: `python3 dougu/kezuru_tejun.py --dan kezuru`(校正文で imatrix を作り、192人・160人版を作って一問と知識25問で確かめる)。 4. 立てる: `llama-server -m 削った.gguf -t 6 -ngl 0 -c 32768 -np 2 -kvu --no-cache-idle-slots -cram 512 -fa off --reasoning-format none`
30B 時代の始め方(考える深さを試す・特別なモデル不要) ```bash git clone https://github.com/ggml-org/llama.cpp cd llama.cpp && git checkout fa67698 && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j && cd .. curl -L -o Qwen3-30B-A3B-Q2_K.gguf \ https://huggingface.co/unsloth/Qwen3-30B-A3B-GGUF/resolve/main/Qwen3-30B-A3B-Q2_K.gguf ./llama.cpp/build/bin/llama-server -m Qwen3-30B-A3B-Q2_K.gguf -ngl 0 -c 8192 -np 1 -cb \ --spec-type ngram-simple -ctk q8_0 -ctv q8_0 --host 127.0.0.1 --port 8080 python3 kangaeru_fukasa.py "12個のりんごを3人で分けて、余りは箱に戻します。余りは何個?" ``` Python 側は標準ライブラリだけ。深さ 0〜3 を順に試して秒数と一緒に出します。問題集で測るなら `monosashi/tsukuru.py --kazu 120` → `monosashi/hakaru.py --fukasa 2`。
## 測り方 - 全41問は開発に使った公開の回帰テスト。秘密の評価問題集とは分け、そちらの結果は別に出す。 - 速さ・正解率は、同じ機械・同じ条件の基準との比で読む。1回の数字は1回の数字として読む。 - 重い調査・実装は Codex、検証と組み込みは Claude Code。ローカルの頭脳には、カーネルや AI の仕組みは触らせない。 ## これからの課題 - 読み取りを必要最小限にする。 - Web などから読んだ文を、道具を使う権限から切り離す。 - 実機の Intel Mac で自動試験する。 - RAM・swap・最初の1字が出るまでの時間を並べて記録する。 ## ことわり - 測定は Intel Mac・CPU 推論・16GB という特殊な条件です。Apple Silicon や GPU では、とくに速さの結論が変わります。 - モデルの重みは含みません。ライセンスは元モデル(Qwen)に従ってください。 ## ライセンス MIT([LICENSE](LICENSE))。実験コードと記録が対象で、モデルの重みは含みません。