跳到主要内容

在 MLflow 中使用 OpenAI Flavor 简介

下载此笔记本

欢迎来到我们的教程,该教程讲解如何通过 MLflow 的 openai flavor 利用 OpenAI 的 GPT 模型的功能。在本次课程中,我们将开始探索引人入胜的 AI 驱动文本分析和修改世界。当我们深入研究 GPT 模型的功能时,您将发现其 API 的细微差别,并了解从旧的 Completions API 到更高级的 ChatCompletions 的演变,后者提供了一种对话式的交互方式。

您将学到什么:

  • 与 GPT 模型交互:了解如何与不同的模型系列(如 GPT-3.5 和 GPT-4)交互。
  • MLflow 集成:学习如何将这些模型无缝集成到 MLflow 中,使您可以创建一个专门构建的模型实例,以可预测和可重复的方式执行单个特定任务。
  • 模型定义:您将学习如何使用 Completions 端点定义一个简单的单用途提示,以定义一个您可以与之交互的函数。

背景:OpenAI 和 GPT 模型

OpenAI 通过其生成式预训练 Transformer (GPT) 模型彻底改变了自然语言处理领域。 这些模型接受了各种互联网文本的训练,并且具有生成类似人类文本、回答问题、总结段落等不可思议的能力。 从 GPT-3 到 GPT-4 的演变标志着在理解上下文和生成更准确的响应方面取得了重大改进。

Completions API

这个旧版 API 用于根据提示生成文本。 它简单、直接,除了设计有用的提示指令集所需的创造力之外,不需要花费大量精力来实现。

探索教程

在本教程中,我们将使用 MLflow 部署一个与 Completions API 交互的模型,提交一个提示,该提示将用于对模型进行的任何调用。 在本教程中,您将学习创建提示的过程、如何使用可调用参数保存模型,以及最后如何加载保存的模型以用于交互。

让我们深入了解 AI 增强通信的世界,并探索 GPT 模型在日常场景中的潜力。

先决条件

为了开始使用 OpenAI flavor,我们需要先准备一些东西。

  1. 一个 OpenAI API 帐户。 您可以在此处注册以获取访问权限,以便开始以编程方式访问地球上领先的高度复杂的 LLM 服务之一。
  2. 一个 OpenAI API 密钥。 创建帐户后,您可以通过导航到 API 密钥页面来访问此密钥。
  3. OpenAI SDK。 它是在 PyPI 上可用。 在本教程中,我们将使用 0.28.1 版本(1.0 版本之前的最后一个版本)。

要安装与此笔记本电脑兼容的 openai SDK 库以亲自尝试,以及 MLflow 与 openai 集成所需的其他 tiktoken 依赖项,只需运行

pip install 'openai<1' tiktoken

API 密钥安全概述

API 密钥,尤其是 SaaS 大型语言模型 (LLM) 的 API 密钥,由于它们与账单相关联,因此与财务信息一样敏感。

基本实践:

  • 保密性:始终保持 API 密钥私密。
  • 安全存储:首选环境变量或安全服务。
  • 频繁轮换:定期更新密钥以避免未经授权的访问。

配置 API 密钥

为了安全使用,请将 API 密钥设置为环境变量。

macOS/Linux:有关详细说明,请参阅Apple 的终端中使用环境变量指南

Windows:按照Microsoft 的环境变量文档中概述的步骤操作。

导入和一个快速的环境验证步骤

除了运行本教程所需的常用导入之外,我们还将验证我们的 API 密钥是否已设置并且可以访问。

运行以下单元格后,如果引发异常,请重新检查步骤以确保您的 API 密钥已正确注册在系统的环境变量中。

故障排除提示

如果您遇到声明必须设置 OPENAI_API_KEY 环境变量的异常,请考虑以下常见问题和补救措施

  • 内核重启:如果您使用的是 Jupyter 笔记本,请确保在设置环境变量后重启内核。 这是内核识别环境变量更改所必需的。
  • 正确的配置文件脚本:在 macOS 和 Linux 上,确保您已编辑正确的配置文件脚本(Bash 为 .bashrc,Zsh 为 .zshrc),并且使用了正确的语法。
  • 系统重启:有时,尤其是在 Windows 上,您可能需要重启系统才能使环境变量的更改生效。
  • 检查拼写和语法:验证变量 OPENAI_API_KEY 在您的环境设置和脚本中是否拼写正确。 此外,请确保您的配置文件脚本或环境变量设置中没有额外的空格或语法错误。
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"

