一、專利大模型背景介紹
智慧芽一直致力于為科技創(chuàng)新和知識(shí)產(chǎn)權(quán)領(lǐng)域提供信息服務(wù)。在小型模型時(shí)代(如 Bert),參數(shù)量較少,智能理解方面存在局限性。因此,在著手開發(fā)大模型之前,智慧芽深入思考了領(lǐng)域聚焦的重要性。在知識(shí)產(chǎn)權(quán)領(lǐng)域,專利檢索、專利對(duì)比、標(biāo)引工作以及專利撰寫等方面的產(chǎn)品的 AI 迭代存在廣泛需求,而且在行業(yè)中存在著巨大的突破空間。
針對(duì)這些問題,智慧芽從四個(gè)層次來設(shè)計(jì)和構(gòu)建垂域大模型:
首先,重視數(shù)據(jù)的質(zhì)量和規(guī)模,確保擁有足夠數(shù)量和專業(yè)化的數(shù)據(jù),這是開發(fā)領(lǐng)域特定大模型的基礎(chǔ)。智慧芽擁有 1.8 億條專利文本,包括專利、文獻(xiàn)、新聞、書籍等,以及大量的生物醫(yī)藥數(shù)據(jù),包括 7 萬多種藥物、相關(guān)臨床資料、新聞和對(duì)應(yīng)的保護(hù)專利等,這是訓(xùn)練專利大模型的基礎(chǔ)。
其次,需要關(guān)注大模型相關(guān)算法的完整鏈路,包括預(yù)訓(xùn)練、SFT、Reward Model 等,以及優(yōu)化策略如 PPO(DPO),在實(shí)際應(yīng)用中還會(huì)使用 RAG 技術(shù)。RAG 和專利檢索在技術(shù)上有共通之處,但也存在差異,后文將詳細(xì)闡述。在數(shù)據(jù)處理過程中,還需要運(yùn)用多個(gè)小模型,特別是在處理大規(guī)模數(shù)據(jù)時(shí)。
第三,自主研發(fā)領(lǐng)域特定大模型。智慧芽已經(jīng)推出了專利大模型(PatentGPT)和生物醫(yī)藥大模型(PharmGPT)。
最后是領(lǐng)域特定大模型的應(yīng)用。智慧芽的兩款大模型產(chǎn)品已投入使用,并解決了企業(yè)客戶在一些場(chǎng)景下面臨的實(shí)際問題,也收到了一些反饋。智慧芽目前的主要客戶群體是企業(yè)客戶。
總體來說,面向研發(fā)場(chǎng)景的垂直領(lǐng)域模型需要具備差異化的海量數(shù)據(jù),并結(jié)合小型模型以提高效率,從多個(gè)方面解決實(shí)際生產(chǎn)問題。主要的挑戰(zhàn)來自于數(shù)據(jù)的高精度結(jié)構(gòu)化提取和產(chǎn)品化應(yīng)用。因?yàn)樽罱K還需要將這些問題的解決方案組合起來形成良性循環(huán)。
二、訓(xùn)練過程
1.專利大模型:以業(yè)務(wù)為導(dǎo)向的不斷迭代
智慧芽專利大模型基于開源大模型經(jīng)歷了三個(gè)版本的迭代。是基于 llama2 和 mixtral8*7B 進(jìn)行的繼續(xù)訓(xùn)練和后續(xù)步驟。在整個(gè)大模型訓(xùn)練鏈路中,除了通用大模型的 Pre-train 環(huán)節(jié)外,智慧芽主要完成了后續(xù)的 CPT(continue pre-train)、SFT、Reward、DPO(PPO)等工作。
在訓(xùn)練過程中,智慧芽重點(diǎn)關(guān)注以下幾個(gè)方面:
首先是差異化數(shù)據(jù)集。使用了超過 246B 的訓(xùn)練數(shù)據(jù),包括全球 170個(gè)受理機(jī)構(gòu)的 1.8 億專利、1.6 億論文、超過 2100萬條新聞、超過 50萬條投融資信息、超過 1.1 億家企業(yè)、超過 78 萬份市場(chǎng)報(bào)告以及 40多萬本書籍?dāng)?shù)據(jù)。
第二,算法以業(yè)務(wù)為導(dǎo)向。構(gòu)建大型模型的最終目標(biāo)是解決客戶問題,因此在調(diào)整和訓(xùn)練算法時(shí)必須以此為中心。在數(shù)據(jù)配方方面,需要滿足公司下游的需求,比如專利對(duì)比、專利撰寫等;在強(qiáng)化學(xué)習(xí)方面,需要建立基于領(lǐng)域?qū)<曳答伒膹?qiáng)化學(xué)習(xí),智慧芽在訓(xùn)練過程中獲得了超過 50位知識(shí)產(chǎn)權(quán)和生物醫(yī)藥專家的反饋,其中包括 3 萬條 SFT 數(shù)據(jù)和 10 萬偏好數(shù)據(jù),以保持與人類意圖的一致性;在專利檢索的融合方面,需要向用戶提供可追溯、可解釋的結(jié)果,智慧芽的客戶中有很多大型科技公司和金融類機(jī)構(gòu),對(duì)結(jié)果的可解釋性和可追溯性要求極高。
最后,注重垂直業(yè)務(wù)能力而非通用能力。通用能力方面,國內(nèi)外的大模型API 已經(jīng)非常優(yōu)秀。專利大模型在垂直行業(yè)能力方面(如專利撰寫、專利對(duì)比、專利搜索)整體超越通用模型;此外,專利大模型也通過了中國專利代理師資格考試。
接下來將具體介紹智慧芽專利大模型在數(shù)據(jù)、算法、評(píng)估等方面的實(shí)踐。
2.專利大模型:數(shù)據(jù)
首先來看數(shù)據(jù)集的大小。從上圖中可以看到,大模型數(shù)據(jù)集在不斷變大。最早的 Bert 使用了 3.7B tokens;GPT-3 使用了 500B tokens;LLaMA 1 使用了 1.4T tokens;LLaMA 2 使用了 2T tokens。
智慧芽的專利大模型數(shù)據(jù)集也經(jīng)歷了從小到大的過程。在實(shí)踐過程中,數(shù)據(jù)集變大后,模型的能力提升是明顯可感知的。
再來看數(shù)據(jù)配方?,F(xiàn)在許多開源和閉源的大模型都公布了它們的數(shù)據(jù)配方,這些數(shù)據(jù)來源包括網(wǎng)絡(luò)爬蟲、代碼、維基百科、書籍、論文、新聞等。每個(gè)模型的數(shù)據(jù)集配比都非常講究。例如,LLaMA 大模型的數(shù)據(jù)集配比非常雜且全面;而 OpenAI 的 GPT-3 則有自己的特色,強(qiáng)調(diào)代碼和書籍的訓(xùn)練。這些配比也是大量實(shí)驗(yàn)中得出的結(jié)論。
智慧芽為了完成大模型訓(xùn)練的下游任務(wù),結(jié)合自身的垂域數(shù)據(jù)集摸索出了專利、論文以及行業(yè)領(lǐng)域中獨(dú)有數(shù)據(jù)(包括檢索報(bào)告、書籍等)的配方。此外,也加入了一定量 Common Sense 的數(shù)據(jù),因?yàn)樵谶B續(xù)預(yù)訓(xùn)練的過程中會(huì)出現(xiàn)嚴(yán)重遺忘,必須有Common Sense 數(shù)據(jù)的支持,以防止過度遺忘的發(fā)生。專利、書籍和論文是智慧芽未來將繼續(xù)深挖的一個(gè)方向。
微軟 Phi-1 和最新版本 Phi-1.5 的數(shù)據(jù)配方以 Textbooks 和 Code為主,使用了較小的參數(shù)量,卻實(shí)現(xiàn)了非常出色的推理能力。這也體現(xiàn)了數(shù)據(jù)配方和數(shù)據(jù)質(zhì)量對(duì)模型能力的重要性。GPT-3 的數(shù)據(jù)配方特點(diǎn)如上圖右上所示,可以看到其前三個(gè)數(shù)據(jù)集都以 Text 為主,同時(shí)也各有特點(diǎn),比如第一個(gè)數(shù)據(jù)集以 books 和 journals 為主,第二個(gè)數(shù)據(jù)集也以 books 為主,第三個(gè)數(shù)據(jù)集則是維基百科。GPT-3 大模型性能的優(yōu)秀和穩(wěn)定性與數(shù)據(jù)集的配方密切相關(guān)。
3.專利大模型:算法是一系列模型
算法涉及一系列模型,下面將分四個(gè)方面進(jìn)行介紹。
首先是數(shù)據(jù)預(yù)處理。預(yù)處理雖然繁瑣,但卻至關(guān)重要,尤其在處理大量數(shù)據(jù)時(shí)。智慧芽團(tuán)隊(duì)專門配備了數(shù)名大數(shù)據(jù)工程師與算法工程師合作完成數(shù)據(jù)預(yù)處理工作,包括語言探測(cè)、垃圾過濾、去重、個(gè)人信息篩選等工作。在算法方面,主要是以小模型為主,并結(jié)合搜索引擎技術(shù)。
第二是預(yù)訓(xùn)練。預(yù)訓(xùn)練分為兩個(gè)階段,第一階段主要使用專利數(shù)據(jù),而第二階段則采用了均衡配置的 Exam、Chat 和 Book 等數(shù)據(jù)。關(guān)于數(shù)據(jù)配比,需要不斷摸索。上圖也給出了智慧芽的一些數(shù)據(jù)配方,供大家參考。
第三是 SFT 和強(qiáng)化學(xué)習(xí)。前文提到,智慧芽通過 50位知識(shí)產(chǎn)權(quán)專家撰寫反饋數(shù)據(jù),形成了自有的 3 萬條 SFT 數(shù)據(jù)和對(duì)應(yīng) PPO 的 10萬條人類偏好數(shù)據(jù)。為了保證訓(xùn)練效果,通用的偏好數(shù)據(jù)是必要的,但在產(chǎn)品化時(shí),專家數(shù)據(jù)就顯得尤為關(guān)鍵。換言之,在預(yù)訓(xùn)練過程中,越靠前越需要通用或多樣化知識(shí),而越靠后則更偏向業(yè)務(wù)和產(chǎn)品化,更依賴專家反饋數(shù)據(jù)。
最后是 RAG 檢索增強(qiáng)生成。智慧芽嘗試了多種方式將大模型與搜索結(jié)合,例如最初將大模型生成的結(jié)果數(shù)據(jù)抽取 3-5 個(gè) query 進(jìn)行搜索引擎搜索,但效果并不理想。反之,將搜索結(jié)果提交給各個(gè)大模型進(jìn)行總結(jié),是目前采取的主要方案。另外,在工程量允許的情況下,還可以先將搜索結(jié)果交給大模型,再交給搜索引擎,實(shí)現(xiàn)多輪迭代。目前,智慧芽主要采用第一種方案,第二種方案作為輔助。
4. SFT:Instruction Tuning unlock pretrain model
SFT 入門非常容易,但要精通卻相當(dāng)困難,需要關(guān)注許多細(xì)節(jié)。在預(yù)訓(xùn)練完成后,如何有效利用 SFT 成為解鎖大模型知識(shí)的關(guān)鍵步驟。如果 SFT 做得不好,那么 Reward 模型就無法選擇出好的答案,使用 PPO 也無法獲得好的結(jié)果,即使進(jìn)行 100 次采樣也是無濟(jì)于事,會(huì)導(dǎo)致強(qiáng)化學(xué)習(xí)失效。因此,SFT 扮演著非常重要的角色。接下來將從三個(gè)方面進(jìn)行分享:
(1)數(shù)據(jù)。這里可分為三類數(shù)據(jù):
Task 類數(shù)據(jù),可以從各種開源數(shù)據(jù)集中提取,例如 FLAN 類數(shù)據(jù)等。垂直行業(yè)通常都有相應(yīng)的數(shù)據(jù)集,用于各種 NLP 任務(wù),如 NER、關(guān)系抽取、分類等,有許多開源數(shù)據(jù)集可供使用。
Chat 類數(shù)據(jù),可使用熱門的 ShareGPT 數(shù)據(jù)集,還有多輪對(duì)話的 OpenAssistant 數(shù)據(jù)集。在使用過程中,可能需要對(duì)這些數(shù)據(jù)進(jìn)行一些翻譯,因?yàn)?ShareGPT 以英文為主,沒有中文領(lǐng)域的數(shù)據(jù)。
合成類數(shù)據(jù)集,有許多來源,如 ChatGPT-3.5、ChatGPT-4 和 Claude-3 等都有 API 可以根據(jù)一些問題或答案生成相應(yīng)的數(shù)據(jù)集。
(2)訓(xùn)練策略
如果只使用上述三個(gè)數(shù)據(jù)集中的某一個(gè),例如只使用 Chat 數(shù)據(jù),在解決下游任務(wù)時(shí)可能會(huì)導(dǎo)致偏差,因此需要特別注意協(xié)調(diào)使用。
上圖中左下方的圖表展示了在聊天和問答環(huán)境下,基于 LLaMA(7B)和LLaMA(13B)模型的指令調(diào)優(yōu)實(shí)驗(yàn)結(jié)果(均為單輪對(duì)話)。實(shí)驗(yàn)中,以在 Self-Instruct-52K 數(shù)據(jù)集上微調(diào)的 LLaMA(7B)/(13B)模型為基準(zhǔn),采用了四種指令改進(jìn)策略:增加復(fù)雜性、增加多樣性、平衡難度和擴(kuò)展指令數(shù)量。下面的三列數(shù)據(jù)展示了各種指令調(diào)優(yōu)的結(jié)果:
第一行:使用 FLAN-T5 數(shù)據(jù)集進(jìn)行調(diào)優(yōu),在 QA 維度上的勝率表現(xiàn)較好;
第二行:使用 ShareGPT 數(shù)據(jù)集進(jìn)行調(diào)優(yōu),在 Chat 維度 AlpacaFarm 上的勝率為 81.30%,因?yàn)?ShareGPT 主要涉及對(duì)話內(nèi)容;
第四行:將 ShareGPT 和 Self-Instruct-52K 數(shù)據(jù)集一起用于調(diào)優(yōu),在Chat 上的勝率為 71%,相比僅使用 ShareGPT,存在一定程度的下降。
第五行:將 FLAN-T5、ShareGPT 和 Self-Instruct-52K 數(shù)據(jù)集一起用于調(diào)優(yōu),結(jié)果相對(duì)較為均衡。
若要提高單個(gè)任務(wù)的精度,也有許多方法可供選擇,例如擴(kuò)大數(shù)據(jù)集規(guī)模、增強(qiáng)多樣性。此外,如果 7B 模型不足以滿足需求,可以考慮使用 13B 模型,甚至 70B 模型。
(3)數(shù)據(jù)三核心:數(shù)量、質(zhì)量和多樣性
數(shù)量:SFT 訓(xùn)練數(shù)據(jù)數(shù)量的增加存在雙降的規(guī)律。當(dāng)數(shù)據(jù)量為幾千條的時(shí)候,訓(xùn)練的 loss 會(huì)快速下降;隨著后續(xù)任務(wù)的不兼容或產(chǎn)品化需求的提出,數(shù)據(jù)量會(huì)不斷增加,此過程中損失也會(huì)相應(yīng)上升。這一問題在智慧芽的實(shí)際生產(chǎn)中也經(jīng)常遇到。以下是幾種解決思路:
將數(shù)據(jù)融合到預(yù)訓(xùn)練中進(jìn)行預(yù)學(xué)習(xí)(OPT-IML),這實(shí)際上是有效的;
采用多階段學(xué)習(xí)而非一次性學(xué)習(xí),這也是智慧芽大模型的整體思路,即分階段進(jìn)行訓(xùn)練;
使用數(shù)據(jù)權(quán)重,對(duì) SFT 中不同的數(shù)據(jù)設(shè)置不同的損失權(quán)重,對(duì)于專家標(biāo)注的數(shù)據(jù),可以設(shè)置較大的損失權(quán)重,以加快損失的下降速度;對(duì)于自動(dòng)生成或合成的質(zhì)量較低的數(shù)據(jù),可以設(shè)置較小的損失權(quán)重。
質(zhì)量:SFT 數(shù)據(jù)的質(zhì)量至關(guān)重要。為了確保數(shù)據(jù)質(zhì)量,需要進(jìn)行指標(biāo)化管理,包括輸入長度、輸出長度、Reward score、Perplexity、MTLD、KNN-i、Unieval-naturalness、Unieval-coherence、Unieval-understandability 等各種指標(biāo)。
多樣性:在 SFT 中,多樣性非常重要。除了需要增加更多的指標(biāo)外,還有其他一些影響多樣性的問題,例如各種類型數(shù)據(jù)的配比應(yīng)該合理;多語言配置支持,智慧芽的業(yè)務(wù)需要支持三種語言;SFT 數(shù)據(jù)的長短等。例如,WizardLM 的一篇論文介紹了如何增加指令的多樣性和復(fù)雜性,通過從廣度和深度上進(jìn)行擴(kuò)展,并將 CoT 的數(shù)據(jù)融入其中進(jìn)行自動(dòng)擴(kuò)展,以構(gòu)建更復(fù)雜、更多樣的執(zhí)行數(shù)據(jù)。這都是增加多樣性的有效方法。
5.專利大模型:評(píng)估
評(píng)估任何大模型都是相當(dāng)有挑戰(zhàn)的。
首先,評(píng)估通用能力。通用能力的不足必然會(huì)影響垂直領(lǐng)域的穩(wěn)定性。因此,智慧芽使用了英文數(shù)據(jù)集(MMLU)和中文數(shù)據(jù)集(C-Eval)進(jìn)行綜合評(píng)估。就中文而言,專利大模型相對(duì)于 ChatGPT-3.5-turbo 具有一定優(yōu)勢(shì),但在英文方面表現(xiàn)普通,與我們英文 SFT 不足有較大關(guān)系,現(xiàn)在還在繼續(xù)擴(kuò)充中。
其次,使用專利領(lǐng)域的公開數(shù)據(jù)集 Patent-Match。智慧芽主要關(guān)注專利的侵權(quán)和創(chuàng)新性,而 Patent-Match 數(shù)據(jù)集可用于判斷專利是否侵權(quán)。從測(cè)試結(jié)果來看,無論是中文還是英文,專利大模型在專利領(lǐng)域,都遠(yuǎn)遠(yuǎn)超過了 ChatGPT-3.5-turbo,甚至超過了 ChatGPT-4。上圖顯示了智慧芽不同版本大模型的評(píng)估數(shù)據(jù)。同時(shí)也可以看出,Sparse 版本的 MOE 和 Dense 版本之間,也有非常有趣的現(xiàn)象,以后有機(jī)會(huì)給大家分享更多。
最后,對(duì)智慧芽自身細(xì)粒度業(yè)務(wù)能力進(jìn)行了評(píng)估,如專利撰寫、專利總結(jié)、專利問答等。智慧芽使用了專利領(lǐng)域自建測(cè)試集(面向業(yè)務(wù))Patent-Bench,并采用 PK 方法進(jìn)行評(píng)估,與 ChatGPT-3.5-turbo 和 CGPT-4.0進(jìn)行對(duì)比。在不同的任務(wù)上,表現(xiàn)有所不同:在總結(jié)方面,專利大模型相對(duì)于 ChatGPT-3.5-turbo 仍具有優(yōu)勢(shì);在專利撰寫方面,由于通用大模型缺乏專利知識(shí),專利大模型的優(yōu)勢(shì)更為明顯;而在專利問答方面,專利大型模型的優(yōu)勢(shì)也十分突出,這與智慧芽使用了更深層次、更具差異性的數(shù)據(jù)集有很大關(guān)系。
6.專利抽?。嚎贵w輕重鏈提取+抗原配對(duì)信息
接下來分享應(yīng)用專利大模型能夠解決的實(shí)際業(yè)務(wù)問題。
上圖顯示了專利抽取的需求,一個(gè)生物醫(yī)藥客戶需要從專利中獲取抗體抗原的配對(duì)信息。這涉及到輕鏈、重鏈以及它們對(duì)應(yīng)的抗原等關(guān)鍵數(shù)據(jù),在生物醫(yī)藥領(lǐng)域至關(guān)重要。特別是對(duì)于大型藥物公司,其核心藥物都受到專利保護(hù),因此準(zhǔn)確提取這些信息至關(guān)重要。然而,在過去,數(shù)據(jù)集的準(zhǔn)確性和提取都需要人工干預(yù)。要實(shí)現(xiàn)客戶的需求,使用純?nèi)斯し椒ㄍ瓿尚钑r(shí) 5 個(gè)月;使用小型模型結(jié)合人工標(biāo)注(并由人工審核)需時(shí) 2 個(gè)月;而通過專利大模型,經(jīng)過 Lora 微調(diào)、全參數(shù)微調(diào)、指令微調(diào)等方案,僅需 4 天即可完成任務(wù)。
7.技術(shù)方案對(duì)比:抗體抗原實(shí)驗(yàn)結(jié)果
上圖中可以看到,專利大模型(PatentGPT)明顯勝出并解決了該業(yè)務(wù)問題。但并不是所有的實(shí)驗(yàn)都有這么好的效果,但是專利大模型打開了一扇窗,在有些場(chǎng)景下可以解決一些小模型無法解決的問題,特別是在長上下文理解等任務(wù)方面。
三、專利搜索與大模型結(jié)合
在落地過程中,專利大模型一定需要與搜索進(jìn)行結(jié)合。
1.為什么要 RAG ( Retrieval Augmented generation )
可以從兩個(gè)方面解釋其原因:
(1)在模型層面:
減少幻覺
解決信息更新問題。這在產(chǎn)品化過程中至關(guān)重要,因?yàn)槌鲇诔杀究紤],模型不可能頻繁進(jìn)行訓(xùn)練,因此數(shù)據(jù)更新的問題就顯得尤為關(guān)鍵。RAG 在工程化或產(chǎn)品化落地上扮演著重要的角色。
利用少量高價(jià)值數(shù)據(jù)的問題。這一點(diǎn)尤為重要,在大模型的學(xué)習(xí)過程中,由于高價(jià)值數(shù)據(jù)量有限,很難學(xué)到這些數(shù)據(jù),也無法將其放到指令微調(diào)中深入學(xué)習(xí)。在這種情況下,RAG 變得非常關(guān)鍵。
(2)在業(yè)務(wù)層面:
獲得更可信的正確結(jié)果。尤其是在生成涉及侵權(quán)或法律方面的結(jié)果時(shí),對(duì)精度的要求非常高。
有引用鏈接,提高可解釋性。當(dāng)客戶獲取生成的結(jié)果時(shí),通常要求其具有可解釋性和可追溯性,以證明整個(gè)鏈路的可信性。因此,每個(gè)回答都必須提供相應(yīng)的鏈接地址,這也是產(chǎn)品需求的一部分。
獲得新增領(lǐng)域信息以解決產(chǎn)品迭代問題。因?yàn)槟P透滦枰a(chǎn)品迭代,因此如果需要在短期內(nèi)立即上線,RAG 是一個(gè)可行的解決方案。
2.RAG在智慧芽的實(shí)踐架構(gòu):找到答案+探索?
以下是 RAG 實(shí)現(xiàn)流程的概述。比如先問一個(gè)問題,“介紹計(jì)算機(jī)學(xué)院的課程”,獲得結(jié)果后,再問”電子學(xué)院呢”,在該流程中,除了必須的安全判斷步驟外,主要分為以下幾個(gè)步驟:
請(qǐng)求重寫:在此步驟中,首先進(jìn)行 Query Rewrite。這是非常關(guān)鍵的一步,直接搜索“電子學(xué)院”可能無法獲得有價(jià)值的信息,因?yàn)橛脩魧?shí)際的需求是介紹一下電子學(xué)院的課程。和原來傳統(tǒng)的搜索不一樣,需要有一個(gè)根據(jù)歷史改寫的過程,這個(gè)實(shí)現(xiàn)還是非常有挑戰(zhàn)性的,尤其是上下文比較長的時(shí)候。
文檔檢索:文檔檢索階段包括以下幾個(gè)工作:
Text2SQL:智慧芽之前通過小型模型提取了大量結(jié)構(gòu)化數(shù)據(jù),因此需要進(jìn)行結(jié)構(gòu)化檢索 Text2SQL。智慧芽定義了自己的 PatentSQL。
BM25:智慧芽原有的基于詞袋模型的 BM25 算法也需要調(diào)整。對(duì)于剛剛重寫的查詢,“介紹一下電子學(xué)院的課程”,搜索時(shí)不能直接使用全部關(guān)鍵詞,而是需要根據(jù)核心關(guān)鍵詞“電子學(xué)院課程”進(jìn)行搜索。智慧芽使用大模型進(jìn)行關(guān)鍵詞提取,以提高精度和搜索效果。
向量檢索:智慧芽原來的向量是基于相似性或相關(guān)性的特征空間實(shí)現(xiàn)的。現(xiàn)在需要結(jié)合非對(duì)稱性,因?yàn)闃I(yè)務(wù)上不僅需要尋找相似性或相關(guān)性,還要處理問答和侵權(quán)關(guān)系等非對(duì)稱性任務(wù)。為此,智慧芽需要重新訓(xùn)練一個(gè)針對(duì)專利領(lǐng)域的 embedding model。這個(gè)模型需要通過預(yù)訓(xùn)練數(shù)據(jù)和領(lǐng)域特定數(shù)據(jù)(如專利論文和臨床信息)完成預(yù)訓(xùn)練,并進(jìn)行大量的對(duì)比學(xué)習(xí)。ChatGPT 訓(xùn)練自己的 text-embedding-ada 模型也是為了解決類似的問題,當(dāng)然,embedding model 不一定是 Decoder-only 的,可以結(jié)合 Encoder 實(shí)現(xiàn)。
段落抽?。簩⑶懊嫒齻€(gè)搜索步驟的結(jié)果匯總,根據(jù)下游大模型的長文本能力,形成篇章或者段落。
答案生成:調(diào)用大模型,基于重寫后的查詢和檢索到的段落生成結(jié)果。
此外,RAG 所使用的大模型也需要基于搜索結(jié)果進(jìn)行 SFT 和強(qiáng)化學(xué)習(xí)。
3.RAG挑戰(zhàn):一半是工程,一半是算法突破
在 RAG 的實(shí)施過程中,上圖中展示了其中一個(gè)例子:“發(fā)燒多少度需要吃藥”,模型給出了回答,接著問:“兒童呢”這意味著詢問小孩發(fā)燒多少度需要吃藥。系統(tǒng)首先需要確定是否涉及多輪對(duì)話,然后判斷是否需要搜索。這個(gè)例子中模型判斷是多輪對(duì)話,Query 需要進(jìn)行改寫;如果不是,可以直接利用當(dāng)前問題進(jìn)行搜索。在實(shí)踐中面臨的挑戰(zhàn)包括:
在多輪對(duì)話過程中進(jìn)行搜索改寫。
判斷是否需要搜索,通過小參數(shù)的大型模型來解決這個(gè)調(diào)度問題。
搜索與大型模型的深度融合(SELF-RAG),當(dāng)大模型直接生成內(nèi)容時(shí),通過生成特殊的 token 來指示是否需要搜索。
100 億向量的性能問題,RAG 的應(yīng)用需要對(duì)源數(shù)據(jù)進(jìn)行 Chunking 分段,將上百頁的專利分成多個(gè)部分。如何通過工程化方法使其運(yùn)行更快,也是一個(gè)挑戰(zhàn),這涉及到工程化的問題。
四、挑戰(zhàn)和展望
關(guān)于未來方向的一些思考。
在實(shí)踐過程中,智慧芽進(jìn)行了以下思考:
稀疏化:智慧芽也開發(fā)了一個(gè) MoE 模型,除了模型本身,主要目的是平衡成本、速度和精度。隨著業(yè)務(wù)的擴(kuò)大,成本問題將不可避免地出現(xiàn)。MoE 模型能夠更好地平衡性能和使用成本。
自我迭代:智慧芽實(shí)現(xiàn)了一個(gè)強(qiáng)化學(xué)習(xí)的自我迭代 self play,即自我對(duì)話和自我評(píng)估,現(xiàn)在也有很多 Self-Rewarding 相關(guān)的文章,就是讓模型自己和自己對(duì)話、評(píng)估、迭代,這是一個(gè)很好的方向。目前代碼已經(jīng)實(shí)現(xiàn),并初步看到了一些效果,后續(xù)將進(jìn)行更深入的實(shí)驗(yàn)。
多模態(tài):專利并非只是全文本,還包含化合物序列、表格、附圖等圖片數(shù)據(jù)。因此,需要多模態(tài)的能力來充分理解專利內(nèi)容。多模態(tài)處理也是智慧芽未來研究的方向之一。
Agent:真正的應(yīng)用場(chǎng)景肯定需要結(jié)合多個(gè) Agent,這是智慧芽未來需要探索的方向之一。