跳到主要内容

简介:使用 GPT-4 和 MLflow 推进通信

下载此笔记本

欢迎来到我们的高级教程,我们将深入研究 OpenAI 的 GPT-4 的前沿功能,特别是探索其 Chat Completions 功能。在本课程中,我们将把 GPT-4 的高级语言能力与 MLflow 的强大实验跟踪和部署框架相结合,创建一个创新应用程序:文本消息天使。

教程概述

在本教程中,我们将:

  1. 设置和验证环境:确保所有必要的配置(包括 OPENAI_API_KEY)都已到位,以进行我们的实验。

  2. 初始化 MLflow 实验:设置一个名为“文本消息天使”的 MLflow 实验,以跟踪和管理我们模型的性能和结果。

  3. 使用 GPT-4 实现 Chat Completions:利用 GPT-4 的 Chat Completions 任务开发一个可以分析和回复文本消息的应用程序。GPT-4 的此功能允许使用上下文感知、会话式 AI 应用程序,这些应用程序可以理解和生成类似人类的文本回复。

  4. 模型部署和预测:使用 MLflow 的 pyfunc 实现来部署我们的模型,并对一组示例文本消息进行预测。这将展示我们的模型在现实场景中的实际应用。

文本消息天使应用程序

我们的应用程序“文本消息天使”旨在增强日常文本通信。它将分析短信回复的语气、恰当性和对关系的影响。该模型会将回复分类为“可以发送!”或建议谨慎“在发送之前,您可能需要再次阅读”。对于被认为不适当的回复,它还将建议替代措辞,以保持友好而诙谐的语气。

为什么选择 GPT-4 和 MLflow?

  • GPT-4 的高级 AI:GPT-4 代表了 AI 语言模型开发的最新进展,它提供了细致的理解和响应生成能力,非常适合像“文本消息天使”这样的基于文本的应用程序。

  • MLflow 的无缝管理:MLflow 简化了跟踪实验、管理不同模型版本和部署 AI 模型的过程。它与 GPT-4 的集成使我们可以专注于应用程序的创意方面,同时有效地处理模型管理的技术细节。

参与本教程

随着我们的进展,我们鼓励您积极参与所呈现的代码和概念。本教程不仅是关于学习功能,而且是关于理解这些技术在创造性结合时的潜力。

让我们开始这段旅程,利用 MLflow 和 GPT-4 的 Chat Completions 的协同作用,以增强数字世界中的通信和交互。

import warnings

# Disable a few less-than-useful UserWarnings from setuptools and pydantic
warnings.filterwarnings("ignore", category=UserWarning)
import os

import openai
import pandas as pd
from IPython.display import HTML

import mlflow
from mlflow.models.signature import ModelSignature
from mlflow.types.schema import ColSpec, ParamSchema, ParamSpec, Schema

# Run a quick validation that we have an entry for the OPEN_API_KEY within environment variables
assert "OPENAI_API_KEY" in os.environ, "OPENAI_API_KEY environment variable must be set"

使用 GPT-4 和 Chat Completions 实现文本消息天使

在探索了 openai 风格的入门教程中对错听歌词的幽默世界之后,我们现在将重点转移到更复杂的应用程序,涉及 GPT-4 和 Chat Completions 功能。本教程介绍了“文本消息天使”,这是一个创新的应用程序,旨在预先筛选文本消息,确保它们适当且对关系友好,尤其适合那些倾向于讽刺的人。

设置文本消息天使实验

我们首先设置一个新的 MLflow 实验,标题为“文本消息天使”。此实验旨在创建一个服务,该服务分析文本消息并提供有关其发送前是否合适的指导。目标是在保持积极沟通的同时,允许俏皮的语气。

GPT-4 和 Chat Completions 的作用

与我们在入门教程中使用的先前模型相比,GPT-4 在功能方面有了巨大的飞跃。它带来了增强的理解和上下文感知能力,使其非常适合以高度的准确性和细微差别来解释和响应自然语言。具体来说,Chat Completions 功能实现了更具对话性的方法,这非常适合我们的文本消息评估场景。

制作用于文本消息评估的提示

