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