miutti's picture
Source: kernel, desktop app, tools (snapshot of the GitHub repo)
df41178 verified
|
Raw History Blame Contribute Delete
9.92 kB
# 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`
<details>
<summary>30B 時代の始め方(考える深さを試す・特別なモデル不要)</summary>
```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`。
</details>
## 測り方
- 全41問は開発に使った公開の回帰テスト。秘密の評価問題集とは分け、そちらの結果は別に出す。
- 速さ・正解率は、同じ機械・同じ条件の基準との比で読む。1回の数字は1回の数字として読む。
- 重い調査・実装は Codex、検証と組み込みは Claude Code。ローカルの頭脳には、カーネルや AI の仕組みは触らせない。
## これからの課題
- 読み取りを必要最小限にする。
- Web などから読んだ文を、道具を使う権限から切り離す。
- 実機の Intel Mac で自動試験する。
- RAM・swap・最初の1字が出るまでの時間を並べて記録する。
## ことわり
- 測定は Intel Mac・CPU 推論・16GB という特殊な条件です。Apple Silicon や GPU では、とくに速さの結論が変わります。
- モデルの重みは含みません。ライセンスは元モデル(Qwen)に従ってください。
## ライセンス
MIT([LICENSE](LICENSE))。実験コードと記録が対象で、モデルの重みは含みません。