了解提示及其工程

什么是提示?

提示是提供给 AI 模型(特别是像 GPT-3 和 GPT-4 这样的语言模型)的文本输入,以引出特定类型的响应或输出。 它指导模型响应的预期信息或格式,为 AI 的“思维过程”奠定基础,并引导其朝着期望的结果发展。

提示工程

提示工程涉及精心设计这些输入,以最大限度地提高 AI 响应的有效性和准确性。 它是关于微调提示的语言和结构以与特定任务对齐,通过减少歧义并将模型的响应导向预期应用来提高 AI 输出的质量和相关性。

一个有趣而简单的示例:歌词校正器

想象一个场景,一群喜欢流行音乐的朋友经常因为记错歌词而陷入热情而友好的争论。 为了给这些聚会增添更多乐趣,我们决定创建一个游戏,由公正的评判者——AI 模型——在有人提出建议后裁决正确的歌词,并且小组尝试从创造性的解释中猜测正确的歌曲和歌词。

为什么不是搜索引擎?

通常,人们可能会求助于互联网搜索引擎来解决这些歌词纠纷。 然而,这种方法有其缺点。 根据输入的不同,搜索结果可能不精确,导致需要花费大量时间搜索各种网页才能找到实际的歌词。 由于某些歌词的内容性质,发现的结果的真实性可能非常值得怀疑。 搜索引擎并非为此类用例而设计。

为什么 LLM 非常适合此任务

这就是像 GPT-4 这样强大的语言模型 (LLM) 成为游戏规则改变者的地方。 LLM 经过广泛数据集的训练,擅长理解和生成类似人类的文本。 它们处理自然语言输入并提供相关、准确的响应的能力使它们成为这种歌词挑战的理想选择。

我们的解决方案:歌词校正器提示

为了有效地利用 LLM,我们为我们的歌词校正器应用程序设计了一个专门的提示。 此提示的设计有两个目标

  1. 纠正听错的歌词:它指示 AI 识别歌曲的实际歌词,替换常见的听错版本。
  2. 添加幽默的解释:AI 不仅仅是纠正,还为听错的歌词为什么会产生有趣的错误提供了一个有趣的解释,为任务添加了一个引人入胜的、类似人类的元素。
"Here's a misheard lyric: {lyric}. What's the actual lyric, which song does it come from, which artist performed it, and can you give a funny explanation as to why the misheard version doesn't make sense? Also, rate the creativity of the lyric on a scale of 1 to 3, where 3 is good."

在此提示中,{lyric} 是各种听错歌词的占位符。 此设置不仅展示了模型处理和更正信息的能力,而且还以更具创造性的、类似人类的方式参与其中。

通过这个有趣而简单的示例,我们探索了 LLM 在实际应用中的潜力,展示了它们通过准确性和创造性的融合来增强日常体验的能力。

lyrics_prompt = (
"Here's a misheard lyric: {lyric}. What's the actual lyric, which song does it come from, which artist performed it, and can you give a funny "
"explanation as to why the misheard version doesn't make sense? Also, rate the creativity of the lyric on a scale of 1 to 3, where 3 is good."
)

在 MLflow 中设置和记录模型

在本节中,我们将定义我们的模型并将其记录到 MLflow。 这会将我们的提示(定义我们希望响应的性质的特征)与配置参数集成在一起,这些参数指示 MLflow 将如何与 OpenAI SDK 交互,以便选择具有我们期望参数的正确模型。

  • MLflow 实验:我们的第一步是创建或重用一个名为“歌词校正器”的MLflow 实验。 MLflow 中的实验对于组织和跟踪不同的模型运行,以及它们相关的数据和参数至关重要。

  • 模型记录:在MLflow 运行中,我们记录我们的模型,指定诸如模型类型 (gpt-4o-mini)、其预期任务 (openai.completions) 以及我们设计的自定义提示等详细信息。 此操作可确保 MLflow 准确捕获我们模型的本质和操作上下文。

  • 模型签名:在这里,我们定义模型的输入和输出模式。 我们期望一个字符串作为输入(听错的歌词)并输出一个字符串(带有幽默解释的更正歌词)。 设置了诸如 max_tokenstemperaturebest_of 等附加参数以控制模型的文本生成过程。

  • 模型加载:最后,我们将记录的模型作为 MLflow 中的通用 Python 函数加载。 这使得模型可以随时用于预测和进一步交互,允许我们像使用指定输入的常规 Python 函数一样调用它。

