怎么在大模型之上構建應用?構建人工智能上層應用的框架——langchain 原創
“ langchain,在大模型之上構建應用的腳手架”
在大模型之上構建應用需要很多的步驟,比如文檔加載,數據庫讀取,大模型加載,以及各個環節的連接等。
因此,就有了langchain這個開發框架,它的功能就是把大模型開發過程中需要的常見問題整合在一塊,方便開發者。
當然,不使用langchain是否能構建上層應用?
答案是可以,但會很麻煩。
langchain官網地址:
https://www.langchain.com/
01、什么是langchain?
簡單來說,langchain是一款開發框架,它的作用就是簡化開發者的開發流程,讓開發者能夠把精力集中在具體的業務中,而不是一大堆繁雜的準備工作中。
舉例來說,構建一個人工智能的應用,可能既需要文字生成,又需要圖片處理,還需要進行分類等;這時一個大模型可能無法同時滿足這幾個要求。
因此,如果要同時調用多個大模型的功能,這時每一個大模型都需要接口調用處理等。
比如,在大模型的加載中就有第三方服務比如chatGPT,通義千問等;還有開源模型的加載,比如huggingface上的開源模型,還有一些本地大模型服務部署的框架如ollama/gpt4all/llstudio等,還包括自己開發的大模型框架,如使用pytorch,tensorflow開發的模型。
不同的模型具有不同的加載方式,如果全部自己手動開發,那么將會耽誤大量的時間,而且還可能存在各種問題。
再加上當前大模型+知識庫的爆火,有知識庫給大模型做資料庫,這時就需要把知識庫集成到應用中。就一個知識庫就涉及到文檔加載,向量數據庫,資料存儲與搜索等多個功能。
這些功能很重要,但它們都屬于具體業務的支撐技術,這樣就會導致開發人員需要大量的時間和精力來處理這些邊緣又重要的任務。
因此langchain就出現了,langchain封裝了很多技術細節,開發者只需要按照它的要求進行簡單的調用就可以完成以上功能,大大簡化了開發人員的流程。
02、langchain的核心功能模塊
- 模型(model i/o)
模型模塊的功能主要就是各種模型的加載,由langchain官網提供了多種模型的加載包,比如通過網絡調用openAI的接口,調用huggingface接口和自定義模型接口等。
- 提示(prompt)
提示的作用就是prompt工程,因為當前的大模型還不夠智能,所以良好的提示詞會獲得更好的回應。因此,就誕生了提示詞工程,其作用就是更好的提問。
- 索引(index)?
索引模塊的作用主要用來加載外部文檔,比如知識庫,搜索引擎等。此模塊可以從外部網絡中加載文檔并輸入到大模型中,以助于可以讓我們得到更好的處理結果;文檔格式也是多種多樣,比如txt,word,pdf,數據庫等。
- 內存(memory)
這里內存的作用是用來記錄歷史記錄,在大模型的交互中大模型本身沒用記錄歷史提問的功能,所以需要自己做歷史記錄,然后再次訪問的時候,把歷史記錄一塊帶著。
- 鏈(chain)
鏈是langchain中的核心模塊,其作用是把多個步驟串成一條調用鏈,比如先獲取用戶輸入之后,先調用知識庫獲取資料,在調用文本生成模型生成文本,再調用圖片生成功能生成圖片等。
鏈就可以把上述功能給串起來,簡化操作,即把上層的輸出作為下層的輸入。
- 代理(agent)
在應用的構建中可能會用到很多第三方的功能或插件,比如需要搜索功能就要調用谷歌或百度的搜索接口,需要控制機械手臂完成動作也需要調用其接口。
而這就是代理模塊的作用,也叫做AI agent,作用相當于大模型的手和腳,也是大模型與工業領域結合的方向。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/kwS3Bk8bY-Xttf6MDIXFvQ??
