寫在前面的話
大模型差不多是一項(xiàng)發(fā)明,其重要性不亞于電的發(fā)現(xiàn)和電燈的發(fā)明。
大模型的基礎(chǔ)是使用Transformer算法識(shí)別了人類語(yǔ)言(大致等同于人類的思維邏輯)的內(nèi)在關(guān)系和特征,學(xué)習(xí)了海量知識(shí)的內(nèi)在關(guān)聯(lián)規(guī)律,并以人們需要的形式進(jìn)行輸出。
大模型在通用代碼編制方面已經(jīng)展現(xiàn)了強(qiáng)大的能力,那么對(duì)于細(xì)分行業(yè)的代碼編程是否具有輔助價(jià)值?
ANSYS官方發(fā)表了以下這篇大模型輔助Redhawk MapReduce建模的方法。
大模型與工程仿真代碼
大型語(yǔ)言模型 (LLM) 在自然語(yǔ)言處理 (NLP) 的發(fā)展中發(fā)揮著重要作用,在各種應(yīng)用中展示了非凡的多功能性,包括特定領(lǐng)域的問(wèn)答和代碼生成 。顯著的進(jìn)步導(dǎo)致了最先進(jìn)的模型,如 GPT-4 、Claude 和 Mistral,后者集成了 “Mixture-Experts” (MoE)。
檢索增強(qiáng)生成 (RAG) 框架被廣泛用于通過(guò)從外部數(shù)據(jù)庫(kù)中檢索事實(shí)內(nèi)容來(lái)增強(qiáng)專業(yè)領(lǐng)域的 LLM,從而減輕幻覺(jué)并提高性能。這種方法涉及將數(shù)據(jù)解析為字符有限的重疊片段,并將它們轉(zhuǎn)換為基于向量的檢索的嵌入,從而賦予 LLM 精確的特定領(lǐng)域知識(shí)。
代碼生成是 LLM 的一個(gè)關(guān)鍵應(yīng)用,但它在特定領(lǐng)域的工程任務(wù)中提出了各種挑戰(zhàn),例如在 Ansys RedHawk-SC (RH-SC) 平臺(tái)上的任務(wù)。在這里,由于任務(wù)的復(fù)雜性和缺乏編碼專業(yè)知識(shí),用戶經(jīng)常難以創(chuàng)建 MapReduce (注)Python 腳本。通過(guò)自然語(yǔ)言指令自動(dòng)生成此腳本可以顯著提高工作效率并增強(qiáng)用戶體驗(yàn)。
MapReducePython 代碼不僅需要對(duì) RH-SC 架構(gòu)有深入的了解,還需要復(fù)雜電路設(shè)計(jì)方面的專業(yè)知識(shí)。缺乏全面的技術(shù)文檔和稀缺的電子設(shè)計(jì)自動(dòng)化 (EDA) 在線資源使 LLM 難以獲得必要的領(lǐng)域知識(shí)。
雖然 ChatEDA 試圖通過(guò)微調(diào) Llama2和在開(kāi)源 EDA 工具上實(shí)現(xiàn)自規(guī)劃代碼生成來(lái)解決這些問(wèn)題,但這種方法成本高昂。其他方法,如 TestPilot和 Veri-Gen已經(jīng)顯示出在我們的專業(yè)上下文中生成代碼的局限性。
為了克服這些挑戰(zhàn),ANSYS提出了基于 RAG 的新方法,而無(wú)需對(duì) LLM 進(jìn)行任何形式的預(yù)訓(xùn)練或微調(diào)。其中的Data Splitter 和 Data Renovation 技術(shù)改進(jìn)了語(yǔ)義文本分割并豐富了段落內(nèi)容,從而避免了直接文檔提取的典型混亂。這些方法顯著提高了 RAG 的嵌入準(zhǔn)確性,從而更有效地檢索信息,從而提高了超越傳統(tǒng)字符計(jì)數(shù)分割技術(shù)的整體性能。同時(shí)引入一種新穎的提示技術(shù) Implicit Knowledge Expansion and Contemplation (IKEC),將 IKEC 與思維鏈 (CoT) 方法相結(jié)合,以探索潛在的性能改進(jìn)。
通過(guò)實(shí)現(xiàn)這些數(shù)據(jù)預(yù)處理和自規(guī)劃代碼生成提示策略,可以生成符合用戶需求的腳本。經(jīng)過(guò) 180 多位ANSYS專家的投票,結(jié)果證實(shí)了Splitter 和 Renovation 方法顯著提高了代碼生成的質(zhì)量。
框架
Splitter
RAG 方法的有效性取決于文本的相關(guān)性,由嵌入計(jì)算確定。傳統(tǒng)的 RAG 技術(shù)通常按字符數(shù)對(duì)文本進(jìn)行分段,可能會(huì)產(chǎn)生缺乏主題焦點(diǎn)的塊。因此,這些塊生成的嵌入不能充分表示目標(biāo)主題,從而降低了檢索高質(zhì)量文本內(nèi)容的可能性。
Data Splitter 通過(guò)對(duì)文本進(jìn)行語(yǔ)義分割來(lái)解決此問(wèn)題,專注于有意義的單元,例如 API 函數(shù)和概念,同時(shí)保留原始文本格式并糾正格式問(wèn)題。我們將文本分割成固定的頁(yè)面單位,讓 LLM 確定段落的完整性。不完整的句段將保持未閉合狀態(tài),從而促進(jìn)無(wú)縫后處理以組合完整的段落。
如下圖所示,數(shù)據(jù)拆分器將提取的文檔內(nèi)容精確劃分為不同的、集中的片段,從而有效地解決可能出現(xiàn)的格式問(wèn)題。確定在何處拆分文本的任務(wù)類似于“二元分類問(wèn)題”,這對(duì)于 LLM 來(lái)說(shuō)相對(duì)簡(jiǎn)單。因此,使用 LLM 來(lái)完成這項(xiàng)任務(wù),在這種情況下放棄使用 RAG 技術(shù)。
Data Renovation
Data Renovation 解決了技術(shù)文檔通常簡(jiǎn)潔性所帶來(lái)的挑戰(zhàn)。它使 LLM 能夠有條不紊地用易于理解的知識(shí)豐富每個(gè)段落,從而增強(qiáng)嵌入——即使 LLM 已經(jīng)熟悉這些知識(shí)。我們利用 LlamaIndex 提供的 RAG 框架為原始文檔和腳本提供深深植根于源材料上下文的補(bǔ)充內(nèi)容,從而確保信息的可靠性。
Data Splitter 處理的每個(gè)段落隨后按順序更新。從圖中值得注意的是,翻新一絲不茍地納入了內(nèi)容中提到的關(guān)鍵術(shù)語(yǔ)的額外細(xì)節(jié)。
Script Augmentation
獲取帶有詳細(xì)注釋的腳本通常是一項(xiàng)具有挑戰(zhàn)性的工作。在只有有限數(shù)量的此類腳本可用的情況下,如果我們提示 LLM 基于參考腳本生成“全新”腳本,由于 LLM 的專業(yè)知識(shí)有限,結(jié)果通常是混亂的輸出。如圖 2 所示,隨機(jī)選擇了兩個(gè)腳本,并采用 RAG 框架來(lái)鼓勵(lì)在創(chuàng)建具有明確、特定于任務(wù)目的的新腳本時(shí)進(jìn)行 “重大結(jié)構(gòu)更改”(重建)。此方法可確保生成的腳本具有令人滿意的質(zhì)量。通過(guò)重復(fù)生成結(jié)構(gòu)多樣的腳本,可以豐富腳本增強(qiáng)的參考資料庫(kù)。
隱性知識(shí)擴(kuò)展與沉思 (IKEC)
IKEC技術(shù)是我們?cè)诠ぷ髦虚_(kāi)發(fā)的一種新穎方法,旨在促使LLM利用自己的知識(shí)庫(kù)在內(nèi)部擴(kuò)展和豐富它最有信心的內(nèi)容。這個(gè)過(guò)程涉及 LLM 在得出最終結(jié)果之前進(jìn)行深思熟慮和深入的思考。此外,我們還嘗試將這項(xiàng)技術(shù)與 CoT 流程集成,這是出于對(duì)哪些內(nèi)部提示可能有助于 LLM 性能的好奇心。
結(jié)論
本文介紹了在特定領(lǐng)域問(wèn)題中提高 LLM 的 RAG 性能的四個(gè)顯著貢獻(xiàn):數(shù)據(jù)拆分、數(shù)據(jù)更新、腳本增強(qiáng)和 IKEC。通過(guò)對(duì)文本進(jìn)行語(yǔ)義分割和以高 LLM 置信度更新內(nèi)容,這些技術(shù)有助于在 RAG 的數(shù)據(jù)檢索過(guò)程中改進(jìn)以主題為中心的嵌入。Data Splitter 和 Data Renovation 技術(shù)在數(shù)據(jù)源級(jí)別增強(qiáng)嵌入的新應(yīng)用特別具有創(chuàng)新性。
這些貢獻(xiàn)的有效性已通過(guò)涉及ANSYS 28 名領(lǐng)域?qū)<业男〗M和 182 票分析的全面評(píng)估得到驗(yàn)證。結(jié)果表明,Data Splitter 和 Data Renovation 方法顯著提高了專業(yè)領(lǐng)域內(nèi) MapReduce 應(yīng)用程序中 RHSC 的代碼生成質(zhì)量。具體來(lái)說(shuō),歸因于這些方法的改進(jìn)可量化地大于 CoT,數(shù)據(jù)拆分器方法的改進(jìn)是 CoT 提示的 1.43 倍,數(shù)據(jù)翻新方法的改進(jìn)是 CoT 的 0.45 倍。
注:MapReduce 是一種編程模型和關(guān)聯(lián)的實(shí)現(xiàn),用于處理和生成適用于各種實(shí)際任務(wù)的大型數(shù)據(jù)集。用戶根據(jù) map 和 reduce 函數(shù)指定計(jì)算,底層運(yùn)行時(shí)系統(tǒng)會(huì)自動(dòng)在大規(guī)模機(jī)器集群之間并行計(jì)算,處理機(jī)器故障,并安排機(jī)器間通信以有效利用網(wǎng)絡(luò)和磁盤。
-
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68603 -
大模型
+關(guān)注
關(guān)注
2文章
2448瀏覽量
2700 -
LLM
+關(guān)注
關(guān)注
0文章
288瀏覽量
334
原文標(biāo)題:飛龍入海:ANSYS官方的大模型應(yīng)用
文章出處:【微信號(hào):SinoEngineer,微信公眾號(hào):中潤(rùn)漢泰】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論