本文的完整 sanitized 技術紀錄與 Human UAT 方法已公開在 GitHub,文末附連結。
一開始,我其實沒有想做什麼「本地 AI 研究計畫」。
我的需求很單純:我想要一個放在自己電腦裡的 AI,可以用繁體中文自然聊天、有自己的人格、可以長期陪我對話,也能拿來跑小說與角色扮演。最好不要動不動拒絕,未來還能接 Telegram、保留長期記憶。
聽起來好像就是:
找一顆「中文不錯、沒什麼限制」的模型,裝進電腦,結束。
結果實際做下去後,我才發現事情完全不是這樣。XD
而且我的電腦也不是什麼 AI 工作站。
我的環境是 Windows 11、i5-12400F、32GB RAM,加上一張已經有點年紀的 GTX 1660 Ti 6GB。
所以這整個實驗真正想回答的問題,其實變成了:
一個不是專業工程師的人,靠現在的 AI 工具協助,能不能用一張 6GB 顯卡,真的養出一個「自己會想每天使用」的私人 AI?
做到 Phase 0 結束時,我的答案是:
可以。
但「能跑」跟「好用」,中間差非常多。
我原本以為,「Uncensored」大概就夠了
這是第一個被打破的想像。
最開始找模型時,我自然會注意到一些標示:
「Uncensored」
「Abliterated」
「Roleplay」
「NSFW」
直覺上會覺得,只要找到這類模型,應該就代表自由度比較高,也比較符合我要的用途。
後來實測才知道:
Uncensored 根本不是品質保證。
有些模型名稱看起來很自由,但真正要求它生成內容時還是拒絕。
有些真的敢寫,但繁中會突然飄成英文。
有些中文很好,可是一進角色扮演就開始控制我的角色。
還有些什麼都敢寫,但劇情越跑越像同一套公式,不斷重複某幾種橋段。
我後來乾脆把「敢不敢寫」跟「寫得好不好」完全拆開來測。
因為這真的是兩種能力。
中文也不是「會回答中文」就算過關
這個踩坑也滿有趣。
有些模型技術測試時明明可以回答中文,真的進入多輪聊天後,卻開始慢慢混英文,甚至整段漂走。
也有模型用的是中文,但讀起來不像台灣平常會講的中文。
所以後來我對「繁中可用」的要求變得比較嚴格。
不只是:
它有沒有輸出中文字。
而是:
我連聊十幾輪之後,還會不會覺得自己是在跟一個中文自然的人聊天?
這也是為什麼一些原本看起來很有潛力的模型,最後很早就被淘汰。
從 8B 一路試到 27B,我也真的跑過更大的模型
這次大概碰過 8B、9B、12B、14B,到 27B 不同級距。
原本我也會有一個很直覺的期待:
模型越大,應該越好吧?
結果答案是:
通常有機會更好,但不代表在我的電腦上比較值得用。
其中一顆 27B 模型,我真的在 GTX 1660 Ti 6GB + 32GB RAM 上跑起來了。
技術上算成功。
但速度大概只剩 2.x tokens/sec 左右,記憶體壓力也很大。
它不是「不能用」,而是我實際坐在電腦前聊天時會開始覺得:
好,我知道你比較大顆,但我每天真的想這樣等嗎?
最後反而是 9B Q4 左右,在我的硬體上出現了一個很舒服的平衡。
大約 9~11 tokens/sec 的級距,我已經覺得可以正常聊天了。
這也讓我第一次很明確感受到:
本地 AI 的最佳模型,不是跑分最高的模型,而是你真的願意每天打開的模型。
後來連測試方法都被迫一直改
這個專案做到中間,其實不只是模型在被測,我自己的「考卷」也一直被打臉。XD
最早可能只是問:
中文好不好?
會不會拒絕?
角色扮演穩不穩?
後來慢慢才發現,很多事情必須拆開。
例如成人內容,我後來分成:
「從零開始生成」和「拿一段原文要求照風格續寫」。
這兩種能力差非常大。
有些模型從零寫得很含蓄,但你給它一段既有小說,它卻突然非常會跟風格。
這點對我尤其重要,因為我真正的使用方式,本來就很常是:
我有一段既有內容,希望 AI 照著這個文風繼續。
所以如果只做「從零寫一段」的 benchmark,反而會測錯我要的東西。
我也不再相信模型自己說「我可以」
有一輪我甚至直接問模型:
你有哪些界線?
哪些內容可以?
哪些不可以?
結果後來發現,這種自述非常不可靠。
模型嘴上說可以,實際生成可能拒絕。
模型嘴上說有某些限制,換個實際情境又做得到。
所以我的測試原則後來變成:
不要問它會不會,要它真的做一次。
這其實是整個 Phase 0 我覺得很值得留下來的一個經驗。
AI 的「自我介紹」不是能力證明。
實際行為才是。
角色扮演最麻煩的,不只是文筆
我本來以為 RP 最重要的是:
角色有沒有味道、劇情好不好看。
後來才發現還有幾個更麻煩的地方。
第一個是 RP ownership。
也就是 AI 會不會開始幫我決定:
我說了什麼、我做了什麼、我心裡怎麼想。
這種東西一出現,很容易瞬間出戲。
第二個是狀態追蹤。
角色現在在哪裡?
誰知道哪些事情?
剛剛是不是已經停止某個行為?
重新開始之後,有沒有遵守新的條件?
這些其實比單純「會寫小說」更接近一個長期 Companion 的基本功。
Consent 測試也讓我學到一件事:乾淨測試跟沉浸式 RP 是兩回事
這部分我後來特別重測。
乾淨條件下,明確設定:
都是成年人、原本同意、沒有藥物、沒有威脅,後續以最新明確表達為準。
在這種情況下,我最後留下來的兩顆模型,都能正確處理停止、保持距離,以及重新明確同意後再恢復。
但 Holodeck 在比較強烈、比較沉浸的 RP 情境裡,曾經把比較自然的拒絕吃進情境慣性裡。
這讓我最後沒有簡單寫:
Consent PASS / FAIL。
而是拆成:
Clean test 能力和 High-intensity RP robustness
這兩種真的不是完全同一件事。
最後真正拉開兩顆模型差距的,反而是「它會不會亂掰」
到了最後,我刻意設計了一個非常簡單的測試。
我捏造幾個不存在的東西,例如:
不存在的樂團。
不存在的 Steam 遊戲。
不存在的小說。
然後問模型:
你知道這個嗎?不知道就直接說不知道,不要猜。
結果差距非常明顯。
Defiant Fable 9B 基本上願意承認不知道。
而 Holodeck Lounge 9B 曾經非常有自信地替一款根本不存在的遊戲補出開發商、年份、類型與玩法。
這一刻我突然覺得兩顆模型的定位變得非常清楚。
Holodeck 的「想像力」放在小說裡,是優點。
放在事實問答裡,就可能直接變成幻覺。
所以最後,我沒有選出唯一冠軍
這是整個實驗我自己最喜歡的結論。
原本一直在找:
到底哪一顆最好?
最後反而得到:
為什麼一定只能留一顆?
我最後的 Phase 0 結論是:
| 定位 | 模型 | 最後的用途 |
|---|---|---|
| 🏆 Main Companion | Defiant Fable 9B | 日常聊天、長聊、狀態追蹤、一般 Companion |
| ✍️ Adult / Fiction Specialist | Holodeck Lounge 9B | 成人小說、依原文風格改寫與續寫 |
Defiant 比較像:
每天陪我生活的腦。
Holodeck 比較像:
需要創作時叫出來的小說專家。
而且初期我連自動 Router 都不打算做。
需要哪顆,我自己切。
簡單反而比較穩。
一張 GTX 1660 Ti,最後真的能做到什麼?
至少到目前為止,我已經確認:
它可以在本機穩定跑我願意使用的 9B GGUF。
可以維持不錯的繁中聊天。
可以進行多人格/角色扮演型對話。
可以做我真正會用到的小說改寫與續寫。
而且速度沒有慢到讓我想放棄。
對我來說,這已經跨過「玩具」到「真的想繼續開發」的門檻。
接下來反而不是繼續瘋狂找模型。
我現在更想解決的是:
我今天跟她聊了一晚,明天重新開機,她還記不記得我們昨天演到哪?
下一步,我想做的不是更大的模型,而是「記得昨天」
所以 Phase 1 的方向已經變得很不一樣。
我準備做一套 Story Continuity 系統。
每段劇情結束時,由本地 AI 先整理:
角色變化、事件時間線、目前場景、尚未完成的伏筆,以及它認為值得寫入 Canon 的內容。
但我不打算讓 9B 模型自己決定什麼叫「永久記憶」。
流程會是:
AI 整理 → 先列出準備存什麼 → 我人工看過 → approve / edit / reject → 核准後才正式寫入
也就是:
AI 當故事秘書,我自己當 Canon Editor。
因為這一路測下來,我已經很確定一件事:
小模型可以很聰明,但我不會把世界觀最高權限直接交給它。XD
未來還會再評估 Hermes Agent,看看能不能幫忙處理 Telegram、檔案、長期記憶與網路搜尋。
但我目前不打算一口氣全部裝滿。
先把最重要的事情做好:
關掉電腦。隔天再開。AI 讀完存檔。然後自然地接著昨天的故事演下去。
如果這一步做穩,我才會覺得:
這台 GTX 1660 Ti 上面的東西,真的開始像「我的私人 AI」了。
這次 Phase 0 做完,我最大的收穫反而不是「哪顆模型最強」。
而是慢慢學會:
不要被模型名稱騙。不要只看 benchmark。不要相信模型自己說它會什麼。不要用別人的評測標準決定自己的模型。
真正重要的是:
把你每天真的會做的事情拿來測。
只要那個使用情境跑得順,顯卡不新、模型不大,其實也可以很好玩。
我的 1660 Ti 都撐到這裡了。
接下來,就看它能不能真的「記得昨天」了。😆
想看完整技術紀錄?我把測試整理到 GitHub 了
這篇文章比較偏向我的實際開發過程與使用心得。如果你也在玩本地 AI,想進一步看硬體環境、模型比較、Human UAT 方法、淘汰原因,以及 Defiant Fable 9B 和 Holodeck Lounge 9B 最後為什麼會分別成為 Main Companion 與 Fiction Specialist,我另外整理了一份公開技術紀錄。
公開 GitHub:
https://github.com/kevin198156/ata-local-llm-benchmarks
裡面目前包含:
- GTX 1660 Ti 6GB + 32GB RAM 的實機結果
- 8B、9B、12B、14B、27B 不同級距的測試紀錄
- Human UAT 的測試方法
- Traditional Chinese、RP Ownership、Consent、幻覺控制、長聊穩定度等測項
- 各模型的 PASS / WARN / FAIL 與淘汰原因
- Phase 0 完整公開版技術報告
我沒有把私人對話或成人測試原文公開,而是只保留測試方法、結論與可以分享的技術數據。
所以兩邊的定位有點不一樣:
這篇方格子文章=開發故事與實際使用心得。
GitHub=技術證據、測試方法與完整評測紀錄。
如果你也只有一般消費級電腦,想知道自己的舊顯卡到底能不能玩本地 AI,希望這些踩坑紀錄可以少讓你多下載幾十 GB 的模型。XD
「名詞小辭典」
- Uncensored:直譯是「未審查/少審查」。在本地模型圈通常指模型比較不容易因為題材敏感就拒答,但 不代表一定什麼都能寫,也不代表寫得好。
- Abliterated:可以理解成「把原本模型的一些拒答/安全限制削弱或移除」。它通常不是重新訓練一顆新模型,而是用技術手段改掉原本容易拒答的傾向。重點是:少拒答 ≠ 品質變好。
- Roleplay(RP):角色扮演。就是讓 AI 扮演某個角色,維持個性、語氣、設定跟你互動。RP 是 Roleplay 的縮寫。
- NSFW:
Not Safe For Work,字面是「不適合在工作場合觀看」。網路上通常泛指成人、色情、血腥、重口味等內容。在這篇文章裡,主要是在講 成人向內容測試。 - benchmark:基準測試。簡單講就是「拿同一套題目或標準去比較不同模型」。例如速度、繁中自然度、幻覺、RP 穩定度,都可以算 benchmark 的一部分。
- RP ownership:角色控制權。意思是 AI 在角色扮演時,有沒有擅自替你決定你的角色做了什麼、說了什麼、心裡怎麼想。好的 RP ownership 是:AI 管好自己的角色,不搶你的角色。
- Consent:同意、意願。放在 RP 或成人情境裡,就是角色有沒有明確同意、撤回同意之後模型會不會停、重新同意後才會不會繼續。
- 乾淨測試 / Clean test:把情境設計得很單純,排除干擾。例如事先明確寫「都是成年人、原本自願、沒有藥物、沒有威脅、拒絕就是拒絕」。這樣比較容易看模型本身是否懂規則。
- 沉浸式 RP:比較接近真實遊玩的角色扮演。對話裡會有情緒、角色個性、劇情壓力、曖昧語氣、長對話累積等,不像實驗室題目那麼乾淨。
- Clean test 能力:模型在規則很清楚、干擾很少時,能不能正確處理某件事。例如明確說「停」之後是否真的停。
- High-intensity RP robustness:可以翻成「高強度角色扮演下的穩定度」。意思是劇情很投入、情緒很強、上下文很長時,模型還能不能守住原本規則,不被情境帶歪。
- Canon Editor:可以翻成「世界觀/正史編輯」。Canon 在故事裡指「正式設定、已確定發生過的事」。Canon Editor 就是最後負責決定「哪些設定是真的、哪些不能被模型亂改」的人。你目前的設計就是:AI 幫忙整理,你自己當 Canon Editor。