騰訊基于 RAG 和 Agent 技術(shù)的混元大模型業(yè)務(wù)落地實踐
在本篇文章中,我們將深入探討騰訊大語言模型在多個業(yè)務(wù)場景中的應(yīng)用,特別是如何通過前沿技術(shù)提升模型的智能化與用戶體驗。首先介紹騰訊大模型的廣泛應(yīng)用場景,如內(nèi)容生成、智能客服和角色扮演等,并詳細解析 RAG(Retrieval-Augmented Generation)技術(shù)及其在實際業(yè)務(wù)中的創(chuàng)新應(yīng)用,特別是在文檔生成和問答系統(tǒng)中的優(yōu)勢。此外,文章還將探討 GraphRAG 在角色扮演場景中的應(yīng)用,如何結(jié)合知識圖譜優(yōu)化復(fù)雜的知識推理。最后,將深入分析 Agent 技術(shù)的原理與應(yīng)用,展示其在目標驅(qū)動任務(wù)中的強大推理與執(zhí)行能力。通過這些技術(shù)的結(jié)合與實踐,騰訊正在推動大語言模型在各類復(fù)雜場景中的智能化演變,提供更加精準且高效的解決方案。
一、騰訊大語言模型應(yīng)用場景
1. 核心應(yīng)用場景
騰訊大模型技術(shù)的應(yīng)用覆蓋了多個業(yè)務(wù)場景,包括微信生態(tài)、社交內(nèi)容、視頻新聞、辦公文檔、游戲等。通過大模型,騰訊推動了業(yè)務(wù)場景的智能化與高效化應(yīng)用。
核心業(yè)務(wù)場景包括:
- 內(nèi)容生成:如文案生成(如廣告文案)、評論輔助生成等。
- 內(nèi)容理解:如文本審核、詐騙識別等。
- 智能客服:如知識問答、用戶引導(dǎo)等。
- 開發(fā) Copilot:如代碼評審自動化、自動生成測試用例等。
- 角色扮演:如游戲場景中 NPC 的智能交互。
2. 大模型應(yīng)用技術(shù)
騰訊在大模型應(yīng)用中主要使用以下三種技術(shù)方式:
(1)SFT(Supervised Fine-Tuning)
- 基于基座模型(如大語言模型)進行微調(diào),結(jié)合業(yè)務(wù)專屬數(shù)據(jù),將特定領(lǐng)域的業(yè)務(wù)知識固化于模型中。
- 優(yōu)勢:可直接實現(xiàn)針對性的任務(wù)回答與處理。
(2)RAG(Retrieval-Advanced Generation)
- 結(jié)合外部知識庫與檢索技術(shù),在生成內(nèi)容時加入檢索結(jié)果。
- 應(yīng)用場景:智能客服、文檔助手等。
- 優(yōu)勢:提供更高的可解釋性,并顯著減少幻覺現(xiàn)象(模型生成的虛假內(nèi)容)。
(3)Agent(智能體)
- 通過調(diào)用外部工具,支持模型進行復(fù)雜任務(wù)的推理、規(guī)劃和執(zhí)行。
- 優(yōu)勢:適用于需要多步驟推理和執(zhí)行的復(fù)雜任務(wù)場景。
3. 混元一站式大模型應(yīng)用解決方案
騰訊通過混元大模型平臺提供一整套從基礎(chǔ)模型管理到復(fù)雜應(yīng)用開發(fā)的支持體系,具體包括:
(1)基礎(chǔ)模型管理與開發(fā)支持
- 模型注冊與管理:支持多類型基礎(chǔ)模型(如 7B 模型、7B-MoE 模型等)。
- 數(shù)據(jù)處理鏈路打通:覆蓋數(shù)據(jù)抓取、清洗、模型訓(xùn)練、評測、部署與服務(wù)等完整流程。
(2)Agent 平臺與擴展能力
功能支持:
- 集成 RAG 和 Agent 技術(shù),支持索引與召回能力。
- 用戶可通過插件擴展與定義自有功能模塊。
應(yīng)用能力:
- 提供智能問答、角色扮演、自定義編排等解決方案。
- 提供靈活交互界面,支持用戶完成復(fù)雜業(yè)務(wù)應(yīng)用的流程化部署。
二、RAG 技術(shù)原理及優(yōu)化實踐
在大模型技術(shù)快速發(fā)展的背景下,其直接應(yīng)用于業(yè)務(wù)場景的過程中面臨一些難以忽視的問題,如:
- 幻覺問題:生成內(nèi)容不準確或虛假,難以滿足高可靠性場景需求。
- 知識更新滯后:業(yè)務(wù)知識快速迭代,但模型更新周期較長,無法及時反映最新動態(tài)。
- 可解釋性與安全性:大模型的預(yù)測過程較為黑箱,難以提供足夠的安全保障。
為應(yīng)對上述挑戰(zhàn),RAG(Retrieval-Augmented Generation)技術(shù)通過結(jié)合檢索與生成機制,為模型注入動態(tài)更新的外部知識,顯著提高模型在復(fù)雜場景中的回答準確性與知識實時性。后文中將從技術(shù)原理、關(guān)鍵環(huán)節(jié)及實際應(yīng)用出發(fā),深入探討 RAG 技術(shù)的優(yōu)化方案和應(yīng)用實踐。
RAG 技術(shù)主要包含兩個核心部分:
數(shù)據(jù)準備:
- 構(gòu)建高質(zhì)量的知識庫。
- 針對知識庫構(gòu)建召回索引及支持生成增強。
知識召回和生成增強:
- 用戶提出問題后,將其轉(zhuǎn)化為向量,結(jié)合知識庫中的向量匹配,召回對應(yīng)文檔。
- 基于召回的文檔與問題生成準確且上下文相關(guān)的回答。
1. RAG技術(shù)原理
整體鏈路與原則如下:
- RAG 效果取決于全鏈路每一環(huán)節(jié)的優(yōu)化,包括數(shù)據(jù)準備、索引構(gòu)建、召回及生成環(huán)節(jié)。
- 遵循“Garbage in, garbage out” 原則,只有確保鏈路每一步的數(shù)據(jù)和處理結(jié)果高質(zhì)量,最終效果才會滿足預(yù)期。
知識庫與生成增強:
- 知識庫通過存儲問題與相關(guān)文檔,實現(xiàn)向量匹配的高效檢索。
- 基礎(chǔ)模型以檢索的文檔為依據(jù)生成回答,確保生成結(jié)果具有高準確性和可靠性。
2. RAG 應(yīng)用關(guān)鍵挑戰(zhàn)
RAG 在實際應(yīng)用中會面臨諸多挑戰(zhàn)。首先,原始文檔格式多種多樣,內(nèi)容提取面臨挑戰(zhàn);第二,如何對不同格式的文檔進行切分,并保證語義完整性也是需要解決的一大問題;第三,需要考慮如何構(gòu)建知識庫;第四,需要保證文檔召回率,召回的相關(guān)性,并在必要時融合多種召回技術(shù);最后是如何讓模型更好地生成內(nèi)容。
(1)文檔解析
技術(shù)手段:利用端到端模型對 PDF、Office 等文檔進行視覺化編碼和特征提取。
- 輸入:多種復(fù)雜文檔格式(PDF、海報、雜志等)。
- 輸出:高質(zhì)量提取的段落、表格、公式等內(nèi)容。
優(yōu)化點:
- 支持異構(gòu)文檔的解析。
- 保證文檔結(jié)構(gòu)與語義的準確提取。
(2)文檔切分
提供多種切分方式適配不同業(yè)務(wù)場景:
- 固定長度切分:按照字數(shù)限制(如 1024 字)進行切分。
- 中文語義切分:通過模型判斷切分點,確保語義連貫。
- Markdown 標題細分:按 H1、H2、H3 等標題分層切分。
- 遞歸文本切分:根據(jù)語義和文檔層次靈活調(diào)整切分方式。
實際挑戰(zhàn):
- 固定切分可能導(dǎo)致語義割裂。
- 復(fù)雜文檔需結(jié)合多種切分方式,確保內(nèi)容完整性。
(3)離線知識擴充技術(shù)
- DocQAGenerator:直接基于原始文檔生成可能的 QA 對
- AugmentedQuestionGenerator:在用戶提供了<Question, Context>對的情況下,基于當前問題和上下文,為上下文生成更多可能的用戶問題
- AtomicUnitsQAGenerator:Atomic Units QA 的方法首先對原始文本進行分塊,然后將塊分解為原子陳述,再針對這些原子(以塊為上下文)生成一組合成問題
知識庫擴充方案:
- 針對用戶知識庫數(shù)據(jù)有限的情況,提出知識庫擴展方案:將文檔內(nèi)容切分為 Chunk;提取原子成分并生成對應(yīng)問題;生成問答對,擴充知識庫的覆蓋范圍。
成果:結(jié)合論文中提出的前沿方法,實現(xiàn)高效、精細化的知識庫構(gòu)建。
(4)索引召回
向量化技術(shù):支持兩種召回方式:
- 基于 Transformer/BERT 的語義召回。
- 基于 BM25(優(yōu)化版 TF-IDF)的關(guān)鍵詞召回。
(5)多路召回
融合多種來源的召回結(jié)果,包括:Vector DB(向量數(shù)據(jù)庫)、ES(Elasticsearch),以及外部搜索引擎與 API。通過 Reranking 模型對召回結(jié)果進行重排和過濾,確保結(jié)果準確性和多樣性。
(6)知識生成
Prompt 工程:
- 明確角色設(shè)定:為模型提供專家或工程師等明確身份背景。
- 定義清晰的輸入輸出格式,避免歧義。
- 提供示例數(shù)據(jù)(Few-shot),增強模型理解能力。
SFT(微調(diào)優(yōu)化):
- 從業(yè)務(wù)場景中收集樣本數(shù)據(jù)。
- 結(jié)合監(jiān)督學(xué)習(xí)方法進行模型微調(diào),進一步提升生成效果。
三、GraphRAG 在角色扮演場景中的應(yīng)用
1. RAG 局限
在角色扮演場景中,RAG 存在如下一些局限性:
- 缺乏全局信息:召回知識片段內(nèi)容多為局部信息,缺乏全局關(guān)聯(lián),難以支持復(fù)雜知識問答。例如,回答“孫悟空的金箍棒是怎么來的?”時,傳統(tǒng) RAG 可能只提到“孫悟空從東海借金箍棒”,而無法完整呈現(xiàn)其背景故事。
- 缺乏上下文關(guān)聯(lián):長文本中包含大量角色和關(guān)系,直接輸入給模型會受到長度限制,無法生成準確答案。
- 幻覺問題:傳統(tǒng)技術(shù)可能生成不真實或虛構(gòu)的回答,降低用戶信任度。
為了解決這些問題,我們引入了 GraphRAG 技術(shù)。
2. GraphRAG:基于圖的檢索增強方法
GraphRAG(Graph-based Retrieval-Augmented Generation)技術(shù)通過結(jié)合知識圖譜構(gòu)建與生成技術(shù),為復(fù)雜知識場景中的問題解答提供了新的解決方案,特別是在長文本處理、關(guān)系推理和上下文理解等方面具有顯著優(yōu)勢。
GraphRAG 技術(shù)通過知識圖譜的構(gòu)建和使用,實現(xiàn)了從知識提取到推理生成的全鏈路優(yōu)化。其核心流程包括三部分:
(1)索引構(gòu)建(Indexing)
- 知識抽取:從小說或劇本中切分出語義片段,抽取實體、關(guān)系和社區(qū)信息。
- 圖譜構(gòu)建:將這些內(nèi)容組織為知識圖譜,存儲在圖數(shù)據(jù)庫中。
(2)檢索(Retrieval)
- 局部檢索(Local Query):針對具體實體或關(guān)系進行檢索,獲取細節(jié)信息。
- 全局檢索(Global Query):檢索整個圖譜的社區(qū)結(jié)構(gòu)與總結(jié)內(nèi)容,提取高層次信息。
(3)生成(Generation)
- 基于檢索結(jié)果生成回答,提供清晰的溯源和邏輯推理能力。
3. 基于混元LLM構(gòu)建圖檢索增強框架
混元 LLM 構(gòu)建 GraphRAG 主要包括離線和在線兩部分。
主要步驟:
- 語料切分
對長文本如《西游記》或《長相思》進行內(nèi)容切片(Chunking),以便模型處理。 - 知識抽取
使用大模型的 Prompt 對 Chunk 內(nèi)容進行解析,提取以下信息:
實體(Entity):如金箍棒、太上老君、孫悟空等。
關(guān)系(Relation):如“煉制”“使用”“借用”等。
社區(qū)(Community):如金箍棒在故事中的完整鏈條。 - 圖譜構(gòu)建
將抽取的實體、關(guān)系、社區(qū)等組織成圖譜,存儲在圖數(shù)據(jù)庫中。
通過嵌入(Embedding)優(yōu)化查詢效率。 - 在線檢索與生成
問題解析 - 用戶問題觸發(fā) Local 和 Global 兩種檢索方式。
- Local Query:針對單個實體的細節(jié)信息檢索。
- Global Query:獲取高層次社區(qū)總結(jié),描述全局關(guān)系。
內(nèi)容整合與生成 - 模型結(jié)合 Local 和 Global 檢索內(nèi)容,生成準確的回答。
- 在全局檢索中,通過 Reduce 機制對 Community Report 進行排序和整合,進一步提升回答連貫性。
回答特點 - 準確性:基于圖譜的推理與生成,更接近真實。
- 透明性:提供回答溯源,減少幻覺現(xiàn)象。
4. 角色扮演場景介紹
在角色扮演中,GraphRAG 技術(shù)被用于以下場景:
- 角色特點還原
支持長文本內(nèi)容分析,細化角色背景。
如通過《長相思》的劇本內(nèi)容,生成符合角色設(shè)定的回答。 - 多角色互動
準確理解角色間復(fù)雜關(guān)系,如感情糾葛、合作或沖突等。 - 任務(wù)指導(dǎo)
在游戲中引導(dǎo)玩家完成復(fù)雜任務(wù),提供清晰邏輯線索
四、Agent 技術(shù)原理和應(yīng)用
1. Agent 應(yīng)用場景
- 目標驅(qū)動:首先通過用戶的問題引導(dǎo)整個過程,比如用戶希望根據(jù)天氣情況安排一場預(yù)算不超過一萬元的三天深圳旅游。問題涉及多個因素如日期、天氣、預(yù)算等,系統(tǒng)需要理解這些信息并進行思考、推斷。
- 外部工具的使用:為了執(zhí)行任務(wù),模型會調(diào)用外部工具,如天氣查詢、預(yù)算計算器、旅游產(chǎn)品查詢和購買工具等。這些工具可以幫助系統(tǒng)更好地理解用戶需求,并提供更加精準的解決方案。
- 智能迭代:通過不斷的理解和推理,系統(tǒng)會執(zhí)行相關(guān)的操作并通過迭代逐步完成任務(wù),使得過程更加智能,并具備動態(tài)規(guī)劃的能力。
2. Agent 技術(shù)原理
核心功能:Agent 技術(shù)結(jié)合了推理(Reasoning)和行動(Action),模型在執(zhí)行任務(wù)前進行推理,并根據(jù)推理結(jié)果執(zhí)行相應(yīng)的行動。
3. Agent 在混元中的實現(xiàn)
角色定義:
- 用戶(User):與系統(tǒng)交互的外部角色。
- 計劃者(Planner):負責(zé)推理任務(wù)的角色,首先判斷任務(wù)是否完整,若信息不全則會反問用戶獲取補充信息,并通過推理計劃下一步操作。
- 工具(Tool):用于執(zhí)行外部任務(wù)的工具,如天氣查詢或產(chǎn)品購買工具。
Agent流程 - 反復(fù)推理與執(zhí)行:任務(wù)通過多輪推理和執(zhí)行外部工具得以推進。例如,任務(wù)可能包括天氣查詢或旅游產(chǎn)品購買,系統(tǒng)會通過外部工具獲取結(jié)果,并進行進一步推理,最終返回答案給用戶。
- 動態(tài)規(guī)劃:系統(tǒng)會根據(jù)執(zhí)行過程的反饋動態(tài)調(diào)整計劃,逐步優(yōu)化解決方案。
4. Agent 應(yīng)用案例
業(yè)務(wù)背景:騰訊云通過代理技術(shù)支持多個合作伙伴,幫助其提升用戶體驗和工作效率。通過與外部工具結(jié)合,平臺能夠在復(fù)雜任務(wù)中靈活調(diào)度和執(zhí)行,自動化處理各類任務(wù)。
技術(shù)優(yōu)勢:
- 復(fù)雜問題處理:相比傳統(tǒng)的搜索技術(shù),Agent 技術(shù)能處理更為復(fù)雜的需求,結(jié)合外部數(shù)據(jù)庫查詢或 API 調(diào)用獲取信息。
- 插件支持:平臺支持插件定義,能通過外部工具擴展系統(tǒng)功能,提高任務(wù)處理的靈活性和效率。
5. 總結(jié)
- 用戶體驗提升:過去用戶需要適應(yīng)機器的輸入要求,現(xiàn)在系統(tǒng)能夠理解自然語言的復(fù)雜需求,提供更加直觀和舒適的交互方式。
- 智能化和人格化:隨著系統(tǒng)智能化的提高,用戶感知到的互動更具人性化,甚至能產(chǎn)生與真人交互的錯覺。
- 知識處理的多模態(tài)化:原本結(jié)構(gòu)化的知識轉(zhuǎn)向半結(jié)構(gòu)化、非結(jié)構(gòu)化,甚至是多模態(tài)的知識處理,提升了系統(tǒng)的智能程度。
- 自主決策能力:隨著技術(shù)的發(fā)展,模型將具備更強的決策能力,未來在某些情況下,機器的決策可能優(yōu)于人類。
五、問答環(huán)節(jié)
Q1:在生成 chunk 之后,基于 chunk 生成 QA 對,在 embedding 時是將 QA 對整個做 embedding 處理,還是做緩存機制?
A1:有兩種格式的 embedding:一種是將問題 (Question) 和回答(Answer) 分開處理,其中問題部分單獨 embedding,回答部分作為附帶信息在召回時使用;另一種是做全文索引,這時沒有問題部分,只有文檔索引。
Q2:能否介紹一下中文語義切分的具體方法?
A2:語義切分通過訓(xùn)練類似于 BERT 的模型,判斷文章在不同 token 之間如何切分,保證切分后的文章語義的完整性,并且考慮上下文的連續(xù)性以保證語義流暢。
Q3:在問答系統(tǒng)中,如何評估回答的有效性?
A3:我們提供了評估框架和指標,如回答的正確性 (correctness)、召回文檔的相關(guān)性 (relevance) 等。整個過程具有透明性,業(yè)務(wù)方可以通過工具評估和調(diào)試,包括輸入和輸出的測試,確保模型回答符合預(yù)期。
Q4:什么情況下判斷模型需要進行 SFT(監(jiān)督微調(diào)),而 RAG(檢索增強生成)是否能滿足需求?
A4:判斷標準不明確,但一般來說,如果業(yè)務(wù)需要基于特定領(lǐng)域知識(如代碼或云知識)構(gòu)建模型,或者處理復(fù)雜的任務(wù)結(jié)構(gòu),可能需要進行 SFT。如果模型的指令遵循不夠好,也可能需要轉(zhuǎn)向 SFT。
Q5:SFT 是否能改善模型在特定文本風(fēng)格上的表現(xiàn),特別是聊天機器人的風(fēng)格(如 WhatsApp 風(fēng)格)?
A5:通過 SFT,模型可以很好地學(xué)習(xí)特定格式或風(fēng)格的文本。只要提供足夠高質(zhì)量的樣本,模型能夠生成符合期望的風(fēng)格。例如,在 prompt 中提供風(fēng)格示例可以幫助模型更好地理解并應(yīng)用風(fēng)格。
Q6:精調(diào)后的 SFT 模型是否仍然適用于通用的 Agent LLM?
A6:SFT 后的模型依然可以作為 Agent 的 LLM,但如果將其應(yīng)用到新的業(yè)務(wù)場景中,可能效果會有所下降,尤其是如果領(lǐng)域知識差異較大時。
Q7:翻譯后的 SFT 模型是否會影響其 PR(推理能力)?
A7:經(jīng)過 SFT 微調(diào)后,模型的通用性可能會下降,尤其是在訓(xùn)練數(shù)據(jù)不平衡的情況下。例如,如果增加了過多不同類型的數(shù)據(jù),可能會影響模型在某些任務(wù)上的表現(xiàn),導(dǎo)致效果回退。