简介:通过 GPT-4 和 MLflow 推进沟通
欢迎来到我们的高级教程,我们将深入探讨 OpenAI 的 GPT-4 的尖端能力,特别是探索其 Chat Completions 功能。在本节中,我们将结合 GPT-4 的高级语言能力与 MLflow 的强大实验跟踪和部署框架,创建一个创新的应用程序:文本消息天使。
Download this Notebook教程概览
在本教程中,我们将:
设置和验证环境:确保所有必要的配置,包括
OPENAI_API_KEY
,都已就位以进行我们的实验。初始化MLflow实验:设置一个名为“文本信息天使”的MLflow实验,以跟踪和管理我们模型的性能和结果。
使用GPT-4实现聊天补全:利用GPT-4的聊天补全任务开发一个能够分析和响应文本消息的应用程序。GPT-4的这一功能允许开发能够理解并生成类似人类文本响应的上下文感知对话式AI应用。
模型部署与预测:使用 MLflow 的
pyfunc
实现部署我们的模型,并对一组示例文本消息进行预测。这将展示我们的模型在实际场景中的应用。
文本消息天使应用程序
我们的应用程序,文本信息天使,旨在增强日常文本交流。它将分析短信回复的语气、适当性以及对关系的影响。模型将回复分类为适当(“可以发送!”)或建议谨慎(“在发送前你可能想再读一遍”)。对于被认为不适当的回复,它还将建议保持友好但机智语气的替代措辞。
为什么选择 GPT-4 和 MLflow?
GPT-4的高级人工智能:GPT-4代表了最新的人工智能语言模型开发成果,提供了细致的理解和响应生成能力,非常适合像文本消息天使这样的基于文本的应用。
MLflow的无缝管理:MLflow简化了跟踪实验、管理不同模型版本和部署AI模型的过程。它与GPT-4的集成使我们能够专注于应用程序的创造性方面,同时高效地处理模型管理的技术细节。
参与教程
随着我们的进展,我们鼓励你积极地与所呈现的代码和概念互动。本教程不仅关乎学习功能,还关乎理解这些技术在创造性结合时的潜力。
让我们开始这段旅程,利用 MLflow 和 GPT-4 的聊天补全功能,提升我们数字世界中的沟通和互动。
[1]:
import warnings
# Disable a few less-than-useful UserWarnings from setuptools and pydantic
warnings.filterwarnings("ignore", category=UserWarning)
[2]:
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和聊天补全实现文本消息天使
在探索了 openai
风格的入门教程中幽默的歌词误解世界之后,我们现在将注意力转向一个更复杂的应用,涉及 GPT-4 和聊天补全功能。本教程介绍了“短信天使”,这是一个创新的应用程序,旨在预筛选短信,确保它们是恰当且有利于关系的,特别是对于那些倾向于使用讽刺的人。
设置文本消息天使实验
我们首先设置一个名为“短信天使”的新MLflow实验。该实验旨在创建一个服务,该服务在发送前分析短信并提供关于其适当性的指导。目标是保持积极的沟通,同时允许使用轻松的语气。
GPT-4 和聊天完成的作用
GPT-4 相较于我们在入门教程中使用的先前模型,代表了能力上的巨大飞跃。它带来了增强的理解力和上下文意识,使其非常适合以高度的准确性和细微差别来解释和回应自然语言。特别是 Chat Completions 功能,使得对话方式更加自然,这对于我们的文本消息评估场景非常理想。
制作文本消息评估的提示
我们应用程序的核心是一个精心设计的提示,它指导GPT-4根据特定标准评估文本消息:
内容分析:模型判断消息是否包含不适宜的元素,如缺乏幽默的讽刺、被动攻击的语气,或任何可能损害关系的言论。
响应分类:根据其分析,模型将消息分类为“可以发送!”或建议“在发送前再读一遍。”
建议的修正:如果一条消息被认为不合适,模型会进一步建议一个替代版本。这个修正后的消息旨在保持一种有趣且略带讽刺的语气,同时确保它不会损害关系。
这种设置不仅展示了GPT-4在理解和生成类人文本方面的先进能力,还突显了其在日常沟通场景中的实际应用潜力。
[3]:
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 运行中设置模型,记录其配置,并为其准备实际使用。
开始 MLflow 运行
我们启动一个 MLflow 运行,这是跟踪我们模型性能、参数和输出的关键步骤。此运行封装了我们正在使用的 GPT-4 模型的所有相关细节和指标。
在 MLflow 中记录 GPT-4 模型
在这个运行中,我们使用 mlflow.openai.log_model
记录我们的 GPT-4 模型。这个函数调用在 MLflow 的跟踪系统中注册我们模型的具体信息方面起着关键作用。以下是我们正在记录的参数的细分:
模型选择:我们指定
gpt-4
,表明我们正在使用一个比之前示例中更为先进的 OpenAI 模型版本。任务规范:选择了
openai.chat.completions
任务,这与我们创建能够分析和响应文本消息的对话式AI的目标一致。Artifact 路径: 我们定义一个 artifact 路径,MLflow 将在此存储与模型相关的数据。
消息:包含我们预定义提示和评估文本消息标准的
messages
变量被传递给模型。模型签名: 签名定义了我们模型的输入输出模式和参数,例如
max_tokens
和temperature
。这些设置在控制模型生成响应的方式中至关重要。
[4]:
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 模型转换为一种易于调用并在我们的应用程序中使用的格式。
[5]:
model = mlflow.pyfunc.load_model(model_info.model_uri)
测试文本消息天使
借助由GPT-4驱动的文本消息天使应用程序并集成在MLflow中,我们现在已准备好对其进行测试。本节涉及创建一组示例文本消息,其中一些可能包含讽刺或被动攻击的语气,而另一些则更为直接和友好。
创建验证数据
我们首先创建一个名为 validation_data
的 DataFrame,其中包含各种文本消息。这些消息旨在测试模型辨别语气和在必要时建议修正的能力:
一条用幽默掩盖对晚餐体验批评的信息。
一个表达不愿去看电影的讽刺性评论。
一条表达对公路旅行兴奋之情的直接信息。
一条简单的感谢信息。
关于享受某人唱歌的讽刺评论。
向模型提交消息
接下来,我们将这些消息提交给我们的文本消息天使模型进行评估。该模型将分析每条消息,确定其是否合适或需要修改。对于可能损害关系的短信,模型将建议一个更合适的版本。
显示模型的响应
模型的响应随后被格式化以进行清晰且吸引人的展示。这一步骤对于实时评估模型的性能以及理解其修正和建议如何与消息的预期语气相符至关重要。
模型的输出
让我们来看看文本消息天使是如何回应的:
建议了一种更委婉的方式来评论晚餐。
提供了一个幽默但更温和的拒绝电影邀请的替代方案。
确认公路旅行的信息是合适的。
验证了感谢信息为合适。
建议了一个既有趣又更友善的关于唱歌的评论。
这些回复展示了模型对社交沟通的微妙理解,它能够保持友好而有趣的态度,以及它在帮助用户更有效地和谐沟通方面的潜力。
[6]:
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))
You might want to read that again before pressing send. Suggested response: "Wow, dinner last night was certainly unique! Who knew meatloaf could be so... adventurous?"
You might want to read that again before pressing send. Suggested correction: "I'd rather watch a 14th century surgical operation documentary than miss out on the movies with you on Thursday. How's that for a plot twist?"
Good to Go!
Good to Go!
You might want to read that again before pressing send. Suggested response: "You know what part I love most when you sing? The encore. It means I get to hear you again!"
结论:通过 MLflow 和 OpenAI 的 GPT-4 推进 AI 交互
随着本教程的结束,是时候反思我们获得的知识了,特别是GPT-4在对话式AI领域的显著能力,以及MLflow如何促进这些先进模型的部署和管理。
关键要点
深入探讨 GPT-4 的 ChatCompletions:本教程让我们亲身体验了 GPT-4 的 ChatCompletions 功能,展示了其理解上下文、保持对话流程以及生成类人响应的能力。
文本信息天使
应用程序展示了如何利用这种模型来改进和优化日常沟通。MLflow在管理高级AI中的角色:MLflow不仅在处理模型物流方面展现了其优势,还在简化与GPT-4等复杂AI模型的实验方面表现出色。其强大的跟踪和日志记录功能使得管理和迭代对话式AI模型变得更加容易。
现实应用与潜力:
文本信息天使
展示了 GPT-4 高级能力的实际应用,展示了如何利用 AI 来增强和保护人际交流。这是对话式 AI 如何在客户服务、心理健康、教育和其他领域中使用的一个缩影。AI与MLflow的适应性演变:本教程强调了MLflow灵活的框架如何很好地适应AI的快速发展,特别是在自然语言处理和对话式AI等领域。
与对话式人工智能共同前进
MLflow 与 OpenAI 的 GPT-4 的结合为开发更直观和响应更快的 AI 驱动应用开辟了令人兴奋的途径。随着我们继续见证 AI 的进步,MLflow 适应和管理这些复杂模型的能力变得越来越重要。
踏上你的AI之旅
我们鼓励您在此教程奠定的基础上,探索对话式AI的巨大潜力。借助MLflow和OpenAI的GPT-4,您完全有能力创建能够以更人性化的方式进行对话、理解和互动的创新应用。
感谢您加入我们,一起探索会话式AI和模型管理的尖端技术。您开发AI增强型通信工具的旅程才刚刚开始,我们很兴奋地期待您的创造力和技能将引领您走向何方!
要继续您的学习之旅,请参阅 MLflow 的 OpenAI 风格的进阶教程。