当前位置: 首页 > 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 部…...

《Java核心技术I》对并发散列映射的批操作

对并发散列映射的批操作 Java API提供了批处理&#xff0c;计时其他线程处理映射&#xff0c;这些操作也能安全的执行。 3种不同操作&#xff1a; search(搜索)&#xff0c;为每个键或值应用一个函数&#xff0c;直到函数生成一个非null的结果&#xff0c;然后搜索终止&…...

记录一次使用git无权限的问题排查

正常的配置了公私钥之后&#xff0c;在gitlab中也存储了配对的公钥&#xff0c;但当使用git clone 时&#xff0c;总是报无权限 由于在这台机器中添加了多个公私钥&#xff0c;有点复杂&#xff0c;我们可以使用命令 ssh -vvvT 调试一下 ssh -vvvT yourGitlabAddr...

appium学习之二:adb命令

1、查看设备 adb devices 2、连接 adb connect IP:端口 3、安装 adb install xxx.apk 4、卸载 adb uninstall 【包名】 5、把对应目录下的1.txt文件传到手机sdcard下 adb push 1.txt /sdcard 6、进入对应的设备里 adb shell 7、切入sdcard目录 cd /sdcard 8、ls 查…...

Linux Vi/Vim使用 ⑥

掌握 CentOS 7 下的 Vi/Vim 编辑器&#xff1a;从安装到精通 在 CentOS 7 系统的日常运维、编程开发以及各类文本处理场景中&#xff0c;Vi/Vim 编辑器都是不可或缺的得力工具。它以轻量、高效、功能强大著称&#xff0c;虽然初次上手有一定学习门槛&#xff0c;但掌握之后便能…...

JCR一区牛顿-拉夫逊优化算法+分解对比!VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测

JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测 目录 JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院…...

easyExcel实现表头批注

背景&#xff1a; 网上大部分都不能直接使用&#xff0c;为此总结一个方便入手且可用的工具&#xff0c;用自定义注解实现 依赖包&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>…...

Pytest测试用例使用小结

基础使用 Pytest 测试用例实现代码 import pytest from server.service import Servicepytest.fixture def service():return Service(logger)class TestService:classmethoddef setup_class(cls):"""初始化设置一次:return:"""logger.info(&q…...

LeetCode题练习与总结:132 模式--456

一、题目描述 给你一个整数数组 nums &#xff0c;数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成&#xff0c;并同时满足&#xff1a;i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 &a…...

IdentityServer4框架、ASP.NET core Identity

OAuth2.0 IdentityServer4 官网 中文官网 ASP.NET Core Identity提供了一个用来管理和存储用户账户的框架. IdentityServer4是基于ASP.NET Core实现的认证和授权框架&#xff0c;是对OpenID Connect和OAuth 2.0协议的实现。 IdentityServer是一个中间件,它可以添加符合OpenID…...

【分子材料发现】——GAP:催化过程中吸附构型的多模态语言和图学习(数据集处理详解)(二)

Multimodal Language and Graph Learning of Adsorption Configuration in Catalysis https://arxiv.org/abs/2401.07408Paper Data: https://doi.org/10.6084/m9.figshare.27208356.v2 1 Dataset CatBERTa训练的文本字符串输入来源于Open Catalyst 2020 &#xff08;OC20…...

wordpress设置可写/seopc流量排行榜企业

计算机网络 练习&#xff08;一百四十二&#xff09; 某网络拓扑图如下所示&#xff0c;若采用 RIP 协议&#xff0c;在路由器 Router2 上需要进行 RIP 声明的网络是&#xff08;&#xff09; A. 仅网络 1 B. 网络 1、202.117.112.0/30 和 202.117.113.0/30 C. 网络 1、网络…...

ps做网站编排/网站黄页推广软件

在我之前的文章 springcloud如何实现服务的平滑发布 里介绍了基于pause的发布方案。 平滑发布的核心思想就是&#xff1a;所有服务的调用者不再调用该服务了就表示安全的将服务kill掉。 另外actuator提供了优雅停机方式的endpoint&#xff1a;shutdown&#xff0c;那我们就可以…...

北京广告设计公司招聘/抖音seo怎么做

~学习内容都是基于python3环境的&#xff0c;自己python编程基础不怎么样&#xff0c;所以也同步在补基础&#xff0c;不断添加解释&#xff0c;然后希望最后能够做得python小白也能看懂。&#xff08;资源主要来自阿里天池龙珠计划&#xff0c;公众号&#xff1a;AI蜗牛车&…...

建立网站的技术路径/免费网站外链推广

for循环&#xff1a;语法 for循环的好基友是数组 for&#xff08;初始值&#xff08;var a 1&#xff09;&#xff1b;循环条件&#xff08;a<10&#xff09;;改变条件&#xff08;a&#xff09;&#xff09; { 写在内面表示一起循环 }外面只一次 初始值定义变量可以定义多个…...

个人网站开发制作教程/郑州外语网站建站优化

session简介做过Web开发的程序员应该对Session都比较熟悉&#xff0c;Session是一块保存在服务器端的内存空间&#xff0c;一般用于保存用户的会话信息。用户通过用户名和密码登陆成功之后&#xff0c;服务器端程序会在服务器端开辟一块Session内存空间并将用户的信息存入这块空…...

怎样优化网站 优帮云/链接下载

页面布局分为两种方式&#xff0c;一种是主站&#xff0c;另外一种是后台管理的页面布局&#xff0c;如下&#xff1a; 1、网页主站&#xff1a; 主站页面的布局格式&#xff1a;<div class"pg_header"><div style"width: 980px;margin: 0 auto"&…...