幾分鐘開發 AI 應用成為可能,為什么說大模型中間件是 AI 必備軟件?
聲明:本文來自微信公眾號“CSDN”(ID:CSDNnews),作者:厲啟鵬,,授權站長之家轉載發布。
2022年底,OpenAI基于大語言模型發布了聊天應用ChatGPT,推出僅一個月活躍用戶破億,吸引全球范圍的廣泛關注。ChatGPT的出現將人工智能推向全球關注的中心舞臺,大語言模型帶動的新一輪人工智能浪潮,正以前所未有的速度席卷全球。據統計,目前全球大型語言模型相關的創業公司已超過200家,投資總額達到70億美元。
TechCrunch的數據顯示,2022年前三個季度全球人工智能的投資已達到560億美元,創下歷史新高。其中,融資較高的創業公司包括Anthropic、Cohere、AI21Labs等,這些公司的技術都建立在大型語言模型的基礎之上。
大模型落地的挑戰
對于個人用戶,大語言模型帶來了前所未有的高度個性化體驗。它能夠與用戶進行流暢的對話,并提供即時且針對性的回應。借助基于大型語言模型的AI寫作助手,用戶能夠快速生成高質量的文章草稿,其風格與用戶貼合,極大提高了內容創作效率。然而,大模型要在企業側真正落地仍然面臨很大挑戰,總結為下面四個方面:
大模型專業深度不夠,數據更新不及時,缺乏與真實世界的連接。例如,在法律政策解讀、電商客服、投資研報等專業領域中,由于大型模型缺乏足夠的專業領域數據,用戶在使用過程中經常會感覺大模型在一本正經地“胡說八道”。
大模型有Token的限制,記憶能力有限。大家之所以驚艷于ChatGPT流暢絲滑的對話能力,有很大一部分原因是其支持多輪對話。用戶提問時,ChatGPT不但能理解意圖,而且還能夠基于之前的問答做綜合推理。然而,大模型由于Token的限制,只能記憶部分的上下文。比如ChatGPT3.5只能記憶4096個Token,無法實現長期記憶。
用戶對于數據安全的擔憂。大模型的出現讓AI成為一種普惠技術,人人都可以基于大模型構建AI的應用。AI技術本身不再是商業壁壘,數據才是。而企業要想利用大模型構建商業,必須將自己的數據全部輸送給大模型,以進行推理和表達。如何在數據安全可控的情況下使用大模型技術,成為一個亟待解決的問題。
使用大模型的成本問題。目前有兩種模式可以使用大模型,一是將大模型本地化,用于再訓練形成企業專有的模型。二是利用公有云模型,按照請求的Token數量付費。第一種方式成本極高,大模型由于有數千億的模型參數,光部署計算資源的投資就得上億。重新訓練一次模型也需要近千萬的投入,非常燒錢。這對于一般的中小企業是完全無法承受的。第二種方式企業構建的AI應用可以按照Token數量付費,雖然無需一次性的大額投入,但成本依然不低。以OpenAI為例,如果對通用模型進行微調(Fine-tuning)后,每使用1000個token(約600漢字)需要0.12美金。
企業級解決方案
針對上述問題,目前主要有三個解決方案:
第一是將大模型部署到企業本地,結合企業私有數據進行訓練,打造垂直領域專有模型。
第二是在大模型基礎上進行參數微調,改變部分參數,讓其能夠掌握深度的企業知識。
第三種是圍繞向量數據庫打造企業的知識庫,基于大模型和企業知識庫再配合Prompt打造企業專屬AI應用。
從實用性和經濟性的角度考慮,第三種是最為有效的解決方案。該方案大致實現方式如下所示。
企業首先基于私有數據構建一個知識庫。通過數據管道將來自數據庫、SaaS軟件或者云服務中的數據實時同步到向量數據庫中,形成自己的知識庫。
在這個過程中需要調用大模型的Embedding接口,將語料進行向量化,然后存儲到向量數據庫。當用戶與企業AI應用對話時,AI應用首先會將用戶的問題在企業知識庫中做語義檢索,然后將檢索的相關答案和問題以及配合一定的prompt一并發給大模型,獲得最終的答案之后回復給用戶。
該方案有如下優勢:
充分利用大模型和企業優勢:既可以充分利用企業已有知識,又可以利用大模型強大的表達和推理能力,二者完美融合。
使AI應用具備長期記憶:Token的限制使大模型只能有短暫的記憶,無法將企業所有知識全部記住。利用外置的知識庫,可以將企業擁有的海量數據資產全部整合,幫助企業AI應用構建長期記憶。
企業數據相對安全可控:企業可以在本地構建自己的知識庫,避免核心數據資產外泄。
落地成本低:通過該方案落地AI應用,企業不需要投入大量資源建設自己的本地大模型,幫助企業節省動輒千萬的訓練費用。
大模型中間件
企業要落地該知識庫方案仍然有一些具體問題需要解決,總結下來主要涉及三個方面。
第一方面是知識庫的構建。企業需要將存在現有系統中的語料匯總到向量數據庫,形成企業自有的知識空間,這個過程涉及數據采集、清洗、轉換和Embedding等工作。語料來源比較多樣,可能是一些PDF、CSV等文檔,也可能需要接入企業現有業務系統涉及比如Mongodb、ElasticSearch等數據庫,或者來自抖音、Shopify、Twitter等第三方應用。在完成數據的獲取后,通常需要對數據進行過濾或者轉化。這個過程中,從數據源實時地獲取數據非常重要,比如電商機器人需要實時了解用戶下單的情況,政策解讀機器人需要了解最新政策信息。另外,對于數據Embedding的過程中涉及到數據的切塊,數據切塊的大小會直接影響到后面語義搜索的效果,這個工作也需要非常專業的NLP工程師才能做好。
其次是AI應用的集成。AI應用需要服務的用戶可能存在于微信、飛書、Slack或者企業自有的業務系統。如何將AI應用與第三方SaaS軟件進行無縫集成,直接決定用戶的體驗和效果。
第三是數據安全性的問題。這個方案沒有完全解決數據安全性的問題,雖然企業的知識庫存儲在本地,但是由于企業數據向量化的過程中需要調用公有云大模型Embedding接口。這個過程需要將企業數據切塊之后發送給大模型,一樣有數據安全的隱患。
對于上述大模型落地問題的解決,大模型中間件是其中的關鍵。
什么是大模型中間件?大模型中間件是位于AI應用與大模型之間的中間層基礎軟件,它主要解決大模型落地過程中數據集成、應用集成、知識庫與大模型融合等問題。
下圖給出了企業AI應用的典型軟件架構,一共分為大語言模型、向量數據庫、大模型中間件以及AI應用四層。
大語言模型為AI應用提供基礎的語義理解、推理、計算能力,向量數據庫主要提供企業知識的存儲和語義搜索。而大模型中間件解決大模型落地的最后一公里,提供語料的實時采集、數據清洗、過濾、embedding。同時,為上層應用提供訪問大模型與知識庫的入口,提供大模型與知識庫的融合、應用部署、應用執行。
常見的大模型中間件
自去年ChatGPT發布以來,短短幾個月內就涌現出了不少新的大模型中間件項目。例如,面向AI應用的編程框架Langchain在GitHub上短短幾個月內收獲了超過4萬個Star。Langchain旨在簡化開發者基于大型語言模型構建AI應用的過程。它為開發者提供了多模型訪問、Prompt的封裝、多數據源加載等多種接口,讓開發者構建AI應用更簡單。Llamaindex是另一個備受關注的開源項目,它目標是為大型模型提供統一的接口來訪問外部數據。比如Llamaindex的Routing為開發者語義檢索、基于事實混合查找、訪問總結數據可以提供統一索引。Vanus AI 是一個無代碼構建AI應用的中間件,用戶通過Vanus AI可以分鐘級構建出生產可用的AI應用。它同時提供了實時知識庫構建、AI應用集成、大模型插件等能力。Fixie是一家初創公司,近期剛剛融資1200萬美金,該公司的目標是構建、部署和管理大型模型代理平臺,以更好地響應用戶的意圖。
對近期項目進行了梳理,形成下圖的AI Stack。企業的私有業務數據通過 Embedding組件轉化成向量后可以存儲到Milvus、Pinecone等向量數據庫中。目前通過Llamaindex、Vanus Connect可以批量獲取PDF、CSV等文件并Embedding并存儲到向量數據庫中。AirOps、Vanus AI等AI Ops平臺可以連接大模型和企業知識庫幫助用戶一站式構建AI的應用。如果AI應用需要連接第三方的應用執行操作可以通過Fixie或者Zapier等提供了插件。
總結
本文圍繞大模型在企業落地所面臨的挑戰展開,提出了大模型中間件的概念。大模型中間件是基于AI應用與大模型之間的中間層基礎軟件,它可以打通企業AI應用落地的最后一公里,是構建AI應用的必備軟件。本文提出了企業AI應用軟件的典型架構,并指出了大模型中間件在AI軟件中的定位以及核心作用。最后,文章介紹了目前較為流行的大模型中間件,并闡述了不同的大模型中間件在落地應用過程中具體作用。
參考文獻:
1.Augmented language modelshttps://drive.google.com/file/d/1A5RcMETecn6Aa4nNzpVx9kTKdyeErqrI/view
2. So you want to build an AI application powered by LLM: Let’s talk about Embedding and Semantic Searchhttps://blog.devgenius.io/so-you-want-to-build-an-ai-application-that-utilizes-llm-lets-talk-about-embedding-and-semantic-166acfc013a6
3. So you want to build an AI application powered by LLM: Let’s talk about Data Pre-Processing https://blog.devgenius.io/so-you-want-to-build-an-ai-application-that-utilizes-llm-lets-talk-about-data-pre-processing-7fc7cf871d08
4. Chunking Strategies for LLM Applications https://blog.devgenius.io/so-you-want-to-build-an-ai-application-that-utilizes-llm-lets-talk-about-embedding-and-semantic-166acfc013a6
5. Unifying LLM-powered QA Techniques with Routing Abstractions https://betterprogramming.pub/unifying-llm-powered-qa-techniques-with-routing-abstractions-438e2499a0d0
6. Build a Chatbot on Your CSV Data With LangChain and OpenAI https://betterprogramming.pub/build-a-chatbot-on-your-csv-data-with-langchain-and-openai-ed121f85f0cd