AI 大模型企業應用實戰(06)-初識LangChain

公众号-JavaEdge發表於2024-06-23

LLM大模型與AI應用的粘合劑。

1 langchain是什麼以及發展過程

LangChain是一個開源框架,旨在簡化使用大型語言模型構建端到端應用程式的過程,也是ReAct(reason+act)論文的落地實現。

2022年10月25日開源
54K+ star
種子輪一週1000萬美金,A輪2500萬美金

11個月裡累計釋出200多次,提交4000多次程式碼

2 langchain能做什麼和能力一覽

模型 A
構造提示詞 -> LLMs -> 模型生產結果 -> 結果處理 -> 最終結果

模型 B
構造提示詞 -> LLMs -> 模型生產結果 -> 結果處理 -> 最終結果

模型 N...
構造提示詞 -> LLMs -> 模型生產結果 -> 結果處理 -> 最終結果

Langchain I/O系統

+------------+                +------------------------+                +------------+
|            |       輸入      |    +--------------+    |      輸入       |            |
|  使用者輸入  | -------------> |    |    prompt    |    | -------------> |    LLMs      |
|            |                |    +--------------+    |                |            |
|            |                |                        |                |            |
|            |       輸出      |    +--------------+    |      輸出       |            |
|            | <------------- |    |    Output    |    | <------------- |            |
+------------+                |    |    Parsers   |    |                +------------+
                              |    +--------------+    |
                              +------------------------+
                                   Langchain I/O系統
  1. 解決大模型各種問題的提示詞工程方案之一
  2. 提供了與LLMs互動的各種元件,極大提升開發效率
  3. 可以以檔案方式載入提示詞、鏈等,方便共享提示詞和做提示詞版本管理
  4. 提供豐富的鏈式工具箱

LLMs & Prompt

提供了目前市面上幾乎所有 LLM 的通用介面,同時還提供了 提示詞 的管理和最佳化能力,同時也提供了非常多的相關適用工具,以方便開發人員利用 LangChain 與 LLMs 進行互動。

Chains

LangChain 把 提示詞、大語言模型、結果解析封裝成 Chain,並提供標準的介面,以便允許不同的Chain形成互動序列,為 AI 原生應用提供了端到端的 Chain

Retrieval-Augemented Generation

檢索增強生成式,一種解決預訓練語料資料無法及時更新而帶來的回答內容陳舊的方式。LangChain提供支援 檢索增強生成式的Chain。使用時,這些 Chain 會首先與外部資料來源進行互動以獲得對應資料,然後再利用獲得的資料與 LLMs 進行互動。典型應用場暴如:基於特定資料來源的問答機器人。

Agent

對於一個任務,代理主要涉及讓 LLMs 來對任務進行拆分、執行該行動、並觀察執行結果,代理 會重複執行這個過程,直到該任務完成為止。LangChain 為 代理 提供了標準介面,可供選擇的代理,以及一些端到端的代理的示例

Memory

chain 或 agent 呼叫之間的狀態持久化。LangChain 為 記憶體 提供了準介面三並提供了↖系烈COn的 記憶體 實現

Evaluation

LangChain 還提供了非常多的評估能力以允許我們可以更方便的對 LLMs 進行評估

3 langchain的優劣

3.1 優點

  • 平臺大語言模型呼叫能力,支援多平臺多模型呼叫,為使用者提供靈活選擇
  • 輕量級SDK(python、javas生一起將LLMs與傳統程式語言整合持
  • 多模態支援,提供多模態資料支援,如影像、音訊等

3.2 缺點

  • 學習曲線相對較高
  • 文件相對不完善,官方文件不是很完善
  • 缺乏大型工業化應用實踐

4 langchain開發環境搭建

4.1 為啥用Python?

  • 高階的接近人類語言的程式語言,易於學習
  • 動態語言
  • 直譯式語言,可以跳過編譯逐行執行程式碼廣泛應用於web應用、軟體、資料科學和機器學習
  • AI方向的主流語言
  • 活躍的python社群
  • 資料巨大且豐富的庫

4.2 環境要求

Python

= 3.8.1,推薦 3.10.12
https://www.python.org/downloads/

安裝 jupyter

參閱:安裝使用教程

安裝 LangChain

官網:https://python.langchain.com

命令安裝

$ pip install langchain
$ conda install langchain -c conda-forge

也可以使用VS code/PyCharm的jupyter外掛啟動。

關注我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都架構師,多家大廠後端一線研發經驗,在分散式系統設計、資料平臺架構和AI應用開發等領域都有豐富實踐經驗。

各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統效能最佳化
  • 活動&券等營銷中臺建設
  • 交易平臺及資料中臺等架構和開發設計
  • 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化
  • LLM應用開發

目前主攻降低軟體複雜性設計、構建高可用系統方向。

參考:

  • 程式設計嚴選網

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章