跳至主要内容

MLflow 中 OpenAI Flavor 的使用介绍

下载此 Notebook

欢迎阅读本教程,了解如何通过 MLflow 的 openai flavor 利用 OpenAI 的 GPT 模型。在本教程中,我们将探索由 AI 驱动的文本分析和修改的有趣世界。深入研究 GPT 模型的能力时,您将发现其 API 的细微之处,并了解从旧的 Completions API 到提供会话式交互的更高级的 ChatCompletions 的演变。

您将学到什么:

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

背景:OpenAI 和 GPT 模型

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

Completions API

这个传统 API 用于根据 Prompt 生成文本。它简单、直接,实现起来无需太多精力,只需要创造性地构建一套有用的 Prompt 指令集。

探索本教程

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

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

先决条件

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

  1. 一个 OpenAI API 账户。您可以在此处注册以获得访问权限,从而开始以编程方式访问地球上领先的高度复杂的 LLM 服务之一。
  2. 一个 OpenAI API Key。创建账户后,导航至API keys 页面即可获取。
  3. OpenAI SDK。可在此处PyPI 上获取。本教程将使用 0.28.1 版本(1.0 版本发布前的最后一个版本)。

要安装与此 notebook 兼容的 openai SDK 库以便自行尝试,以及 MLflow 集成 openai 所需的附加 tiktoken 依赖项,只需运行

pip install 'openai<1' tiktoken

API Key 安全概述

API key,特别是对于 SaaS 大型语言模型 (LLM) 来说,由于与计费相关联,其敏感性与财务信息一样高。

如果您有兴趣了解 MLflow 中安全管理访问密钥的替代解决方案,请在此处阅读 MLflow AI gateway 的相关内容。

基本实践:

  • 保密性:务必妥善保管 API key。
  • 安全存储:首选环境变量或安全服务。
  • 定期轮换:定期更新 key 以避免未经授权的访问。

配置 API Key

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

macOS/Linux:请参考Apple 关于在 Terminal 中使用环境变量的指南以获取详细说明。

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

导入和快速环境验证步骤

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

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

故障排除提示

如果您遇到抛出异常并提示必须设置 OPENAI_API_KEY 环境变量,请考虑以下常见问题和解决方法

  • 重启内核:如果您使用的是 Jupyter notebook,请确保在设置环境变量后重启内核。这是内核识别环境变量更改所必需的。
  • 正确的配置文件脚本:在 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"

理解 Prompt 及其工程

什么是 Prompt?

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

Prompt 工程

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

一个有趣且简单的示例:歌词纠错器

设想这样一个场景:一群喜欢流行音乐的朋友,经常因为记错歌词而进行充满激情但友好的争论。为了给这些聚会增添更多乐趣,我们决定创建一个游戏,由一位公正的裁判——一个 AI 模型——在有人提出创意解释并让大家猜测正确的歌曲和歌词后,裁定正确的歌词。

为什么不用搜索引擎?

通常,人们可能会求助于互联网搜索引擎来解决这些歌词争议。然而,这种方法有其缺点。根据输入的不同,搜索结果可能不准确,导致花费大量时间浏览各种网页来寻找实际歌词。由于某些歌词内容的性质,找到的结果的真实性可能相当可疑。搜索引擎并非为考虑到此类用例而设计。

为什么 LLM 非常适合这项任务

这时,强大的语言模型 (LLM) 如 GPT-4 就成为颠覆者。LLM 在大量数据集上进行训练,擅长理解和生成类似人类的文本。它们处理自然语言输入并提供相关、准确响应的能力使其成为应对歌词挑战的理想选择。

我们的解决方案:歌词纠错 Prompt

为了有效利用 LLM,我们为歌词纠错器应用程序精心设计了一个专门的 Prompt。此 Prompt 设计时考虑了两个目标

  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."