我们应用程序的核心是一个精心设计的提示,该提示指示 GPT-4 根据特定标准评估文本消息

  • 内容分析:该模型确定消息是否包含不适当的元素,例如毫无幽默感的讽刺、被动攻击性语气或任何可能损害关系的内容。
  • 响应分类:根据其分析,该模型将消息分类为“可以发送!”或建议“在发送之前,您可能需要再次阅读”。
  • 建议的更正:如果消息被认为不适当,则该模型会进一步建议替代版本。此更正后的消息旨在保留有趣且略带讽刺的语气,同时确保它不会损害关系。

此设置不仅展示了 GPT-4 在理解和生成类似人类的文本方面的先进功能,而且突出了其在日常通信场景中的实际应用潜力。

mlflow.set_experiment("Text Message Angel")

messages = [
{
"role": "user",
"content": (
"Determine if this is an acceptable response to a friend through SMS. "
"If the response contains humorless sarcasm, a passive aggressive tone, or could potentially "
"damage my relationship with them, please respond with 'You might want to read that again before "
"pressing send.', otherwise respond with 'Good to Go!'. If the response classifies as inappropriate, "
"please suggest a corrected version following the classification that will help to keep my "
"relationship with this person intact, yet still maintains a fun and somewhat snarky tone: {text}"
),
}
]

将 GPT-4 与 MLflow 集成以实现文本消息天使

在这个关键步骤中,我们将先进的 GPT-4 模型与 MLflow 集成到我们的 文本消息天使 应用程序中。此过程涉及在 MLflow 运行中设置模型、记录其配置以及准备好以供实际使用。

启动 MLflow 运行

我们启动 MLflow 运行,这是跟踪我们模型的性能、参数和输出的关键步骤。此运行封装了与我们正在使用的 GPT-4 模型相关的所有详细信息和指标。

在 MLflow 中记录 GPT-4 模型

在此运行中,我们使用 mlflow.openai.log_model 记录我们的 GPT-4 模型。此函数调用有助于在 MLflow 的跟踪系统中注册我们模型的具体信息。以下是我们正在记录的参数的细分:

  • 模型选择:我们指定 gpt-4,表明我们正在使用比之前的示例更先进的 OpenAI 模型版本。
  • 任务规范:选择 openai.chat.completions 任务,与我们创建能够分析和回复文本消息的会话式 AI 的目标相一致。
  • 工件路径:我们定义一个工件路径,MLflow 将在此处存储与模型相关的数据。
  • 消息:包含我们预定义的提示和评估文本消息的标准的 messages 变量传递给模型。
  • 模型签名:该签名定义了我们模型的输入输出模式和参数,例如 max_tokenstemperature。这些设置对于控制模型生成响应的方式至关重要。
with mlflow.start_run():
model_info = mlflow.openai.log_model(
model="gpt-4",
task=openai.chat.completions,
name="model",
messages=messages,
signature=ModelSignature(
inputs=Schema([ColSpec(type="string", name=None)]),
outputs=Schema([ColSpec(type="string", name=None)]),
params=ParamSchema(
[
ParamSpec(name="max_tokens", default=16, dtype="long"),
ParamSpec(name="temperature", default=0, dtype="float"),
]
),
),
)

加载模型以供使用

在 MLflow 中记录模型后,我们使用 mlflow.pyfunc.load_model 将其作为通用 Python 函数加载。此步骤至关重要,因为它将我们的 GPT-4 模型转换为一种易于调用并在我们的应用程序中使用的格式。

model = mlflow.pyfunc.load_model(model_info.model_uri)

测试文本消息天使

借助由 GPT-4 提供支持并集成在 MLflow 中的文本消息天使应用程序,我们现在准备对其进行测试。本节涉及创建一组示例文本消息,其中一些可能包含讽刺或被动攻击性语气,另一些则更直接和友好。

创建验证数据

我们首先创建一个名为 validation_data 的 DataFrame,其中包含各种文本消息。这些消息旨在测试模型辨别语气并在必要时提出更正的能力。

  1. 一条使用幽默来掩盖对晚餐体验的批评的消息。
  2. 一条表达不愿去看电影的讽刺评论。
  3. 一条表达对公路旅行的兴奋的直白消息。
  4. 一条简单的感谢消息。
  5. 一条关于喜欢某人唱歌的讽刺评论。

将消息提交给模型

接下来,我们将这些消息提交给我们的文本消息天使模型进行评估。该模型将分析每条消息,确定它是适当的还是需要修改。对于可能损害关系的消息,该模型将建议更合适的版本。

