LangChain什么是?
什么是 LangChain?
LangChain 是一個(gè)開源框架,用于構(gòu)建基于大型語言模型(LLM)的應(yīng)用程序。LLM 是基于大量數(shù)據(jù)預(yù)先訓(xùn)練的大型深度學(xué)習(xí)模型,可以生成對(duì)用戶查詢的響應(yīng),例如回答問題或根據(jù)基于文本的提示創(chuàng)建圖像。LangChain 提供各種工具和抽象,以提高模型生成的信息的定制性、準(zhǔn)確性和相關(guān)性。例如,開發(fā)人員可以使用 LangChain 組件來構(gòu)建新的提示鏈或自定義現(xiàn)有模板。LangChain 還包括一些組件,可讓 LLM 無需重新訓(xùn)練即可訪問新的數(shù)據(jù)集。
為什么 LangChain 很重要?
LLM 擅長(zhǎng)在常規(guī)上下文下對(duì)提示做出響應(yīng),但在未接受過訓(xùn)練的特定領(lǐng)域卻很吃力。提示是人們尋求 LLM 回復(fù)時(shí)所用的查詢。例如,LLM 可以通過提供估算值來回答計(jì)算機(jī)成本問題。但是,它無法列出貴公司銷售的特定計(jì)算機(jī)型號(hào)的價(jià)格。
為此,機(jī)器學(xué)習(xí)工程師必須將 LLM 與組織內(nèi)部數(shù)據(jù)來源整合,并應(yīng)用提示工程,即數(shù)據(jù)科學(xué)家根據(jù)特定的結(jié)構(gòu)和上下文對(duì)生成模型的輸入進(jìn)行細(xì)化的實(shí)踐。
LangChain 簡(jiǎn)化了開發(fā)此類數(shù)據(jù)響應(yīng)式應(yīng)用程序的中間步驟,提高了提示工程的效率。它旨在更輕松地開發(fā)由語言模型提供支持的各種應(yīng)用程序,包括聊天機(jī)器人、問答、內(nèi)容生成、摘要器等。
以下部分介紹了 LangChain 的好處。
重新利用語言模型
借助 LangChain,組織可以重新將 LLM 用于特定領(lǐng)域的應(yīng)用程序,而無需重新訓(xùn)練或微調(diào)。開發(fā)團(tuán)隊(duì)可以構(gòu)建引用專有信息的復(fù)雜應(yīng)用程序,以增強(qiáng)模型響應(yīng)。例如,您可以使用 LangChain 來構(gòu)建應(yīng)用程序,從存儲(chǔ)的內(nèi)部文檔中讀取數(shù)據(jù)并將其匯總為對(duì)話式響應(yīng)。您可以創(chuàng)建檢索增強(qiáng)生成(RAG)工作流程,在提示時(shí)向語言模型引入新信息。實(shí)施 RAG 等上下文感知工作流程可減少模型幻覺并提高響應(yīng)精度。
簡(jiǎn)化人工智能開發(fā)
LangChain 通過對(duì)數(shù)據(jù)來源集成和提示細(xì)化的復(fù)雜性進(jìn)行抽象,來簡(jiǎn)化人工智能(AI)的開發(fā)。開發(fā)人員可以自定義序列,以快速構(gòu)建復(fù)雜的應(yīng)用程序。軟件團(tuán)隊(duì)無需編程業(yè)務(wù)邏輯,即可修改 LangChain 提供的模板和庫,從而縮短開發(fā)時(shí)間。
開發(fā)人員支持
LangChain 為人工智能開發(fā)人員提供將語言模型與外部數(shù)據(jù)來源相連接的工具。LangChain 是開源的,由活躍社區(qū)提供支持。組織可以免費(fèi)使用 LangChain,并獲得其他精通該框架的開發(fā)人員提供的支持。
LangChain 如何運(yùn)作?
借助 LangChain,開發(fā)人員可以通過指定產(chǎn)生預(yù)期結(jié)果所需的步驟,靈活調(diào)整語言模型以適應(yīng)特定的業(yè)務(wù)環(huán)境。
鏈
鏈?zhǔn)窃?LangChain 中容納各種人工智能組件以提供上下文感知響應(yīng)的基本原則。鏈?zhǔn)菑挠脩舨樵兊侥P洼敵龅囊幌盗凶詣?dòng)化操作。例如,開發(fā)人員可以將鏈用于:
連接到不同的數(shù)據(jù)來源。
生成獨(dú)特的內(nèi)容。
翻譯多種語言。
答復(fù)用戶查詢。
鏈接
鏈由鏈接組成。開發(fā)人員串聯(lián)在一起形成鏈?zhǔn)叫蛄械拿總€(gè)操作都稱為鏈接。通過鏈接,開發(fā)人員可以將復(fù)雜的任務(wù)分成多個(gè)較小的任務(wù)。鏈接示例包括:
調(diào)整用戶輸入格式。
向 LLM 發(fā)送查詢。
從云存儲(chǔ)中檢索數(shù)據(jù)。
從一種語言翻譯成另一種語言。
在 LangChain 框架中,鏈接接受來自用戶的輸入并將其傳遞給 LangChain 庫進(jìn)行處理。LangChain 還允許對(duì)鏈接重新排序,創(chuàng)建不同的人工智能工作流程。
概述
要使用 LangChain,開發(fā)人員需要使用以下命令在 Python 中安裝框架:
pip install langchain
然后,開發(fā)人員使用鏈構(gòu)建塊或 LangChain 表達(dá)式語言(LCEL)通過簡(jiǎn)單編程命令組成鏈。chain() 函數(shù)將鏈接的參數(shù)傳遞給庫。execute() 命令會(huì)檢索結(jié)果。開發(fā)人員可以將當(dāng)前鏈接結(jié)果傳遞到以下鏈接,也可以將其作為最終輸出返回。
以下是以多種語言返回產(chǎn)品詳細(xì)信息的聊天機(jī)器人鏈函數(shù)示例。
chain([
retrieve_data_from_product_database().
send_data_to_language_model().
format_output_in_a_list().
translate_output_in_target_language()
])
LangChain 的核心組件是什么?
使用 LangChain,軟件團(tuán)隊(duì)可以通過以下模塊構(gòu)建上下文感知語言模型系統(tǒng)。
LLM 接口
LangChain 提供 API,開發(fā)人員可以利用這些接口通過其代碼連接和查詢 LLM。開發(fā)人員可以利用 LangChain,通過進(jìn)行簡(jiǎn)單的 API 調(diào)用,與 GPT、Bard 和 PaLM 等公共模型和專有模型交互,無需編寫復(fù)雜代碼。
提示模板
提示模板是預(yù)構(gòu)建結(jié)構(gòu),開發(fā)人員使用該結(jié)構(gòu)來一致且精確地編排 AI 模型的查詢格式。開發(fā)人員可以為聊天機(jī)器人應(yīng)用程序、小樣本學(xué)習(xí)創(chuàng)建提示模板,也可以向語言模型提供特定指令。此外,他們還可以在不同的應(yīng)用程序和語言模型中重復(fù)使用這些模板。
代理
開發(fā)人員使用 LangChain 提供的工具和庫來為復(fù)雜的應(yīng)用程序編寫和自定義現(xiàn)有的鏈。代理是一種特殊的鏈,提示語言模型決定響應(yīng)查詢的最佳順序。使用代理時(shí),開發(fā)人員會(huì)提供用戶輸入、可用工具和可能的中間步驟,以實(shí)現(xiàn)預(yù)期的結(jié)果。然后,語言模型會(huì)返回應(yīng)用程序可以采取的可行操作順序。
檢索模塊
LangChain 支持使用大量工具來構(gòu)建 RAG 系統(tǒng),從而轉(zhuǎn)換、存儲(chǔ)、搜索和檢索信息,優(yōu)化語言模型響應(yīng)。開發(fā)人員可以使用單詞嵌入創(chuàng)建信息的語義表示,并將其存儲(chǔ)在本地或云向量數(shù)據(jù)庫中。
內(nèi)存
一些對(duì)話語言模型應(yīng)用程序使用從過去的交互中召回的信息來完善其響應(yīng)。LangChain 讓開發(fā)人員可以在其系統(tǒng)中包含內(nèi)存功能。它支持:
簡(jiǎn)單的內(nèi)存系統(tǒng),可召回最近的對(duì)話。
復(fù)雜的內(nèi)存結(jié)構(gòu),可分析歷史消息以返回最相關(guān)的結(jié)果。
回?fù)?/p>
回調(diào)是開發(fā)人員在其應(yīng)用程序中使用的代碼,用于記錄、監(jiān)控和流式傳輸 LangChain 操作中的特定事件。例如,開發(fā)人員可以跟蹤鏈?zhǔn)状伪徽{(diào)用的時(shí)間以及在回調(diào)中遇到的錯(cuò)誤。
AWS 如何幫助您應(yīng)對(duì) LangChain 要求?
使用 Amazon Bedrock、Amazon Kendra、Amazon SageMaker JumpStart、LangChain 和 LLM,您可以在企業(yè)數(shù)據(jù)上構(gòu)建高精度的生成式人工智能(生成式 AI)應(yīng)用程序。LangChain 是將這些組件聯(lián)系在一起的接口:
Amazon Bedrock 是一項(xiàng)托管式服務(wù),組織可以使用它來構(gòu)建和部署生成式人工智能應(yīng)用程序。您可以使用 Amazon Bedrock 來設(shè)置世代模型,您可以通過 LangChain 訪問該模型。
Amazon Kendra 是一項(xiàng)由機(jī)器學(xué)習(xí)(ML)所賦能的服務(wù),可幫助組織進(jìn)行內(nèi)部搜索。您可以將 Amazon Kendra 連接到 LangChain,后者使用來自專有數(shù)據(jù)庫的數(shù)據(jù)來完善語言模型輸出。
Amazon SageMaker Jumpstart 是一個(gè) ML 中心,提供開發(fā)人員可以快速部署的預(yù)建算法和基礎(chǔ)模型。您可以在 SageMaker Jumpstart 上托管基礎(chǔ)模型,然后從 LangChain 上顯示其提示。
立即創(chuàng)建賬戶,開始在 AWS 上使用 LangChain。
參考:https://aws.amazon.com/cn/what-is/langchain/
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。