摘要:大語言模型應(yīng)用效果依賴于高質(zhì)量數(shù)據(jù),從原始語料構(gòu)建訓(xùn)練數(shù)據(jù)集和檢索增強知識的過程中,端到端的數(shù)據(jù)管理和處理變得至關(guān)重要。當前數(shù)據(jù)服務(wù)面臨著因數(shù)據(jù)處理質(zhì)量差而影響大語言模型應(yīng)用效果、數(shù)據(jù)準備效率低、實現(xiàn)的高復(fù)雜性和高成本等問題。為解決這些問題,文章提出一種面向大語言模型的數(shù)據(jù)協(xié)同服務(wù)方案,對原始語料、數(shù)據(jù)集和知識處理進行有效協(xié)同,基于算子可視化編排的自動化處理技術(shù)和跨平臺統(tǒng)一計算調(diào)度框架,設(shè)計實現(xiàn)了一種端到端數(shù)據(jù)服務(wù)平臺,能有效滿足各類大語言模型應(yīng)用對于數(shù)據(jù)的不同需求。該平臺提升了數(shù)據(jù)質(zhì)量、處理效率和靈活性,降低了成本,顯著增強了大模型應(yīng)用效果,具有較強的通用性和廣闊的應(yīng)用前景。
關(guān)鍵詞:大語言模型;協(xié)同服務(wù);算子可視化編排;計算調(diào)度;數(shù)據(jù)服務(wù)平臺
中圖分類號:TP391 "文獻標志碼:A
0 引言
國家提出發(fā)展新質(zhì)生產(chǎn)力,其中“人工智能+”應(yīng)用是重要方向[1] 。隨著ChatGPT等大語言模型應(yīng)用的崛起[2],越來越多的行業(yè)領(lǐng)域需要大語言模型應(yīng)用來產(chǎn)生創(chuàng)新價值、提升生產(chǎn)效率、降低生產(chǎn)成本,而大語言模型應(yīng)用的一個重要基礎(chǔ)是需要一定規(guī)模的高質(zhì)量、多樣性數(shù)據(jù)對大模型預(yù)訓(xùn)練或微調(diào)[3],同時基于行業(yè)專業(yè)性和時效性要求,須建立本地向量知識庫用于檢索增強生成(Retrieval-Augmented Generation,RAG)[4]。
當前面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)存在以下問題:(1)數(shù)據(jù)管理和處理缺乏統(tǒng)一的原始語料共建共享,針對數(shù)據(jù)的采集、預(yù)處理、標注、質(zhì)量評估、增強和知識入庫、檢索等技術(shù)未進行系統(tǒng)性整合,相互難以協(xié)同,導(dǎo)致數(shù)據(jù)服務(wù)不能方便地端到端高質(zhì)量完成,嚴重降低了數(shù)據(jù)質(zhì)量,影響了大語言模型應(yīng)用的效果;(2)端到端的數(shù)據(jù)全流程處理場景須要執(zhí)行多個復(fù)雜步驟,分步執(zhí)行效率低,自動化能力不足,對于新的處理要求,擴展不靈活、不方便,這些都大幅增加了數(shù)據(jù)準備的復(fù)雜度,降低了效率,嚴重影響了大語言模型應(yīng)用的迭代交付;(3)對于數(shù)據(jù)服務(wù)平臺建設(shè)而言,為保證綜合處理性能,須要針對不同的數(shù)據(jù)處理場景對接使用不同的底層計算平臺和框架,對使用的復(fù)雜性和成本帶來了嚴重挑戰(zhàn)。
為此,本文提出一種面向大語言模型的數(shù)據(jù)統(tǒng)一協(xié)同服務(wù)方案,對原始語料、數(shù)據(jù)集和知識處理進行有效協(xié)同,基于算子可視化編排的自動化處理技術(shù)和跨平臺統(tǒng)一計算調(diào)度框架,設(shè)計實現(xiàn)了一種端到端數(shù)據(jù)服務(wù)平臺,有效解決了上述問題。
1 相關(guān)技術(shù)研究
1.1 大語言模型應(yīng)用的數(shù)據(jù)處理和系統(tǒng)構(gòu)建
面向大語言模型的應(yīng)用,一般須要將大語言模型和外部知識源結(jié)合,通過檢索增強生成技術(shù)提高領(lǐng)域知識的廣度、深度和時效性,從而提升生成效果。因此目前的研究主要集中在對訓(xùn)練數(shù)據(jù)集和知識的處理上。數(shù)據(jù)集研究方面針對訓(xùn)練數(shù)據(jù)要求規(guī)模大、質(zhì)量高、具備多樣性和時效性的特點,提出了數(shù)據(jù)集預(yù)處理[5]、數(shù)據(jù)自動標注 [6-7],數(shù)據(jù)質(zhì)量分析與評估[8]、數(shù)據(jù)多樣性增強和數(shù)據(jù)時效性保證等方法[9]。知識管理研究方面主要是針對檢索增強生成的需要提出了向量知識管理和檢索的方法[10]。
大語言模型應(yīng)用對數(shù)據(jù)處理提出了更高要求,數(shù)據(jù)處理方法也更加復(fù)雜,為了向大語言模型應(yīng)用的模型訓(xùn)練人員和知識庫構(gòu)建人員提供大規(guī)模、高質(zhì)量、多樣性和及時性的數(shù)據(jù)和知識,必須在上述方法研究的基礎(chǔ)上進行平臺系統(tǒng)構(gòu)建。目前的研究主要采用Spark或Flink框架作為基礎(chǔ)計算平臺[11-12],在此基礎(chǔ)上通過整合多種數(shù)據(jù)處理框架、工具和腳本來構(gòu)建基本的數(shù)據(jù)處理系統(tǒng)。大多數(shù)數(shù)據(jù)處理系統(tǒng)均具備對訓(xùn)練數(shù)據(jù)集導(dǎo)入、預(yù)處理、標注的基本能力,一部分系統(tǒng)具備對數(shù)據(jù)集質(zhì)量分析評估、多樣性增強的能力,少數(shù)系統(tǒng)具備對向量知識管理和檢索的能力。
上述數(shù)據(jù)處理方法和系統(tǒng)可以一定程度滿足大語言模型應(yīng)用對數(shù)據(jù)的使用要求,但仍然存在以下不足。
(1)數(shù)據(jù)端到端處理缺乏協(xié)同,完整的服務(wù)能力不足。對數(shù)據(jù)集和知識的上游原始語料缺乏管理,無法共享和復(fù)用,數(shù)據(jù)集和知識處理獨立運行,相互間缺乏有效協(xié)同,數(shù)據(jù)集內(nèi)部的處理缺乏系統(tǒng)性整合,導(dǎo)致面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)不能端到端高質(zhì)量完成,影響了數(shù)據(jù)質(zhì)量和大語言模型應(yīng)用的效果。
(2)數(shù)據(jù)服務(wù)的靈活性、擴展性和自動化嚴重不足。由于大語言模型對數(shù)據(jù)處理的要求和技術(shù)不斷發(fā)展,數(shù)據(jù)處理的靈活性和擴展性非常重要。目前的研究通過相應(yīng)配置對數(shù)據(jù)處理提供了一定的靈活性,但擴展性不足。一些系統(tǒng)利用算子編排進行擴展,但不具備針對復(fù)雜場景的可視化編排能力,端到端全流程編排自動化過于復(fù)雜,不易使用,影響了數(shù)據(jù)準備的效率,導(dǎo)致大語言模型應(yīng)用的迭代交付很慢。
(3)面向不同場景的數(shù)據(jù)計算處理復(fù)雜、研發(fā)成本高、擴展性差。數(shù)據(jù)服務(wù)最終分解為一個或多個數(shù)據(jù)處理的計算,須要面向不同場景在合適的計算平臺上執(zhí)行。端到端數(shù)據(jù)處理的各種復(fù)雜操作存在流處理、批處理場景不同的特點,如果分別對接不同的流處理計算框架和批處理計算框架,復(fù)雜度和成本過高,若出現(xiàn)新的計算框架也不易擴展。
1.2 面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)平臺
針對以上問題和挑戰(zhàn),研究了一種面向大語言模型的數(shù)據(jù)服務(wù)統(tǒng)一協(xié)同,基于算子可視化編排的自動化處理和跨平臺統(tǒng)一計算調(diào)度的端到端數(shù)據(jù)服務(wù)平臺,有效解決了問題,取得了較好的效果,關(guān)鍵技術(shù)如下。
1.2.1 原始語料、數(shù)據(jù)集和知識服務(wù)統(tǒng)一協(xié)同處理
在大語言模型應(yīng)用中,須要將原始語料采集、存儲、處理成滿足大語言模型預(yù)訓(xùn)練和微調(diào)要求的數(shù)據(jù)集合以及RAG檢索增強生成所需要的向量知識。為此對數(shù)據(jù)服務(wù)端到端全過程的各階段進行體系化完整設(shè)計并將原始語料、數(shù)據(jù)集和向量知識的管理和處理統(tǒng)一協(xié)同,極大地提升了數(shù)據(jù)質(zhì)量和處理效率。
1.2.2 基于算子編排的數(shù)據(jù)靈活擴展和自動化處理
為大幅提升端到端數(shù)據(jù)服務(wù)的可擴展性、靈活性和自動化能力,提出數(shù)據(jù)服務(wù)算子化思想,提供基礎(chǔ)算子和用戶自定義算子,支持算子組合成復(fù)合算子,基于算子進行數(shù)據(jù)處理作業(yè)的可視化編排和自動化執(zhí)行,支持串行、并行和基于結(jié)果判定的多分支編排和執(zhí)行,降低了數(shù)據(jù)處理的復(fù)雜度,大幅提升了數(shù)據(jù)準備的效率。
1.2.3 面向多場景的跨平臺計算調(diào)度
為保證數(shù)據(jù)服務(wù)綜合性能,基于大規(guī)模并發(fā)的流處理、批處理、小型化服務(wù)器處理3種適合不同場景的底層計算平臺,設(shè)計了面向多場景的跨平臺計算調(diào)度框架。對用戶來說不須要了解底層計算平臺的復(fù)雜度和差異性,通過一致性的方式來快捷使用,系統(tǒng)會根據(jù)算子的不同場景自動選擇分發(fā)調(diào)度到合適的底層計算平臺高效執(zhí)行,在保證較高綜合計算性能的情況下,大幅降低了使用成本。
2 系統(tǒng)框架
面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)平臺采用分層設(shè)計,自上而下分為應(yīng)用層、表示層、數(shù)據(jù)服務(wù)層、計算平臺層和數(shù)據(jù)存儲層,總體架構(gòu)如圖1所示。
2.1 應(yīng)用層
應(yīng)用層是對大語言模型應(yīng)用提供的數(shù)據(jù)使用能力,包括原始語料管理、數(shù)據(jù)集管理和向量知識檢索3部分。其中原始語料管理對原始語料進行采集、存儲和管理;數(shù)據(jù)集管理從原始語料建立數(shù)據(jù)集并進行各種處理;向量知識檢索則從數(shù)據(jù)集獲取并加載文檔,完成切片、嵌入和向量存儲,向下游應(yīng)用提供檢索功能。
2.2 表示層
表示層設(shè)計了面向用戶使用的數(shù)據(jù)服務(wù)操作界面和接口,包括基于Web的可視化操作和算子可視化編排執(zhí)行界面。用戶可以通過可視化Web界面操作,也可以基于可視化算子編排及執(zhí)行界面使用算子編排數(shù)據(jù)處理作業(yè)和自動化流水線進行執(zhí)行。
2.3 數(shù)據(jù)服務(wù)層
數(shù)據(jù)服務(wù)層向表示層提供數(shù)據(jù)服務(wù)的具體實現(xiàn),分別在原始語料、數(shù)據(jù)集和向量知識3個領(lǐng)域?qū)崿F(xiàn)服務(wù)并向上提供服務(wù)接口。
2.4 計算平臺層
上層的算子作業(yè)和具體的算子任務(wù)須按算子圖的流程調(diào)度執(zhí)行,針對小型化處理、大規(guī)模流處理、大規(guī)模批處理等不同場景,計算平臺層提供跨平臺統(tǒng)一計算作業(yè)調(diào)度執(zhí)行,以滿足不同場景的數(shù)據(jù)處理計算需要。
2.5 數(shù)據(jù)存儲層
數(shù)據(jù)存儲層提供統(tǒng)一的多樣化數(shù)據(jù)存儲,其中原始語料和數(shù)據(jù)集存儲采用分布式文件系統(tǒng),向量知識存儲采用向量數(shù)據(jù)庫,管理信息存儲采用關(guān)系數(shù)據(jù)庫。
3 設(shè)計和實現(xiàn)
3.1 原始語料、數(shù)據(jù)集和知識服務(wù)端到端協(xié)同
數(shù)據(jù)端到端處理包括原始語料服務(wù)、數(shù)據(jù)集服務(wù)和知識服務(wù)3階段,提供完整的數(shù)據(jù)處理過程。
3.1.1 原始語料服務(wù)
原始語料管理主要包括采集、存儲和管理3個部分,貫穿了從上游不同類型的數(shù)據(jù)源自動或手工采集語料并存儲到分布式文件系統(tǒng),再進行語料信息配置、版本管理、上架、查詢、獲取授權(quán)、下載使用、反饋交流,直到下架和刪除的全生命周期管理,為下游數(shù)據(jù)集管理提供原始語料,提升了原始語料獲取和共建共享能力。
3.1.2 數(shù)據(jù)集服務(wù)
數(shù)據(jù)集從上游原始語料獲取或者本地導(dǎo)入,對數(shù)據(jù)集進行創(chuàng)建、基本管理、預(yù)處理、標注、分析、評估、增強等操作,向下游大語言模型訓(xùn)練和向量知識檢索提供高質(zhì)量的數(shù)據(jù),以滿足大語言模型應(yīng)用的需要。
(1)數(shù)據(jù)集基本管理。
數(shù)據(jù)集按照數(shù)據(jù)集、版本和數(shù)據(jù)3級管理。數(shù)據(jù)集信息包括名稱、數(shù)據(jù)類型、業(yè)務(wù)類型、目標任務(wù)類型等基本管理信息。一個數(shù)據(jù)集可以包括一個或多個版本,每個版本下包含數(shù)據(jù)列表。
(2)數(shù)據(jù)預(yù)處理。
數(shù)據(jù)預(yù)處理是將原始語料處理成下游模型訓(xùn)練及知識檢索目標任務(wù)所需要的數(shù)據(jù),處理后的數(shù)據(jù)可以更好地滿足下游任務(wù)的需要。數(shù)據(jù)處理支持校驗、清洗、轉(zhuǎn)換、過濾、去重、去隱私等核心處理過程。
(3)數(shù)據(jù)標注。
為進一步提升標注效率,對數(shù)據(jù)自動聚類分組,然后進行標注和審核,引入自動標注方法。自動標注采用2種方式:直接選擇已有的合適模型T5等完成自動標注[13],其中T5適合文本到文本轉(zhuǎn)換類標注,包括問答、生成等場景標注;使用已標注的數(shù)據(jù)集對模型進行精調(diào)訓(xùn)練,進一步增強標注能力,再使用精調(diào)后的模型對數(shù)據(jù)自動標注。
(4)數(shù)據(jù)分析。
數(shù)據(jù)分析是為了獲得數(shù)據(jù)的完整性和多樣性狀態(tài),改進數(shù)據(jù)獲取過程,主要為數(shù)據(jù)分布分析:對數(shù)據(jù)覆蓋的業(yè)務(wù)領(lǐng)域、業(yè)務(wù)場景和任務(wù)類型進行分析,系統(tǒng)性分析數(shù)據(jù)的整體分布狀況。
(5)數(shù)據(jù)評估。
評估數(shù)據(jù)質(zhì)量,包括準確性、完整性、一致性、唯一性、合規(guī)性,發(fā)現(xiàn)數(shù)據(jù)集中的異常值、缺失值、沖突值、重復(fù)值、不合規(guī)等問題[14],確保提供給下游模型訓(xùn)練和知識檢索高質(zhì)量的數(shù)據(jù)。系統(tǒng)自動計算異常數(shù)據(jù)占比、重復(fù)率、標注準確率和隱私數(shù)據(jù)占比等指標,給出數(shù)據(jù)質(zhì)量判斷并指出問題質(zhì)量數(shù)據(jù)。
(6)數(shù)據(jù)增強。
通過數(shù)據(jù)增強擴充數(shù)據(jù)規(guī)模和多樣性,從而增強模型泛化能力。數(shù)據(jù)增強主要有以下2種方法。變換法:通過替換、合成等技術(shù)對數(shù)據(jù)進行各種變換,從而達到擴增效果;生成法:使用生成對抗網(wǎng)絡(luò)從已知數(shù)據(jù)集生成新的分布相似的數(shù)據(jù)集[15]。
3.1.3 知識服務(wù)
針對大模型“幻覺”導(dǎo)致的生成結(jié)果不準確、不相關(guān)或虛構(gòu)的問題,將大模型和外部知識源結(jié)合在一起,可以提高專業(yè)知識的廣度和深度,還能夠保持時效性。為此通過知識服務(wù)和大模型結(jié)合,采用RAG 技術(shù)能有效提高生成內(nèi)容的有效性。知識服務(wù)主要包括如下。(1)知識庫管理:包括向量知識庫的創(chuàng)建、配置和刪除,支持多種類型向量知識庫。(2)知識入庫和檢索:知識管理從上游數(shù)據(jù)集導(dǎo)入并加載經(jīng)過預(yù)處理、分析、評估過的文本,根據(jù)策略將文本拆分成合適的片段,通過嵌入模型將片段嵌入成向量,再將向量存儲到向量知識庫,并向下游大語言模型應(yīng)用提供向量知識的檢索能力。
3.1.4 協(xié)同設(shè)計
原始語料、數(shù)據(jù)集和知識服務(wù)的協(xié)同如圖2所示。
數(shù)據(jù)集服務(wù)根據(jù)下游大語言模型應(yīng)用的目標任務(wù)從上游原始語料服務(wù)獲取相應(yīng)的原始語料,可以復(fù)用不同的原始語料組合,形成目標任務(wù)相關(guān)的數(shù)據(jù)集并根據(jù)需要進行數(shù)據(jù)集操作,確保下游目標任務(wù)數(shù)據(jù)質(zhì)量和多樣性。對于大語言模型應(yīng)用有2種數(shù)據(jù)集使用方式:一種是大模型平臺從數(shù)據(jù)集獲取對應(yīng)目標任務(wù)的數(shù)據(jù)集完成模型訓(xùn)練;另一種是知識服務(wù)從數(shù)據(jù)集獲取并向量化存儲入庫,提供檢索增強生成能力。
3.2 基于算子可視化編排的數(shù)據(jù)處理自動化
3.2.1 算子設(shè)計和實現(xiàn)
將原始語料、數(shù)據(jù)集和知識服務(wù)中靈活性強、可擴展和自動化處理的操作和一般管理性操作分開,設(shè)計并實現(xiàn)成算子,算子采用分域和分層設(shè)計。
算子分域設(shè)計分成原始語料、數(shù)據(jù)集和知識庫3個領(lǐng)域,原始語料算子包括采集和配置2類算子,數(shù)據(jù)集算子包括導(dǎo)入、預(yù)處理、自動標注、分析、評估和增強6類算子,知識庫算子包括加載、切片、嵌入和存儲4類算子。其中數(shù)據(jù)處理類型算子又包括校驗、清洗、轉(zhuǎn)換、過濾、去重、去隱私等子類型算子。
算子分層設(shè)計自底向上分為基礎(chǔ)算子、中層復(fù)合算子和高層復(fù)合算子,基礎(chǔ)算子又分為通用基礎(chǔ)算子和用戶自定義基礎(chǔ)算子,允許自定義且逐層組合,提升算子靈活性、擴展性和復(fù)用性,降低設(shè)計的復(fù)雜度,提高算子擴展效率。
算子的設(shè)計要素包括:算子名稱、配置參數(shù)、輸入、處理、輸出、結(jié)果展示、結(jié)果分支判定,采用算子模型DSL語言描述并在運行中實例化。(1)算子名稱:描述算子操作。(2)配置參數(shù):給出每個參數(shù)的名稱和類型。(3)輸入:包括輸入數(shù)據(jù)模型定義和存儲位置標識。(4)處理:算子計算邏輯方法定義,可以從輸入存儲位置標識獲取數(shù)據(jù)并根據(jù)數(shù)據(jù)模型定義解析使用,計算處理后,將結(jié)果數(shù)據(jù)按照輸出數(shù)據(jù)模型定義寫入輸出存儲位置。(5)輸出:包括輸出數(shù)據(jù)模型定義和存儲位置標識。(6)結(jié)果展示:描述輸出數(shù)據(jù)的展示方式。(7)結(jié)果分支判定:描述分支結(jié)果判定規(guī)則。
3.2.2 數(shù)據(jù)處理可視化編排和執(zhí)行
具備體系化的數(shù)據(jù)服務(wù)算子入庫后可以根據(jù)下游應(yīng)用的目標任務(wù)對數(shù)據(jù)處理作業(yè)可視化編排和執(zhí)行,使得處理更加靈活并具備很強的擴展性。數(shù)據(jù)處理可視化編排和執(zhí)行如圖3所示。
數(shù)據(jù)處理可視化編排將Web界面左側(cè)需要的算子拖拽到右側(cè)幕布上進行可視化編排,形成一個完整的數(shù)據(jù)處理作業(yè)并驅(qū)動執(zhí)行。數(shù)據(jù)處理作業(yè)以一個開始節(jié)點作為起點,中間可以由一個或多個算子串行、并行和多分支編排形成處理流程,最后以一個結(jié)束節(jié)點作為整個作業(yè)的終點。如圖3所示,算子1執(zhí)行后并行執(zhí)行算子2和算子3,算子2到算子4是串行執(zhí)行,算子3、算子4都執(zhí)行成功才會執(zhí)行算子5。
3.2.3 數(shù)據(jù)處理自動化流水線
為進一步提升數(shù)據(jù)端到端完整處理的效率,降低成本,本文提出端到端自動化流水線方法,如圖4所示。
將原始語料、數(shù)據(jù)集和知識服務(wù)3個領(lǐng)域的數(shù)據(jù)服務(wù)算子進行端到端完整流程可視化編排,不但每個領(lǐng)域內(nèi)部的處理流連續(xù),而且3個領(lǐng)域間的數(shù)據(jù)處理完全貫通,包括原始語料采集、配置、數(shù)據(jù)集導(dǎo)入、清洗、轉(zhuǎn)換、過濾、去重、分析和質(zhì)量評估以及知識加載、切片、嵌入和入庫等核心過程,形成一條適應(yīng)大語言模型應(yīng)用目標任務(wù)的完整數(shù)據(jù)自動化處理流水線。
3.3 面向多場景的跨平臺調(diào)度計算
3.3.1 多樣化調(diào)度計算場景
可視化編排數(shù)據(jù)處理作業(yè)須要簡單、高效地將算子調(diào)度執(zhí)行以滿足適應(yīng)不同場景的需要,主要有3種場景:(1)大規(guī)模并發(fā)流處理。對于原始語料采集和數(shù)據(jù)的校驗、清洗、轉(zhuǎn)換、去隱私等預(yù)處理過程屬于大規(guī)模并發(fā)流處理的場景,須要采用實時性較高的流處理計算框架;(2)大規(guī)模并發(fā)批處理。對于數(shù)據(jù)集的過濾、去重等預(yù)處理過程和數(shù)據(jù)集分析、評估、增強等屬于大規(guī)模并發(fā)批處理的場景,須要采用批處理計算框架;(3)小規(guī)模處理場景。在支持某個特定大語言模型精調(diào)的小規(guī)模數(shù)據(jù)處理場景下,為了方便系統(tǒng)部署、降低資源成本,采用自研的小型化服務(wù)器計算框架。針對3種不同場景,對于不同類型的算子分別配置默認的計算平臺屬性,允許算子根據(jù)需要進行靈活修改。
3.3.2 跨平臺統(tǒng)一計算調(diào)度設(shè)計
數(shù)據(jù)處理作業(yè)調(diào)度執(zhí)行須針對不同的處理場景采用不同的計算平臺框架,不同框架的使用方式不一樣,對接復(fù)雜度高,不方便使用,為此設(shè)計了數(shù)據(jù)處理作業(yè)跨平臺統(tǒng)一計算調(diào)度框架,如圖5所示。
跨平臺統(tǒng)一計算調(diào)度框架采用分層設(shè)計,自上而下分為計算任務(wù)調(diào)度層、平臺集成接口層和計算平臺層。計算任務(wù)調(diào)度層解析數(shù)據(jù)處理job的算子task節(jié)點,從開始節(jié)點按照依賴關(guān)系串、并行地將算子task節(jié)點通過平臺集成接口層分發(fā)到計算平臺層不同的計算平臺框架執(zhí)行并獲取結(jié)果,具體如下。
(1)計算任務(wù)調(diào)度層。
計算任務(wù)調(diào)度層由job調(diào)度器和task調(diào)度器組成,提供跨平臺統(tǒng)一計算任務(wù)調(diào)度,過程如下。①job調(diào)度器接收提交的算子執(zhí)行job,對job合法性檢查,檢查不通過直接返回錯誤,檢查通過則將job加入job隊列等待調(diào)度執(zhí)行; ②job調(diào)度器中核心的job調(diào)度線程從job隊列中取出一個job并根據(jù)執(zhí)行圖解析成一個可執(zhí)行的算子task節(jié)點集合,集合中存放算子 "task節(jié)點和節(jié)點間的依賴關(guān)系; ③job調(diào)度線程從可執(zhí)行的算子task節(jié)點集合中取出第一個算子task節(jié)點分發(fā)給task調(diào)度器; ④task調(diào)度器調(diào)用處于平臺集成接口層的計算平臺統(tǒng)一接口框架提供的統(tǒng)一接口請求執(zhí)行; ⑤task調(diào)度器獲得執(zhí)行結(jié)果,將結(jié)果返回給job調(diào)度線程; ⑥job調(diào)度線程對算子task節(jié)點執(zhí)行結(jié)果進行分析,對于執(zhí)行失敗的情況,直接向上層返回失敗,終止執(zhí)行,對于執(zhí)行成功的情況,判斷job所有節(jié)點是否都完成執(zhí)行,如果是則向上返回成功,結(jié)束執(zhí)行; ⑦如果否,job調(diào)度線程獲取算子task節(jié)點的后繼依賴節(jié)點集合,對于存在結(jié)果判定分支的算子task節(jié)點,選取結(jié)果滿足分支的后繼依賴節(jié)點集合; ⑧job調(diào)度線程將依賴節(jié)點集合中所有前驅(qū)節(jié)點都完成執(zhí)行的算子task節(jié)點集合分發(fā)給task調(diào)度器執(zhí)行; ⑨t(yī)ask調(diào)度器繼續(xù)④和⑤的執(zhí)行過程。
(2)平臺集成接口層。
平臺集成接口層實現(xiàn)了計算平臺統(tǒng)一接口框架,向上層提供統(tǒng)一的算子task節(jié)點集合的執(zhí)行入口。平臺集成接口層定義了公共的任務(wù)執(zhí)行器接口,包括初始化、執(zhí)行前準備、執(zhí)行和執(zhí)行后處理,實現(xiàn)了Flink流處理執(zhí)行器、Spark批處理執(zhí)行器和小型化處理執(zhí)行器3種內(nèi)置執(zhí)行器,并可以面向新的計算平臺框架擴展相關(guān)執(zhí)行器。
計算任務(wù)調(diào)度層將需要執(zhí)行的算子task節(jié)點集合傳入統(tǒng)一接口,平臺集成接口層獲取算子task節(jié)點的計算平臺配置,將相同配置的算子task節(jié)點集合作為參數(shù),調(diào)用不同執(zhí)行器將算子task節(jié)點集合分發(fā)到相應(yīng)的底層基礎(chǔ)計算平臺框架上具體執(zhí)行并獲得結(jié)果。
(3)計算平臺層。
計算平臺層部署了基礎(chǔ)計算平臺框架,包括大規(guī)模流處理計算框架Flink、大規(guī)模批處理計算框架Spark和小規(guī)模處理的計算框架,最終完成算子task節(jié)點集合的計算執(zhí)行。
4 應(yīng)用實例
4.1 應(yīng)用情況
一種面向大語言模型應(yīng)用的數(shù)據(jù)平臺在某研發(fā)提效大語言模型應(yīng)用領(lǐng)域中發(fā)揮重要作用,能有力支撐大語言模型訓(xùn)練、測試、驗證數(shù)據(jù)集和檢索增強知識庫的高質(zhì)高效建設(shè)和使用。研發(fā)提效大模型應(yīng)用,目標是提升設(shè)備商在需求、開發(fā)、測試等過程的效率和質(zhì)量,降低成本,應(yīng)用場景包括需求、代碼、測試用例的輔助生成。為此對原始語料、數(shù)據(jù)集和知識庫的搜集和管理如表1所示。
針對大語言模型應(yīng)用的目標場景,分類采集原始語料、完成存儲和配置并建立相應(yīng)的數(shù)據(jù)集完成預(yù)處理、分析和評估,形成高質(zhì)量數(shù)據(jù)集用于大語言模型的微調(diào)訓(xùn)練,對其中一部分時效性較強、專業(yè)度較高的數(shù)據(jù)建立向量知識庫用于檢索增強生成。
為提升數(shù)據(jù)質(zhì)量和多樣性、提高數(shù)據(jù)處理效率、降低成本,基于面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)平臺需要完成如下任務(wù)。(1)通過算子設(shè)計編排應(yīng)用4條完整的原始語料、數(shù)據(jù)集和知識處理自動化流水線;(2)采用自動標注、交叉人工審核的方法對數(shù)據(jù)進行標注,自動標注算子增加到端到端處理流水線中;(3)采用替換法進行數(shù)據(jù)增強。
本文從目標任務(wù)類型、在標準數(shù)據(jù)集上的性能表現(xiàn)、業(yè)界對預(yù)訓(xùn)練模型實際應(yīng)用案例的評價、是否開源可商用等維度考慮,綜合選擇了Qwen-14B-Chat作為基礎(chǔ)預(yù)訓(xùn)練大模型,采用LoRa微調(diào)技術(shù)在模型內(nèi)部插入低秩適配器來實現(xiàn)模型在特定任務(wù)上的微調(diào),完成了研發(fā)提效領(lǐng)域大模型的微調(diào)訓(xùn)練。
4.2 效果評價
面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)平臺對研發(fā)提效大模型應(yīng)用的數(shù)據(jù)準備起到了重要作用,主要有以下幾點。
4.2.1 數(shù)據(jù)質(zhì)量和大模型應(yīng)用效果明顯提升
針對原始語料、數(shù)據(jù)集和知識進行端到端高效協(xié)同處理,基本消除了數(shù)據(jù)異常、重復(fù)、標注不準確和含有隱私信息的情況,顯著提高了數(shù)據(jù)質(zhì)量,進而提升了大語言模型應(yīng)用的效果。
對于數(shù)據(jù)質(zhì)量,本研究從異常數(shù)據(jù)占比、重復(fù)率、標注準確性和隱私數(shù)據(jù)占比4個維度進行評估,分析對比了使用本研究數(shù)據(jù)服務(wù)平臺前后的指標數(shù)據(jù)值,如表2所示,均取得了較好效果。
如表2所示, (1)異常數(shù)據(jù)占比是指數(shù)據(jù)集中異常數(shù)據(jù)的數(shù)量和總數(shù)據(jù)量的比值,其中異常數(shù)據(jù)包括拼寫錯誤、不可見字符、不規(guī)范空格、亂碼、網(wǎng)頁標識符、表情符等。異常數(shù)據(jù)嚴重影響了數(shù)據(jù)質(zhì)量,導(dǎo)致模型生成效果不佳,通過數(shù)據(jù)清洗和轉(zhuǎn)換,異常數(shù)據(jù)占比僅有0.2%,大幅下降了10.4個百分點。 (2)重復(fù)率是指數(shù)據(jù)集中重復(fù)數(shù)據(jù)的數(shù)量和總數(shù)量據(jù)的比值,重復(fù)率采用余弦相似度算法計算2個文本數(shù)據(jù)嵌入向量的余弦相似度,將余弦相似度的結(jié)果轉(zhuǎn)換為百分比表示,設(shè)置閾值90%以上為重復(fù)。較高的重復(fù)率會導(dǎo)致模型過擬合,影響模型的泛化能力,通過去重算子對重復(fù)數(shù)據(jù)進行去除,重復(fù)率僅有2.7%,顯著下降了12.5個百分點。 (3)標注準確率是指數(shù)據(jù)集中標注準確的數(shù)量和總數(shù)據(jù)量的比值,準確的標注是大模型生成效果提升的關(guān)鍵,采用大模型輔助自動標注和人工交叉標注審核的方法提升了標注準確性,標注準確率提高到96.7%。 (4)隱私數(shù)據(jù)占比是指數(shù)據(jù)集中隱私數(shù)據(jù)的數(shù)量和總數(shù)據(jù)量的比值,其中隱私數(shù)據(jù)包括IP地址、郵箱、電話號碼等信息,隱私數(shù)據(jù)影響了數(shù)據(jù)的合規(guī)性,通過去隱私算子的自動處理,隱私數(shù)據(jù)占比顯著下降了12.6個百分點。
對于大模型應(yīng)用的效果,本文用相似度指標進行評估,衡量在驗證集上生成結(jié)果和語料中提供標注結(jié)果之間的相似程度。相似度計算方法如下:對生成結(jié)果和語料標注結(jié)果使用余弦相似度算法計算2個文本嵌入向量的余弦相似度,將余弦相似度的結(jié)果轉(zhuǎn)換為百分比表示,值越大表示生成結(jié)果和標注結(jié)果間相似度越大,效果越好。如表3所示為在需求、開發(fā)和測試場景下應(yīng)用平均相似度分析使用本研究數(shù)據(jù)服務(wù)平臺前后的效果。
從表3看出,在驗證集上使用本研究數(shù)據(jù)服務(wù)平臺后,需求、開發(fā)和測試場景下生成結(jié)果和標注結(jié)果相似度均明顯提升10個以上百分點,最高是代碼生成,提升了13.2個百分點。
4.2.2 數(shù)據(jù)處理效率大幅提升
通過端到端數(shù)據(jù)自動化處理及跨平臺計算調(diào)度,數(shù)據(jù)從原始語料采集到構(gòu)建完成高質(zhì)量數(shù)據(jù)集和知識庫的效率明顯提升,包括原始語料采集、存儲、配置、數(shù)據(jù)集預(yù)處理、自動標注、分析、評估、向量知識入庫等過程,采用算子編排自動化流水線和流處理、批處理計算適配調(diào)度方法,數(shù)據(jù)準備時間從原來的1個人平均10天左右降低為平均1.5天左右。
5 結(jié)語
面向大語言模型應(yīng)用的數(shù)據(jù)服務(wù)平臺將原始語料、數(shù)據(jù)集和知識的服務(wù)過程有效協(xié)同起來,提供了基于算子的端到端數(shù)據(jù)處理作業(yè)可視化編排及跨平臺調(diào)度執(zhí)行能力,可以滿足各種大語言模型應(yīng)用對數(shù)據(jù)準備的要求,極大地提高了數(shù)據(jù)質(zhì)量和處理效率,降低了處理成本,從而提升了大模型應(yīng)用的效果,具備較強的通用性。未來面向大語言模型的數(shù)據(jù)平臺可以向支持多模態(tài)數(shù)據(jù)和知識圖譜的方向繼續(xù)探索研究,從而進一步提升多模態(tài)大模型應(yīng)用數(shù)據(jù)準備和知識關(guān)聯(lián)性分析的能力,發(fā)揮更廣泛的作用。
參考文獻
[1]張耘堂.基于“人工智能+”經(jīng)濟模式創(chuàng)新的分析[J].自然辯證法研究,2019(9):61-66.
[2]Open AI. ChatGPT:optimizing language models for dialogue[EB/OL].(2023-03-12)[2024-09-12]. https://openai.com/blog/chatgpt/.
[3]ZHAO W X,ZHOU K,LI J Y,et al. A survey of large language models[EB/OL].(2023-03-31)[2024-09-12]. http://export.arxiv.org/abs/2303.18223.
[4]GAO Y,XIONG Y,GAO X,et al. Retrieval-augmented generation for large language models:a survey[EB/OL].(2023-12-18)[2024-09-12]. http://export.arxiv.org/abs/2312.10997.
[5]郭旗.集成數(shù)據(jù)預(yù)處理技術(shù)及其在機器學(xué)習(xí)算法中的應(yīng)用[J].科技與創(chuàng)新,2023(23):163-165.
[6]劉鵬,張燕.數(shù)據(jù)標注工程[M].北京:清華大學(xué)出版社,2019.
[7]蔡莉,王淑婷,劉俊暉,等.數(shù)據(jù)標注研究綜述[J].軟件學(xué)報,2020(2):302-320.
[8]袁滿,劉峰,曾超,等.數(shù)據(jù)質(zhì)量維度與框架研究綜述[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2018(4):444-451.
[9]張曉峰,吳剛.基于生成對抗網(wǎng)絡(luò)的數(shù)據(jù)增強方法[J].計算機系統(tǒng)應(yīng)用,2019(10):201-206.
[10]BERRY W M, DRMAC Z, JESSUPR E. Matrices, vector spaces and information retrieval[J].SIAM Review, 1999(2):335-362.
[11]ZAHARIA M,CHOWDHURY M,F(xiàn)RANKLIN M J,et al. Spark:cluster computing with working sets[J].HotCloud,2010(10):95.
[12]CARBONE P,KATSIFODIMOS A,EWEN S,et al. Apache flink:stream and batch processing in a single engine[J].Bulletin of the IEEE Computer Society Technical Committee on Data Engineering,2015(4):28-38.
[13]RAFFEL C,SHAZEER N,ROBERTS A,et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J].Journal of Machine Learning Research,2020(140):1-67.
[14]孫俐麗,袁勤儉.數(shù)據(jù)質(zhì)量研究述評:比較視角[J].農(nóng)業(yè)圖書情報,2019(7):4-13.
[15]MIRZA M,OSINDERO S. Conditional generative adversarial nets[EB/OL].(2014-11-06)[2024-09-12].http://export.arxiv.org/abs/1411.1784.
(編輯 沈 強編輯)
Research on data service platform for large language model applications
JU" Weigang1, WANG" Peng2, WANG" Jia1
(1.ZTE Corporation, Nanjing 210012, China; 2.Southeast University, Nanjing 210096, China)
Abstract:" The application effectiveness of large language models depends heavily on high-quality data. In the process of constructing training datasets from raw corpora and enhancing knowledge through retrieval, end-to-end data management and processing become critically important. The current data services face issues such as poor data processing quality affecting the performance of large language models, low efficiency in data preparation, and high complexity and high costs in implementation.To address these issues, the article proposes a data collaboration service scheme tailored for large language models, enabling effective collaboration in the processing of raw corpora, datasets, and knowledge. Based on operator visualization orchestration for automated processing and a unified cross-platform computing scheduling framework. An end-to-end data service platform is designed and implemented that can effectively meet the diverse data requirements of various large language model applications. This platform improves data quality, processing efficiency, and flexibility, reduces the cost, and significantly enhances the effectiveness of large model applications, demonstrating strong generality and broad application prospects.
Key words: large language model; collaborative services; operator visual arrangement; calculation schedule; data platform service