当前位置: 首页 > news >正文

克服大规模语言模型限制,构建新的应用方法——LangChain

大模型

大模型的出现和落地开启了人工智能(AI)新一轮的信息技术革命,改变了人们的生 活方式、工作方式和思维方式。大模型的落地需要数据、算力和算法三大要素。经过几 年发展,大模型的数据集(包括多模态数据集)制作已经形成了规约,Meta、Google和百 度等人工智能公司都有自己的一套数据集标准制作流程。算力方面主要依托GPU、TPU 等硬件资源进行集群计算(即并行计算)。在算法方面,主要以Transformer架构为主流框 架,出现了 OpenAI 的 GPT 系列大模型、Meta 的 Llama 系列大模型以及清华大学的 ChatGLM 系列大模型。目前虽然已经有几千个甚至更多的大模型。

在这种背景下,在基础大模型基础上形成了微调和提示工程等新的技术范式。同时也出现了大模型应用落地的软件产品,如 LangChain、Ollama、Chatbox、LM Studio、 AnythingLLM、LocalAI 和 MaxKB 等,主要用于大模型微调、部署、管理和应用服务 开发。这些产品各有特色,要根据自己的业务场景、业务需求和特色选择。

LangChain 由Harrison Chase 于2022 年创建,是一个开源Python 框架,用于构建大规模语言模型驱动的应用程序。它为开发人员提供模块化、易于使用的组件,用于将语言模型与外部数据源和服务连接起来。LangChain提供了一个完整的生态系统,为开发者带来了一系列核心模块和工具。

大规模语言模型的局限性

大规模语言模型已成为强大的工具,但其功能也有局限性。了解这些限制有助于有 效地设计和部署大规模语言模型。大规模语言模型面临以下几个问题。

● 知识过时:大规模语言模型完全依赖于训练数据,而这些数据可能已经过时。 大规模语言模型缺乏获取实时信息的途径,在回答有关时事的问题时会很吃力。 例如,向大规模语言模型询问最近的一则新闻会得到一个不知情的响应。

● 有限行动:大规模语言模型无法在现实世界中执行行动。它们不能搜索网络、 访问数据库或进行计算。这就限制了它们在需要与外部数据交互的任务中的作 用。试想一下,大规模语言模型在讨论金融时——它可以解释概念,但无法检 索实时股票数据来分析当前趋势。

● 偏见与公平:大规模语言模型可能会从训练数据中继承偏见。这些偏见可能是 宗教性的、意识形态的或政治性的,从而导致歧视性的输出。精心设计和监控 对于降低这些风险至关重要。例如,微软的Tay聊天机器人在2016年推出不久 后就下线了,原因是有毒性互动导致的攻击性推文。

● 成本和速度:由于对计算的要求,训练和运行大规模语言模型的成本可能很高。 此外,文本生成速度也会因模型大小和复杂程度而异。对于生产部署而言,仔 细考虑这些因素至关重要。

● 逻辑推理和数学:虽然大规模语言模型不断取得进步,但通常难以胜任复杂推 理或数学模型的任务。它们可能无法将多个事实结合起来,或进行以前从未遇 到过的计算。例如,大规模语言模型可能知道水果和水的密度,但却无法确定 水果是否会浮起来(这是一个多步骤的推理过程)。

 如何减少大规模语言模型的局限性

大规模语言模型在推理、获取实时信息和避免偏见等方面可能存在不足。为了弥补 这些不足,可以采用循序渐进的方法,以下技术可以减少其局限性。

1. 提示工程和微调:首先要精心设计提示(问题或指示),引导大规模语言模型实现 预期结果。这有助于大规模语言模型更好地理解任务和上下文。此外,在特定数据集上 进行微调可以进一步提高特定应用的性能。

2. 自我任务提示:这种方法鼓励大规模语言模型将复杂的问题分解成更小、更容 易处理的步骤。通过向自己提出明确的问题,大规模语言模型可以找出相关信息,更有 条理地解决问题。

3. 连接外部数据:大规模语言模型缺乏实时知识,可以将其与数据库或Web 搜索 API 等外部数据源集成。这样,大规模语言模型就能获取当前信息,提高响应的准确性。

4. 过滤和监控:尽管采取了预防措施,但偏见和事实错误仍有可能漏网。实施过 滤器,如屏蔽列表、敏感度分类器和禁用词过滤器,可在输出之前捕捉到不适当或不准 确的输出。人工监控对于识别和解决新出现的问题也至关重要。

