使用MLflow评估Azure OpenAI时提示降低速率,该如何操作?
解决方案
1. 限制MLflow评估的并发请求数
mlflow.evaluate默认会并发发起请求,容易触发Azure OpenAI的速率限制。可以通过evaluation_config参数设置最大并发数,强制串行处理请求:
mlflow.evaluate( model=logged_model.model_uri, model_type="question-answering", data=example_questions, evaluation_config={"max_concurrent_runs": 1} )
2. 调整Azure OpenAI部署的速率限制(若有权限)
登录Azure门户,找到目标OpenAI资源的模型部署页面,根据需求调整每分钟请求数(Requests per minute)或每分钟令牌数(Tokens per minute)。免费额度部署的速率限制严格,若长期使用建议升级到付费层。
3. 在推理层添加请求延迟
如果并发控制仍无法解决,可自定义包装模型,在每次请求后添加短暂休眠:
import time from mlflow.pyfunc import PythonModel class RateLimitedOpenAIModel(PythonModel): def __init__(self, model_uri): self.model = mlflow.pyfunc.load_model(model_uri) def predict(self, context, model_input): time.sleep(1) # 每次请求后休眠1秒,可根据实际限制调整时长 return self.model.predict(model_input) # 在当前运行中记录限流模型 with mlflow.start_run(run_id=run.info.run_id): mlflow.pyfunc.log_model(artifact_path="rate_limited_model", python_model=custom_model) # 评估限流后的模型 mlflow.evaluate( model=f"runs:/{run.info.run_id}/rate_limited_model", model_type="question-answering", data=example_questions )
4. 检查Azure OpenAI配置细节
- 确认
mlflow.openai.log_model中的model参数是Azure OpenAI的部署名称(而非基础模型名,比如部署的gpt-3.5-turbo可能命名为gpt-35-turbo-dev) - 验证环境变量
AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT已正确配置,MLflow依赖这些参数连接Azure服务
内容的提问来源于stack exchange,提问作者Arjun Chattoraj
相关产品推荐
相关产品推荐

