You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon SageMaker普通Jupyter Notebook三类技术问题咨询

Amazon SageMaker Notebook 问题解决方案

1. 实现代码后台运行并在高配置环境执行

SageMaker Notebook的内核依赖浏览器会话,关闭标签后进程会终止,因此必须用**SageMaker处理作业(Processing Job)**来运行长时/后台任务,步骤如下:

步骤1:封装代码为独立脚本

将你的预测逻辑写成可独立运行的Python脚本(比如run_prediction.py),注意对接S3存储(Notebook本地存储不可靠,处理作业无法直接访问):

import pandas as pd
from tqdm import tqdm
# 替换为你的模型加载逻辑
from your_model_utils import load_pretrained_LLM

# 从S3加载原始数据(替换为你的S3路径)
df_original = pd.read_csv("s3://your-bucket/input/original_data.csv")
# 加载预训练模型
LLM_pretrained_model = load_pretrained_LLM()

# 执行预测(用tqdm实现进度条)
tqdm.pandas()
df_new = df_original.copy()
df_new["predicted_values"] = df_original.progress_apply(
    lambda x: LLM_pretrained_model.predict(x["comment_body"]), axis=1
)

# 将结果写入S3(替换为你的输出路径)
df_new.to_csv("s3://your-bucket/output/predicted_data.csv", index=False)

步骤2:提交处理作业到高配置实例

用SageMaker Python SDK提交作业,指定更高配置的实例(比如ml.g5.12xlarge):

import sagemaker
from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput

# 获取默认会话和角色
sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

# 初始化脚本处理器,选择适配你的框架的镜像(这里以PyTorch为例)
script_processor = ScriptProcessor(
    command=["python3"],
    image_uri="763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.0.1-gpu-py310-cu117-ubuntu20.04",
    role=role,
    instance_count=1,
    instance_type="ml.g5.12xlarge",  # 按需选择高配置实例
    sagemaker_session=sagemaker_session
)

# 提交作业
script_processor.run(
    code="run_prediction.py",
    inputs=[ProcessingInput(source="s3://your-bucket/input/original_data.csv", destination="/opt/ml/processing/input")],
    outputs=[ProcessingOutput(source="/opt/ml/processing/output", destination="s3://your-bucket/output")]
)

提交后,作业会在独立的计算资源上后台运行,关闭浏览器或断开连接都不会影响执行。

2. 避免长时任务内核崩溃/会话超时

SageMaker Notebook实例默认会话超时为12小时,无法直接支持28小时的任务,最优解决方案是:

  • 改用Processing Job:处理作业是独立的计算资源,无会话超时限制,只要作业未完成就会持续运行,且支持实例故障自动重试(需配置)。
  • 若必须使用Notebook:在控制台编辑Notebook实例,将「Idle timeout」(空闲超时)调至最大允许值(48小时),但仍存在实例重启、网络中断导致任务失败的风险,不推荐用于超12小时的任务。
  • 额外优化:在脚本中加入断点续传逻辑,定期将中间结果写入S3,万一任务中断可从断点恢复。

3. 从普通Jupyter Notebook推送代码到GitHub

可以直接在Notebook实例的终端操作,步骤如下:

  1. 打开终端:点击Notebook右上角「New」→「Terminal」
  2. 配置Git身份:
    git config --global user.name "你的用户名"
    git config --global user.email "你的邮箱"
    
  3. 初始化仓库(若未初始化):
    cd /home/ec2-user/SageMaker/你的笔记本文件夹
    git init
    
  4. 添加远程仓库(替换为你的GitHub仓库地址):
    git remote add origin https://github.com/你的用户名/你的仓库名.git
    
  5. 提交并推送:
    git add .
    git commit -m "提交说明:添加预测代码"
    # 私有仓库需用GitHub个人访问令牌(PAT)代替密码
    git push -u origin main
    

也可以配置SSH密钥(在终端生成密钥对,将公钥添加到GitHub账户),避免每次推送输入密码。

内容的提问来源于stack exchange,提问作者Sar99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:36:32