本文的完整 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。