此设置不仅建立了我们的歌词校正器模型,而且还演示了如何有效地使用 MLflow 来管理复杂的 AI 模型,从而确保在实际应用中进行高效的跟踪、管理和部署。

# Create a new experiment (or reuse the existing one if we've run this cell more than once)
mlflow.set_experiment("Lyrics Corrector")

# Start our run and log our model
with mlflow.start_run():
model_info = mlflow.openai.log_model(
model="gpt-4o-mini",
task=openai.completions,
name="model",
prompt=lyrics_prompt,
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"),
ParamSpec(name="best_of", default=1, dtype="long"),
]
),
),
)

# Load the model as a generic python function that can be used for completions
model = mlflow.pyfunc.load_model(model_info.model_uri)

生成和纠正听错的歌词

让我们通过使用一组幽默地听错的歌词来测试我们的歌词校正器模型,从而获得一些乐趣。 这些短语以其有趣的误解而闻名,并且将是了解该模型如何以幽默的方式表现的绝佳方式。

生成有问题的歌词

我们准备了一系列经常被幽默地听错的标志性歌曲歌词

  • “我们在香肠卷上建造了这座城市”(“摇滚乐”的变体)
  • “抱紧我,托尼·丹扎”(而不是“娇小舞者”)
  • “甜蜜的梦是由奶酪制成的。 我有什么资格不喜欢布里? 我切达干酪的世界和羊乳酪”(对原始歌词的俗气演绎)
  • “请原谅我吻了这个家伙”(而不是“天空”)
  • “我想整夜摇滚,每天的一部分”(将“每天”改为不那么坚定的时间表)
  • “今晚别四处游荡,它注定会夺走你的视线,右边有一个浴室。”(对 Bad Moon Rising 的创造性演绎)
  • “我想你会明白,当我说某些事情时,我想占有你的土地”(对披头士乐队经典情歌的黑暗演绎)

这些听错的版本为原始行增添了一层幽默和怪癖,使它们成为我们歌词校正器的完美候选者。

向模型提交歌词

现在,是时候看看我们的模型如何解释这些创造性的演绎了。 我们将听错的歌词提交给歌词校正器,它将使用其 AI 功能来确定实际歌词,并为听错的版本可能出错的原因提供一个诙谐的解释。

查看模型的回应

处理后,模型的回应将被格式化并以易于阅读的方式显示。 此步骤将突出显示模型对歌词的理解及其以幽默的方式参与内容的能力。 这是 AI 的语言准确性与幽默感的融合展示,带来了一种有趣且富有洞察力的体验。

让我们看看我们的歌词校正器为这些经典的听错歌词提出了什么有趣的更正和解释!

# Generate some questionable lyrics
bad_lyrics = pd.DataFrame(
{
"lyric": [
"We built this city on sausage rolls",
"Hold me closer, Tony Danza",
"Sweet dreams are made of cheese. Who am I to dis a brie? I cheddar the world and a feta cheese",
"Excuse me while I kiss this guy",
"I want to rock and roll all night and part of every day",
"Don't roam out tonight, it's bound to take your sight, there's a bathroom on the right.",
"I think you'll understand, when I say that somethin', I want to take your land",
]
}
)

# Submit our faulty lyrics to the model
fix_my_lyrics = model.predict(bad_lyrics, params={"max_tokens": 500, "temperature": 0})

# See what the response is
formatted_output = "<br>".join(
[f"<p><strong>{line.strip()}</strong></p>" for line in fix_my_lyrics]
)
display(HTML(formatted_output))

实际歌词是 Starship 乐队歌曲“We Built This City”中的“我们在摇滚乐上建造了这座城市”。 听错的版本没有道理,因为香肠卷是一种食物,而不是建筑材料。 也许有人把“rock”这个词误听成“roll”,他们的脑海中自动想到了食物。 听错的歌词的创造力为 2,因为将听起来相似的词混淆是一个常见的错误。


