初探ChatGPT,你學(xué)會了什么?
GPT 是什么
GPT 是 “Generative Pre-Training” 的簡稱,是一種能夠處理圖像和文本輸入并產(chǎn)生文本輸出大型多模態(tài)模型。
使用公開可用的數(shù)據(jù)(如互聯(lián)網(wǎng)數(shù)據(jù))和第三方提供商許可的數(shù)據(jù),預(yù)先訓(xùn)練以預(yù)測文檔中的下一個令牌(一個令牌可以簡單理解為 4 個英文字符)。然后使用來自人類反饋的強化學(xué)習(xí)(RLHF)對該模型進行微調(diào)。
如何訓(xùn)練
首先,他們接受訓(xùn)練,使用來自互聯(lián)網(wǎng)的大量文本數(shù)據(jù)集來預(yù)測下一個單詞。然后,使用一種稱為來自人類反饋的強化學(xué)習(xí)的算法,用額外的數(shù)據(jù)對模型進行微調(diào),以產(chǎn)生人類貼標(biāo)機喜歡的輸出。
具體步驟:
- 針對大量問題生產(chǎn)答案,建立一個 GPT 模型
- GPT 模型和多個模型一起參與對問題給出回答
- 人工按特定標(biāo)準(zhǔn)對這些問題進行排序
- 基于上一步的排序行為數(shù)據(jù),訓(xùn)練一個獎勵模型進行打分
- 基于打分結(jié)果對 GPT 模型進行微調(diào)
- 用強化學(xué)習(xí)繼續(xù)訓(xùn)練微調(diào)后的 GPT 模型
微調(diào)步驟:
圖片
優(yōu)勢
考試成績
圖片
GPT-4 在大多數(shù)專業(yè)和學(xué)術(shù)考試中表現(xiàn)出人類水平的表現(xiàn)。
不足
時效性
這個問題目前看起來是最容易被解決的,不管后期是通過官方開放的 plugin(連接第三方的 api )還是自己微調(diào)都能在一定程度上被改善。
合法合規(guī)
需要基于當(dāng)?shù)氐奈幕?、信仰、法律等來控制?nèi)容的輸出,尊重個體差異。
數(shù)據(jù)量
可用于訓(xùn)練 GPT 的數(shù)據(jù)較為有限,比如目前中文領(lǐng)域高質(zhì)量的數(shù)據(jù)集通??赡軓闹?、小紅書、百度文庫等獲取,如果想在大模型上取得更大的突破需要更多海量優(yōu)質(zhì)的數(shù)據(jù)。
風(fēng)險
- 幻覺:即“產(chǎn)生與某些來源相關(guān)的無意義或不真實的內(nèi)容”
- 有害成分
建議或鼓勵自殘行為
色情或暴力內(nèi)容等圖形材料
騷擾、貶低和仇恨內(nèi)容
對策劃攻擊或暴力有用的內(nèi)容
查找非法內(nèi)容的說明
- 代表、分配和服務(wù)質(zhì)量的危害 :語言模型會放大偏見,延續(xù)刻板印象
- 假情報和影響行動
- 常規(guī)武器和非常規(guī)武器的擴散
- 隱私
- 網(wǎng)絡(luò)安全
- 風(fēng)險突發(fā)行為的潛在性
- 經(jīng)濟影響 :GPT 協(xié)議 4 對經(jīng)濟和勞動力的影響應(yīng)該是政策制定者和其他利益相關(guān)者的重要考慮因素
- 加速 :導(dǎo)致安全標(biāo)準(zhǔn)下降、不良規(guī)范擴散和人工智能時間表加快的風(fēng)險,所有這些都增加了與人工智能相關(guān)的社會風(fēng)險
- 過度依賴 :當(dāng)用戶過度信任和依賴模型時,就會出現(xiàn)過度依賴,這可能會導(dǎo)致未被注意到的錯誤和不充分的監(jiān)督
如何規(guī)避
- 進行提前干預(yù)部署
- 充分的對抗性測試
- 建立模型輔助的安全管道
如何在團隊內(nèi)落地
在了解完 GPT 這類模型的優(yōu)勢和限制之后,那么如何將其為我所用?
首先如果想在日常工作中使用 GPT 這類技術(shù),需要明確業(yè)務(wù)敏感度,使用過程中是否會包含大量內(nèi)部業(yè)務(wù)數(shù)據(jù);然后是評估收益,對該場景的提升是否足夠的大?下面介紹 3 種情況:
內(nèi)部業(yè)務(wù)數(shù)據(jù)敏感度高
智能客服、知識管理、文檔生成工具、業(yè)務(wù)開發(fā)等,這些應(yīng)用場景不可避免地會接觸到業(yè)務(wù)數(shù)據(jù),因此無法直接使用,通常只能基于現(xiàn)有的大模型利用內(nèi)部數(shù)據(jù)進行訓(xùn)練。
內(nèi)部業(yè)務(wù)數(shù)據(jù)敏感度不明確
比如作為日常工作的搜索化工具和助手,可能會包含業(yè)務(wù)數(shù)據(jù)時,大部分團隊?wèi)?yīng)該還是不允許直接接入和使用 ChatGPT,但是可以為團隊內(nèi)部提供部署前端界面和 api key,通過后端用代理方式訪問 OpenAI 接口,這樣做的優(yōu)點是相對直接訪問可以起到一定監(jiān)控作用,及時發(fā)現(xiàn)數(shù)據(jù)泄露等安全問題,并給出推薦的脫敏信息和 prompt 格式,提升團隊效率的同時并改進工作方式。
內(nèi)部業(yè)務(wù)數(shù)據(jù)敏感度低
這種情況比較適合可以使用外部成熟的大模型,比如處理構(gòu)建產(chǎn)物和分析異常,因為這些數(shù)據(jù)都是基于代碼經(jīng)過打包和壓縮后產(chǎn)生的數(shù)據(jù),相當(dāng)于做了大部分業(yè)務(wù)脫敏和關(guān)鍵字混淆,一定程度上規(guī)避了信息泄露的風(fēng)險,接下來下面舉兩個例子:
一、檢測產(chǎn)物
問:
你現(xiàn)在是一個前端專家,判斷下列腳本是否存在瀏覽器兼容問題,從可能的原因,可能的影響,問題嚴(yán)重等級評分( 10 分制),修復(fù)建議等方面進行分析評估,腳本為:
!function() {
var e = /([http|https]:\/\/[a-zA-Z0-9_.]+.baidu.com)/gi
, r = window.location.href
, t = document.referrer;
if (!e.test(r)) {
const o = "[https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif";](https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif%22;)
t ? (o += "?r=" + encodeURIComponent(document.referrer),
r && (o += "&l=" + r)) : r && (o += "?l=" + r);
var i = new Image;
i.src = o
}
}(window);
GPT:
該腳本的主要功能是檢查當(dāng)前頁面 URL 是否匹配百度域名,如果不匹配,則發(fā)送一個帶有 referrer 和 location 信息的請求到百度服務(wù)器。以下是關(guān)于這個腳本的兼容性問題分析:
可能的原因:
使用了 const 關(guān)鍵字,它在 IE 瀏覽器(版本小于 11)中不被支持。
可能的影響:在不支持 const 關(guān)鍵字的瀏覽器(如 IE10 及以下版本)中,腳本會拋出錯誤,導(dǎo)致后續(xù)代碼無法執(zhí)行。
問題嚴(yán)重等級評分:4/10。這個問題主要影響較舊的瀏覽器,尤其是 IE10 及以下版本。隨著現(xiàn)代瀏覽器的普及,這個問題的影響范圍有限。
修復(fù)建議:
將 const 關(guān)鍵字替換為 var 關(guān)鍵字,以確保更好的瀏覽器兼容性。修復(fù)后的腳本如下:……
二、分析異常
問:
你現(xiàn)在是一個前端專家,收到以下 sentry上報的異常,從可能的原因,可能的影響,錯誤嚴(yán)重等級評分(10 分制),修復(fù)建議等方面進行分析評估,異常為:
TypeError: Cannot set properties of null (setting 'innerText') at t.(/de/prismplayer/2.9.23/aliplayer-min.js:2:363589) at ……
GPT:
異常信息:TypeError: Cannot set properties of null (setting 'innerText')。這是一個類型錯誤,提示在嘗試設(shè)置一個 null 對象的 'innerText' 屬性。
可能的原因:
代碼中某個 DOM 元素沒有被正確獲取,可能是通過 querySelector 或 getElementById 等方法獲取的元素不存在或未被渲染。在事件處理函數(shù)中,可能未正確處理元素的引用,導(dǎo)致在某些情況下引用了一個 null 對象。
可能的影響:
由于無法正確設(shè)置 'innerText' 屬性,可能導(dǎo)致客戶端在某些功能上出現(xiàn)問題,影響用戶體驗。
如果這個問題普遍存在,可能會影響整個應(yīng)用的功能和穩(wěn)定性。
錯誤嚴(yán)重等級評分:6/10。這個錯誤可能導(dǎo)致某些功能無法正常使用,但不會導(dǎo)致整個應(yīng)用崩潰。
修復(fù)建議:
首先定位問題發(fā)生的位置。從異常堆棧信息中可以找到相關(guān)代碼位置,如 aliplayer-min.js 的第 2 行 363589 字符處。
根據(jù)代碼位置,檢查是否在設(shè)置 'innerText' 屬性前正確獲取了 DOM 元素。如果發(fā)現(xiàn)問題,需要修復(fù)代碼以確保 DOM 元素在使用前被正確獲取。
在事件處理函數(shù)中,確保對 DOM 元素的引用被正確處理,避免在某些情況下引用一個 null 對象。
在修復(fù)問題后,進行充分的測試,確保問題已經(jīng)解決??赡苄枰獪y試不同的場景,以驗證在各種條件下 DOM 元素都能被正確獲取和處理。
備注:在實際修復(fù)過程中,還需要根據(jù)項目的具體情況和代碼邏輯來進行分析和調(diào)整。由于問題發(fā)生在第三方庫(aliplayer-min.js)中,如果無法直接修改庫代碼,可以嘗試聯(lián)系庫的作者或者尋找替代方案。
在上面的例子中,先明確業(yè)務(wù)領(lǐng)域關(guān)鍵字“前端”,然后給出問題場景“兼容性分析”或“異常分析”,再設(shè)定期望的目標(biāo)字段:“原因”、“影響”、“嚴(yán)重等級”、“建議”,最后把必要的信息內(nèi)容加上,就得到了一個相對來說比較可靠的答案。
這個過程和我們平時調(diào)用業(yè)務(wù)接口很相似,可以有固定的出入?yún)⒑凸δ苓壿?,通過系統(tǒng)完成工作。例如 JS 異常分析,過去也有過嘗試訓(xùn)練自研模型來提高異常上報的準(zhǔn)確率,花了大量時間精力但是效果不盡人意,還需要申請 GPU 服務(wù)器資源,如今只需要調(diào)用大模型的接口即可達到非常不錯的效果,較為準(zhǔn)確的分析上報上來的異常。
總結(jié)
在工作中現(xiàn)階段主要受限于信息安全和技術(shù)瓶頸,直接使用 GPT 的場景會相對比較有限,自己用數(shù)據(jù)訓(xùn)練大模型成本又太高,所以在起步階段以工具化的形式快速應(yīng)用到現(xiàn)有場景為主,而且需要這些場景不包含業(yè)務(wù)數(shù)據(jù),以盡可能的確保信息安全。
展望
GPT 這類大模型所帶來的生產(chǎn)方式會對當(dāng)前社會的分工產(chǎn)生巨大影響,對于研發(fā)、設(shè)計等崗位尤其顯著,給我們帶來焦慮的是不知道何時就會被 AI 替代,有可能就是下一個版本發(fā)布的時候,因此作為開發(fā)者需要保持開放的心態(tài)去了解、學(xué)習(xí)這些新技術(shù),前期可以在現(xiàn)有的系統(tǒng)中接入 GPT 來提升效率,在未來不久可能可以將他作為一個萬能的系統(tǒng)來完成需求和工作,但是在使用中必須要做好數(shù)據(jù)安全方面的審核和把關(guān)。
相關(guān)話題
ChatGPT 會帶來失業(yè)潮嗎?(https://www.zhihu.com/question/582933780)
ChatGPT 這個風(fēng)口,普通人怎么抓?。?https://www.zhihu.com/question/582326598/answer/2882767690)
ChatGPT 有哪些神奇的使用方式?(https://www.zhihu.com/question/570729170/answer/2887200349)
參考
《 GPT-4 技術(shù)報告》