小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為何 ChatGPT 等大語(yǔ)言模型,回答 SAP 開(kāi)發(fā)相關(guān)問(wèn)題時(shí),經(jīng)常一本正經(jīng)的胡說(shuō)八道?

 汪子熙 2024-12-12 發(fā)布于上海

筆者之前的文章 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 回答:

使用三種不同的方式,用 ABAP 生成 pdf

ChatGPT 給出了三種方案:

  • Smart Forms:適合批量生成具有復(fù)雜邏輯的報(bào)表。

  • Adobe Forms:用于支持高分辨率和多媒體的高級(jí)表單。

  • OTF 轉(zhuǎn)換:簡(jiǎn)單高效,適合輕量級(jí)的 PDF 生成。

思路大體正確,但給出的代碼存在很多細(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)練數(shù)據(jù)中包含不準(zhǔn)確或矛盾的信息,模型就會(huì)無(wú)法分辨真?zhèn)巍?/span>

  • 模型對(duì)語(yǔ)言的處理是基于概率分布,而非真正的語(yǔ)義理解或推理能力。

  • 在特定領(lǐng)域或任務(wù)上,模型可能過(guò)度泛化,導(dǎo)致輸出內(nèi)容超出輸入語(yǔ)境。

訓(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)題:

如何使用 SAP ABAP 實(shí)現(xiàn)動(dòng)態(tài)表的創(chuàng)建與數(shù)據(jù)插入?

ChatGPT 的回答:

您可以使用以下代碼創(chuàng)建動(dòng)態(tài)表并插入數(shù)據(jù):
DATA: lt_fldcat TYPE lvc_t_fcat,      lt_table  TYPE REF TO data.      CALL METHOD cl_alv_table_create=>create_dynamic_table  EXPORTING    it_fieldcatalog = lt_fldcat  IMPORTING ep_table = lt_table.
ASSIGN lt_table->* TO FIELD-SYMBOL(<fs_table>).INSERT INTO <fs_table> VALUES ('Sample Data').
答案顯然牛頭不對(duì)馬嘴。因?yàn)樵诮o定的 Prompt 上下文里,ChatGPT 只注意到了動(dòng)態(tài)表這幾個(gè) tokens,因此選擇概率上最相關(guān)的 cl_alv_table_create=>create_dynamic_table 這個(gè)方法調(diào)用。

表面上看起來(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):

給出 ABAP 動(dòng)態(tài)內(nèi)表的完整實(shí)現(xiàn)代碼

模型生成的回復(fù):

DATA: lt_table TYPE TABLE OF string.IELD-SYMBOLS: <fs> TYPE string.
LOOP AT lt_table ASSIGNING <fs>.  WRITE: / <fs>.ENDLOOP.

這段 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):

SAP ABAP 如何在 SQL 中進(jìn)行數(shù)據(jù)分頁(yè)?

模型回答:

您可以使用 SQL 語(yǔ)句實(shí)現(xiàn)分頁(yè):
SELECT * FROM table_name  ORDER BY column_name  OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY.

上述答案看似正確,但有經(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è)主要模塊:

  • 檢索模塊 (Retriever):

    該模塊的任務(wù)是從外部知識(shí)庫(kù)中檢索與問(wèn)題相關(guān)的內(nèi)容。知識(shí)庫(kù)可以是結(jié)構(gòu)化數(shù)據(jù)庫(kù)、非結(jié)構(gòu)化文檔集合、網(wǎng)頁(yè)內(nèi)容等。

    檢索模塊通常基于密集向量檢索技術(shù),例如基于嵌入的向量相似性搜索 (例如 FAISS) 或傳統(tǒng)的信息檢索方法 (如 BM25)。

  • 生成模塊 (Generator):

該模塊使用檢索到的信息和用戶(hù)輸入,生成最終的回答或內(nèi)容。

在實(shí)踐中,RAG 系統(tǒng)的工作流程如下:

  • 用戶(hù)輸入一個(gè)查詢(xún)。

  • 檢索模塊從知識(shí)庫(kù)中選取與查詢(xún)相關(guān)的文檔片段。

  • 檢索到的片段被傳遞給生成模塊,生成模塊結(jié)合這些片段生成答案。

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)容。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多