自然语言处理从入门到应用——LangChain:模型(Models)-[基础知识]

分类目录:《自然语言处理从入门到应用》总目录


《自然语言处理从入门到应用——LangChain:模型(Models)》部分的文章介绍了LangChain中使用的不同类型的模型。在本文中,我们将阐述模型(Models)类型及模型的基础知识。在LangChain中,模型主要分为以下三类:

  • 大型语言模型(LLMs):大型语言模型(LLMs)一种以文本字符串作为输入,并返回文本字符串作为输出的模型。
  • 聊天模型(Chat Models):聊天模型通常由语言模型支持,但它们的API更加结构化。具体来说,这些模型将聊天消息列表作为输入,并返回聊天消息。
  • 文本嵌入模型(Text Embedding Models):文本嵌入模型将文本作为输入,并返回一个浮点数列表。

LangChain的核心价值提案之一是提供了一个标准接口来管理模型。这使得用户可以轻松切换不同的模型。从高层次上来说,模型可以分为两类:

  • Language Models:适合文本生成
  • Text Embedding Models:适合将文本转换为数字表示

其中,语言模型(Language Models)有两种不同的子类型:

  • LLMs:这些包装API接收文本并返回文本
  • ChatModels:这些包装模型接收聊天消息并返回聊天消息

这两者之间有一个微妙的区别,但LangChain的主张提供了跨越这些的统一接口,因为虽然底层的 API 实际上是非常不同的,但我们会经常想要交替使用它们。为了看清这一点,让我们来看看OpenAI(OpenAI LLM的一个封装器)与ChatOpenAI(OpenAI ChatModel的一个封装器)的异同:

from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
llm = OpenAI()
chat_model = ChatOpenAI()

下面我们来看LLMs的输出:

llm.predict("say hi!")

输出:

'\n\nHi there!'

下面我们来看ChatModels的输出:

chat_model.predict("say hi!")

输出:

'Hello there!'

引入HumanMessage

from langchain.schema import HumanMessage
llm.predict_messages([HumanMessage(content="say hi!")])

下面我们来看LLMs的输出:

llm.predict_messages([HumanMessage(content="say hi!")])

输出:

AIMessage(content='\n\nHello! Nice to meet you!', additional_kwargs={}, example=False)

下面我们来看ChatModels的输出:

chat_model.predict_messages([HumanMessage(content="say hi!")])

输出:

AIMessage(content='Hello! How can I assist you today?', additional_kwargs={}, example=False)

参考文献:
[1] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发:https://www.langchain.com.cn/
[2] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架:http://www.cnlangchain.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain Agents深入剖析及源码解密上(三)

AutoGPT案例V1版本 AutoGPT是一个实验性的开源应用程序,展示了GPT-4语言模型的功能,AutoGPT程序由GPT-4驱动,将大语言模型的思考链接在一起,以自主实现设定的任何目标。作为GPT-4完全自主运行的首批例子之一,AutoGPT突破了人工智能的可能性。LangChain框架复现了https://g…

c#栈应用——实现四则运算

前言:四则运算,大家都不陌生,在上小学的时候,数学中学到过的知识,那么如何在程序中实现呢?下面,我们就用程序来实现9(3-2)*(5-3)/4*3,这个算式的值。计算的时候,有一个规…

MySQL学习笔记 ------ 分页查询

#进阶8:分页查询 ★ /* 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 …

搭建基于Nginx+Keepalived的高可用web集群并实现监控告警

目录 搭建相关服务器DNS服务器配置WEB服务器配置配置静态IP编译安装nginx 负载均衡器配置lb1lb2高可用配置 NFS服务器配置配置静态IP安装软件包新建共享目录web服务器挂载 监控服务器配置安装node-exporter编写prometheus.yml安装alertmanager和钉钉插件获取机器人webhook编写a…

Python实战之数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么? 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过算法,找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言,拥有丰富的数据挖掘库&#…

Nginx配置解析