5. 人工智能的宪法原则:将道德因素纳入开发过程。这包括将公平性和透明度纳 入大规模语言模型本身,使其行为符合人类价值观。 通过将这些策略结合起来,可以将大规模语言模型从随机鹦鹉转变为推理引擎,使 其能够进行更有意义的交互并输出负责任的结果。

像LangChain这样的框架通过提供一 种结构化的方法,将提示、数据源和过滤器结合起来,有效地使用大规模语言模型,从 而简化了这一过程。

《LangChain大模型应用开发》

本书围绕大模型、生成式人工智能、LangChain等主题,以理论、案例和近几年的 技术前沿为主线展开,以代码实现为途径,适合大模型应用开发、人工智能和大数据等 领域的学者和工程师阅读,也可以作为非计算机背景人员作为入门大模型应用实战的 读物。无论是初学者还是经验丰富的开发人员,对于任何想要充分利用大规模语言模型并 在大规模语言模型和LangChain方面保持领先的人来说,这本书都将是宝贵的资源。

大规模语言模型可以生成令人信服的语言,但在推理、知识和使用工具方面却有很 大的局限性。LangChain框架简化了由大规模语言模型驱动的复杂应用程 序的构建,从而减少缺陷。链允许对大规模语言模型、数据库、API等进行排序调用, 以完成多步骤工作流。智能体可利用链根据观察结果采取行动,以管理动态应用程序。 记忆会在执行过程中持久保存信息,以保持状态。这些概念通过整合外部数据、操作和 上下文,使开发人员能够克服单个大规模语言模型的局限性。换句话说,LangChain将 复杂的编排工作简化为可定制的构建模块。 

LangChain 生态系统还包括用于收集反馈的 LangSmith、用于构建复杂有状 态应用程序的LangGraph以及用于简化API创建的LangServe,它们都具有旨在优化性 能、可扩展性和用户参与度的独特功能。此外,TruLens、Twitter和Google Search等重 要的第三方集成也丰富了该框架的功能,使大规模语言模型的应用更加广泛。

相关文章:

克服大规模语言模型限制,构建新的应用方法——LangChain

大模型 大模型的出现和落地开启了人工智能(AI)新一轮的信息技术革命,改变了人们的生 活方式、工作方式和思维方式。大模型的落地需要数据、算力和算法三大要素。经过几 年发展,大模型的数据集(包括多模态数据集)制作已经形成了规约,Meta、Go…...

计算机网络 —— HTTPS 协议

前一篇文章:计算机网络 —— HTTP 协议(详解)-CSDN博客 目录 前言 一、HTTPS 协议简介 二、HTTPS 工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.引入证书 三、HTTPS 常见问题 1.中间人能否篡改证书? 2.中间人能否调…...

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时,便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value,其次就是vu…...

React第十五节useReducer使用详解差异

useReducer() 的用法注意事项 1、 概述: useReducer() 常用于管理复杂的状态更新逻辑,特别是在状态更新依赖于多个条件或动作时,useReducer 提供了一种更加结构化和可维护的方式来处理状态。可以将更新函数写在组件外面 它与 useState() 相…...

NanoLog起步笔记-5-客户端简要描述

nonolog起步笔记-5-客户端简要描述 客户端的简要的设计图路notify模式服务端最好分两个核 NanoLog::setLogLevel(NOTICE);从 NANO_LOG 开始NANO_LOGcompiling time的语句getNumNibblesNeeded:得到prompt中,number的数量countFmtParams:得到所…...

Flink:入门介绍

目录 一、Flink简介 2.1 Flink 架构 2.2 Flink 应用程序 运行模式 二、Flink 集群 部署 2.1 本地集群模式 2.1.1 安装JDK​编辑 2.1.2 下载、解压 Flink 2.1.3 启动集群 2.1.4 停止集群 2.2 Standalone 模式 2.2.0 集群规划 2.2.1 安装JDK 2.2.2 设置免密登录 2…...

目标跟踪领域经典论文解析

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...

网络编程 | TCP套接字通信及编程实现经验教程

