筆者之前的文章 ChatGPT O1 Pro 來(lái)了,有點(diǎn)想沖動(dòng)消費(fèi)了 提到,ChatGPT O1 Pro 這個(gè)滿(mǎn)血模式,在推理、寫(xiě)作、邏輯、數(shù)學(xué)和科學(xué)任務(wù)中的表現(xiàn)都非常令人滿(mǎn)意。 但是評(píng)測(cè)也發(fā)現(xiàn),在專(zhuān)業(yè)和技術(shù)性更強(qiáng)的領(lǐng)域,比如精細(xì)化財(cái)務(wù)建模和復(fù)雜的編碼需求中,O1 Pro 模式的表現(xiàn)就有些差強(qiáng)人意了,有點(diǎn)撐不起它 200 USD/月的訂閱價(jià)格。 O1 Pro 尚且如此,就更別提其他的大語(yǔ)言模型了。 筆者不時(shí)聽(tīng)到有朋友抱怨,當(dāng)他們遇到 SAP 開(kāi)發(fā)某些技術(shù)問(wèn)題,求助 ChatGPT 等大語(yǔ)言模型時(shí),經(jīng)常收到一本正經(jīng)的胡說(shuō)八道,令人哭笑不得。 更要命的是,如果提問(wèn)者對(duì)問(wèn)題所在領(lǐng)域缺乏足夠了解,則更不容易識(shí)別出 ChatGPT 回答中的謬誤。如果直接把其回復(fù)用在工作中,有時(shí)會(huì)壞事。 比如去年6月美國(guó)曼哈頓地區(qū)法官判決,責(zé)令兩個(gè)當(dāng)?shù)芈蓭熂捌渎蓭熓聞?wù)所,支付總計(jì) 5000 美元的罰款。理由是這兩位律師在此前提交給法院的一份簡(jiǎn)短的訴訟文件中,引用了由 ChatGPT 生成的 6 個(gè)虛構(gòu)案例。 再比如讓 ChatGPT 回答:
ChatGPT 給出了三種方案:
思路大體正確,但給出的代碼存在很多細(xì)節(jié)上的錯(cuò)誤,比如使用了很多 ABAP 系統(tǒng)里根本不存在的接口。 或者使用的接口和工具類(lèi)雖然存在,但 ChatGPT 給它們憑空增添了并不存在的公有方法。 大語(yǔ)言模型"胡說(shuō)八道"的行為,專(zhuān)業(yè)術(shù)語(yǔ)叫做 hallucination(幻覺(jué))。 大語(yǔ)言模型為何會(huì)產(chǎn)生幻覺(jué)?這是由其工作原理決定的。 大語(yǔ)言模型基于海量的文本數(shù)據(jù)訓(xùn)練,目標(biāo)是生成符合輸入上下文的自然語(yǔ)言文本。 大語(yǔ)言模型通過(guò)概率預(yù)測(cè)生成每一個(gè)詞語(yǔ)或標(biāo)記,目的是找到在給定上下文環(huán)境中最可能出現(xiàn)的序列。 這種機(jī)制雖然強(qiáng)大,但并不完全依賴(lài)事實(shí)信息,而是依賴(lài)于語(yǔ)言模式的相關(guān)性。模型只是根據(jù)大量訓(xùn)練數(shù)據(jù)中觀察到的統(tǒng)計(jì)規(guī)律,來(lái)生成最可能的詞匯序列。
訓(xùn)練 GPT 模型的目標(biāo)是最大化語(yǔ)言序列的似然性,這種方式注重語(yǔ)言流暢性,但無(wú)法完全保證生成內(nèi)容的準(zhǔn)確性。 比如在回答 SAP ABAP 編程問(wèn)題時(shí),模型會(huì)嘗試從訓(xùn)練數(shù)據(jù)中提取與 ABAP 相關(guān)的信息。然而,訓(xùn)練數(shù)據(jù)中未必包含所有準(zhǔn)確的 ABAP 編程細(xì)節(jié)。 幻覺(jué)現(xiàn)象的根源可以分為以下幾個(gè)關(guān)鍵點(diǎn): 1. 生成概率的優(yōu)先性 大語(yǔ)言模型在生成答案時(shí)優(yōu)先選擇高概率的詞語(yǔ)組合,而非最準(zhǔn)確的內(nèi)容。這種機(jī)制可能導(dǎo)致生成看似合理但實(shí)則不符合事實(shí)的答案。 假設(shè)模型需要回答一個(gè)關(guān)于 ABAP 動(dòng)態(tài)表的操作方法的問(wèn)題: 用戶(hù)問(wèn)題:
ChatGPT 的回答:
表面上看起來(lái),cl_alv_table_create=>create_dynamic_table 和 dynamic table 非常相關(guān),然而這個(gè)回答無(wú)論從語(yǔ)法還是語(yǔ)義的準(zhǔn)確性上來(lái)說(shuō),都和正確回答相差很遠(yuǎn)。 2. 領(lǐng)域知識(shí)的局限性 大語(yǔ)言模型并非專(zhuān)門(mén)針對(duì)某些特定領(lǐng)域優(yōu)化,無(wú)法像領(lǐng)域?qū)<乙粯由钊肜斫鈱?zhuān)業(yè)術(shù)語(yǔ)或特定操作邏輯。對(duì)于某個(gè)細(xì)分領(lǐng)域具體的編程任務(wù),這種局限性尤為明顯。 比如向 ChatGPT 發(fā)問(wèn):
模型生成的回復(fù):
這段 ABAP 代碼并沒(méi)有實(shí)現(xiàn)動(dòng)態(tài)表的創(chuàng)建與操作,只是一段簡(jiǎn)單的內(nèi)表循環(huán)打印邏輯。ChatGPT 根本沒(méi)有理解何為 ABAP 動(dòng)態(tài)內(nèi)表概念。這種錯(cuò)誤體現(xiàn)了模型在復(fù)雜任務(wù)上的幻覺(jué)傾向。 3. 缺乏實(shí)時(shí)驗(yàn)證能力 模型生成內(nèi)容時(shí)無(wú)法實(shí)時(shí)查詢(xún)或驗(yàn)證其輸出與真實(shí)信息是否一致。這種機(jī)制使其在不確定情境下更容易出現(xiàn)幻覺(jué)。 比如用戶(hù)提問(wèn):
模型回答:
上述答案看似正確,但有經(jīng)驗(yàn)的 ABAP 開(kāi)發(fā)人員能發(fā)現(xiàn),OFFSET 和 FETCH 關(guān)鍵字根本不支持直接在 SELECT 語(yǔ)句中使用。 大語(yǔ)言模型是一種通用模型而非 ABAP 領(lǐng)域的細(xì)分模型,因此無(wú)法驗(yàn)證其生成內(nèi)容是否適用于 ABAP。 如何緩解幻覺(jué)現(xiàn)象? 網(wǎng)絡(luò)上已經(jīng)有海量關(guān)于大語(yǔ)言模型 Prompt Engineering 的文章,即通過(guò)對(duì)提示詞調(diào)優(yōu),提供清晰的上下文,附件相關(guān)信息以提高模型的回答質(zhì)量,降低幻覺(jué)出現(xiàn)的概率。 如果幻覺(jué)現(xiàn)象的問(wèn)題不解決,大語(yǔ)言模型是很難在追求高可用性和準(zhǔn)確性的企業(yè)級(jí)應(yīng)用領(lǐng)域里落地的。 AI 業(yè)界一種通用的解決方案是 Retrieval-Augmented Generation(RAG) 即增強(qiáng)檢索生成技術(shù)。 RAG 技術(shù)的核心目標(biāo)是,將大語(yǔ)言模型的生成能力與外部知識(shí)庫(kù)或檢索機(jī)制的準(zhǔn)確性和實(shí)時(shí)性結(jié)合起來(lái),以增強(qiáng)回答問(wèn)題和生成內(nèi)容的能力。 RAG 的核心可以分為兩個(gè)主要模塊:
該模塊使用檢索到的信息和用戶(hù)輸入,生成最終的回答或內(nèi)容。 在實(shí)踐中,RAG 系統(tǒng)的工作流程如下:
SAP 社區(qū)上有一篇有趣的博客,利用 RAG + OpenAI API 在 SAP BTP 上構(gòu)建了一個(gè)加強(qiáng)版的 ChatBot. 筆者后續(xù)也會(huì)給大家詳細(xì)介紹這篇博客的內(nèi)容: A Journey into Retrieval-Augmented Generation (RAG) on SAP BTP:https://community./t5/technology-blogs-by-sap/a-journey-into-retrieval-augmented-generation-rag-on-sap-btp/ba-p/13580653 除了 RAG 之外,另一種思路就是加強(qiáng)領(lǐng)域特定微調(diào),通過(guò)領(lǐng)域相關(guān)的高質(zhì)量數(shù)據(jù)對(duì)模型進(jìn)行微調(diào),使其在特定領(lǐng)域表現(xiàn)更佳。 筆者在之前的文章曾經(jīng)提到,SAP Joule 已經(jīng)完成了超過(guò) 2.5 億行 ABAP 代碼的訓(xùn)練,在 ABAP 這個(gè)細(xì)分的編程領(lǐng)域里,我們有理由相信,它的回答質(zhì)量,一定能夠輕松碾壓普通的大模型。 SAP Joule 經(jīng)過(guò)了超過(guò) 2.5 億行 ABAP 代碼的訓(xùn)練之后...... Knowledge Graphs(知識(shí)圖譜) 也是有效避免大模型幻覺(jué)的另一種技術(shù)手段,SAP 也在這個(gè)方向做出了很多探索和成果。筆者后續(xù)的文章會(huì)繼續(xù)分享相關(guān)內(nèi)容。 |
|
來(lái)自: 汪子熙 > 《待分類(lèi)》