server {listen 80;server_name example.com;location / {proxy_pass http://backend;}location / 是 Nginx 的一个匹配规则,用于匹配所有请求路径。proxy_pass 指令则用于将匹配到的请求转发给指定的后端服务器。下面是关于 location / 和 proxy_pass 的详细介绍&a…

解决嵌入式中QTableWidget双击出现空白QTableWidgetItem输入

目录 所说BUG现象解决方式1方式2全部内容 效果 今天突然想起在上个公司解决的一个BUG 嵌入式中QTableWidget一般只能看数据不能编辑,或者是选择 所以双击出现空白QTableWidgetItem是不允许的 所说BUG现象 解决 在空白的单元格中,添加不可编辑的QTableWid…

动手学深度学习——实战Kaggle比赛:预测房价

导入包,建立字典DATA_HUB包含数据集的url和验证文件完整性的sha-1密钥。定义download()函数用来下载数据集, 将数据集缓存在本地目录(默认情况下为…/data)中, 并返回下载文件的名称。定义download_extract()函数下载并…

数字孪生:未来科技的新前沿

数字孪生作为一项新兴的研究方向,正逐渐成为科技界的焦点。它是将现实世界中的实体、系统或过程通过数字化手段进行建模、仿真和分析,形成与实体相对应的数字化副本。数字孪生的发展为我们带来了无限的想象空间,以及解决现实问题的新途径。 在…

java.net.ConnectException: Connection refused: no further information

报错如下: java.net.ConnectException: Connection refused: no further informationat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_181]at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_181]a…

Zabbix监控安装grafana并配置图形操作

第三阶段基础 时 间:2023年7月20日 参加人:全班人员 内 容: Zabbix监控安装grafana 目录 安装并配置grafana 一、安装Grafana 二、下载安装插件 三、配置grafana 四、Web访问并配置: 安装并配置grafana 一、安装Graf…

【团队协作开发】将Gitee项目导入到本地IDEA中出现根目录不完整的问题解决(已解决)

前言:在团队协作开发过程中,通常我们的Gitee完整项目中会包含很多内容:后端代码、前端代码、项目结构图、项目文档等一系列资产。 将Gitee项目导入到本地IDEA中,通常会出现根目录不完整的问题。这是因为项目里面包含了后端代码、前…

如何使用Webman框架实现日历和事件提醒功能?

如何使用Webman框架实现日历和事件提醒功能? 引言: 在现代社会中,时间管理变得越来越重要。作为开发者,我们可以利用Webman框架来构建一个功能强大的日历应用程序,帮助人们更好地管理自己的时间。本文将介绍如何使用W…

基于Java+SpringBoot+vue前后端分离甘肃非物质文化网站设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

DAY51:动态规划(十五)买卖股票最佳时机Ⅲ+买卖股票最佳时期Ⅳ

文章目录 123.买卖股票最佳时机Ⅲ(注意初始化)思路DP数组含义递推公式初始化遍历顺序最开始的写法:初始化全部写成0debug测试:解答错误,第0天实际上是对应prices[0]和dp[0] 完整版总结 188.买卖股票最佳时机Ⅳ思路DP数…

09.计算机网络——套接字编程

文章目录 网络字节序socket编程socket 常见APIsockaddr结构 UDP编程创建socket绑定socketsendto发送数据recvform接收数据关闭socket TCP编程创建socket绑定socketlisten监听套接字accept服务端接收连接套接字connect客户端连接套接字send发送数据recv接收数据关闭socket 工具n…

【flink】ColumnarRowData

列式存储 在调试flink读取parquet文件时,读出来的数据是ColumnarRowData,由于parquet是列式存储的文件格式,所以需要用一种列式存储的表示方式,ColumnarRowData就是用来表示列式存储的一行数据,它包含多个数组的数据结…

从电商指标洞察到运营归因,只需几句话?AI 数智助理准备好了!

Lily 是名入职不久的电商运营助理,最近她想要根据 2022 年的客单价情况,分析品牌 A 在不同电商渠道的用户行为和表现,并提供一些有价值的洞察和建议给客户。然而在向技术人员提报表需求后,技术人员以需求排满为借口拒绝了。 Lily …

5分钟,结合 LangChain 搭建自己的生成式智能问答系统

伴随大语言模型(LLM,Large Language Model)的涌现,人们发现生成式人工智能在非常多领域具有重要意义,如图像生成,书写文稿,信息搜索等。随着 LLM 场景的多样化,大家希望 LLM 能在垂直…

记一次容器环境下出现 Address not available

作者:郑明泉、余凯 困惑的源地址 pod 创建后一段时间一直是正常运行,突然有一天发现没有新的连接创建了,业务上是通过 pod A 访问 svc B 的 svc name 的方式,进入 pod 手动去 wget 一下,发现报错了 Address not avai…