1、TCP基础铺垫 TCP/IP协议簇中包含了如TCP、UDP、IP、ICMP、ARP、HTTP等通信协议。TCP协议是TCP/IP协议簇中最为常见且重要的通信方式之一,它为互联网上的数据传输提供了可靠性和连接管理。 TCP(Transmission Control Protocol,传输控制协议…...

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果...

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包,官网地址:Redis下载 网盘链接: 通过网盘分享的文件:redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…...

REDMI瞄准游戏赛道,推出小屏平板

近日,REDMI推出了一款8.8英寸的小屏平板,引发市场关注。该平板采用LCD屏幕,搭载天玑9400处理器,定位游戏市场,意在开拓小屏平板的新领域‌。 ‌小屏平板新尝试‌ 这款REDMI平板未追随大屏潮流,而是选择了8…...

springai结合ollama

目录 ollama 介绍 使用 下载: 安装: 点击这个玩意next就行了。 运行 spring ai使用ollama调用本地部署的大模型 加依赖 配置yml 写代码 ollama 介绍 官网:Ollama Ollama是一个用于部署和运行各种开源大模型的工具; …...

React第十三节开发中常见问题之(视图更新、事件处理)

一、视图更新有哪些方案&#xff1f; useState用法介绍 1、对于数据变量 正常的增删改查&#xff0c;只会让数据更新&#xff0c;但是不会触发 React 视图的更新&#xff1b; 如&#xff1a; <script lang"jsx">const baseTable [{name:Andy, age: 18, id…...

【Appium报错】安装uiautomator2失败

目录 1、通过nmp安装uiautomator2&#xff1a;失败 2、通过 Appium 的平台直接安装驱动程序 3、通过pip 来安装 uiautomator2 1、通过nmp安装uiautomator2&#xff1a;失败 我先是通过npm安装的uiautomator2&#xff0c;也显示已经安装成功了&#xff1a; npm install -g …...

DataSophon集成CMAK KafkaManager

本次集成基于DDP1.2.1 集成CMAK-3.0.0.6 设计的json和tar包我放网盘了. 通过网盘分享的文件&#xff1a;DDP集成CMAK 链接: https://pan.baidu.com/s/1BR70Ajj9FxvjBlsOX4Ivhw?pwdcpmc 提取码: cpmc CMAK github上提供了zip压缩包.将压缩包解压之后 在根目录下加入启动脚本…...

Ubuntu22.04深度学习环境安装【显卡驱动安装】

前言 使用Windows配置环境失败&#xff0c;其中有一个包只有Linux版本&#xff0c;Windows版本的只有python3.10的&#xff0c;所以直接选用Linux来配置环境&#xff0c;显卡安装比较麻烦&#xff0c;单独出一期。 显卡驱动安装 方法一&#xff1a;在线安装&#xff08;操作…...

21届秋/校招面经

开篇先说一下我自身情况&#xff0c;东南大学本科计算机科学与技术专业毕业&#xff0c;gpa3.2/4.8。零零散散搞过一年多ACM&#xff0c;去年&#xff08;2019&#xff09;在icpc上海站拿了铜之后增加了信心&#xff08;因为当时训练总时间半年不到&#xff09;&#xff0c;于是…...

相机动态/在线标定

图1 图2 基本原理 【原理1】平行线在射影变换后会交于一点。如图所示,A为相机光心,蓝色矩形框为归一化平面,O为平面中心。地面四条黄色直线为平行且等距的车道线。HI交其中两条车道线于H、I, 过G作HI的平行线GM交车道线于M。HI、GM在归一化平面上的投影分别为JK、PN,二者会…...

MySQL 8.0 新特性汇总

文章目录 前言1. 运维管理 1.1 可持久化变量1.2 管理员端口1.3 资源组1.4 数据库粒度只读1.5 show processlist 实现方式1.6 加速索引创建速度1.7 控制连接的内存使用量1.8 克隆插件1.9 mysqldump 新增参数1.10 慢日志增强1.11 快速加列1.12 InnoDB 隐藏主键1.13 Redo 配置1.14…...

Resnet C ++ 部署 tensort 部署(四)

Resnet C 部署 pytorch功能测试&#xff08;一&#xff09; Resnet C 部署 模型训练&#xff08;二&#xff09; Resnet C 部署 模型测试&转 onnx&#xff08;三&#xff09; Resnet C 部署 tensort 部署&#xff08;四&#xff09; 之后&#xff0c;开始onnx 转trt 部…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

使用python进行图像处理—图像滤波(5)

图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值&#xff0c;以达到平滑&#xff08;去噪&#xff09;、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算&#xff0c;…...

性能优化中,多面体模型基本原理

1&#xff09;多面体编译技术是一种基于多面体模型的程序分析和优化技术&#xff0c;它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象&#xff0c;通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中&#xff0…...

C++课设:实现本地留言板系统(支持留言、搜索、标签、加密等)

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 专栏介绍&#xff1a;《编程项目实战》 目录 一、项目功能概览与亮点分析1. 核心功能…...