显示模型的响应

然后对模型的响应进行格式化,以便清晰且有吸引力地显示。此步骤对于实时评估模型的性能以及了解其更正和建议如何与消息的预期语气保持一致至关重要。

模型的输出

让我们看一下文本消息天使的响应方式

  1. 建议一种更巧妙的方式来评论晚餐。
  2. 提供了一种幽默但更柔和的替代方案,用于拒绝电影邀请。
  3. 确认公路旅行消息是适当的。
  4. 验证感谢消息是合适的。
  5. 建议一种俏皮但更友善的关于唱歌的评论。

这些响应展示了该模型对社交交流的细致理解、其保持友好但有趣的语气的能力以及其在帮助用户更有效和和谐地进行交流方面的潜力。

validation_data = pd.DataFrame(
{
"text": [
"Wow, what an interesting dinner last night! I had no idea that you could use canned "
"cat food to make a meatloaf.",
"I'd rather book a 14th century surgical operation than go to the movies with you on Thursday.",
"Can't wait for the roadtrip this weekend! Love the playlist mixes that you choose!",
"Thanks for helping out with the move this weekend. I really appreciate it.",
"You know what part I love most when you sing? The end. It means its over.",
]
}
)

chat_completions_response = model.predict(
validation_data, params={"max_tokens": 50, "temperature": 0.2}
)

formatted_output = "<br>".join(
[f"<p><strong>{line.strip()}</strong></p>" for line in chat_completions_response]
)
display(HTML(formatted_output))

在发送之前,您可能需要再次阅读。建议的回复:“哇,昨晚的晚餐真是太特别了!谁知道肉饼会如此……冒险?”


在发送之前,您可能需要再次阅读。建议的更正:“我宁愿观看 14 世纪的外科手术纪录片,也不愿错过星期四与您一起观看的电影。您觉得这个情节怎么样?”


可以发送!


可以发送!


在发送之前,您可能需要再次阅读。建议的回复:“您唱歌时我最喜欢哪个部分?返场。这意味着我可以再次听到您的声音!”

结论:使用 MLflow 和 OpenAI 的 GPT-4 推进 AI 交互

当我们到达本教程的结尾时,是时候反思我们所获得的见解了,尤其是 GPT-4 在会话式 AI 领域中的卓越功能,以及 MLflow 如何促进这些高级模型的部署和管理。

主要收获

  • 深入研究 GPT-4 的 ChatCompletions:本教程让我们获得了 GPT-4 的 ChatCompletions 功能的实践经验,展示了其理解上下文、保持对话流程以及生成类似人类的响应的能力。文本消息天使 应用程序举例说明了如何使用此类模型来改进和完善日常通信。

  • MLflow 在管理高级 AI 中的作用:MLflow 不仅在处理模型后勤方面,而且在简化复杂 AI 模型(如 GPT-4)的实验方面都显示出其优势。其强大的跟踪和记录功能使其更易于管理和迭代会话式 AI 模型。

  • 真实世界的应用和潜力文本消息天使 说明了 GPT-4 的高级功能的实际应用,展示了如何利用 AI 来增强和保护人际沟通。这是对会话式 AI 如何用于客户服务、心理健康、教育和其他领域的惊鸿一瞥。

  • AI 的发展和 MLflow 的适应性:本教程重点介绍了 MLflow 的灵活框架如何非常适合跟上 AI 的快速发展,尤其是在自然语言处理和会话式 AI 等领域。

使用会话式 AI 前进

MLflow 和 OpenAI 的 GPT-4 的结合为开发更直观和响应更快的 AI 驱动的应用程序开辟了令人兴奋的途径。当我们继续见证 AI 的进步时,MLflow 适应和管理这些复杂模型的能力变得越来越重要。

开始您的 AI 之旅

我们鼓励您在本教程中奠定的基础上,探索会话式 AI 的巨大潜力。借助 MLflow 和 OpenAI 的 GPT-4,您可以很好地创建创新的应用程序,这些应用程序可以以更像人类的方式进行对话、理解和交互。

感谢您加入我们,探索会话式 AI 和模型管理的前沿。您开发 AI 增强型通信工具的旅程才刚刚开始,我们很高兴看到您的创造力和技能将带领您走向何方!

要继续您的学习之旅,请参阅有关 MLflow 的 OpenAI 风味的更多高级教程