垂直領域的大模型應用建設實戰(zhàn)(一)
從2020-2024四年間筆者完成了某個垂直領域的協(xié)同平臺從0到1的搭建,在2024年轉戰(zhàn)開發(fā)垂直領域的大模型應用,從對大模型一無所知到最終完成大模型設計上線,想把項目經歷分享出來,為同樣準備入門的小白提供參考。
一、ChatGPT為什么這么火?——市場前景和可行性分析
2022年11月30日OpenAl 公司推出了ChatGPT,引起了新一輪的技術和資本熱潮,熱度延續(xù)至今,它的商業(yè)價值仍在不斷擴張,它讓大模型成為互聯(lián)網大廠的軍備競賽,他們一邊卷底座模型參數(shù)和性能,另一邊抓緊大模型AI應用的落地,將大模型視為下一個業(yè)務增長點。
ChatGpt這么成功,究其原因是探索出了一個模式:具備對話能力的大模型。
在ChatGpt誕生之前人工智能的落地應用比如語音圖像識別,購物和社交平臺算法推薦,它們都在垂直領域獲得了成功,但是那時候大部分的用戶和企業(yè)都認為他們是遙遠的科學,開發(fā)和應用的技術門檻過高。對于普通用戶來說,大模型像是一個電腦主機,它聰明又博學,而具備對話能力的生成式Ai為大腦接上了電腦屏幕和鼠標鍵盤,在普通用戶和AI之間搭建起了橋梁,用戶可以在生活中便捷使用。而對于互聯(lián)網公司來說,OpenAI的調用API的方式,使得企業(yè)用戶無需開展大模型底座預訓練,就可以將大模型能力集成進現(xiàn)有的產品中,研發(fā)成本和技術門檻都大大降低。
對于傳統(tǒng)行業(yè),歷經10-20年的信息化轉型已經完成,有了信息化轉型的設計理論儲備,以及信息化數(shù)據(jù)作為大模型知識庫,已具備融合AI技術的基礎,實現(xiàn)智能化升級。
二、如何開展垂直領域的大模型研發(fā)
第一步:理解大模型能力
1)強大推理分析和內容生成:基于現(xiàn)有數(shù)據(jù)進行理解分析,基于用戶指令輸出新內容。
2)強大的信息檢索能力:適合需要快速從海量數(shù)據(jù)中提取信息的場景。
大模型也具備圖片、視頻等的多模態(tài)處理能力,但是目前筆者的項目成果主攻方向還是文本生成領域。
第二步:核心功能定位與交互設計
1)核心功能定位
總體思路是基于信息化建設的經驗積累,結合大模型能力的特點,選取適合融入AI技術,并且知識儲備充足的模塊,進行場景構思。傳統(tǒng)業(yè)務線上化后仍存在一個問題就是用戶需要基于個人經驗和知識儲備開展工作,而大模型強大的邏輯推理、知識檢索能力可以在開展業(yè)務時提供頭腦風暴挖掘業(yè)務深度價值,或是提供案例知識檢索,給出一個標準線以上的答案,提升工作標準化程度。
業(yè)務目標:提升效率、提升業(yè)務價值、標準化作業(yè)程度
2)交互設計
2024年初開展大模型應用設計,當時市場上大模型應用都是chatbot,在交互設計定位上希望的是不局限于聊天界面。但是大模型的調用基本需要發(fā)送指令,無聊天界面查看問答過程會降低交互的友好性。因此確定了“工作臺+聊天窗口”的交互設計模式,既可以在聊天窗口獲取AI輔助、也可以工作臺捕捉用戶行為喚醒AI輔助。同時兩個AI入口的交互也是互通的,比如說用戶在工作臺選取了需要分析的資料,聊天窗口就會顯示分析附件。工作臺調用的AI指令和返回結果也能在聊天窗口看到歷史記錄。在2024年下半年調研市場上AI應用發(fā)現(xiàn),AI產品普遍也采用了這種設計模式。
第三步:大模型應用研發(fā)
第一階段:企業(yè)級RAG搭建
RAG(檢索增強技術)主要是為了解決大模型的幻覺和知識更新不及時問題,通用大模型不具備垂直領域的專業(yè)信息,會出現(xiàn)生成與事實不符、邏輯錯誤或虛構的內容情況。
主要原理:將垂直領域的知識進行切片、向量化形成多維度的向量數(shù)據(jù),將用戶指令向量化后在向量數(shù)據(jù)進行第一階段的粗篩選,根據(jù)語義相似度檢索(余弦相似度算法,通過計算兩個向量的夾角余弦值來衡量它們的相似度)召回top10的知識塊,第二階段采用精篩選,使用Rerank(重排序)結合上下文信息,對召回知識塊進行重新打分, 優(yōu)化檢索結果。最后將用戶指令和召回知識塊給大模型生成返回結果。
整個過程應用了 Langchain開發(fā)框架和Milvus向量數(shù)據(jù)庫開展了以下工作:
1)切片
在切片過程中應用了以下4種方式:
- 固定字符大小,設置重疊大小,按照長度粗暴切分。(基本不適合,會將一句話截斷)
- 段落、字符文本分割,根據(jù)段落、空格、標點符號(比如句號、逗號)來切分文本。(適合上傳臨時文件分析)
- 混合模式切片:采用不超過最大字符長度,結合標點段落進行切片(使用頻率最高)
- 基于語義分割,對原始文本進行分詞預處理,結合提示詞或者使用預訓練的語義分割模型,打標簽,根據(jù)語義標簽,提取目標類別的文本片段,將提取的文本片段組合成切片。(耗時長、適合文檔章節(jié)內容比較固定的文檔)
根據(jù)不同的知識切片也需要做相應調整,例如針對法律制度需要在每個知識塊上帶上文件名稱、章節(jié)名稱、條款名稱。針對文章類型需要設置一定的重疊大小。
2)向量化
- 知識標簽:前期規(guī)劃企業(yè)內部知識時有制定了一些知識標簽,在導入向量庫時需要加上知識標簽,便于后期對檢索規(guī)則或者提示詞規(guī)劃。也可以加上文件名稱和file ID,后續(xù)在對話窗口展示知識來源,提高可信度。
- 向量檢驗:這個階段采用了BERT 和Bge-large-zh模型,沒有發(fā)現(xiàn)兩個模型效果上的差別,Milvus提供可視化的工具attu,便于驗證表、查詢數(shù)據(jù),支持帶過濾條件的向量混合檢索,向量化后可以選取一些知識文本進行檢索檢查向量結果是否成功。
3)提示詞工程
- 角色說明:垂直領域的大模型應用的用戶一般有固定類型的角色,因此可以根據(jù)使用場景在提示詞中添加角色和回答風格說明。
- 知識檢索說明:因為在規(guī)劃知識庫的前期規(guī)范了知識標簽,可以針對不同知識標簽實現(xiàn)不一樣的生成效果,例如可以指定在知識標簽內進行知識檢索,針對不同知識的使用場景規(guī)范輸出格式,例如法律條款需要列出法律名詞,做盡量少的改寫。
以上就是第一階段我們從場景設計到RAG搭建的項目實踐,總結項目困難就會回到AI的三大基本組成:數(shù)據(jù)、算法和算力,我們在項目中遇到的問題也來源于這3個因素。
- 幻覺:當輸入質量太差或者缺乏知識,或者模型本身性能不佳都會導致大模型“一本正經”地胡編亂造。其實幻覺包含了多方面的問題,而我們開展的所有工作不論是應用RAG、還是提示詞工程,都是在和幻覺問題進行對抗。
- 數(shù)據(jù)質量:不論是微調還是RAG,在垂直領域的輸出效果都高度依賴數(shù)據(jù)質量
- 模型參數(shù)限制:模型的規(guī)模較小時,一般max_token也較小,只能在有限的上下文范圍內理解文本,輸入的材料讀取不全,也不能進行有效思考,容易產生理解偏差。
- 有限算力資源:具體表現(xiàn)為響應速度慢、并發(fā)能力弱,無法同時處理大量請求、生成質量不穩(wěn)定。
- 對輸入有要求:一個好的用戶輸入具備明確(肯定語句好過否定語句)、具體(列舉要求)、結構化(將復雜任務進行步驟拆解)、簡潔(突出關鍵信息),并提供必要的上下文信息(背景信息)。但是在分析用戶歷史聊天數(shù)據(jù)時發(fā)現(xiàn),一些反饋不好的回答,在對問句進行改寫后回答效果會大大提升。
本文由 @萵苣很好吃 原創(chuàng)發(fā)布于人人都是產品經理。未經作者許可,禁止轉載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務
- 目前還沒評論,等你發(fā)揮!