我所瞭解的 ChatGPT:二次開發;有何限制;對未來的影響

Meathill發表於2023-02-27

前言

ChatGPT 其實去年底就已經在開發界大放異彩,但是圈子之外對它瞭解不多。春節過後,公關公司開工上班,馬上開始緊鑼密鼓的宣傳,然後就開始破圈,如今已經是整個公共領域,尤其是創投方面最熱門的話題。

我最近也接到需求,要開發一個基於 OpenAI API 的小應用,於是開始深入瞭解。如今應用初步完成,對 OpenAI 的產品有了更具體的瞭解。再結合之前向做 AI 的朋友請教,並總結自己觀察思考,於是想寫一篇文章分享給大家。希望未來的 AI 世界我們都不要缺席。

OpenAI 的服務

ChatGPT 是 OpenAI 的一項服務。它的核心是 GPT-3.5。OpenAI 還提供很多其它服務,比如影像生成、文字分析、比 ChatGPT 質量略差的 GPT-3 等。使用這些服務需要一些操作或技巧,比如翻牆——這次是 OpenAI 先動的手。以下是我摸索出的一些經驗,希望可以幫後來者省去一些時間。

註冊

目前註冊 OpenAI 比較麻煩,因為他不向中國使用者提供服務,所以必須有國外手機號,並且全程使用全域性代理才可以完成。國外手機號可以借用接號平臺來繞過,大家可以按需選用;如果有國外的親朋好友幫忙,就會很容易。

綁卡

如果你只想在網頁端使用 ChatGPT,可以暫時不綁卡。如果要使用 API 或者其它服務,就得綁卡。綁卡很麻煩,國內信用卡都不支援。虛擬信用卡比如 Payoneer,只對企業開放,需要資質審查,也不太好搞。

至於我,最後還是拜託國外的親戚幫忙搞定。目前有三個月的免費期,暫時夠我把設想的應用場景跑一遍了。

GPT-3 與 GPT-3.5

大熱的 ChatGPT 就是 GPT-3.5,現在只提供網頁服務,如果要當成 API 呼叫,需要一些轉換步驟,比較麻煩。從開發角度來說,直接使用 OpenAI API 會簡單很多,但是隻能使用 GPT-3 模型,質量會差一些。不過看起來 ChatGPT API 已經在登記預約中,猜測很快也會開放,所以先把程式碼寫好,等待開放應該也可以。

目前來看,我認為官方不希望大家偷摸使用 Web 介面,近期可以繼續嘗試,長遠來看最好做好切換到 API 的準備。

我的進展

我目前實現了本地透過 OpenAI SDK 呼叫服務 API。不過官方 SDK 有些問題,比如因為使用 Axios,無法部署在 Vercel Edge Function,必須放在自己的伺服器上。所以接下來我計劃做兩件事情:

  1. 嘗試不用 SDK,把邏輯直接放在 Vercel Edge Function 裡
  2. 搭建 ChatGPT Web API 環境,以便直接使用更好的服務

ChatGPT 的限制

(以下內容感謝 @Gary 指導。)

4097 tokens

GPT-3.5 的最大長度是 4097 token,根據我做 AI 的朋友講解,漢字=2token,英文=0.5 token。也就是 GPT-3.5 的上下文最多保持 2k 漢字或 8k 英文字元 的內容。所有文字合併到一起發給 AI,AI 給出答案;我們再把新文字續上,發過去,AI 給出新的答案。直到最初的內容被擠出去,產生新的上下文。

這是什麼意思呢?比如我們日常交流,都是自帶上下文的,跟父母、跟同事、跟戀人說話不一樣,也是因為上下文不同。我會跟遊戲裡的同好聊魔獸世界,但是如果跟父母說同樣的話題,他們就會不知所云。這就是上下文的差異。

換言之,我們跟 ChatGPT 對話,用中文,教給它一件事情,累計 2k 字之後,他就會忘記這個要求。要避免這種情況,我們就得每隔一段時間重新教它一次;或者,以程式設計的方式重構 prompt,新增先決條件,以便維持特定功能。

聽起來有理有據,但其實錯誤百出

我稱其為“尬聊之神”。ChatGPT 並不是真的智慧,或者說,目前的 AI 實現都在從不同方向模擬人類的智慧,也許我們最終會成功,但是現在似乎還有些距離。具體到 ChatGPT 上就是,你說什麼,他都會給出回應,但是回應有沒有價值,不好說。

尤其在一些絕對的事實方面,因為訓練語料的問題,ChatGPT 的表現會比較差。因為對它來說,假的、錯的語料,只要語法正確,也是好語料。這方面 Bing 裡號稱 GPT-4(我對此版本號表示懷疑)的模型表現就會好很多,因為它會結合網頁權重,使用更權威的材料。

在程式設計領域也是如此。因為開源軟體的關係,ChatGPT 擁有非常豐富的程式開發知識,可以幫我們解決很多問題,寫出很多程式碼。但是這些程式碼寫得如何、能不能跑起來,還很難講。所以,能不能把程式設計的工作丟給它?目前不能,它甚至不具備基於語言特性進行邏輯推導(語法檢查)的能力。——但是不代表我們不能用它提升效率、學習技術。

還沒有真正的智慧,也無法持續學習

前面說過,ChatGPT 可以在保留一定上下文的基礎上,與當前使用者進行有狀態的交流。所以我們也可以教 ChatGPT 做一些事情,比如發出指令:“以後提到日期,都用 YYYY-MM-DD 的格式”。接下來,我們就能把 ChatGPT 當成自動格式轉換器來使用。或者,我們可以讓它換用不同的語氣、不同的語法,改變輸出的內容,契合某種風格。比如出名的胡總編模擬器、魯迅模擬器等。

