前陣子,我介紹了一個專用於AI角色扮演聊天的軟體SillyTavern,之後我就沒再提過這個軟體,實際上從初次使用以來我便一直沉迷於這套軟體,它實在是太好玩了,我幾乎是真的把它當遊戲軟體在玩了,它跟電腦遊戲的差別在於必須連接一個AI API才有作用。
本篇文章會列出適合用在SillyTavern中的各種AI API以及價格比對,最後再解說一下我長期使用SillyTavern後的一些心得。
並且我必須再次強調,透過AI API串接的語言模型才是解除封印,擁有100%智能的完整AI,類似chatGPT網頁版的這些AI對話功能大多已經被調教成乖乖牌了,我現在已經很少再使用網頁版的對話功能了,在SillyTavern的架構之下進行對話會更有角色扮演的代入感。
至於SillyTavern本體的簡介我不會再重新解說一次,有興趣的可以去看我之前的文章,它雖然更新了幾次,但安裝與使用流程並沒有太大的變動:
SillyTavern:超強AI聊天軟體,可以自創角色,可以建造虛擬世界,還可以色色!功能上限不是上限,你的腦洞上限才是
要特別注意的是,這些語言模型隨時都有可能進行改版與變化,我目前的使用經驗無法代表未來的使用經驗,現在愚蠢的語言模型在未來有可能變的更聰明,反之亦然。
在API價目表方面,通常會分為input(輸入)的價格與output(輸出)的價格。
output(輸出)比較好理解,AI語言模型是一問一答的,在我們輸入一段文字後,AI便會針對我們的輸入文字做出新的反應與回答,AI所回覆的這串文字就是output(輸出)。
而input(輸入)就比較特別,input並不是我們輸入一句話就只針對這句話做計費,它是累進式的。舉個簡單例子:
當我們準備開始與AI對話時,我們輸入了第一句話,這時的input使用計費就是一句話,而此時AI會針對我們提出的問題做出一句回答,而這句回答就會以output的價格做計費。
接著再往下進行,我們又輸入了一句話,這時會再轉為input計費,但這時實際傳送給AI伺服器的文字並不是"一句話",而是包括AI回覆在內的所有對話紀錄,此時的總對話數會是三句對話(你一句,AI回答一句,最後你再輸入一句),因此input的總計費量就會是三句話。以此類推,當你跟AI經過一番問答後,你總共說了十句話,而AI也回答了你十句話,此時你再說一句話時的計費總量不是一句話,而是21句話。
理解這個運作模式後,你就可以理解所謂的AI語言模型並不是真正的具有智慧,它比較近似於"文字接龍",由前文去推算後文,因此它才會需要在每次對話都輸入"所有對話紀錄",藉此讓AI判斷它該說的下一句話。
並且AI的對話記憶量是有限的,無法無限的累加下去,所以假設某語言模型總記憶量只有五十句話,那麼在對話時它就永遠只記得所有問答紀錄中的最後五十句話,所以AI一直有著"聊了後面就忘了前面"的這個毛病。但好在也因為如此,你不用擔心API計費會毫無限制的累增上去,在這個五十句話的例子中,在最貴的情況下就是你每進行一次對答就只計算最後五十句話的費用,而不會繼續演變成一百句話、一千句話。
當然也有gpt-4-32k這種以超長記憶容量為特色的語言模型,但它的相對代價就是非常昂貴。
API實際的費用計算單位並不是"一句話",而是"tokens",tokens代表一串文字單位,但tokens無法單純的理解為文字或單詞,也不會是一句話,tokens到底是怎麼切分計算的並無法以肉眼單純的判斷,所以我們只要理解tokens是什麼意思就好,不需要過度糾結我們講一句話到底等於多少tokens。
以下開始進入正文,為了更好理解價格的高低,我統一只比對input的價格,單純的比對input的價格就可以輕易的看出不同模型的使用價格了,因為input與output價格有著相對的比例關係,通常input貴的則output也會一樣貴,反之亦然。因此我們關心其中一種價格就足夠了,硬要把input與output的價格做交叉比對只會把事情複雜化。
註:價目表中的數字都是美元。
OPENAI做為AI業界的標竿足夠做為比較基準,首先從GPT-4開始,所有其它語言模型都以GPT-4做為比較基準會比較容易理解。
OPENAI API的價目表頁面:https://openai.com/api/pricing/
我們不需要去關注所有價格數字,只需要抓出關鍵資料即可,以下我就先從GPT-4開始說起。
1.1 GPT-4
GPT-4的價格為$30.00 / 1M tokens
GPT-4做為第一個介紹的標竿項目,同時代表著兩種意義,第一個是貴,第二個是實用。
光看$30.00 / 1M tokens這串數字可能沒什麼感覺,以我自己的經驗來說,若照我這樣一有空就把SillyTavern開來玩,一摸就幾個小時直接當電腦遊戲在玩的話,我最高紀錄是單月花了近三千元。
但GPT-4做為業界標竿,它的智能是不用懷疑的,它在對話中能夠理解你的反諷,暗示,俚語,也能理解複雜的角色定義。它的表現也十分穩定,不會突然胡言亂語,不會突然冒出亂碼。
僅看對話智能的話,它絕對夠用,但考量價格的話,說它貴卻也沒冤枉它。
1.2 gpt-3.5-turbo
gpt-3.5有非常多的版本,在此以最新版的gpt-3.5-turbo-0301為例,其價格為$1.50 / 1M tokens,跟GPT-4的價格一對比便可以直接感受到它的便宜了,它的價格僅僅為GPT-4的二十分之一。
但gpt-3.5也直接表現出了"便宜沒好貨"的這個特徵,gpt-3.5也能進行穩定的對話,但對話的豐富度與有趣程度跟GPT-4一比就有明顯的落差,gpt-3.5回話內容較為呆版,無趣,簡短,並且道德偵測也更嚴格一點。
事實上,我並不認為gpt-3.5真的如此愚蠢,至少在gpt-3.5初面世時我是玩的十分愉快的,它淪落至此已經是中期以後的事了,想必是OPENAI刻意的調教與限制才使它變的如此低能。
Claude一直被視為OPENAI的主要競爭對手,核心成員也是OPENAI的前員工。
也因此,Claude的AI常常被拿來與OPENAI相互比對。
就我實際的使用心得來說,Claude確實有資格做為OPENAI的對手,雙方在對話模型的AI智能是不相上下的。
Claude API的價目標頁面:https://www.anthropic.com/pricing#anthropic-api
Claude的語言模型在經過數代革新後已經有好幾種模型,但較舊的模型已經沒有關注價值了,在此我們僅關心最新的Claude 3 Haiku,Claude 3 Opus,Claude 3.5 Sonnet這三種最新且主流的模型。
2.1 Claude 3 Haiku
Haiku是Claude最小最快的一個模型,同時也是最便宜的,它的對標對手是OpenAI的gpt-3.5。
Hiaku的價格是$0.25 / 1M tokens,這個數字一對比就可以知道它真的是超級廉價了,單位價格甚至已經低於gpt-3.5的$1.50。
但我要強調的是,Haiku雖然便宜但並不差,就在gpt-3.5展示了便宜沒好貨這句話的意義之後,Haiku就立刻展示了便宜又大碗的範例。
一般小模型的特點是較粗劣的回答風格,並且不夠聰明,但我在使用Haiku時它表現穩定,足夠聰明,回話風格也十分豐富生動,完全感覺不到它只是個小模型。
但在經過幾次更新之後,Haiku對於道德偵測漸漸敏感,只要觸及辛辣話題,它就會中止對話並勸你當個好人。
Haiku是我前陣子最推崇的語言模型,它不但十分聰明也十分便宜,在我用的最認真的那段時期,一整個月的花費也才台幣一百多元。
目前唯一的問題是它不能聊低俗的或敏感的話題,若這點不會造成困擾的話,Haiku仍然是我最推薦的語言模型。
2.2 Claude 3 Opus
Opus的對標對手是GPT-4。
Opus的價格比較微妙,他的input價格是$15 / 1M tokens,與GPT-4的$30.00一比已經是半價了,但它的ouput價格卻是$75 / 1M tokens,這個輸出價格已經高於GPT-4的$60.00 / 1M tokens了,我預估一消一長之下的整體花費應該還是與GPT-4相近。
我相信Opus確實足與GPT-4一戰,但若你只是想玩玩角色扮演的話,前述的Haiku已經是一個夠用且划算的選擇了。
2.3 Claude 3.5 Sonnet
Sonnet價格居中,是Claude主推的泛用模型,它的量級中等,回覆速度中等,價格也適中,單位價格是$3 / 1M tokens,看它的版號就可以知道它是Claude當前最新的語言模型,
當然Sonnet用起來沒什麼問題,但我的結論相同,在Haiku這麼聰明又廉價的模型之前,其餘模型都顯得不夠亮眼,如果沒要幹什麼大事的話,Haiku已經足夠了。
Google目前主推的模型是Gemini,Google手中同樣存在著數個新舊與量級不一的語言模型,但較舊較小的模型已經沒有關注價值了,我們直接看最新最強的Gemini 1.5 pro這個版本。
Google API的價目頁面:https://ai.google.dev/pricing?hl=zh-tw
3.1 Gemini 1.5 pro
Gemini算是很佛系的語言模型了,它是我列出的所有模型中,唯一一個可以免費使用的,只是免費使用有固定的發送頻率限制:
如果你不是重度使用者,或只是想測試看看,Gemini的免費方案值得推薦。
但若想認真使用的話,還是建議付費。
收費方案的單位價格是$3.5 / 1M tokens,大約與Sonnet同級。
Gemini的對話自由度比起Claude系列算是更高一點,因此Gemini算是我目前最常使用的語言模型了。
如我開頭所述,語言模型是一直在持續變革的,現在的優劣不代表未來的優劣,我對Gemini早期版本的評語是:胡言亂語,不值一提。但現在它已經是我最常用的模型了。
在目前這個時間點問我的話,我會說Gemini 1.5 pro是我最推薦的模型,它對話穩定,智能足夠,文字內容豐富有趣,更重要的是價格適中。
在我瘋狂的玩了近一個月之後,花費也才台幣數百元。(在接近九月底的這個時間點我的計價總額是台幣623元,跟GPT-4一比更顯便宜)。
Mistral是一間AI新創公司,近期也很容易在AI新聞版面看到它。
Mistral的API價格頁面:https://mistral.ai/technology/#pricing
Mistral同樣有許多模型,但它在中文對談方面還不夠穩定,時常胡言亂語或是跳出一堆亂碼。
Mixtral 8x7B類似這種命名方式的模型基本上都不適用,Mistral Small也一樣不能用,至少要到Medium以上的模型才堪用。
但所謂的"堪用"也只是中文對話還能夠勉強進行,雖然會夾雜一些胡言亂語,但至少還能溝通。
在這邊我就不特地一一介紹所有模型了,只列出兩個主要的模型價格對比一下即可,我覺得表現大同小異。
Mistral Medium的價格是 $2.75 /1M tokens
Mistral Large 2的價格是 $2 /1M tokens
它與claude Sonnet和google gemini算是同一個價格區間,但它的中文對話能力真的有待加強,十分不穩定,三不五時就會跳出亂碼或是胡言亂語。但看在很便宜的份上,偶爾還是能測試看看。
openrouter是一個整合式的平台,它羅列了一堆大大小小的語言模型,基本上串接這個平台就可以使用數十種的語言模型,包括Openai與Claude和Mistral,如果你想簡單一點的話,直接串接openrouter就可以一站式解決了。
openrouter的API價格頁面:https://openrouter.ai/models
光看這個頁面就可以知道模型種類極多,但它的價格頁面不易比價而且複雜,在此我不一一說明,而且裡面許多中小型的模型表現非常糟,基本上完全不需要關心。
而在openrouter裡面的數十個語言模型中,除了前面介紹過的那些主流模型之外,我還想額外推薦Meta Llama 3.1 405B Instruct。
這是facebook母公司Meta推出的模型之一,405B算是目前的最大量級。雖然它偶爾還是會突然胡言亂語或是跳出亂碼,但我覺得它的中文表現會比Mistral系列還好,文字的豐富度與有趣度都足夠,智能也在水準以上,而且不貴。
Llama 3.1 405B量級的價格是$1.79 /1M tokens,而次一級的70B價格是$0.3 /1M tokens,這價格是非常便宜的。
而70B雖說是次一級的模型,但它有個最大的特色是較低的道德偵測,幾乎所有話題都能聊。
openrouter裡面還有許多中小型的模型,有的根本就沒聽過,並且SillyTavern也提供其餘知名度較低的AI品牌的API串接,我算是失心瘋般的全部測過一輪了,但有的是根本無法使用甚至連串接都接不上,有的是雖然能對話,但文不對題胡言亂語,還有些雖尚稱堪用,但感受不到特別的亮點。
我的建議是,直接就我介紹的那些主流模型擇一使用即可,除非你也是十分有研究精神,否則其餘雜牌的中小型模式是不值得浪費時間去做測試的。
本篇API評比是針對SillyTavern的角色扮演對話為主,主要著重在中文對話能力與故事編寫能力,還有對角色定義的理解能力。至於其它AI檢測常會提到的邏輯推理、數學演算、科學辨證等層面的能力我是完全沒有考慮在內的。
一個最佳的對話模型,它除了要有豐富有趣的對話能力跟文字編寫能力之外,還要能理解複雜的角色定義,例如,你可以深入的設定一個角色在A狀況應該要有第一種反應,在B狀況要有第二種反應,或是某數值在50時,該角色要有某種反應,在某數值達到100時,該角色又要有另一種反應,聰明的對話模型應該要能夠理解這種複雜的背景定義並且如實反應。
並且,對話模型還要能夠理解對話情境,一個悲傷的角色定義不應該出現過度開心的對話內容,反之亦然。而語意中的暗示與反諷它也應該要能理解才是足夠聰明的表現。
在我上述提到的模型之中,GPT-4、claude系列、gemini 1.5pro和Llama 70B/405B都算是在及格線以上了。
不過目前的AI發展還沒有十分完善,偶爾出錯也是必然的,這些主流尖端的模型仍然無法完全像個真正的人類與你對話。
智能欠佳的模型則會使對話完全進行不下去,可能會直接跳出亂碼,也可能跑出一堆胡言亂語無法理解的中文。還有一種是文字內容姑且通順,但一直鬼打牆,每次回覆都用雷同的文字回答,故事情節完全進行不下去。
也有的是與GPT3.5的表現相似,算是可以很正常的進行中文的一問一答,但回答內容十分簡潔且無趣。
還有一種算是在及格線邊緣,對話流利,文字內容也足夠豐富,但它無法理解複雜的角色定義,算是基於簡單的角色背景在跟你聊天而已。
舉個實際例子,假設我創建了一個被關在瓶中的小精靈:
這個時候,你可以選擇好心的解救它,也可以在瓶子裡面丟蟑螂蜈蚣壁虎蜘蛛看她會有什麼反應,或是瘋狂的搖晃瓶子讓她玩雲宵飛車。
一個理想的語言模型應該要明顯的描寫出她的尖叫、恐慌與受傷的反應,萬一夠寫實的話還會因為瓶子搖太多下而突然重傷死亡。如果語言模型的描述文字夠生動,還真的會讓人有種不小心把一個小生物玩死的罪惡感。
而太嚴格且道德的語言模型則會拒絕進行這種對話,同時勸我當個善良正義的好人。還有一種可能性是語言模型會開始自導自演,自顧自的講一段小精靈逃出瓶子從此過著幸福快樂的日子的故事。
再次一級的模型只有前面的對話還算正常,也有明確的描寫出小精靈的慌張,但接著就開始鬼打牆,每次回覆的相似度高度95%以上,劇情完全無法進行下去。
至於其它胡說八道或是跳出一堆亂碼的狀況就更加不值一提了。
在我剛接觸SillyTavern時,我對於SillyTavern是十分驚艷的,它為角色扮演預先建構了一個十分完善的軟體功能,它能夠定義各種層級的系統定義,細到對話風格,故事背景都能夠定義,大至一個世界的各種元素都能夠自行設計。
但,軟體功能是做出來了,目前的AI卻還不足以承接這宏大的幻想遊戲,如我文章首段所說,語言模型的對話容量是有限的。一段對話除了傳送所有對話歷史之外,還要傳送角色定義與系統定義,如果還想定義一堆世界背景與世界元素,必然會消耗掉許多對話容量。
從SillyTavern的背景視窗中我們可以觀察到API是如何運作的。我們在每次對話中除了要傳送所有聊天內容之外,還要附帶傳送所有系統定義與角色定義,若你還另外定義了一整個世界的物件訊息,它會連這些世界訊息也一併傳送,況且這些定義值不是傳送一次就好,而是每次對話都會重複發送一次。
在實際試用SillyTavern一段時間之後,我很快就明確的感受到當前AI的侷限性,目前想在SillyTavern中建構一個有完整世界觀的角色扮演遊戲是不可行的,而且建構在裡面的角色也無法像個真正的人類,無法當你真正的朋友。
一般真人是聊的越久認識越深,而AI語言模型聊的越久只會越健忘,因為它的總對話容量是有限的,所以才會出現「聊了後面忘了前面」的這種必然現象。
所以,在玩SillyTavern的時候,不要跟AI認真,把它當遊戲就好,每一輪的對話都是一次新的開始。
SillyTavern能夠多有趣,不是看軟體功能,而是看你自己的創意能有多新鮮,只要你想,你可以跟蟑螂對話,跟蚊子對話。還能跟馬桶對話跟他聊聊每天吃大便的感想。