实际歌词是 Elton John 歌曲“Tiny Dancer”中的“抱紧我,娇小舞者”。 听错的版本很常见,很多人认为这句歌词是关于演员托尼·丹扎而不是一个娇小舞者。 艺术家 Elton John 以其华丽而夸张的表演而闻名,因此想象他唱关于被托尼·丹扎抱住的歌词并不牵强。 然而,这首歌与歌曲的背景不太相符,这首歌是关于一个梦想成为著名舞者的年轻女孩。 在 1 到 3 的范围内,我会将听错的歌词的创造力评为 2。 这是一个常见的错误,并不是特别聪明,但它确实为歌曲添加了一个幽默的转折。


实际歌词是“甜蜜的梦是由此构成的。 我有什么资格不同意? 我环游世界和七大洋。 每个人都在寻找某种东西。” 它来自 Eurythmics 乐队的歌曲“Sweet Dreams (Are Made of This)”。 听错的版本没有道理,因为它用“奶酪”代替了“此”,并将歌词的其余部分更改为关于不同类型的奶酪。 它还将歌曲的含义从对寻找满足感和目标的思考更改为对奶酪的愚蠢颂歌。 我会将听错的歌词的创造力评为 2。 这是一个巧妙的文字游戏,但它与原始歌曲不太相符,也没有什么意义。


实际歌词是 Jimi Hendrix 歌曲“Purple Haze”中的“请原谅我吻天空”。 听错的版本没有道理,因为它暗示歌手要吻一个随机的人,这不是这首歌的含义。 也许这位歌手因为“紫色雾霾”而感到有些困惑和迷失方向,错误地认为他们面前有一个人。 我会将听错的歌词的创造力评为 2,因为它利用了听起来相似的词,但与歌曲的背景不太相符。


实际歌词是 Kiss 乐队歌曲“Rock and Roll All Nite”中的“我想整夜摇滚,每天都派对”。 听错的版本没有道理,因为它暗示这个人只想在白天而不是在晚上摇滚,这与这首歌的精神背道而驰。 它还暗示他们只想在一天中的一部分时间派对,而不是整天整夜。 我会将听错的歌词的创造力评为 2,因为它仍然保持了歌曲的整体主题,但带有一个幽默的转折。


实际歌词是 Creedence Clearwater Revival 乐队歌曲“Bad Moon Rising”中的“今晚不要四处游荡,它注定会夺走你的生命,正在升起一轮邪恶的月亮”。 听错的版本没有道理,因为右边的浴室不会对某人的视力或生命构成任何危险。 也许听错的版本是警告不要在晚上使用浴室,因为它被鬼魂缠身或被诅咒了。 我会将听错的歌词的创造力评为 2。


实际歌词是披头士乐队歌曲“I Want to Hold Your Hand”中的“我想你会明白,当我说某些事情时,我想握住你的手”。 听错的歌词的创造力为 3。 原始歌词是对爱的甜蜜而纯真的表达,而听错的版本则将其变成了一种古怪而具有侵略性的渴望,想要占有某人的土地。 这与原始含义完全背道而驰,并为歌曲添加了一个幽默的转折。 它还利用了听错的歌词通常毫无意义且脱离上下文的想法。

通过提示工程完善我们的方法

在查看了我们歌词校正器模型的初始结果后,我们发现这些回应虽然有趣,但在创造力评分方面并没有完全达到目标。 这些评分似乎聚集在量表的中间位置附近,缺乏我们追求的差异化。 这一观察结果使我们进入了迭代且细致的提示工程过程,这是微调 AI 模型回应的关键步骤。

提示工程的迭代过程

提示工程不是一蹴而就的事情; 这是一个迭代过程。 它涉及根据模型的回应完善提示,并对其进行调整以更精确地与我们的目标对齐。 当使用像 GPT-3 和 GPT-4 这样先进的语言模型时,此过程至关重要,这些模型虽然功能强大,但通常需要详细的指导才能生成特定类型的输出。

实现精致的回应

我们的初始提示为任务提供了一个基本结构,但缺乏关于如何有效评估听错歌词的创造力的详细指导。 为了解决这个问题,我们需要

  1. 提供更清晰的说明:通过关于什么构成不同创造力水平的更明确的说明来增强提示。
  2. 纳入示例:在提示中包含说明低、中和高创造力评分的示例。
  3. 明确期望:明确评分应考虑的不仅仅是幽默感,还有原创性和与原始歌词的偏差。

我们改进的提示

