天天看點

AnalyticDB(ADB)+LLM:建構AIGC時代下企業專屬Chatbot

作者:阿裡開發者

點選連結閱讀原文,擷取更多技術内容:AnalyticDB(ADB)+LLM:建構AIGC時代下企業專屬Chatbot-阿裡雲開發者社群

如何基于向量資料庫+LLM(大語言模型),打造更懂你的企業專屬Chatbot?

作者 | 阿裡雲AnalyticDB

來源 | 阿裡開發者公衆号

為什麼Chatbot需要大語言模型+向量資料庫?

這個春天,最讓人震感的科技産品莫過于ChatGPT的橫空出世,通過大語言模型(LLM)讓人們看到了生成式AI能實作到和人類語言高度相仿的語言表達能力,AI不再遙不可及而已經可以走進人類的工作和生活,這使得沉寂一段時間的AI領域重新煥發了能量,無數的從業者正趨之若鹜地投身于下一個改變時代的機會;據不完全統計,在短短的4個月時間内,美國已經完成了超4000筆的生成式AI的行業融資。生成式AI已經成為了資本和企業都無法忽視的下一代的技術密碼,而其對于底層的基礎設施能力提供了更高的要求。

大模型能夠回答較為普世的問題,但是若要服務于垂直專業領域,會存在知識深度和時效性不足的問題,那麼企業如何抓住機會并建構垂直領域服務?目前有兩種模式,第一種是基于大模型之上做垂直領域模型的Fine Tune,這個綜合投入成本較大,更新的頻率也較低,并不适用于所有的企業;第二種就是在向量資料庫中建構企業自有的知識資産,通過大模型+向量資料庫來搭建垂直領域的深度服務,本質是使用資料庫進行提示工程(Prompt Engineering)。以法律行業為例,基于垂直類目的法律條文和判例,企業可以建構垂直領域的法律科技服務。如法律科技公司Harvey,正在建構“律師的副駕駛”(Copilot for Lawyer)以提高法律條文的起草和研究服務。

将企業知識庫文檔和實時資訊通過向量特征提取然後存儲到向量資料庫,結合LLM大語言模型可以讓Chatbot(聊天機器人)的回答更具專業性和時效性,建構企業專屬Chatbot。下面視訊是一個基于大語言模型+AnalyticDB for PostgreSQL(以下簡稱ADB-PG,内置向量資料庫能力)讓Chatbot更好地回答時事問題Demo:

視訊加載中...

AnalyticDB PostgreSQL支援向量資料檢索能力,可以支援企業使用者一站式搭建Chatbot專屬知識庫。目前開放1個月【免費試用】規格,點選領取:阿裡雲免費試用 - 阿裡雲,即刻開啟體驗!

本文接下來将重點介紹基于大語言模型(LLM)+向量資料庫打造企業專屬Chatbot的原理和流程,以及ADB-PG建構該場景的核心能力。

什麼是向量資料庫?

在現實世界中,絕大多數的資料都是以非結構化資料的形式存在的,如圖檔,音頻,視訊,文本等。這些非結構化的資料随着智慧城市,短視訊,商品個性化推薦,視覺商品搜尋等應用的出現而爆發式增長。為了能夠處理這些非結構化的資料,我們通常會使用人工智能技術提取這些非結構化資料的特征,并将其轉化為特征向量,再對這些特征向量進行分析和檢索以實作對非結構化資料的處理。是以,我們把這種能存儲,分析和檢索特征向量的資料庫稱之為向量資料庫。

向量資料庫對于特征向量的快速檢索,一般會采用建構向量索引的技術手段,我們通常說的向量索引都屬于ANNS(Approximate Nearest Neighbors Search,近似最近鄰搜尋),它的核心思想是不再局限于隻傳回最精确的結果項,而是僅搜尋可能是近鄰的資料項,也就是通過犧牲可接受範圍内的一點精确度來換取檢索效率的提高。這也是向量資料庫與傳統資料庫最大的差别。

為了将ANNS向量索引更加友善的應用到實際的生産環境中,目前業界主要有兩種實踐方式。一種是單獨将ANNS向量索引服務化,以提供向量索引建立和檢索的能力,進而形成一種專有的向量資料庫;另一種是将ANNS向量索引融合到傳統結構化資料庫中,形成一種具有向量檢索功能的DBMS。

