網站建設開發(fā)能力很強的企業(yè)外貿公司一般怎么找客戶
《FACTS About Building Retrieval Augmented Generation-based Chatbots》是2024年7月英偉達的團隊發(fā)表的基于RAG的聊天機器人構建的文章。
這篇論文在待讀列表很長時間了,一直沒有讀,看題目以為FACTS是總結的一些事實經驗,閱讀過才發(fā)現(xiàn)FACTS是論文定義的RAG-based chatbots的五個維度:freshness (F), architectures(A), cost economics of LLMs ?, testing (T), security (S)的縮寫。
論文說在英偉達內部用RAG和LLM構建三個chatbot,如論文表1所示?;谶@些chatbot構建經驗總結了一套方法論。
這兩年RAG很火,但是構建好一個基于RAG的聊天機器人并不是件易事,要考慮RAG流程的工程化、微調LLM、prompt engineering、保證召回知識的相關性和準確性、文件訪問控制、生成精確的回復并包括參考資料以及保護個人敏感信息等等。因此論文總結了如論文圖1和圖4所示的15個RAG流程中的控制點(吐槽一下論文中所有的圖片都不夠清晰)。
為了避免在公司內部重復地開發(fā)一些構建chatbot需要的功能如安全、護欄等,開發(fā)了如論文圖7所示可插拔架構的模塊化平臺NVbot。平臺支持domain-specific, enterprise-wide, copilot三種不同的chatbot變體。
一些論文提到的細節(jié):
- 為了提高檢索相關度:進行了Metadata增強、查詢改寫、使用grid-search方法來尋找合適chunk大小、測試不同的chunk rerank策略等;使用混合搜索(Lexical search+向量搜索)。
- 對于一些復雜問題,比如“compare the revenue of NVIDIA from Q1 through Q4 of FY2024 and provide an analytical commentary on the key contributing factors that led to the changes in revenues during this time”,要使用agent或multi-agent架構才能回答出來,論文使用了如圖2所示的將一個問題拆成多個問題的agent方式。
- 微調Llama3-70B后在保持可接受的延遲下可得到挺不錯的答案質量
- Unstructured.io等專門從PDF中提取結構化內容的工具有助于解析和分塊非結構文化。如果文檔的結構固定比如SEC相關的文檔,使用section-level的分割,用section title和subheading來分割并將它們加入到chunk的上下文有助于提升檢索相關性。
- 使用RAGOps/LLMOps監(jiān)控工具來監(jiān)控RAG流程,使用如Ragas等評估框架。
- 用內部LLM Gateway來統(tǒng)一管理使用的商用LLM API,可以簡化LLM使用、訂閱和數(shù)據(jù)跟蹤的安全審計。
- 包含安全測試、prompt修改測試、反饋回路等用來測試chatbot的手段。
- chatbots的數(shù)據(jù)訪問有Access Control Lists (ACLs),用Nemo Guardrail對輸入和輸出進行處理。
總結:這篇論文介紹了基于RAG的chatbot的五個維度,論文按照這五個維度列舉了一些經驗,可以對照看看有哪些自己在開發(fā)過程中沒有考慮過的點,不過總體來講論文在詳細實現(xiàn)上討論的不夠多。