在下一个单元格中,您将看到一个改进的提示,该提示旨在从模型中引出更细致和多样化的回应,从而为评估听错歌词的创造力提供更清晰的框架。 通过提示工程完善我们的方法,我们的目标是实现更准确和多样化的评分,这些评分与我们对歌词校正器的预期目标更好地对齐。

# Define our prompt
improved_lyrics_prompt = (
"Here's a misheard lyric: {lyric}. What's the actual lyric, which song does it come from, which artist performed it, and can "
"you give a funny explanation as to why the misheard version doesn't make sense? Additionally, please provide an objective rating to the "
"misheard lyric on a scale of 1 to 3, where 1 is 'not particularly creative' (minimal humor, closely resembles the "
"original lyrics and the intent of the song) and 3 is 'hilariously creative' (highly original, very humorous, significantly different from "
"the original). Explain your rating briefly. For example, 'I left my heart in San Francisco' misheard as 'I left my hat in San Francisco' "
"might be a 1, as it’s a simple word swap with minimal humor. Conversely, 'I want to hold your hand' misheard as 'I want to steal your land' "
"could be a 3, as it significantly changes the meaning in a humorous and unexpected way."
)
# Create a new experiment for the Improved Version (or reuse the existing one if we've run this cell more than once)
mlflow.set_experiment("Improved Lyrics Corrector")

# Start our run and log our model
with mlflow.start_run():
model_info = mlflow.openai.log_model(
model="gpt-4o-mini",
task=openai.completions,
name="model",
prompt=improved_lyrics_prompt,
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"),
ParamSpec(name="best_of", default=1, dtype="long"),
]
),
),
)

# Load the model as a generic python function that can be used for completions
improved_model = mlflow.pyfunc.load_model(model_info.model_uri)
# Submit our faulty lyrics to the model
fix_my_lyrics_improved = improved_model.predict(
bad_lyrics, params={"max_tokens": 500, "temperature": 0.1}
)

# See what the response is
formatted_output = "<br>".join(
[f"<p><strong>{line.strip()}</strong></p>" for line in fix_my_lyrics_improved]
)
display(HTML(formatted_output))

实际歌词是 Starship 乐队歌曲“We Built This City”中的“我们在摇滚乐上建造了这座城市”。 听错的版本在量表上为 3,因为它完全改变了歌曲的含义并添加了一个幽默的转折。 听错的版本没有道理,因为它用一种食物香肠卷代替了标志性的摇滚乐类型。 这可以解释为对当前音乐产业的评论,流行的歌曲经常因为肤浅和缺乏实质内容而受到批评。 听错的版本也可以看作是对英国文化的致敬,香肠卷在英国文化中是一种流行的零食。 总的来说,听错的歌词为这首歌添加了一个有趣且意想不到的元素。


实际歌词是 Elton John 歌曲“Tiny Dancer”中的“抱紧我,娇小舞者”。 听错的版本很常见,很多人认为这句歌词是关于演员托尼·丹扎而不是一个舞者。 听错的版本在量表上为 2,因为它对原始歌词是一种幽默且意想不到的解释,但仍然与歌曲的原始版本和意图密切相关。 听错的版本没有道理,因为托尼·丹扎并不以其舞蹈技巧而闻名,因此有人想要专门为了他的舞蹈能力而被他抱紧是很奇怪的。 它还改变了歌曲的含义,因为原始歌词是关于一个小而精致的舞者,而听错的版本是关于一位著名的演员。


实际歌词是“甜蜜的梦是由此构成的。 我有什么资格不同意? 我环游世界和七大洋。 每个人都在寻找某种东西。” 它来自 Eurythmics 乐队的歌曲“Sweet Dreams (Are Made of This)”。 听错的版本是一种文字游戏,用“奶酪”代替了“此”,并用不同类型的奶酪代替了“七大洋”。 听错的版本没有道理,因为奶酪通常不与梦想或环游世界联系在一起。 它还将歌曲的含义从对欲望和目的的哲学探索更改为对奶酪的愚蠢颂歌。 我会将这种听错的歌词评为 2。 它的创造力和幽默感都相当不错,但它仍然与原始歌词密切相关,并且没有太偏离歌曲的意图。


