引言:使用 GPT-4 和 MLflow 推进沟通
欢迎来到我们的高级教程,我们将深入探讨 OpenAI GPT-4 的前沿功能,特别是其聊天完成功能。在本次教程中,我们将结合 GPT-4 先进的语言能力与 MLflow 强大的实验跟踪和部署框架,创建一个创新的应用程序:短信天使(The Text Message Angel)。
教程概览
在本教程中,我们将:
-
设置并验证环境:确保所有必要的配置(包括
OPENAI_API_KEY
)已准备就绪,以便进行实验。 -
初始化 MLflow 实验:设置一个名为 "Text Message Angel" 的 MLflow 实验,以跟踪和管理模型的性能和结果。
-
实现 GPT-4 聊天完成:利用 GPT-4 的聊天完成任务来开发一个可以分析和回复短信的应用程序。GPT-4 的此功能支持上下文感知、对话式 AI 应用,能够理解和生成类人文本回复。
-
模型部署和预测:使用 MLflow 的
pyfunc
实现部署我们的模型,并对一组示例短信进行预测。这将展示我们模型在现实世界场景中的实际应用。
短信天使应用程序
我们的应用程序,短信天使,旨在增强日常短信沟通。它将分析短信回复的语气、恰当性和对关系的影响。模型将把回复分为恰当(“Good to Go!”)或建议谨慎(“You might want to read that again before pressing send”)。对于被认为不恰当的回复,它还会建议保持友好而风趣语气的替代措辞。
为什么选择 GPT-4 和 MLflow?
-
GPT-4 的先进 AI:GPT-4 代表了 AI 语言模型开发的最新进展,提供了细致的理解和回复生成能力,非常适合像短信天使这样的基于文本的应用。
-
MLflow 的无缝管理:MLflow 简化了跟踪实验、管理不同模型版本和部署 AI 模型的过程。它与 GPT-4 的集成使我们能够专注于应用的创意方面,同时高效地处理模型管理的技术细节。
参与本教程
在学习过程中,我们鼓励您积极参与代码和概念的学习。本教程不仅仅是学习功能,更是理解这些技术结合创造性应用时的潜力。
让我们一起踏上这段旅程, harnessing MLflow 和 GPT-4 聊天完成功能的协同作用,提升我们数字世界中的沟通和互动。
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 和聊天完成功能实现短信天使
在入门教程中探索了误听歌词的幽默世界后,我们现在将重点转移到一个涉及 GPT-4 和聊天完成功能更复杂的应用。本教程介绍了“短信天使”,这是一个创新的应用程序,旨在预先筛选短信,确保它们在发送前是恰当且对关系友好的,特别是对于那些喜欢挖苦讽刺的人。
设置短信天使实验
我们首先设置一个名为“短信天使”的新 MLflow 实验。本实验旨在创建一个服务,分析短信并在发送前就其恰当性提供指导。目标是在保持积极沟通的同时允许俏皮的语气。
GPT-4 和聊天完成功能的作用
与我们在入门教程中使用的先前模型相比,GPT-4 在能力上有了巨大的飞跃。它带来了增强的理解和上下文感知能力,非常适合以高精度和细微差别解释和回复自然语言。特别是聊天完成功能,支持更具对话性的方法,这非常适合我们的短信评估场景。
为短信评估设计 Prompt
我们应用程序的核心是一个精心设计的 prompt,它指示 GPT-4 根据特定标准评估短信:
- 内容分析:模型判断消息是否包含不恰当的元素,如缺乏幽默感的挖苦、被动攻击性语气,或任何可能损害关系的内容。
- 回复分类:基于分析,模型将消息分类为“Good to Go!”或建议“read that again before pressing send.”
- 建议修正:如果消息被认为不恰当,模型会进一步建议一个替代版本。这个修正后的消息旨在保持有趣且略带嘲讽的语气,同时确保它不会损害关系。
此设置不仅展示了 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 集成,用于我们的 Text Message Angel
应用。此过程包括在 MLflow run 中设置模型,记录其配置,并为其实际使用做好准备。
启动 MLflow Run
我们启动一个 MLflow run,这是跟踪模型性能、参数和输出的关键步骤。此 run 封装了我们正在使用的 GPT-4 模型相关的所有详细信息和指标。
在 MLflow 中记录 GPT-4 模型
在此 run 中,我们使用 mlflow.openai.log_model
记录我们的 GPT-4 模型。此函数调用对于在 MLflow 的跟踪系统中注册模型特定信息至关重要。以下是我们记录的参数分解:
- 模型选择:我们指定
gpt-4
,表明我们使用的是比之前示例中更先进的 OpenAI 模型版本。 - 任务规范:选择
openai.chat.completions
任务,这与我们创建能够分析和回复短信的对话式 AI 的目标一致。 - Artifact 路径:我们定义一个 artifact 路径,MLflow 将在此存储模型相关数据。
- 消息:包含我们预定义的 prompt 和评估短信标准的
messages
变量被传递给模型。 - 模型签名:签名定义了模型的输入-输出 schema 和参数,例如
max_tokens
和temperature
。这些设置对于控制模型如何生成回复至关重要。
with mlflow.start_run():
model_info = mlflow.openai.log_model(
model="gpt-4",
task=openai.chat.completions,
artifact_path="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,其中包含各种短信。这些消息旨在测试模型辨别语气并在必要时提出修正的能力:
- 一条使用幽默来掩饰对晚餐体验的批评的消息。
- 一条表示不情愿去看电影的挖苦评论。
- 一条表达对公路旅行兴奋之情的直率消息。
- 一条简单的感谢消息。
- 一条关于欣赏某人歌声的挖苦言论。
向模型提交消息
接下来,我们将这些消息提交给我们的短信天使模型进行评估。模型将分析每条消息,确定其是否恰当或需要修改。对于可能损害关系的消息,模型将建议一个更合适的版本。
显示模型的回复
然后对模型的回复进行格式化,以便清晰、美观地显示。此步骤对于实时评估模型性能以及了解其修正和建议与消息预期语气的一致性至关重要。
模型输出
让我们来看看短信天使是如何回复的:
- 建议了一种更婉转的方式来评论晚餐。
- 为拒绝电影邀请提供了一个幽默但更温和的替代方案。
- 确认公路旅行消息是恰当的。
- 验证感谢消息是合适的。
- 建议了一个俏皮但更友善的评论歌声的言论。
这些回复展示了模型对社交沟通的细致理解,其保持友好而有趣的语气的能力,以及在帮助用户更有效、更和谐地沟通方面的潜力。
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 世纪的外科手术纪录片,也不愿错过周四和你一起看电影。这算不算一个出乎意料的剧情?”
Good to Go!
Good to Go!
您可能需要再读一遍再发送。建议回复:“你知道你唱歌我最喜欢哪个部分吗?返场。这意味着我又能听你唱了!”
结论:使用 MLflow 和 OpenAI 的 GPT-4 推进 AI 交互
随着本次教程接近尾声,是时候回顾我们获得的见解了,特别是 GPT-4 在对话式 AI 领域的卓越能力,以及 MLflow 如何促进这些高级模型的部署和管理。
主要收获
-
深入了解 GPT-4 的 ChatCompletions:本教程让我们亲身体验了 GPT-4 的 ChatCompletions 功能,展示了其理解上下文、保持对话流程和生成类人回复的能力。
Text Message Angel
应用示例说明了如何使用这样的模型来改进和完善日常沟通。 -
MLflow 在管理高级 AI 中的作用:MLflow 不仅在处理模型后勤方面展现了其强大之处,还在简化对 GPT-4 等复杂 AI 模型的实验方面起到了作用。其强大的跟踪和日志记录功能使得管理和迭代对话式 AI 模型变得更加容易。
-
实际应用和潜力:
Text Message Angel
展示了 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 风味的其他高级教程。