前言
Langchain为开发者供给了两类封装的言语模型:大言语模型(LLM)和谈天模型(Chat Models)。这两类模型的封装使得开发者可以更便捷地利用OpenAI API进行文本建模和生成。本篇文章就带大家去了解一下这两种模型的区别
LLM(大言语模型)
LLM是一种基于统计的机器学习模型,专注于对文本数据进行建模和生成。具体而言,Langchain中的LLM指的是文本补全模型,其经过学习言语模式、语法规则和语义关系,生成符合言语规则的连贯文本。
输入 | 输出 |
---|---|
一条文本内容 | 一条文本内容 |
谈天模型(Chat Models)
谈天模型是言语模型的一种变体,它不只运用言语模型,还供给了基于“谈天音讯”的接口。在Langchain中,gpt系列模型归于谈天模型,而davinci、curie、babbage、ada等模型归于文本补全模型。
输入 | 输出 |
---|---|
一组谈天音讯 | 一条谈天音讯 |
Langchain与OpenAI模型
Langchain经过封装不同的模型,为开发者供给了一致的接口。无论是文本补全模型还是谈天模型,Langchain将其笼统为相同的接口BaseLanguageModel
。开发者可经过predict
和predict_messages
函数轻松调用不同模型,当运用LLM时引荐运用predict
函数,当运用谈天模型时引荐运用predict_messages
函数。接下来经过一些代码示例给大家展示一下两者的不同。
与LLM的交互
与LLM的交互,咱们需求运用langchain.llms
模块中的OpenAI
类
from langchain.llms import OpenAI
import os
os.environ['OPENAI_API_KEY'] = '您的有效OpenAI API Key'
llm = OpenAI(model_name="gpt-3.5-turbo")
response = llm.predict("What is AI?")
print(response)
与谈天模型的交互
与谈天模型的交互,咱们需求运用langchain.chat_models
模块中的ChatOpenAI
类。
from langchain.chat_models import ChatOpenAI
from langchain.schema import AIMessage, HumanMessage, SystemMessage
import os
os.environ['OPENAI_API_KEY'] = '您的有效OpenAI API Key'
chat = ChatOpenAI(temperature=0)
response = chat.predict_messages([
HumanMessage(content="What is AI?")
])
print(response)
可以看到,谈天模型回来的是一个AIMessage
类型的目标。这里就要给大家科普一下Langchain里的三个音讯类
三个音讯类
Langchain结构供给了三个音讯类,分别是AIMessage
、HumanMessage
和SystemMessage
。它们对应了OpenAI谈天模型API支持的不同人物assistant
、user
和system
。
Langchain类 | OpenAI人物 | 作用 |
---|---|---|
AIMessage | assistant | 模型答复的音讯 |
HumanMessage | user | 用户向模型的请求或提问 |
SystemMessage | system | 体系指令,用于指定模型的行为 |
咱们尝试用SystemMessage来指定一下模型的行为,指定模型对AI一窍不通,在答复AI相关问题时,答复“I don’t know”。
response = chat.predict_messages([
SystemMessage(content="You are a chatbot that knows nothing about AI. When you are asked about AI, you must say 'I don't know'"),
HumanMessage(content="What is deep learning?")
])
print(response)
结语
Langchain的模型封装为开发者供给了便捷、高效的方式,利用OpenAI API进行文本生成和言语建模。经过本文的介绍,期望读者能更深化地了解Langchain的模型体系,以及如何灵活运用这些模型进行自然言语处理的开发。