追踪生成式AI应用(Notebook)
本快速入门指南将帮助您在将Jupyter Notebook作为开发环境时,把您的生成式AI应用与MLflow追踪集成。如果您使用本地IDE,请改用IDE快速入门指南。
您将实现什么
完成本教程后,您将拥有
- 一个已与您的生成式AI应用关联MLflow实验的Jupyter Notebook
- 使用MLflow追踪来检测您的应用。
先决条件
- Python环境:安装了pip的Python 3.8+
- Jupyter Notebook:可访问Jupyter Notebook或JupyterLab
- OpenAI API密钥:可访问OpenAI API
步骤1:创建Jupyter Notebook
注意
创建Jupyter Notebook并设置MLflow实验将作为您的生成式AI应用的容器。在数据模型部分了解有关实验及其内容的更多信息。
- 打开Jupyter Notebook或JupyterLab
- 创建一个新笔记本
- 创建第一个单元格以设置环境
步骤2:安装和配置MLflow
安装最新版本的MLflow,以获得生成式AI功能的最佳体验,包括最全面的追踪功能和强大的支持。
您可以通过运行以下命令在您的笔记本中安装MLflow
!pip install --upgrade "mlflow>=3.1" openai python-dotenv
MLflow版本推荐
虽然MLflow 2.15.0+版本提供了追踪功能,但强烈建议安装MLflow 3(特别是3.1或更高版本),以获取最新的生成式AI功能,包括扩展的追踪功能和强大的支持。
步骤3:检测您的应用
为您的应用选择合适的集成方式
OpenAI集成
-
在您的笔记本中创建一个单元格以配置环境和MLflow
import mlflow
import openai
from openai import OpenAI
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Set up MLflow experiment
mlflow.set_experiment("genai-tracing-quickstart") -
在您的笔记本中创建一个包含以下代码的单元格
在这里,我们使用
@mlflow.trace
装饰器,它可以轻松追踪任何Python应用,并结合OpenAI自动检测功能来捕获对OpenAI SDK调用的详细信息。# Enable MLflow's autologging to instrument your application with Tracing
mlflow.openai.autolog()
# Create an OpenAI client
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY") # Set your OpenAI API key in environment
)
# Use the trace decorator to capture the application's entry point
@mlflow.trace
def my_app(input: str):
# This call is automatically instrumented by `mlflow.openai.autolog()`
response = client.chat.completions.create(
model="gpt-3.5-turbo", # You can replace with gpt-4, gpt-4-turbo, etc.
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": input,
},
],
)
return response.choices[0].message.content
my_app(input="What is MLflow?") -
运行笔记本单元格以执行代码
替代方案:其他LLM提供商
# For other providers, you can use manual tracing
import mlflow
@mlflow.trace
def my_custom_app(input: str):
# Your custom LLM integration here
# This could be Anthropic, Hugging Face, local models, etc.
with mlflow.start_span(name="llm_call") as span:
span.set_inputs({"input": input})
# Your LLM call here
response = "Your LLM response"
span.set_outputs({"response": response})
return response
my_custom_app(input="What is MLflow?")
步骤4:在MLflow中查看追踪
-
通过在您的终端中运行以下命令来启动MLflow UI
mlflow ui
-
在浏览器中打开
https://:5000
-
导航到您的实验:“genai-tracing-quickstart”
-
您现在将在追踪选项卡中看到生成的追踪
-
点击追踪以查看其详细信息
理解追踪
您刚刚创建的追踪显示了
- 根Span:表示
my_app(...)
函数的输入- 子Span:表示OpenAI补全请求
- 属性:包含模型名称、token数量和时间信息等元数据
- 输入:发送给模型的消息
- 输出:从模型接收到的响应
这个简单的追踪已经为您的应用行为提供了宝贵的洞察,例如
- 提问了什么
- 生成了什么响应
- 请求花费了多长时间
- 使用了多少token(影响成本)
后续步骤
恭喜!您已成功使用MLflow追踪和OpenAI构建了您的第一个生成式AI应用。
提示
对于RAG系统或多步代理等更复杂的应用,MLflow追踪通过揭示每个组件和步骤的内部运作方式,提供了更大的价值。