实际歌词是 Jimi Hendrix 歌曲“Purple Haze”中的“请原谅我吻天空”。 听错的版本很常见,很多人认为 Hendrix 在唱关于吻一个家伙而不是天空。 有趣的解释:也许听错的版本出现是因为 Hendrix 以其狂野和不可预测的表演而闻名,所以人们认为他可能会随机亲吻舞台上的一个家伙。 或者也许他们认为他唱的是与空中男性恋人的浪漫时刻。 客观评分:2。 虽然听错的版本很常见并且确实具有一些幽默感,但它并不是特别原创或出乎意料。 这是一个简单的词语交换,在歌曲的背景下仍然在某种程度上是有意义的。


实际歌词是 Kiss 乐队歌曲“Rock and Roll All Nite”中的“我想整夜摇滚,每天都派对”。 听错的歌词“我想整夜摇滚,每天的一部分”没有道理,因为它暗示这个人只想在一天中的一部分时间摇滚,而不是整夜每天都摇滚。 它还改变了歌词的含义,从想要整天整夜都派对到只想在一天中的一部分时间派对。 我会将这种听错的歌词评为 2。 虽然它确实具有一些幽默感并改变了原始歌词的含义,但它仍然与原始歌词非常相似,并且没有完全改变歌曲的意图。


实际歌词是 Creedence Clearwater Revival 乐队歌曲“Bad Moon Rising”中的“正在升起一轮邪恶的月亮”。 听错的歌词很常见,很多人听到的是“右边有一个浴室”而不是正确的歌词。 听错的版本没有道理,因为它将歌曲的基调和含义从关于危险情况的警告更改为关于浴室位置的普通提醒。 客观评分:2。 虽然听错的歌词并不是特别具有创造力,但它确实为这首歌添加了一个幽默的转折,并且是一个常见的误解。


实际歌词是披头士乐队歌曲“I Want to Hold Your Hand”中的“我想你会明白,当我说某些事情时,我想握住你的手”。 听错的歌词在量表上为 3。 原始歌词是对爱的甜蜜而纯真的表达,而听错的版本则将其变成了一种古怪而具有侵略性的渴望,想要占有某人的土地。 这与原始含义完全背道而驰,并为歌曲添加了一个幽默的转折。 它还利用了听错的歌词通常毫无意义且脱离上下文的想法。

结论:MLflow 在管理 AI 模型实验中的力量

当我们结束我们的教程时,让我们回顾一下我们获得的重大见解,特别是专注于 MLflow 如何增强 OpenAI 先进语言模型的实验和部署。

主要收获

  • 提示工程和实验:本教程强调了提示工程的迭代性质,展示了提示中的细微变化如何导致 AI 模型产生截然不同的结果。 MLflow 在此发挥着关键作用,允许我们有效地跟踪这些变化、比较结果并迭代到最佳提示配置。

  • 使用 MLflow 简化 AI 模型管理:MLflow 记录模型、管理实验和处理机器学习生命周期细微差别的能力是不可或缺的。 它简化了管理和部署 AI 模型的复杂过程,使这些任务对开发人员和数据科学家都更易于访问。

  • 利用 OpenAI 的高级模型:MLflow 中 OpenAI GPT 模型的无缝集成展示了最先进的 AI 技术如何在实际场景中应用。我们基于 GPT-3.5-turbo 模型构建的歌词纠正器示例,仅仅是众多潜在应用中的一个例子,它融合了创造力、幽默感和高级语言理解。

  • MLflow pyfunc 实现的优势:MLflow 中的 pyfunc 实现允许灵活且直接地访问像 OpenAI GPT 这样的高级模型。它使用户能够将这些模型部署为通用的 Python 函数,从而大大增强了它们在各种应用程序中的可用性和集成度。

前瞻性

MLflow 与 OpenAI GPT 模型的集成为创新应用程序开辟了无限的可能性。随着 AI 技术的不断发展,MLflow 的多功能性和稳健性将是将这些进步转化为实用且有影响力的解决方案的关键。

鼓励进一步探索

我们邀请您继续探索将 MLflow 强大的模型管理功能与 OpenAI 模型先进的语言能力相结合的巨大潜力。无论您是增强沟通、自动化任务还是创建新的 AI 驱动服务,这种结合都为您提供了一个丰富的平台,让您发挥创造力和技术专长。

感谢您加入我们探索 AI 模型实验和管理。我们很高兴看到您如何在即将到来的项目和创新中使用这些强大的工具!

为了继续学习 MLflow 和 OpenAI 如何协同工作,我们鼓励您继续学习更高级的示例,MLflow OpenAI flavor 的自定义 Python 模型示例