但這些並不是自我意識與學習,本質上只是 ChatGPT 根據完整上下文合成的文字,而已。有很大的限制:首先我們必須保留足夠的上下文,其次我們也沒有辦法直接把這個狀態轉移到其它使用者。

哪些未來更可期?

ChatGPT 的出現,讓大家都很興奮,我也一樣。我們都確定未來可期,但是通常來說,總會有一些未來更可期,另一些未來不那麼可期。結合上面提到的問題,我認為有一些領域可能不太好做:

老年人陪護(x)

我有個朋友上一份工作主攻老年人市場,所以他立刻就問,能不能用 ChatGPT 做一款老年陪護軟體。

我認為不行。這裡涉及到兩個問題:

  1. 上下文限制。AI 會損失大量的歷史記錄,需要使用者花費大量的時間反覆訓練。對有經驗的使用者來說,可以透過各種手法最佳化,對老年人來說,可能會反覆經歷挫折。
  2. 不夠準確。因為訓練語料的問題,ChatGPT 無法保證內容的準確性,如果老年人尋醫問診,可能得到錯誤的答案。眾所周知,AI 不能背鍋,這一點也很難解決。

但也有一些領域會有很大的機會:

語言類,翻譯、文書等

這方面算是 ChatGPT 的主場了,無論翻譯,還是文書書寫,目前來看 ChatGPT 都能完成的非常好。4097 tokens 的限制,可能需要我們在產品層面給予一定的輔助設計,但是在可以想象的空間內,都能產生不錯的產品。包括但不限於:

  1. 小說生成器
  2. 解說文字生成器
  3. 內容/關鍵詞提取器
  4. 商務郵件輔助工具
  5. 學外語輔助工具
  6. ……

太多太多,不一一列舉了。總之,這塊兒幾乎一定會產生很多應用,甚至我們現在就能見到不少。

使用者介面

我認為 ChatGPT 最大的價值就是全新的使用者介面。以前我們的使用者介面,無論命令列、圖形化,都只針對具體的需求,需要使用者自己有清晰的認知、有明確的方向、並認真學習。如果使用者沒有學習過,就很難使用現有的產品。想象一下,如果使用者可以用自然語言發出命令,那幾乎所有產品介面都可以重建得更好用。

舉個例子,我們家 Siri 最常用的功能就是定時,比如煮泡麵:嘿,siri,定時 4 分鐘。但是其它功能很難做到,因為其它的功能描述起來太複雜,而且表達方式也比較多,Siri 目前處理不了。

ChatGPT 則可以從使用者的文字描述中提煉出有價值的資訊;經過簡單的訓練之後,還可以發出指定的命令。所以我設想,將來很多東西都可以用它重建,比如(GPT 沒有好的翻譯,所以我就用姆伊姆伊來替代):

  • “姆伊姆伊,幫我叫水”——我家桶裝水喝完之後,要打電話給水站讓他們送水——ChatGPT 自動撥號,跟客服簡單溝通,叫水。
  • “姆伊姆伊,幫我訂個外賣,吃粉吧“——這個需求會複雜很多,除了外賣之外,我們需要 AI 分辨出“吃米粉”這樣的需求,並且從歷史當中,判斷我們常吃的粉是哪一家,然後幫我們完成訂外賣的需要。

AI 公司的未來

未來 OpenAI 這樣的大型公司,能提供通用模型的公司會越來越少,因為通用模型資料量和計算量太大,小公司根本燒不起。但是做 AI 的小公司可能會冒出來,類似用 WordPress 做建站,小公司可以幫客戶在大模型的基礎上做 finetuning,幫助客戶將 AI 整合到產品裡。

我會怎麼做?

首先,我一定要嘗試用 ChatGPT 做產品。我覺得它是很重要的產品,是未來的重要組成部分。去年它開始在業內刷屏的時候,我沒想到它能獲得這麼大的公眾關注度,這對我們來說既是好訊息也是壞訊息。好訊息是將來可以藉助它的品牌做宣傳,壞訊息是勢必有更多的競爭者入局。

接下來是產品方向。我想做簡歷相關,讓 ChatGPT 幫我們把簡歷做得更匹配 JD、更有競爭力。考慮到它在文字分析和生成方面的強勢,我覺得這個方向有很大的機會。

我也計劃加入一家以 AI 應用層為主要產品的公司,不要錯失良機。希望能找到合適的老闆或團隊,即尊重技術,又擅長市場,大家能夠合作共贏。

前端怎麼做?

我認為現在是前端的好機會,因為目前 ChatGPT 基於瀏覽器提供服務,所以瀏覽器擴充套件就有很大的想象空間。建議所有前端小夥伴都好好學習一下 ChatGPT 的相關知識,能夠實際開發一兩個相關產品。比如,有人會讓 ChatGPT 推薦一些配色,如下圖:

ChatGPT 可探索外掛截圖

ChatGPT 只能給出色值,不方便直接看到。我們就可以寫一個瀏覽器外掛,將頁面上的顏色轉換成色塊顯示出來,並且支援一鍵儲存到自己的調色盤。利用好這段真空期,有很大的發展空間。

總結

以上,就是我從去年得知 ChatGPT,到最近一週基於 ChatGPT 開發瀏覽器擴充套件,再結合我看到的、聊到的、想到的內容,集中分享。

希望對看到文章的各位有啟發、有幫助。如果你對 ChatGPT,對近期的 AI 熱潮有想法、有問題,歡迎留言討論。更歡迎針對我文章的評議、討論。

未來,AI 一定會有一席之地,我們也一起來爭取屬於我們的新領地吧。

本文參與了SegmentFault 思否寫作挑戰賽,歡迎正在閱讀的你也加入。

相關文章