MLflow 中 OpenAI 风格的使用介绍
欢迎来到我们的教程,本教程将介绍如何通过 MLflow 的 openai
风格来利用 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 风格,我们首先需要一些东西。
- 一个 OpenAI API 账户。您可以在此处注册以获得访问权限,从而开始以编程方式访问地球上领先的高度复杂的 LLM 服务之一。
- 一个 OpenAI API 密钥。创建账户后,您可以通过导航到API 密钥页面来访问它。
- 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 密钥设置为环境变量。
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,我们为我们的歌词纠正器应用程序精心制作了一个专门的提示。这个提示旨在实现两个目标
- 纠正听错的歌词:它指示 AI 识别歌曲的实际歌词,替换常用听错的版本。
- 添加幽默解释: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_tokens
、temperature
和best_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)
生成和纠正听错的歌词
让我们用歌词纠正器模型来测试一些幽默的听错歌词,找点乐子。这些短语以其有趣的误解而闻名,这将是一个很好的方式来查看模型在幽默方面的表现。
生成可疑歌词
我们准备了一系列经常被幽默地听错的标志性歌词
- “我们用香肠卷建造这座城市”(对“摇滚乐”的扭曲)
- “抱紧我,托尼·丹扎”(而不是“小舞者”)
- “美梦是由奶酪制成的。我凭什么不赞成布里奶酪?我把世界分成切达奶酪和羊乳酪”(对原歌词的俗气解读)
- “请原谅我亲吻这个家伙”(而不是“天空”)
- “我要整晚摇滚,每天的一部分时间都在派对”(将“每天”改为不那么承诺的时间表)
- “今晚别出去,它一定会夺走你的视线,右边有一个浴室。”(对《坏月亮升起》的创意解读)
- “我想你会明白,当我说点什么的时候,我想夺走你的土地”(对经典披头士情歌的黑暗解读)
这些听错的版本为原始歌词增添了一层幽默和古怪,使其成为我们歌词纠正器的完美候选者。
向模型提交歌词
现在,是时候看看我们的模型如何解释这些创意作品了。我们将听错的歌词提交给歌词纠正器,它将利用其 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”。听错的版本不合理,因为香肠卷是一种食物,而不是建筑材料。也许有人把“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”。听错的歌词“I want to rock and roll all night and part of 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 分。
实际歌词是披头士乐队歌曲“I Want to Hold Your Hand”中的“I think you'll understand, when I say that somethin', I want to hold your hand.”听错的歌词在等级上是 3。原始歌词是甜美而纯真的爱的表达,而听错的版本则将其变成了一个奇怪而具有攻击性的占有他人土地的欲望。它完全偏离了原始含义,为歌曲增添了幽默的色彩。它还利用了听错歌词通常毫无意义且脱离上下文的特点。
通过提示工程改进我们的方法
在查看了歌词纠正器模型的初始结果后,我们发现这些响应虽然有趣,但在创意评分方面并未完全达到目标。评分似乎集中在中间范围,缺乏我们所追求的差异性。这一观察结果引导我们进入提示工程的迭代和细致过程,这是微调 AI 模型响应的关键一步。
提示工程的迭代过程
提示工程并非一蹴而就;它是一个迭代过程。它涉及根据模型的响应细化提示,并对其进行调整以更精确地与我们的目标保持一致。当处理像 GPT-3 和 GPT-4 这样先进的语言模型时,这个过程至关重要,这些模型虽然功能强大,但通常需要详细指导才能生成特定类型的输出。
实现精炼的响应
我们最初的提示为任务提供了基本结构,但缺乏关于如何有效评估听错歌词创意度的详细指导。为了解决这个问题,我们需要
- 提供更清晰的说明:通过更明确的说明来增强提示,说明不同创意水平的构成要素。
- 加入示例:在提示中包含示例,以说明低、中和高创意评分。
- 澄清期望:明确评分不仅应考虑幽默感,还应考虑原创性和与原歌词的偏差。
我们改进的提示
在下一个单元格中,您将看到一个改进的提示,旨在从模型中获得更细致和多样的响应,为评估听错歌词的创意性提供更清晰的框架。通过提示工程改进我们的方法,我们旨在获得更准确和多样化的评分,使其更好地与我们歌词纠正器的预期目标保持一致。
# 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”中的“We built this city on rock and roll”。听错的版本在评分中是 3 分,因为它完全改变了歌曲的含义,并增加了一个幽默的转折。听错的版本不合理,因为它将标志性的摇滚乐流派替换成了食物,香肠卷。这可以被解释为对当前音乐产业状况的评论,流行歌曲经常被批评为肤浅和缺乏内涵。听错的版本也可以被视为对英国文化的致敬,香肠卷是一种流行的零食。总的来说,听错的歌词为歌曲增添了俏皮和出人意料的元素。
实际歌词是 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.”听错的版本是文字游戏,将“this”替换为“cheese”,并使用不同类型的奶酪代替“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。虽然听错的歌词并没有特别的创意,但它确实为歌曲增添了幽默的转折,并且是一个常见的误解。
实际歌词是披头士乐队歌曲“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 高级语言模型的实验和部署。
主要收获
-
提示工程与实验:本教程强调了提示工程的迭代性质,展示了提示中微小的变化如何导致 AI 模型产生显著不同的结果。MLflow 在此发挥着关键作用,使我们能够有效跟踪这些变化,比较结果,并迭代以获得最佳提示配置。
-
通过 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 风格的自定义 Python 模型示例。