蔚來知識平臺的建設與應用
一、背景介紹
在相當長的一段時間里,蔚來公司內部存在多個類似的知識庫系統。這些系統之間缺乏互通性,形成了一種數據孤島的狀態,因此帶來了知識查找困難、使用不便等問題。用戶不知到去何處獲取知識,同時即便找到相關資料,也無法確認其完整性和準確性。
在上述背景下,我們設立了一個知識項目,旨在構建一個公司級別的知識平臺,以實現以下目標:
- 以公司級視角來指導與整合各業務方的知識資產;
- 建設一個好用且具備足夠彈性的知識管理工具;
- 形成一套公司級的知識資產管理規范;
- 建立一套高效的知識應用推廣方案;
- 支持大模型知識、語料。
二、整體架構設計
第一部分如下圖所示,是知識平臺的整體架構。整體架構看似復雜,但分層理解后就很清晰了。
從最底層開始,我們稱之為“原始材料層”。這一層包括公司內部各類知識庫系統所提供的原始語料。正如前文所述,這些知識庫系統在過去以數據孤島的形式存在,彼此之間缺乏互通性。它們作為知識平臺的基礎資料來源,涵蓋了生產、研發、質量等領域的知識數據。
在這些原始資料的基礎上,我們建立了一套統一的知識生產運營工具,涵蓋知識接入、生產加工等功能。通過這套工具,各種原始材料(如飛書文檔、富文本文檔、PDF 和 Word 文件等)被整合并接入知識平臺。知識生產加工過程包含編輯、審核、加工和分析等一系列功能,旨在將分散的原始材料轉化為統一的知識資產。
根據知識的密級,我們將公司級知識資產劃分為兩大類:公開知識與企業內部知識。公開知識進一步細分為結構化和非結構化兩類;而企業內部知識則涉及培訓、產品研發、銷售、質量管理和生產制造等領域。
在此基礎上,我們搭建了一系列知識服務,其中包括內容服務和為大型模型提供的語料服務。具體內容服務包括知識查找、查看以及相關交互功能。我們提供了多種知識查找方式,如全文檢索、內容檢索、向量檢索、目錄索引和重點推送等,并支持富文本內容查看和推薦內容展示。此外,知識服務平臺還包括與用戶互動的部分,確保知識的有效傳遞和應用。
經過上述流程,最終形成成品知識庫,包括客服產品、銷售產品等成品知識庫,類型涵蓋問答庫、成品推文及操作手冊等。基于這些成品知識,我們可以構建多樣化的知識應用,例如知識門戶、知識管理后臺和 AI 應用等。同時,整個知識平臺還支持全公司范圍內智能化服務的建設,如 NIO APP、Nomi 和客服系統等,由底層知識平臺提供支持,用于構建與知識相關的智能化應用。
此外,知識平臺也為大型模型提供服務,通過提供語料支持其訓練和微調,在基座大模型上進行擴展,構建成各領域的專業模型。這部分工作包括為企業內外部的不同需求提供語料服務,促進大模型的應用和發展。
最后,我們設立了一條反饋鏈路,用以處理知識在應用過程中發現的問題,如知識錯誤或過期等。這些問題將通過該鏈路反饋到原始生產環節,進行二次生產和加工,以解決問題。同時,我們有一套完善的權限管理體系,包括用戶角色設定等安全措施,確保知識平臺的安全性和防止信息泄露。
第二部分是異構知識的結構化加工系統架構,知識的形式多種多樣,從各種非結構化的信息到最終可直接應用的知識,其間需經歷一個復雜且鏈路較長的知識加工過程。
上圖中,縱向列出了整個知識加工的具體步驟,而橫向則展示了知識加工流程以及為此配套建設的知識工具。首先,從知識需求分析開始,明確所需的知識內容,并據此建立需求地圖。隨后,進入知識生產運營階段,在此階段,平臺提供編輯、審核等一系列功能支持。為了實現這些功能,我們開發了相應的生產運營工具。
經過上述流程生產的知識及統一集成的知識將被整合入知識平臺。為了達成這一目標,我們采用多種集成方式,如通過 HTTP、MR、數倉等手段,將公司內部各個知識孤島中的知識資源進行全面集成。知識的載體可以是 PDF 文檔、飛書文檔、代碼或網頁。形態包括文本、圖片、表格、視頻等形式。為了支持這一結構化加工過程,我們開發了一套統一的結構化加工工具。該工具能夠將知識轉化為文字形式,并進行模塊化處理,隨后執行切分和信息抽取等操作。具體而言,文本將根據一定規則被切分為多個片段,再進行標注和摘要生成,最終統一錄入數據庫。其中會用到多種切分方法和信息抽取技術。
最終,我們的知識平臺實現了多方面的應用消費功能,如知識搜索和知識問答,這些功能依據知識空間的不同分別實施問答和搜索能力。應用消費環節產生的反饋信息將回流至知識需求模塊,更新需求地圖,從而形成一個完整的閉環。
第三部分是企業內部知識智能檢索架構,即傳統意義上的 RAG(Retrieval-Augmented Generation)。
如上圖所示,蔚來汽車的知識平臺在實現 RAG 時采用了以下方法:首先,對于每次知識文檔更新,系統會進行內容抽取服務,提取文檔中的文本部分。隨后,執行知識切片服務,并對切片后的內容進行向量化處理,最終存儲至向量數據庫中。
進入在線服務階段,當用戶提出問題時,系統首先會對查詢進行改寫,然后將改寫后的問題向量化,與向量數據庫中的知識切片進行匹配。匹配到的相關知識點會被重新排序,以確定最相關的信息。最后,通過大模型的提示詞工程,使用企業專屬的大模型生成最終答案,包括答案文本及其引用的知識點,形成完整的回答返回給用戶。
在整個知識語料加工過程中,除了向量數據庫的存儲外,這些資料還用于支持大模型的服務,例如語料微調和評估,從而構建出我們企業專屬的大模型。
傳統方式下,用戶輸入問題后需搜索并逐一查看相關知識文檔,以獲取所需信息;而采用 RAG 流程,用戶提問后直接獲得答案及相關的知識點,顯著節省了時間。這一時間節省主要歸因于大模型能夠提供高度滿足需求的回答,減少了用戶進一步查閱詳細知識的需求。因為用戶對初始答案不滿意并需要進一步搜索或點擊鏈接查看文檔的比例較少,整體計算下來可以大約可以節省 40% 的時間,明顯提升了用戶查找知識的效率。
三、挑戰與解決思路
在這一章節中,將介紹實際運行過程中遇到的問題、挑戰以及解決方案。
第一個挑戰是知識問答系統的準確性。目前,我們的知識問答系統在公司內部測試中已達到 90% 以上的準確率。這一成就得益于我們將公司內的知識問答劃分為三大類別:專業問題、敏感問題以及普通問題,針對不同類別的問題制定不同的策略,如下圖所示。
對于專業問題和敏感問題,我們采取關鍵詞檢索的方式來處理。由于 RAG(Retrieval-Augmented Generation)技術對專業術語的理解可能存在局限,會導致回答不夠精準或答非所問的情況。因此,對于需要高度專業性的問題,直接通過關鍵詞檢索引導用戶至具體的知識點更為有效。同樣地,對于敏感問題,如銷售政策等容錯率為零的場景,也采用關鍵詞檢索方式,確保回答準確。
除了上述兩類之外的所有問題被歸為普通問題,進一步細分為三種處理類型:當向量檢索后發現知識庫中有充足的相關信息時,系統將正常生成答案;若在向量檢索過程中發現相關信息不足,即匹配度較低或得分值不高的情況下,系統會發出風險提示,告知用戶該回答可能存在誤差,請謹慎判斷;對于完全無法從知識庫中檢索到相關信息的問題,系統將退化為使用大模型進行普通回答,并明確提示用戶,指出這是基于大模型的能力而非知識庫內容生成的答案。
通過這種分類處理的方法,我們構建了一套完整的知識問答體系,旨在提高回答的準確性和用戶的滿意度,同時確保敏感信息的處理符合高標準要求。
第二個挑戰是知識點的訪問權限控制。企業內部的知識問答與公開的大模型問答(如 chat-gpt)不同,企業內的知識點訪問需要是受到嚴格的權限管理。這意味著,對于同樣的問題,公開的大模型可能會對 1000 個用戶給出相同或相似的答案;而在企業內部環境中,因為每位員工的知識訪問權限可能各不相同,1000 名員工針對同一問題可能得到 1000 個不同的答案。
如上圖所示,為了應對這一挑戰,我們采用了基于角色的權限控制方案(Role-Based Access Control, RBAC)。我們建立了一個權限配置后臺,通過用戶角色和權限設置來管理訪問控制。每個用戶根據其職位和職責被賦予特定的角色,而每個角色則關聯一定的權限范圍。
在此基礎上,我們構建了一套權限服務體系,該服務負責查詢用戶當前的角色及其所擁有的權限。在知識搜索和問答場景中,系統會依據用戶的當前角色,在向量數據庫中匹配其權限范圍內允許訪問的知識內容。僅使用這些有權限訪問的知識進行智能檢索和問答,確保回答的內容嚴格限制在用戶有權訪問的知識范圍內,從而保證數據的安全性和保密性。
通過這種方式,我們的權限控制系統不僅支持個性化的知識訪問,還有效防止了敏感信息的泄露,保障了企業內部信息的安全性。
第三個挑戰是多領域的智能問答服務。對于蔚來的公司級知識平臺而言,其核心任務是支持整個公司范圍內的知識使用場景。每個知識使用場景,包括知識問答場景,都有其獨特的個性化需求。如何通過一個統一的智能問答系統來滿足全公司的幾乎所有場景的需求?我們采用了一種特定的鏈路來實現這一目標,下面以智能問答為例進行說明。
如上圖所示,在每個問題提出的過程中,提問者會在其特定場景下限定自己的知識庫范圍。正如前文所述,知識平臺上建立了多個獨立的知識庫,研發、生產、銷售等各個領域均擁有各自的獨立知識庫。例如,當研發領域的智能助手提出問題時,檢索和回答僅限于研發知識庫內進行,然后會進入全公司范圍內統一的智能回答鏈路,最后在將答案提供給用戶之前,我們會根據特定領域的特性對回答風格進行調整,確保其符合該場景的要求。以研發領域為例,我們會設定一種符合研發風格的回答模式,使最終的回答既準確又貼合實際需求。
通過限定知識庫范圍和定制化回答風格,可以滿足不同領域的個性化要求。同時,利用統一的智能問答服務,我們實現了廣泛的復用性,避免了重復建設,從而提高了效率和資源利用率。
第四個挑戰是高并發問題。在智能問答場景中,顯卡資源消耗顯著,且因為計算量龐大,計算耗時較長,每個回答通常需要數秒時間,對于特別復雜的問題可能需要數十秒。這使得智能知識問答服務難以嵌入到生產、銷售等領域的關鍵系統中,大多數場景無法接受如此長的響應時間。此外,在某些場景下,智能問答工具的訪問量非常大,這對本身已消耗大量資源的智能問答服務構成了挑戰。
鑒于上述背景,我們增加了對高并發的處理,旨在使智能知識問答服務能夠覆蓋更多場景并支持更多用戶。如下圖所示:
首先,我們引入了一個知識生產流程,該流程包含知識變更的影響問題計算。當知識點更新時,我們計算哪些問題的回答會受到影響,并對這些問題的答案進行統一更新。這一過程遵循傳統的 RAG(Retrieval-Augmented Generation)流程,確保答案的準確性和一致性。更新后的智能問答服務結果會被存入知識問答緩存數據庫。此數據庫存儲問題及其對應答案,一旦命中緩存中的問題,用戶可在極短時間內獲得答案,無需再次計算。由于我們有實時更新的機制,緩存庫中的答案基本保持最新,延遲控制在秒級。
基于此知識問答緩存服務,我們設計了三類智能問答機器人:No Cache、Only Cache 和 Cache First。
No Cache:這種模式下,智能問答服務直接提供正常答案。其特點是回答覆蓋面廣但速度較慢,不支持高并發,因此應用場景有限。
Only Cache:在這種模式下,提問時直接查詢緩存服務。如果找到答案,則立即返回;若未找到,則返回空值表示無法回答。這種方式的特點是速度快但問題覆蓋率低,適用于對響應時間和性能要求極高的場景。
Cache First:這是我們的主要推薦模式,適用于絕大多數場景。提出問題后,首先查詢緩存。如果緩存中有答案,則立即返回;如果沒有,則進入正常的智能問答流程獲取正常答案。這種方式結合了快速響應和廣泛覆蓋的優點,平均吞吐量可增加 30% 以上,尤其在命中緩存的情況下,響應時間幾乎可以忽略不計,顯著提升了系統的并發處理能力。
綜上所述,通過構建知識緩存數據庫和支持不同模式的智能問答機器人,我們實現了對高并發的支持,既提高了系統的響應速度和效率,又保證了廣泛的問答覆蓋范圍。
四、未來展望
最后是對未來工作的展望。在當前平臺建設的基礎上,我們計劃推進以下幾個方面的工作。
1. AI 輔助知識理解
目前,我們在知識平臺中已經引入了 RAG(Retrieval-Augmented Generation)流程,實現了智能知識檢索和問答服務,使用戶能夠便捷地獲取所需信息。然而,當直接的回答無法完全滿足用戶需求時,用戶仍需查閱詳細的正文內容。為了改善這一情況,我們將增加 AI 輔助知識理解功能。具體而言,在用戶瀏覽知識詳情時,系統將利用AI能力自動生成文檔摘要,減少用戶的閱讀時間,并提供術語解釋服務,幫助用戶理解文檔中的專業名詞。這種AI輔助理解功能旨在優化知識瀏覽和消費體驗。
2. AI 輔助知識創作
在知識生產過程中,盡管目前仍以人工為主,但我們計劃引入 AI 輔助知識創作工具。這些工具可以幫助撰寫新文檔或在現有知識基礎上進行擴展和續寫,從而提高知識創作的速度和效率,擴大整個知識平臺的知識儲備量。
3. 多模態能力
除了傳統的文本形式,我們還計劃研究并開發多模態知識處理能力。雖然數據存儲方面已支持圖片、視頻等多種格式,但在智能問答領域,我們希望進一步拓展其功能,例如通過上傳圖片提問,并基于圖片內容生成回答。此外,我們還將探索圖文混合等多模態交互方式,以增強系統的智能化水平。
4. 知識類型擴展
現有的知識類型涵蓋了 PDF、網頁等多種格式,但并未涵蓋所有可能的形式。未來,我們將考慮在此基礎上擴展支持更多種類的知識資源,確保任何類型的知識都能融入到我們的知識平臺中進行加工、治理和管理,從而進一步豐富平臺的知識儲備,提升其全面性和適用性。
綜上所述,通過引入 AI 輔助知識理解、AI輔助知識創作、多模態能力和知識類型擴展,我們將持續優化和完善知識平臺的功能和服務,以更好地滿足用戶需求并提升平臺的整體價值。
五、Q&A
A1:是的,對于專業問題和敏感問題,系統會退化為基于全文檢索。這類問題不適合通過語言模型進行推理處理,因此采用全文檢索以確保回答的準確性和安全性。
A2:緩存庫中的答案之所以準確,是因為其依賴于三個不變的因素:用戶提出的問題、知識庫的內容以及背后的大模型。具體而言,在問答背后的大型模型和問題本身沒有變化時,唯一可能影響答案準確性的是知識庫的更新。然而,在知識點發生變化的情況下,我們會及時更新緩存中的答案,以確保其準確性。因此,無需每次依賴人工專家標注,而是通過自動化機制保證緩存答案的正確性。