在此 Prompt 中,{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 中。这将把定义我们期望响应特征的 Prompt 与 MLflow 如何与 OpenAI SDK 交互以选择具有我们期望参数的正确模型的配置参数集成在一起。

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

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

  • 模型签名:在这里,我们为模型定义了输入和输出 schema。我们期望输入是一个字符串(听错的歌词),输出是一个字符串(纠正后的歌词和幽默解释)。还设置了其他参数,如 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,
artifact_path="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)

生成并纠正听错的歌词

让我们用歌词纠错器模型来测试一组幽默的听错歌词,找点乐子。这些短语因其有趣的误解而闻名,将很好地展示模型在幽默方面的表现。

生成一些可疑的歌词

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

  • “We built this city on sausage rolls”(“rock and roll”的变体)
  • “Hold me closer, Tony Danza”(代替“tiny dancer”)
  • “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”(而不是“the sky”)
  • “I want to rock and roll all night and part of every day”(将“every day”改为不那么投入的日程)
  • “Don't roam out tonight, it's bound to take your sight, there's a bathroom on the right.”(对 Bad Moon Rising 的创意改编)
  • “I think you'll understand, when I say that somethin', I want to take your land”(对经典披头士情歌的黑暗改编)

这些听错的版本为原歌词增添了一层幽默和古怪,使其成为我们歌词纠错器的完美候选。

将歌词提交给模型

现在,是时候看看我们的模型如何解读这些创意改编了。我们将听错的歌词提交给歌词纠错器,它将利用其 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”中的“We built this city on rock and roll”。听错的版本没有意义,因为 sausage rolls 是一种食物,而不是建筑材料。也许有人把“rock”听成了“roll”,然后大脑自动联想到食物。听错歌词的创意程度是 2 分,因为混淆发音相似的词语是很常见的错误。


实际歌词是 Elton John 歌曲“Tiny Dancer”中的“Hold me closer, tiny dancer”。听错的版本很常见,许多人认为这句歌词是关于演员 Tony Danza,而不是一个小小舞者。歌手 Elton John 以其华丽夸张的表演而闻名,所以想象他唱着被 Tony Danza 抱着并不算牵强。然而,这在歌曲的背景下没有太大意义,这首歌是关于一个梦想成为著名舞者的年轻女孩的。在 1 到 3 的评分标准下,我会给听错歌词的创意打 2 分。这是一个常见的错误,不太巧妙,但确实为歌曲增添了幽默的变体。


实际歌词是 Eurythmics 乐队歌曲“Sweet Dreams (Are Made of This)”中的“Sweet dreams are made of this. Who am I to disagree? I travel the world and the seven seas. Everybody's looking for something.” 听错的版本没有意义,因为它将“this”替换为“cheese”,并将其余歌词改为关于不同种类的奶酪。它还将歌曲的含义从对追求成就感和人生目的的思考改变为对奶酪的愚蠢颂歌。我会给听错歌词的创意打 2 分。这是一个巧妙的双关,但与原歌词不太吻合,意义也不大。


实际歌词是 Jimi Hendrix 歌曲“Purple Haze”中的“Excuse me while I kiss the sky”。听错的版本没有意义,因为它暗示歌手要去亲吻一个陌生的男人,但这并不是歌曲的主题。也许歌手正因“紫色迷雾”而感到有些困惑和迷失方向,误以为眼前站着一个人。我会给听错歌词的创意打 2 分,因为它利用了发音相似的词语,但与歌曲的上下文不太吻合。


实际歌词是 Kiss 乐队歌曲“Rock and Roll All Nite”中的“I want to rock and roll all night and party every day”。听错的版本没有意义,因为它暗示这个人只想在白天摇滚而不是晚上,这与歌曲的精神相悖。它还暗示他们只想派对一天中的一部分时间,而不是整天整夜。我会给听错歌词的创意打 2 分,因为它仍然保留了歌曲的总体主题,但带有一点幽默感。


实际歌词是 Creedence Clearwater Revival 乐队歌曲“Bad Moon Rising”中的“Don't go 'round tonight, it's bound to take your life, there's a bad moon on the rise”。听错的版本没有意义,因为它将歌曲的基调和含义从关于危险情况的警告改变为关于浴室位置的平淡提醒。也许听错的版本是在警告人们晚上不要使用浴室,因为它闹鬼或被诅咒了。我会给听错歌词的创意打 2 分。


实际歌词是 The Beatles 乐队歌曲“I Want to Hold Your Hand”中的“I think you'll understand, when I say that somethin', I want to hold your hand.” 听错的版本没有意义,因为在情歌中想夺取某人的土地是一件非常具有攻击性且奇怪的事情。它也不符合歌曲的总体主题,这首歌是关于想亲近某人并握住他们的手。我会给听错歌词的创意打 1 分,因为它没什么实际意义,也没有给原歌词增添任何新的或有趣的内容。

使用 Prompt 工程优化我们的方法

在审查了歌词纠错器模型的初步结果后,我们发现响应虽然有趣,但在创意评分方面并未达到预期。评分似乎集中在中间范围,缺乏我们想要区分度。这一观察结果引导我们进入迭代且细致的 Prompt 工程过程,这是微调 AI 模型响应的关键步骤。

Prompt 工程的迭代过程

Prompt 工程并非一蹴而就;它是一个迭代过程。它涉及根据模型的响应来优化 Prompt,并进行调整以更精确地符合我们的目标。在使用 GPT-3 和 GPT-4 等高级语言模型时,此过程至关重要,这些模型虽然强大,但通常需要详细指导才能生成特定类型的输出。

获得更精细的响应

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

  1. 提供更清晰的指令:用更明确的指令增强 Prompt,说明不同创意水平的构成要素。
  2. 加入示例:在 Prompt 中包含示例,以说明低、中、高创意评分。
  3. 明确期望:明确说明评分不仅应考虑幽默感,还应考虑原创性和与原歌词的偏差。

我们改进后的 Prompt

在下一个单元格中,您将看到一个改进后的 Prompt,旨在引导模型产生更细致和多样的响应,为评估听错歌词的创意提供更清晰的框架。通过 Prompt 工程优化我们的方法,我们旨在获得更准确和多样化的评分,使其更好地符合歌词纠错器的预期目标。

# 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,
artifact_path="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”中的“We built this city on rock and roll”。听错的版本在此评分标准下得 3 分,因为它完全改变了歌曲的含义并添加了幽默元素。听错的版本没有意义,因为它用食物 sausage rolls 替换了标志性的摇滚流派。这可以被解读为对当前音乐产业的评论,流行歌曲常常被批评为肤浅且缺乏内涵。听错的版本也可以被视为对英国文化的致敬,sausage rolls 是英国流行的零食。总的来说,听错的歌词为歌曲增添了俏皮和出乎意料的元素。


实际歌词是 Elton John 歌曲“Tiny Dancer”中的“Hold me closer, tiny dancer”。听错的版本很常见,许多人认为歌词是关于演员 Tony Danza 而不是舞者。这个听错的版本在此评分标准下得 2 分,因为它对原歌词进行了幽默且出乎意料的解读,但仍然与原歌词和歌曲意图非常相似。听错的版本没有意义,因为 Tony Danza 并不以舞蹈技巧闻名,所以有人想仅仅因为他的舞蹈能力而更靠近他会很奇怪。它也改变了歌曲的含义,因为原歌词是关于一个娇小脆弱的舞者,而听错的版本是关于一位知名演员。


实际歌词是 Eurythmics 乐队歌曲“Sweet Dreams (Are Made of This)”中的“Sweet dreams are made of this. Who am I to disagree? I travel the world and the seven seas. Everybody's looking for something.” 听错的版本是一个文字游戏,用“cheese”代替“this”,并用不同类型的奶酪代替“seven seas”。它没有意义,因为奶酪通常与梦想或环游世界无关。它也将歌曲的含义从对欲望和目的的哲学探索改变为对奶酪的愚蠢颂歌。我会给这个听错的歌词打 2 分。它相当有创意和幽默,但仍然与原歌词非常相似,并且没有偏离歌曲意图太远。


实际歌词是 Jimi Hendrix 歌曲“Purple Haze”中的“Excuse me while I kiss the sky”。听错的版本很常见,许多人认为 Hendrix 唱的是亲吻一个人而不是天空。有趣的解释:也许听错的版本之所以出现,是因为 Hendrix 以其狂野且不可预测的表演而闻名,所以人们认为他可能只是随机在舞台上亲吻一个人。或者他们认为他是在唱与一个男性恋人在天空中的浪漫时刻。客观评分:2。虽然听错的版本很常见且确实带有一些幽默感,但它并不特别新颖或出人意料。这是一个简单的词语替换,在歌曲的上下文中仍然有点道理。


实际歌词是 Kiss 乐队歌曲“Rock and Roll All Nite”中的“I want to rock and roll all night and party every day”。听错的歌词“I want to rock and roll all night and part of every day”没有意义,因为它暗示这个人只想在一天的一部分时间里摇滚,而不是整晚和每天。它还将歌词的含义从想要整天整夜派对改变为只想派对一天中的一部分时间。我会给这句听错的歌词打 2 分。虽然它带有一些幽默并改变了原歌词的含义,但它仍然与原歌词非常相似,并未完全改变歌曲的意图。


实际歌词是 Creedence Clearwater Revival 乐队歌曲“Bad Moon Rising”中的“There's a bad moon on the rise”。听错的歌词很常见,许多人听到的不是正确的歌词,而是“There's a bathroom on the right”。这个听错的版本没有意义,因为它将歌曲的基调和含义从关于危险情况的警告改变为关于浴室位置的平淡提醒。客观评分:2。虽然听错的歌词并非特别有创意,但它确实为歌曲增添了幽默感,并且是一种常见的误解。


实际歌词是 The Beatles 乐队歌曲“I Want to Hold Your Hand”中的“I think you'll understand, when I say that somethin', I want to hold your hand.” 听错的歌词在此评分标准下得 3 分。原歌词是对爱的甜美无邪的表达,而听错的版本则将其变成了对夺取某人土地的怪诞和攻击性欲望。它完全偏离了原意,并为歌曲增添了幽默感。它还玩弄了听错歌词常常荒谬且脱离上下文的概念。

结论:MLflow 在管理 AI 模型实验中的强大作用

在本教程结束之际,让我们回顾一下所获得的重大见解,特别关注 MLflow 如何增强 OpenAI 高级语言模型的实验和部署。

主要收获

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

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

  • 利用 OpenAI 的高级模型:OpenAI 的 GPT 模型与 MLflow 的无缝集成展示了最先进的 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 的Custom Python Model 示例