在實際的業務場景中,專有的向量資料庫往往都需要和其他傳統資料庫配合起來一起使用,這樣會造成一些比較常見的問題,如資料備援、資料遷移過多、資料一緻性問題等,與真正的DBMS相比,專有的向量資料庫需要額外的專業人員維護、額外的成本,以及非常有限的查詢語言能力、可程式設計性、可擴充性和工具內建。而融合了向量檢索功能的DBMS則不同,它首先是一個非常完備的現代資料庫平台,能滿足應用程式開發人員的資料庫功能需求;然後它內建的向量檢索能力一樣也可以實作專有的向量資料庫的功能,并且使向量存儲和檢索繼承了DBMS的優秀能力,如易用性(直接使用SQL的方式處理向量)、事務、高可用性、高可擴充性等等。

本文介紹的ADB-PG即是具有向量檢索功能的DBMS,在包含向量檢索功能的同時,還具備一站式的資料庫能力。在介紹ADB-PG的具體能力之前,我們先來看一下Demo視訊中Chatbot的建立流程和相關原理。

LLM大語言模型+ADB-PG:打造企業專屬Chatbot

案例-本地知識問答系統

對于前面Demo視訊結合大語言模型LLM和ADB-PG進行時事新聞點評解答的例子,讓LLM回答"通義千問是什麼"。可以看到,如果我們讓LLM直接回答,得到的答案沒有意義,因為LLM的訓練資料集裡并不包含相關的内容。而當我們使用向量資料庫作為本地知識存儲,讓LLM自動提取相關的知識之後,其正确地回答了"通義千問是什麼"。

AnalyticDB(ADB)+LLM:建構AIGC時代下企業專屬Chatbot

同樣地,這種方式可以應用于處理文檔,PDF,郵件,網絡資訊等等尚未被LLM訓練資料集覆寫到的内容。比如:

1.結合最新的航班資訊和最新的網紅打卡地點等旅遊攻略資源,打造旅遊助手。比如回答下周最适合去哪裡旅遊,如何最經濟實惠的問題。

2.體育賽事點評,時事熱點新聞點評,總結。今天誰是NBA比賽的MVP。

3.教育行業,最新的教育熱點解讀,比如,告訴我什麼是AIGC,什麼是Stable Diffusion以及如何使用等等。

4.金融領域,快速分析各行業領域金融财報,打造金融咨詢助手。

5.專業領域的客服機器人...

實作原理

本地知識問答系統(Local QA System)主要是通過結合了大語言模型的推理能力和向量資料庫的存儲和檢索能力。來實作通過向量檢索到最相關的語義片段,然後讓大語言模型結合相關片段上下文來進行正确的推理得到結論。在這個過程中主要有兩個流程:

a.後端資料處理和存儲流程

b.前端問答流程

同時其底層主要依賴兩個子產品:

1.基于大語言模型的推理子產品

2.基于向量資料庫的向量資料管理子產品

AnalyticDB(ADB)+LLM:建構AIGC時代下企業專屬Chatbot

後端資料處理和存儲流程

上圖黑色的部分為後端的資料處理流程,主要是将我們的原始資料求解embedding,并和原始資料一起存入到向量資料庫ADB-PG中。這裡你隻需要關注上圖的藍色虛線框部分。黑色的處理子產品和ADB-PG向量資料庫。

  • Step1:先将原始文檔中的文本内容全部提取出來。然後根據語義切塊,切成多個chunk,可以了解為可以完整表達一段意思的文本段落。在這個過程中還可以額外做一些中繼資料抽取,敏感資訊檢測等行為。
  • Step2:将這些Chunk都丢給embedding模型,來求取這些chunk的embedding。
  • Step3:将embedding和原始chunk一起存入到向量資料庫中。
阿裡雲開發者社群,千萬開發者的選擇。百萬精品技術内容、千節免費系統課程、豐富的體驗場景、活躍的社群活動、行業專家分享交流,盡在:阿裡雲開發者社群-雲計算社群-阿裡雲

繼續閱讀