ChatGPT應用思考
OpenAI在2022年11月30日釋出了ChatGPT,它是一個基於大模型技術實現的通用聊天機器人,它可以用來寫作、翻譯、潤色句子、做事實性問答、執行文字分類/實體抽取/閱讀理解/文字摘要等各類NLP任務,甚至可以寫SQL、寫程式碼,幾乎無所不能。
一、GPT 到 ChatGPT 的演進
OpenAI持續升級最佳化GPT,於2019年2月釋出了GPT-2[3],於2020年6月釋出了擁有1750億引數的超大模型GPT-3[4],轟動一時,GPT-3不需要像BERT那樣針對特定任務做微調(Fine-tune),一個大模型即可在一系列自然語言處理任務上取得優秀的效果,結合Few-Shot少樣本學習能力,在部分任務上甚至接近或者達到當時的SOTA效果。
使用BERT執行某個具體場景下的NLP任務如文字分類時,需要人工標註該場景下的一定量資料,然後微調得到一個文字分類模型應用於分類,即重新更新了模型,對於不同的任務均要這樣做。而使用GPT-3執行NLP任務時,不需要重新更新模型,只需要向其傳送一句提示(Prompt)例如「請給這段文字分類,類別標籤有A、B、C」即可完成分類,或者可以使用少量標註資料作為例子告訴模型,能夠取得更優的效果,在這一點上GPT-3要比BERT更加易用。值得說明的是,自GPT-3開始,OpenAI沒有像GPT-1、GPT-2那樣釋出開原始碼,而是以API的形式提供商業化服務,具體見 。
BERT和ChatGPT執行任務的區別
ChatGPT是從GPT-3發展而來的,符堯等人在《拆解追溯 GPT-3.5 各項能力的起源》一文[10]中總結了GPT-3到GPT-3.5的進化樹,GPT-3在OpenAI API中的模型名稱為Davinci(達芬奇),之後經歷在程式碼上訓練、指令微調、RLHF(Reinforcement Learning from Human Feedback,基於人類反饋的強化學習)等過程,進化成ChatGPT,詳細內容可參見文章[10],這裡不再贅述。2022年11月,OpenAI除了釋出ChatGPT之外,還發布了text-davinci-003模型,兩者都是在text-davinci-002模型的基礎上使用RLHF方法訓練得到的,ChatGPT實際上不僅是一個單獨的模型,而是一個完整的Web聊天機器人產品,其內部呼叫的模型假設也稱作ChatGPT。
GPT-3到GPT-3.5的進化樹. 符堯等. 2022.12.11
OpenAI當前並未公佈ChatGPT論文,只在官網釋出了一篇BLOG[9],BLOG中講到「We trained this model using Reinforcement Learning from Human Feedback (RLHF), using the same methods as InstructGPT, but with slight differences in the data collection setup」,ChatGPT模型訓練採用了RLHF方法,和2022年3月釋出的InstrutGPT[8]一致,僅是資料採集上有一些差異,當前介紹ChatGPT技術原理的文章均是介紹InstrutGPT。RLHF並非是一個全新的方法,InstrutGPT論文裡有講到該方法參考了2020年9月釋出的文章《Learning to summarize from human feedback》[7]和2017年6月釋出的文章《Deep reinforcement learning from human preferences》[12],文章[7]又參考了2019年9月釋出的文章《Fine-Tuning Language Models from Human Preferences》[6],由此可見,OpenAI在RLHF方法上有持續的沉澱積累,ChatGPT的誕生也並非一蹴而就。
ChatGPT訓練過程. 2022.11.30
InstructGPT訓練過程. 2022.3
Learning to summarize from human feedback. 2020.9
Fine-Tuning Language Models from Human Preferences. 2019.9
二、GPT API 說明
GPT API Playground
GPT API 當前支援的模型
ChatGPT是以一個Web聊天機器人的形態釋出的,使用者需要登入網站進行體驗,OpenAI目前還未釋出ChatGPT API,但OpenAI API官網顯示不久後將釋出「ChatGPT is coming to our API soon, sign up to stay updated」。目前業界有一些聲稱基於ChatGPT的聊天機器人工具,均是以非官方API來實現的,例如可以基於爬蟲技術來訪問ChatGPT官網,封裝成ChatGPT API,並註冊大量ChatGPT賬號,以保證支援一定的訪問量。ChatGPT官網對訪問頻率有限制,且官網時不時會因為使用者請求過多無法訪問,這樣的API不是很穩定,只能在一些離線場景應用。值得一提的是,目前ChatGPT提供了付費賬號,價格為20美元/月,經測試,付費賬號和免費賬號在訪問頻率上並沒有多大差別,只是付費賬號的服務響應會相對穩定一些,若是個人使用,直接使用免費賬號即可。
ChatGPT官網
GPT API按照輸入輸出的token數量收費,價格為0.02美元/1000tokens,一個token大概是0.75個英文單詞,一箇中文漢字為兩個token,這裡包括請求API的token(Prompt)和API返回的token(Completion),一個GPT賬號會免費贈送18美元的額度,有效期為3個月。未來ChatGPT API 收費方式很可能也和此相同。
GPT API 收費說明
平臺針對每次請求輸入和輸出token計數
從GPT-3到GPT-3.5的進化樹中可以看到text-davinci-003模型和ChatGPT模型均是在text-davinci-002模型的基礎上使用RLHF方法訓練得到,都在2022年11月釋出,兩者的差別可能是針對不同型別人工反饋資料調優上的差異,ChatGPT模型是應用於對話聊天,會基於線上對話資料調優,在上下文多輪對話、擬人化等能力上可能更強,text-davinci-003基於GPT API上使用者反饋資料(如上述Playground)調優,在相關任務上的效果和ChatGPT相比可能差異不大,如後文有實驗在評論情感分類任務上二者效果相當。因此,使用者可以直接在GPT API中使用text-davinci-003模型來搭建相關應用。
三、GPT-3 訓練成本
2020年5月,文章[12]中講到微軟在Azure上為OpenAI搭建了獨立的超級計算機系統,包含28.5萬個CPU核和1萬張GPU卡(當時為V100):The supercomputer developed for OpenAI is a single system with more than 285,000 CPU cores, 10,000 GPUs and 400 gigabits per second of network connectivity for each GPU server。2020年6月釋出的GPT-3模型應該是在該系統上訓練得到。
英偉達在2021年4月發表的《Efficient Large Scale Language Model Training on GPU Clusters》[13] 文章中有預估不同引數規模的大模型訓練需要消耗的資源和時間:使用1024張80G視訊記憶體的A100卡訓練1750億引數的GPT-3模型,需要訓練34天。
這些都是2-3年前之前的費用說明,根據相關材料介紹,當前訓練GPT-3的費用更低 ,文章《ChatGPT背後的經濟賬》講到「對於大公司而言,訓練LLM(即使是從頭開始)的成本並不高,如今,在公有云中訓練GPT-3僅需花費約140萬美元」。
四、ChatGPT的應用
我們從2018年開始就有落地智慧寫稿,利用機器自動生成一些稿件應用於各類場景,如自動生成二手車車源介紹文章,可參見《58智慧寫稿機器人實踐》。原始生成方法是基於優質車源帖子資料,利用模板填充和文字生成技術自動生成文章,生成的文章較短且生硬,我們使用ChatGPT來潤色這些文章,向ChatGPT傳送prompt提示「請潤色下面這段文字,字數在400字以內」即可完成該任務,透過ChatGPT潤色的文章可讀性極佳。此外,我們也嘗試直接拿車源屬性欄位來讓ChatGPT寫作,例如向ChatGPT傳送提示「請以下面這些關鍵詞寫一篇400字的文章」,最終ChatGPT也能生成可讀性較好的結果。我們都知道ChatGPT在一些常識性問題上會犯錯誤,可能會生成一些錯誤內容,而我們是基於優質車源帖子資料來生成文章,車源帖子首先是真的,最終生成的內容也是真實可用的。
在本地服務(黃頁)業務下,客戶(商家)需要定期下線舊帖子,重新發布新貼子,由於商家平時工作繁忙,往往沒有時間發帖,因此平臺提供了代客發帖服務,人工來幫助其發帖。2022年我們上線了AI自動發帖功能,節省了30+人力。AI自動發帖的大概邏輯是基於舊帖子正文內容和帖子使用者評價,自動生成新帖標題和更新正文內容。在更新帖子正文內容這裡,需要篩選出使用者優質評價,並將評價提煉成一小段文字,再插入到帖子正文頭部,以"口碑亮點"模組來展示。
帖子正文口碑亮點
我們的原始方案是使用微調的BERT模型來識別評論正負向情感,先挑出正向評論,然後基於抽取式方法生成最終的評論短語。我們將ChatGPT應用於該場景,首先使用ChatGPT來識別評論正負向情感,然後繼續用ChatGPT將正向評論潤色成最終的"口碑亮點",取得了很好的效果。評論正負向情感識別是一個常見的NLP任務,我們直接向ChatGPT傳送Prompt提示「對下面的評論進行分類,類別有正向、其他,[商家很專業,很有耐心]屬於什麼類別?」,這裡沒有給其提供任何先驗知識和例子,即Zero-Shot,它也能獲得不錯的效果,比BERT微調模型略低,我們繼續實驗Few-Shot,告訴其分類標準並給予了一些樣例,如下圖所示,識別效果明顯提升,超過BERT微調模型,可見ChatGPT十分強大。在前文GPT API章節我們有講到2022年11月同期釋出的text-davinci-003模型和ChatGPT模型在部分NLP任務上可能差異不大,這裡我們也進行了驗證,在評論情感識別任務上二者差異不大。
智慧客服基本原理
智慧客服的核心是構建問答知識庫和文字匹配,問答知識庫裡的問題是線上使用者遇到的真實業務問題,答案是客服運營人員人工整理的答案,而文字匹配是一項傳統的NLP技術。很明顯,客服場景的問答知識庫是企業獨有的,ChatGPT沒有學習過這些資料,對於使用者諮詢它不可能給出正確答案。部分業務方也給我們提過使用ChatGPT代替現有智慧客服系統的想法,我們抽取了一定量線上真實使用者的輸入,並交給ChatGPT回答,最終證實了在業務問題上它會一本正經的"胡說八道"。當然,如果我們將問答知識庫資料全部提交給ChatGPT做微調(Fine-tune),它也能回答得較好,但目前ChatGPT還不提供微調功能,GPT-3 API提供了微調功能。
儘管ChatGPT不能直接拿來做智慧客服,但是我們可以用它來做智慧客服中的文字匹配任務,我們在近期接入的一個新業務場景下實驗了ChatGPT,可以類似下圖這樣向ChatGPT傳送Prompt,Zero-Shot的效果較差,若在Prompt裡給每個標準問題增加少量擴充套件問法就能有較好的效果提升,但要超過自研模型還需在Prompt上做更多最佳化工作。
ChatGPT文字匹配效果
用ChatGPT做文字匹配Prompt示例
自研模型 + ChatGPT資料增強後效果
用ChatGPT做對話意圖識別
智慧外呼是人機實時語音對話場景,電話溝通語音會被語音識別引擎實時轉寫成文字,然後交給NLP模型進行語義理解,本質上和微聊文字對話沒有差別,也會執行上述文字分類、文字匹配、對話意圖識別任務,ChatGPT應用類似。
人機語音對話相對微聊文字對話來講延時更敏感,即需要NLP模型快速返回識別結果,耗時一般要求在數十到上百毫秒之間,因為人和機器在實時對話過程中若機器反應慢,例如數秒才響應,人會明顯感覺到停頓,使用者體驗差,可能會直接結束通話電話,影響轉化效果,而在一些微聊智慧客服場景下,為了讓使用者感覺到背後不是機器人,會故意讓機器人回答慢一點,在程式中做一些延時回覆操作。當前ChatGPT和GPT API的推理延時並不低,平均耗時在數秒級別,直接應用ChatGPT來做人機語音對話中的NLP模組不可取。
我們使用ChatGPT離線實驗了近期上線的一個語音對話場景下的槽位提取(實體抽取),識別對話內容中的地點和服務類別槽位,這裡直接使用Zero-Shot,向ChatGPT傳送提示「請抽取這段話中的省、城市、區縣和服務類別」,從實驗結果看ChatGPT表現不錯。
ChatGPT槽位提取效果
五、個人思考
識別效果是否可控。NLP場景一般都會有準確率、召回率的側重,需要透過調整模型來控制這兩項指標,自研模型很容易做到,若使用ChatGPT,則只能透過調整Prompt來控制,如何編寫Prompt來控制準確率、召回率,目前還沒看到行之有效的方法。
推理效能是否符合應用需求。大模型的推理效能與硬體資源、模型加速手段相關,效能和投入成正比,當前ChatGPT推理較慢,無法滿足一些延時要求高的應用場景,例如智慧外呼,未來這裡可能需要和企業定製化。值得一提的是,當前NewBing體驗版的搜尋也非常緩慢,使用者體驗不佳,這也是微軟和OpenAI需要解決的痛點。
ROI的精確衡量。企業需要評估某個應用場景下使用ChatGPT API的花費是否比人力成本低,即將釋出的ChatGPT API可能也和GPT-3 API一樣按照token收費,它包括了輸入和輸出的token,真正接入使用時需要對Prompt和生成結果做精細化控制,編寫Prompt也是一項挑戰。
[14] OpenAI API.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024923/viewspace-2936410/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ChatGPT的應用與角色扮演ChatGPT
- Prompt工程師指南[應用篇]:Prompt應用、ChatGPT|Midjouney Prompt Engineering工程師ChatGPT
- chatGPT在金融行業的應用前景ChatGPT行業
- 因開發ChatGPT應用被約談ChatGPT
- 應用監控的選型思考
- ChatGPT應用PDF對話導師提示詞ChatGPT
- ChatGPT 爆火,社交應用如何 Get 新技能ChatGPT
- Apollo GraphQL 在 webapp 中應用的思考WebAPP
- 開源專案分享:ChatGPT 控制檯聊天應用ChatGPT
- ChatGPT在資訊保安領域的應用前景ChatGPT
- OpenAI正式推出ChatGPT的官方應用程式,可免費使用!OpenAIChatGPT
- 解決快取穿透的幾種應用思考快取穿透
- ChatGPT 在論文潤色方面可以有哪些應用_1ChatGPT
- ChatGPT在熱門行業的應用場景有哪些ChatGPT行業
- ChatGPT調研分析與應用場域結合構想ChatGPT
- OpenAI工程師親自修訂:用ChatGPT實時語音API構建應用OpenAI工程師ChatGPTAPI
- 對App應用架構搭建的一些思考APP應用架構
- 從經歷談技術應用的創業思考創業
- 關於AutoML應用於網路威脅的思考TOML
- 【保姆級教程】如何用Rust編寫一個ChatGPT桌面應用RustChatGPT
- 阿里NLP總監分享-NLP技術的應用與思考阿里
- 物聯網終端應用TEE的一些思考
- 駭客仿冒ChatGPT應用程式,傳播Windows、Android惡意軟體ChatGPTWindowsAndroid
- 世界經濟論壇:這些行業最適合應用ChatGPT行業ChatGPT
- 一款能“幹掉” ChatGPT 的應用「GitHub 熱點速覽」ChatGPTGithub
- 面向萬物智聯的應用框架的思考和探索(上)框架
- 面向萬物智聯的應用框架的思考和探索(中)框架
- 應用系統瓶頸排查和分析的思考-Arthas 實戰
- 對人工智慧的應用、發展及其影響的思考人工智慧
- Amdocs收購OPENET:關於5G應用落地的思考
- 應雲而生,幽靈的威脅 - 雲原生應用交付與運維的思考運維
- 中信建投:GPT4及ChatGPT相關應用梳理(附下載)ChatGPT
- 試用「ChatGPT」幾周之後ChatGPT
- 聊聊普通人如何應對 chatGPTChatGPT
- 區塊鏈技術應用場景思考-去中心化儲存區塊鏈中心化
- 對於單頁應用中如何監聽 URL 變化的思考
- 精益六西格瑪在醫療行業的應用思考行業
- imi 助力 ChatGPT 應用開發,支援優雅的 SSE 服務端推送功能ChatGPT服務端