深入了解 langchain
- 概念解惑
上一篇 深入了解 langchain 输入输出(message/output) - 掘金 (juejin.cn) 我们简单介绍了 langchain
的 prompt
以及 output
相关的内容,本篇我们介绍 langchain
的 model
相关的template/prompt
内容。
相关概念
任何语言模型应用程序的核心元素都是模型。LangChain 为我们提供了与任何语言模型交互的构建链。我们在初次使用 LangChain 的时候会看到llm 以及 chatLLM,很多时候我们根本分不清。本篇的所有内容都是为了让模型的使用变得更容易以及在什么情况下使用那种类型的 LLM 。所以下面是本篇的相关内容:
- 认识 LLM
- 构建模型输入的程序
- 处理模型输出的程序
LLM 的类型
LLM
LangChain
集成的模型主要有两种类型:LLM
和 chatLLM
。它们由它们的输入和输出类定义。
LangChain
中的 LLM
指的是纯文本补全模型。它们包装的 API
将字符串prompt
作为输入并输出字符串完成。OpenAI
的 GPT-3
是纯文本补全模型。
ChatLLM
ChatLLM
也就是聊天模型,通常由LLM
支持,但专门针对对话进行了调整。更重要的是,他们提供的 API
使用与 LLM
模型不同的接口。他们不是使用单个字符串,而是将聊天消息列表作为输入,并返回 AI
消息作为输出。GPT-4
, Anthropic
, Claude-2
都是作为ChatLLM
实现的。
这两种 API
类型具有截然不同的输入和输出架构。这意味着与他们互动的最佳方式可能会完全不同。尽管 LangChain
可以互换使用它们,但这并不意味着我们开发者就必须这样做。特别是,LLM
与 ChatModel
的提示策略可能会有很大不同。这意味着我们需要确保使用的prompt
是针对正在使用的模型类型设计的。
另外,并非所有 LLM
都相同。不同的模型有不同的最适合他们的提示策略。例如,Anthropic
的模型最适合使用 XML,而 OpenAI
的模型最适合使用 JSON
。
这意味着我们用于一种模型的提示可能不会转移到其他模型。LangChain
提供了很多默认提示,但并不能保证这些提示能够很好地配合您使用的模型。从过完经历看,大多数提示在 OpenAI
上都能很好地工作,但没有在其他模型上进行过大量测试。
Message
ChatLLM
将消息列表作为输入并返回消息。有几种不同类型的消息。所有消息都有 role
和 content
属性。
role
描述了LLM</