跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(75) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) 聊天机器人(10) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) ChatGPT(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) RAG(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) 智能体(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) kafka(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 大型语言模型(2) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

【LLM】Langchain跟踪介绍

我们很高兴宣布在LangChain中支持原生追踪!通过在LangChain运行中启用跟踪,您将能够更有效地可视化、逐步完成和调试链和代理。

A view of a more complicated trace at a high level

动机

关于链和代理执行的推理对于故障排除和调试非常重要。然而,对于复杂的链和代理来说,这可能很困难,原因有很多:

  • 可能会有大量的步骤,因此很难跟踪所有步骤
  • 步骤的顺序无法固定,可能会根据用户输入而变化
  • 每个阶段的输入/输出可能不长,需要进行更详细的检查

链或代理的每一步也可能涉及嵌套——例如,代理可能会调用一个工具,该工具使用LLMMathChain,它使用LLMChain,然后调用LLM。如果您注意到来自顶级代理运行的奇怪或不正确的输出,则很难确定它在执行中的确切位置。

通过跟踪,您可以清楚地看到特定链或代理运行中涉及的每个LangChain原语的输入和输出,按照它们被调用的顺序,从而解决了这一问题。

【LLM】LangChain特性存储和LLM

编者按:非常感谢Willem Pienaar(Feast)、Mike Del Balso(Tecton)和Simba Khadder(FeatureForm)对本文的评论和帮助。

LLM代表了人工智能的一种新范式。有多少对传统机器学习有用的工具和服务在这里仍然相关,这是一个悬而未决的大问题。一方面,对于这种新的范式,有非常真实的新用例和需求。另一方面,现有的工具和服务具有多年的经验、开发和功能强化。这些工具在这个新的范式中仍然有用吗?

特性存储概述

一个特别有趣的案例研究是功能商店。在传统的机器学习中,模型的输入不是原始文本或图像,而是与手头的数据点相关的一系列工程“特征”。特征库是一个特征库,是一个旨在将ML特征集中并提供给模型的系统。通常有两个好处:

一种跟踪在特定时间点存在哪些特征以用于模型训练的方法

  • 进行推理时使用的实时特征管道
  • 这些可能如何适用于LLM应用程序?

第一点似乎没有那么重要。大多数人使用OpenAI、Anthropic等预先训练的LLM,而不是从头开始训练自己的模型。

【LLM】langchain结构化工具

TL;DR:我们正在引入一种新的抽象,以允许使用更复杂的工具。虽然以前的工具只接受单个字符串输入,但新工具可以接受任意数量的任意类型的输入。我们还引入了一个新的代理类,它可以很好地与这些新类型的工具配合使用。

重要链接:

  • 工具列表
  • 新代理人

早在2022年11月,当我们首次推出LangChain时,代理和工具利用率在我们的设计中发挥了核心作用。我们建立了基于ReAct的首批链之一,这是一篇开创性的论文,将工具的使用带到了提示框架的前沿。

在早期,工具的使用过于简单。一个模型将生成两个字符串:

  • 工具名称
  • 所选工具的输入字符串

这种方法将代理限制为每转一个工具,并且该工具的输入限制为单个字符串。这些限制主要是由于模型的限制;模型甚至很难熟练地完成这些基本任务。可靠地执行更复杂的操作,例如选择多个工具或填充复杂的模式,将是一件愚蠢的事。

然而,更先进的语言模型(如text-davinci-003、gpt-3.5-turbo和gpt-4)的快速发展为现有模型能够可靠实现的目标奠定了基础。这促使我们重新评估LangChain代理框架中对工具使用的限制。

【LLM】LangChain入门:构建LLM驱动的应用程序入门指南

LangChain教程,用于在Python中使用大型语言模型构建任何东西

Two stochastic parrots sitting on a chain of large language models: LangChain

“What did the stochastic parrot say to the other?” (Image drawn by the author)

自从ChatGPT发布以来,大型语言模型(LLM)获得了很大的流行。尽管你可能没有足够的资金和计算资源在地下室从头开始训练LLM,但你仍然可以使用预先训练的LLM来构建一些很酷的东西,例如:

  • 可以根据您的数据与外界互动的个人助理
  • 为您的目的定制聊天机器人
  • 对您的文档或代码进行分析或总结

LLM正在改变我们构建人工智能产品的方式

【LLM】LangChain的LangFlow

LangFlow是LangChain的一个GUI,可以轻松地进行LLM应用程序和提示链接的实验和原型制作。

LangFlow是一个基于LangChain的本地LLM图形开发接口。如果你以任何方式熟悉LangChain,在链、代理和提示工程方面,这个开发界面都会感觉非常直观。

在下图中,是所有可用组件分组的列表。展开后,可以看到链、提示、代理和LLM的开发可供性列表。这个列表肯定会随着兴趣的增加而增加。

以下是关于如何构建一个非常简单的LLM Chaining应用程序以及如何与该应用程序聊天的简短教程。

要构建最简单的LLM应用程序,需要选择三个组件并将其拖到设计画布上:

【LLM】langchain 和 ChatGTP 4 agents

代理

代理通过涉及LLM来确定要遵循的操作序列,从而保持一定程度的自主权。

考虑下图,在收到请求后,代理会利用LLM来决定采取哪种操作。“操作”完成后,Agent将进入“观察”步骤。从观察步骤开始,代理人分享一个想法;如果没有达到最终答案,Agent会循环返回到另一个Action,以便更接近最终答案。

LangChain代理可以使用一系列操作。

下面的代码显示了LangChain代理回答一个极其模糊和复杂的问题的完整工作示例:

Who is regarded as the father of the iPhone and what is the square root of his year of birth?

代理人可以采取一些行动:

LLM数学,

以下是SerpApi网站的截图。SerpApi使得从搜索引擎结果中提取数据变得可行。

GPT-4(GPT-4–0314)。

【LLM】LangChain 代理和大型语言模型

目前在LLM上开发的方法正在迅速发展,即时工程在某种程度上被链接和代理的概念所吸收。

在最近的一篇文章中,我写到了即时工程的演变,以及即时工程是如何被吸收到更大的开发结构中的。

这些更大的开发结构允许:

  1. 更长、更复杂的用户交互
  2. 进程可以串行或并行运行
  3. 提示可以编程、共享、存储和模板化
  4. 链接是创建提示流或提示序列的概念。

对于现有流退出并且可以创建预先确定的会话或工作流的情况,Chaining工作得很好。

另一方面,在流量未知或高度不可预测的情况下,链接并不能很好地服务于场景。在这些情况下,预定的流程将不能很好地工作,并且需要一定程度的自主权。

 

什么是代理?

代理可以通过使用其可支配的一组工具或资源来接收查询。这些工具可以包括访问维基百科、网络搜索、数学库、LLM等。

【LLM】大型语言模型背景下的自主代理LangChain

随着大型语言模型(LLM)的实现在深度和广度上的扩展,出现了一些要求:

  1. 对LLM进行编程并创建可重复使用的提示的能力&将提示无缝地合并到更大的应用程序中。
  2. 创建链以对大型应用程序的LLM交互进行排序。
  3. 通过一个可以在工具范围内自主行动的代理,自动进行即兴的思维链提示。
  4. 创建可扩展的提示管道,可以从各种来源收集相关数据,所有这些都基于用户输入并构成提示;并将提示提交给LLM。

“任何足够先进的技术都与魔术难以区分。”

-阿瑟·C·克拉克

对于LLM相关的操作,显然需要自动化。目前,这种自动化是以所谓的代理的形式出现的。

提示链接是指执行一系列预先确定的动作。

【ChatBot】使用LangFlow构建LangChain代理

基于LLM的代理通过访问其可支配的LLM和工具来维护自主权

关于代理的更多信息

LangChain代理在一套可用工具的上下文中是自主的。现在,您可以通过使用LangFlow在GUI中构建LangChain代理。

LangChain代理在收到请求时会使用各种操作。采取行动后,代理人进入观察步骤,在那里他们分享一个想法。如果未达到最终答案,Agent会循环返回以选择不同的操作,以便更接近最终答案