久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    AI | 基于 LangChain 的 AI Agent 智能體概述

     netouch 2024-05-29 發布于北京

    1.人機協同三種模式

    生成式AI的智能演化至今,人機協同呈現了三種模式:

    • 嵌入(embedding)模式。用戶通過與AI進行語言交流,使用提示詞來設定目標,然后AI協助用戶完成這些目標,比如普通用戶向生成式AI輸入提示詞創作小說、音樂作品、3D內容等。在這種模式下,AI的作用相當于執行命令的工具,而人類擔任決策者和指揮者的角色。

    • 副駕駛(Copilot)模式。2021年微軟在GitHub首次引入了Copilot(副駕駛)的概念。GitHub Copilot是一個輔助開發人員編寫代碼的AI服務。2023年5月,微軟在大模型的加持下,Copilot迎來全面升級,推出Dynamics 365 Copilot、Microsoft 365 Copilot和Power Platform Copilot等,并提出“Copilot是一種全新的工作方式”的理念。在這種模式下,人類和AI更像是合作伙伴,共同參與到工作流程中,各自發揮作用。AI介入到工作流程中,從提供建議到協助完成流程的各個階段。例如,在軟件開發中,AI可以為程序員編寫代碼、檢測錯誤或優化性能提供幫助。人類和AI在這個過程中共同工作,互補彼此的能力。AI更像是一個知識豐富的合作伙伴,而非單純的工具。

    • 智能體(Agent)模式。人類設定目標和提供必要的資源(例如計算能力),AI獨立地承擔大部分工作,最后人類監督進程以及評估最終結果。這種模式下,AI充分體現了智能體的互動性、自主性和適應性特征,接近于獨立的行動者,而人類則更多地扮演監督者和評估者的角色。

    人機協同三種模式示意圖:

    圖片

    2. AI Agent基本框架

    OpenAI內部工程師Weng Lilian 在《LLM Powered Autonomous Agents》文章中將AI Agent定義為,以大語言模型為大腦驅動,具有自主理解感知、規劃、記憶和使用工具的能力,能自動化執行完成復雜任務的系統。

    基于LLM驅動的Agent基本框架:

    圖片

    它具有記憶、規劃、行動和使用工具四個主要模塊:

    • 記憶(Memory)。記憶模塊負責存儲信息,包括過去的交互、學習到的知識,甚至是臨時的任務信息。有效的記憶機制能夠保障智能體在面對新的或復雜的情況時,調用以往的經驗和知識。例如,記憶功能的聊天機器人可以記住用戶的偏好或先前的對話內容,提供更個性化和連貫的交流體驗。它分為短期記憶和長期記憶:a.短期記憶,用于上下文學習;b.長期記憶,提供長時間保留和回憶信息的能力,通常通過外部向量數據庫和快速檢索實現。長期記憶積累了大量行業領域的數據和知識,使智能體更強大、更具行業深度、個性化和專業化能力。

    • 規劃(Planning)。規劃模塊包括事前規劃和事后反思兩個階段。在事前規劃階段,智能體通過預測和決策制定來規劃未來行動。例如,在執行復雜任務時,智能體將大目標分解為可管理的子目標,以高效地規劃一系列步驟或行動,以達到預期結果。在事后反思階段,智能體能夠檢查和改進制定計劃中存在的不足之處。它會反思錯誤和不足,并吸取經驗教訓進行改進。這些經驗將被納入長期記憶中,幫助智能體避免錯誤,并更新其對世界的認知。

    • 工具使用(Tool use)。工具使用模塊指的是智能體能夠利用外部資源或工具來執行任務。如學習調用外部API來獲取模型權重中缺失的額外信息,包括當前信息、代碼執行能力、對專有信息源的訪問等,以此來補足LLM自身不足。例如LLM的訓練數據不是實時更新的,這時可以使用工具訪問互聯網來獲取最新信息。智能體使用工具比人類更為高效,通過調用不同的API或工具,完成復雜任務和輸出高質量結果,這種使用工具的方式也代表了智能體的一個重要特點和優勢。

    • 行動(Action)。行動模塊是智能體實際執行決定或響應的部分。面對不同的任務,智能體系統有一個完整的行動策略集,在決策時可以選擇需要執行的行動,比如記憶檢索、推理、學習、編程等。

    這四個模塊相互配合使智能體能夠在更廣泛的情境中采取行動和作出決策,以更智能、更高效的方式執行復雜任務。

    基于大模型的Agent不僅可以讓每個人都有增強能力的專屬智能助理,還將改變人機協同的模式,帶來更為廣泛的人機融合。

    2.1 垂直領域AI Agent 實現路徑

    實現AI Agent關鍵點在于,LLM模型需要具備思維鏈(Chain of Thought,CoT)與工具調用(Function Call)的能力,需要一個應用框架與環境、數據進行交互。

    垂直領域 AI Agent 整體架構示意圖:

    圖片

    用戶輸入的文檔或問題,首先經過文本分割模塊,將長句子分割為文本塊,輸入到Embedding模型,實現向量化進行文本相似性計算,最后將相似的k個文本與問題,輸入到LLM模型中,LLM模型通過理解感知、規劃、記憶和使用工具完成對問題的回答。

    AI Agent 整體流程示意圖:

    圖片

    2.2 LangChain概述

    LangChain 是一個用于開發由語言模型驅動的應用程序的框架。主要作用為允許與 LLM 模型進行交互,使用 LLM 模型與外部數據源進行連接。

    LangChain功能

    實現例如:

    LLM 調用

    • 支持多種模型接口,比如 OpenAI、Hugging Face、AzureOpenAI ...

    • Fake LLM,用于測試

    • 緩存的支持,比如 in-mem(內存)、SQLite、Redis、SQL

    • 用量記錄

    • 支持流模式

    Prompt管理,支持各種自定義模板

    • 擁有大量的文檔加載器,比如 Email、Markdown、PDF、Youtube ...

    對索引的支持

    • 文檔分割器

    • 向量化

    • 對接向量存儲與搜索,比如 Chroma、Pinecone、Qdrand

    Chains

    • LLMChain

    • 各種工具Chain

    • LangChainHub

    LangChain組件

          Loader 加載器

    從指定源進行加載數據的。比如:文件夾 DirectoryLoader、Azure 存儲 AzureBlobStorageContainerLoader、CSV文件 CSVLoader、印象筆記 EverNoteLoader、Google網盤 GoogleDriveLoader、任意的網頁 UnstructuredHTMLLoader、PDF PyPDFLoader、S3 S3DirectoryLoader/S3FileLoader、 YoutubeLoader 等,官方提供許多加載器可使用。

    Document 文檔

    當使用Loader加載器讀取到數據源后,數據源需要轉換成 Document 對象后,后續才能進行使用。

    Text Spltters 文本分割

    為什么需要分割文本?因為不管是把文本當作 prompt 發給 openai api ,還是使用 openai api embedding 功能都是有字符限制的,需要使用文本分割器去分割加載的 Document。

    Vectorstores 向量數據庫

    數據相關性搜索其實是向量運算。所以,不管我們是使用 openai api embedding 功能還是直接通過向量數據庫直接查詢,都需要將我們的加載進來的數據 Document 進行向量化,才能進行向量運算搜索。

    Chain 鏈

    Chain 理解為任務。一個 Chain 就是一個任務,多個任務組成一個Chain鏈。

    Agent 代理

    Agent可以動態的選擇和調用Chain鏈或者已有的工具。

    Embedding

    用于計算文本的相關性。這個也是 OpenAI API 能實現構建自己知識庫的關鍵所在。

    2.3 思維鏈(Chain of Thought)

    2021年,提示學習(prompt learning)浪潮興起,而早在2020年,OpenAI 在《Language Models are Few-Shot Learners》論文中提出了如何使用 prompt learning 提升大模型的推理能力。

    論文中提出了 Zero-shot、One-shot、Few-shot 三種不同的 prompt 方法

    • Few-Shot(FS)是指模型在推理時給予少量樣本,但不允許進行權重更新。對于一個典型數據集,Few-shot 有上下文和樣例。Few-shot 的工作方式是提供 K 個樣本,然后期望模型生成對應的結果。通常將 K 設置在 10 到 100 的范圍內,因為這是可以適應模型上下文窗口的示例數量(nctx = 2048)。Few-shot 的主要優點是大幅度降低了對特定任務數據的需求,并減少了從微調數據集中學習過度狹窄分布。主要缺點是該方法的結果迄今為止遠不如最先進的微調模型,仍需要一小部分特定任務的數據。

    • One-Shot(1S)與 Few-Shot 類似,只允許一個樣本(除了任務的自然語言描述外)。將 One-Shot 與 Few-Shot、Zero-Shot 區分開的原因是它最接近某些任務與人類溝通的方式。相比之下,如果沒有示例,有時很難傳達任務的內容或格式。

    • Zero-Shot(0S)和 One-shot 類似,但不允許提供樣本,只給出描述任務的自然語言指令。在某些情況下,即使是人類,在沒有例子的情況下,也可能難以理解任務的格式。例如,如果要求某人“制作一張關于200米沖刺世界紀錄的表格”,這個請求可能是模棱兩可的,因為可能不清楚表格應該具有什么格式或包含什么內容。然而,Zero-shot 是最接近人類執行任務的方法。

    即使是 Few-Shot,還是存在較大的缺陷的。如果你的問題相對簡單,不需要什么邏輯推理,可能靠大模型背答案就能做得不錯,但是對于一些需要推理的問題,一些簡單的算術應用題,大模型就大概率不行。

    于是,思維鏈(Chain-of-Thought,CoT)很自然地被提出了。

    2022 年,在 Google 發布的論文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中首次提出,通過讓大模型逐步參與將一個復雜問題分解為一步一步的子問題并依次進行求解的過程可以顯著提升大模型的性能。而這一系列推理的中間步驟就被稱為思維鏈(Chain of Thought)

    圖片

    當人類指令輸入 Agent 主體后,Agent 主體通過一系列計劃、決策與控制,使用工具與外部環境互動。

    Agent 主體的大模型是模擬人類智能決策流程的核心,在許多 Agent 需要處理的任務中,Agent 的“先天知識”并不包含解決任務的直接答案,因此 Agent 需要在一系列與外部環境的交互循環中,制定計劃,做出決策,執行行動,收到反饋等,在整個計劃、決策與控制的循環中,大模型需要具備“感知CoT”,“記憶CoT”與“推理CoT”的能力,如下圖所示, 思維鏈CoT可以從這三個方面來“賦能” Agent。

    圖片

    2.4 工具調用(Function Call)

    LLM模型(Function Call)的本質就是讓大模型通過微調學會根據prompt中的函數的定義學會下一步應該調用哪個函數,然后我們解析大模型預測的文本結果去執行對應的函數,最后再把執行的結果拼接到prompt中,讓大模型繼續預測后續的步驟。

    主要的步驟有6步:

    1. 定義工具

    2. 用戶提出問題

    3. LLM模型根據工具和用戶問題預測是否需要使用工具,如果需要就預測出要調用哪個工具以及輸入參數

    4. 系統發現大模型預測要使用工具,就調用對應的函數

    5. 系統將調用結果拼接到prompt中

    6. 大模型根據函數調用結果回答用戶問題

    圖片

    3. AI Agent面臨的挑戰

    • AI Agent 在未知領域中的泛化能力

    • AI Agent 的過度交互問題

    • 如何實現個性化 Agent

    • 如何建立多智能體社會

    • AI Agent 的安全問題

    • 如何建立 AI Agent 能力評估

    reference
    • LangChain-Chinese-Getting-Started-Guide: https://github.com/liaokongVFX/LangChain-Chinese-Getting-Started-Guide

    • langchain Introduction: https://python./en/latest/

    • LangChain-Chatchat: https://zhipu-ai./wiki/QiLtwks1YioOSEkCxFIcAEWNnzb

    • LLM Powered Autonomous Agents: http://lilianweng./posts/2023-06-23-agent/

    • Language Models are Few-Shot Learners: https:///pdf/2005.14165.pdf

    • Chain-of-Thought Prompting Elicits Reasoning in Large Language Models: https:///abs/2201.11903

    • ChatGLM3 的工具調用FunctionCalling實現原理: https://zhuanlan.zhihu.com/p/664233831

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章

      主站蜘蛛池模板: 国产乱码一区二区三区免费 | 国产精品99久久久久久WWW| 国产69精品久久久久777| 国产仑乱无码内谢| 中国熟妇毛多多裸交视频| 欧美交A欧美精品喷水| 亚洲AV永久精品无码桃色| 亚洲成人av在线系列| 日韩精品一区二区三区影院| 一本久道久久综合狠狠爱| 中文字幕结果国产精品| 精品剧情V国产在线观看| 精品国产成人A区在线观看| 香蕉EEWW99国产精选免费| 无码少妇高潮浪潮AV久久| 中文字幕制服国产精品| 日韩欧美亚洲综合久久| 免费a级毛片无码av| 麻豆国产传媒精品视频| 国产乱妇无码大片在线观看| 四虎成人精品永久网站| 中文乱码人妻系列一区二区| 国产精品一区在线蜜臀| 国产精品久久久久影院| 疯狂做受XXXX高潮国产| 无码国产精品久久一区免费| 无码人妻斩一区二区三区| 国产精品免费久久久久影院| 亚洲人成电影网站 久久影视| 国产人妻久久精品一区| 国产成人8X人网站视频| 色欲香天天天综合网站无码| 午夜自产精品一区二区三区| 欧美人与禽2o2o性论交| 国产成A人片在线观看视频下载| 中文字幕乱码一区二区免费| 国产精品自在线拍国产| 香蕉EEWW99国产精选免费| 亚洲av无码精品色午夜蛋壳| 日韩A人毛片精品无人区乱码| 不卡一区二区国产在线|