自然语言处理从入门到应用——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/

你可能感兴趣的:(自然语言处理从入门到应用,人工智能,深度学习,自然语言处理,langchain,GPT)