课程
您是否曾为搭建一个可用于实验或学习的机器学习环境而感到不知所措?
Amazon SageMaker Studio Lab 或许正是您所需要的。它是由 AWS 构建的免费、基于浏览器的开发环境,旨在让机器学习更易上手。无需 AWS 账户,无需账单设置。只需登录即可开始编码。
作为经常使用 ML 工具的人,我发现 Studio Lab 对于快速实验、搭建演示或运行轻量级模型尤其实用,无需配置复杂的基础设施。它非常适合希望专注于学习和原型设计、而非配置的学生、开发者和教育者。
在本文中,您将获得关于 Studio Lab 的实用概览。我会展示它是什么、如何工作,以及如何高效用于真实的机器学习项目。
本指南将带您一步步完成上手所需的一切。
什么是 SageMaker Studio Lab?
Amazon SageMaker Studio Lab 是一款免费的云端平台,让您在熟悉的 JupyterLab 环境中开发机器学习模型,不需要 AWS 账户或信用卡。
AWS 在 re:Invent 2021 上推出该服务,其明确使命是让机器学习更易为大众所用。它是 Amazon SageMaker Studio(AWS 的全功能 ML 开发平台)的轻量版。
Studio Lab 简化了实验环境的搭建流程,并为学习者、教育者和开发者提供了零成本的选项,使其无需自建基础设施即可构建、测试和分享机器学习(ML)模型。
Studio Lab 之所以出色,原因如下:
- 无需任何云端经验即可上手。
- 提供对 CPU 和 GPU 运行时的访问。
- 可在会话之间持久化保存您的工作(例如,Google Colab 并非总能做到)。
- 与 GitHub 无缝集成,便于分享与协作笔记本。
我个人用它来做小模型原型、跑快速实验、以及测试课程材料。如果您希望在不折腾云端配置的情况下专注于学习或教学机器学习,Studio Lab 是不错的选择。
如果您想进一步了解 AWS,我推荐 Introduction to AWS 或 AWS Cloud Technology and Services 课程。
SageMaker Studio Lab 的核心组成
SageMaker Studio Lab 或许看起来轻量,但其底层为真实世界的机器学习流程提供了足够的性能与灵活性。无论您在训练回归模型、处理图像数据,还是构建学生项目,了解您所使用的资源有助于更好地发挥其价值。
本节让我们更近一步了解其关键组件。
CPU 运行时
每位 Studio Lab 用户默认可使用一台 T3.xlarge CPU 实例。这意味着:
- 4 个 vCPU 和 16GB 内存(足以应对大多数入门到中级 ML 任务)。
- 会话时长限制(每次会话最长 4 小时,每天最多 8 小时,但环境关闭后文件仍会被持久保存)。
CPU 运行时非常适合模型原型设计、数据探索,以及处理结构化数据集或时间序列预测。
以我的经验,如果您使用 scikit-learn、XGBoost 和 pandas 等库,选择 CPU 运行时通常没有问题。
GPU 运行时
如果您在处理计算机视觉或 Transformer 等深度学习任务,应考虑使用 GPU 运行时,它提供对 G4dn.xlarge 实例(NVIDIA T4)的访问,非常适合 PyTorch 或 TensorFlow。
您每天只能有一次 GPU 会话,最长 4 小时。
我曾用它训练小型卷积网络,对于入门到中级的深度学习模型,它足以完成任务,尤其适合课程作业或概念验证演示。
一个小提示:如果您经常需要 GPU,建议把工作拆分为短训练会话,并为模型设置检查点。这样会话结束时就不会丢失进度。
存储限制
Studio Lab 为您提供15 GB 的持久化存储,它:
- 可在不同会话与重启之间保持可用。
- 非常适合存储笔记本、小型数据集和环境文件。
- 按用户隔离。
但请记住,大型模型检查点、预训练权重或大数据集会很快占满存储空间。
我建议尽量链接外部数据集(来自 S3、Hugging Face 或 GitHub),并在可能时按批加载数据。
基于 JupyterLab 的界面
Studio Lab 最好的特点之一是其熟悉的JupyterLab 界面。这是一个基于浏览器的编码环境,包含:
- 文件浏览器、终端、文本编辑器和笔记本标签页。
- 内置支持 Markdown、代码单元和交互式绘图。

SageMaker Studio Lab 用户界面。图片来源:AWS 文档。
如果您来自 Jupyter Notebooks 或 Colab,这里的学习曲线很低,体验也很顺畅。我尤其喜欢其 Git 集成与扩展支持,使协作更加轻松。
想提升您的 ML 工作流技能?试试 Designing Machine Learning Workflows in Python 课程,获取动手实践指南。
如何注册并启动项目
上手 SageMaker Studio Lab 十分简单,尤其是与完整搭建 AWS 环境相比。
在接下来的章节中,我将展示如何快速启动并运行。
创建账户与开户流程
要使用 Studio Lab,您首先需要申请访问。流程如下:
- 前往 SageMaker Studio Lab 页面。
- 点击“Request free account”,填写一些基本信息(邮箱、用例等)。
- 等待邀请。审批通常需要数小时到数天。
- 审批通过后,您会收到一封包含账户注册页面链接的电子邮件。使用获批邮箱创建账户并设置密码与用户名。此账户不同于您的 AWS 账户,且无需信用卡。
就我而言,我在 24 小时内收到了审批。
环境设置
进入后,您可以选择计算类型,然后点击“Start runtime”。

SageMaker Studio Lab 首页。图片由作者提供。
首次启动时,系统会提示您输入手机号码,并向该号码发送一个六位数验证码。
当环境启动并运行后,您将进入 JupyterLab 环境,并应能看到 Getting Started.ipynb 笔记本。
Studio Lab 自带一个 Python 基础镜像,并仅预安装少量库,以便为您需要安装的库保留空间。
除了默认的 conda 环境,Studio Lab 也支持 SageMaker Distribution,这是由 AWS 精心整合、与 Amazon SageMaker Studio 配置一致的更强大环境,包含 PyTorch、TensorFlow、NumPy、scikit-learn 和 Pandas 等包。
您随时可以在现有 Conda 环境中安装包,只需在笔记本单元中直接运行 %conda install <package> 或 %pip install <package>。
您也可以使用 requirements.txt 或 environment.yml 来复刻完整环境。这使得跟随教程变得容易。
但请注意,您只有15GB 的存储空间,尽量避免在非必要时安装体积较大的包。
您安装的包也会在不同会话之间持久保存。
项目初始化与 GitHub 集成
Studio Lab 与 GitHub 集成良好,这意味着您可以:
- 使用 HTTPS 或 SSH 克隆公共或私有仓库
- 直接在 JupyterLab 的 Git 扩展中推送和拉取代码
- 通过链接仓库分享笔记本(非常适合协作或作业)
如果您在教学或学习,这让分发起始代码或提交作业以供审阅变得非常容易,尤其适用于课堂、训练营或自学小组。
想超越 GitHub,使用真实的 ML 工作流吗?试试 End-to-End Machine Learning 课程,了解如何构建完整项目结构。
机器学习的实用示例
SageMaker Studio Lab 非常适合测试想法、跟随教程或从零构建小项目。无论您在学习回归还是尝试图像数据,该平台都能顺畅支持大多数入门到中级任务。
下面我将带您一起完成一些可立即尝试的实用示例。
您可以在 我的 GitHub 仓库中找到示例笔记本。只需将该仓库克隆到您的 Studio Lab 会话中。
或者,您也可以直接点击Open Studio Lab 徽章,位置在 我的 README.md 文件中,这将直接为您在 Studio Lab 中打开该笔记本。

带有“Open in Studio Lab”徽章的 README 文件截图。图片由作者提供。
训练一个简单的回归模型
这是机器学习的 Hello World:训练一个简单的回归模型。
在这个小示例中,您将:
- 使用
seaborn加载 Iris 数据集。 - 可视化变量之间的关系。
- 使用
scikit-learn训练线性回归模型。 - 绘制回归线并评估模型表现。
此示例代码位于 simple-regression.ipynb 笔记本中。
打开笔记本并将内核选择为 sagemaker-distribution:Python。

simple-regression.ipynb 在 Studio Lab 中的内核选择。图片由作者提供。
该 ML 任务的目标是基于著名的 Iris 数据集,用花萼长度预测花瓣长度。
只需依次运行笔记本中的所有单元,即可完成此示例。
下面是该示例的完整代码:
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# Load dataset
df = sns.load_dataset("iris")
# Visualize the relationship
sns.scatterplot(data=df, x="sepal_length", y="petal_length", hue="species")
plt.title("Sepal Length vs Petal Length")
plt.show()
# Select features
X = df[["sepal_length"]]
y = df["petal_length"]
# Train/test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Fit model
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# Evaluation
print("MSE:", mean_squared_error(y_test, y_pred))
print("R² Score:", r2_score(y_test, y_pred))
# Plot regression line
plt.figure(figsize=(8, 5))
sns.regplot(x=X_test["sepal_length"], y=y_test, ci=None, label="Actual", scatter_kws={"s": 50})
plt.plot(X_test["sepal_length"], y_pred, color="red", label="Predicted", linewidth=2)
plt.title("Linear Regression: Predicting Petal Length")
plt.xlabel("Sepal Length")
plt.ylabel("Petal Length")
plt.legend()
plt.show()
该示例可在 Studio Lab 的 CPU 运行时内数秒完成训练,且绘图有助于可视化模型表现。尽管只是简单开始,但这种模式构成了许多真实回归任务的核心。
图像分类示例
MNIST 是学习图像分类的绝佳起点。它体量小、数据干净,即使在像 Studio Lab 这样资源有限的环境中也能很好地运行。
在该示例中,您将:
- 使用
tensorflow.keras.datasets加载 MNIST 数据集 - 构建一个简单的全连接神经网络
- 训练并评估模型
- 可视化部分预测结果,查看模型表现
您可以在 CPU 运行时中运行该示例;如果希望获得更好性能,也可以在 GPU 环境中运行(但有时更难获取)。
该示例代码可在 image-classifier.ipynb 笔记本或下方找到:
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
# Load dataset
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
# Normalize pixel values
X_train = X_train / 255.0
X_test = X_test / 255.0
# Visualize an example image
plt.imshow(X_train[0], cmap="gray")
plt.title(f"Label: {y_train[0]}")
plt.axis("off")
plt.show()
# Build the model
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Train the model
history = model.fit(X_train, y_train, epochs=3, validation_split=0.1)
# Evaluate the model
test_loss, test_acc = model.evaluate(X_test, y_test)
print("Test accuracy:", test_acc)
# Predict on test set
predictions = model.predict(X_test)
# Show example prediction
index = 0
plt.imshow(X_test[index], cmap="gray")
plt.title(f"Predicted: {np.argmax(predictions[index])}, Actual: {y_test[index]}")
plt.axis("off")
plt.show()
打开笔记本并将内核选择为 sagemaker-distribution:Python。
该示例在 CPU 上运行顺畅,启用 GPU 后更快。您可以通过添加卷积层、增加训练轮数,或可视化误分类数字来进行扩展。
如果您想更进一步,Developing AI Applications 学习路径将带您了解真实世界的深度学习用例。
数据预处理与可视化
接下来是第三个示例,这对真实的 ML 应用至关重要:数据预处理与可视化。
大多数现实世界的数据集都较为杂乱,需要大量清洗与人工检查才能使用。因此,具备绘制与预处理数据的能力,对于开发实用的机器学习应用至关重要。
为展示数据预处理与可视化,我们将使用 Palmer Penguins 数据集。
Palmer Penguins 是最适合初学者学习数据清洗与可视化的数据集之一。它类似于 Iris 数据集,但变量更有趣、现实语境更清晰。
该示例代码位于 data-preprocessing-and-visualization.ipynb 笔记本中。
同样,选择内核 sagemaker-distribution:Python 以跟进此示例。
完整代码如下:
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# Load the dataset
df = sns.load_dataset("penguins")
# Quick overview
print(df.head())
# Check for datatypes and NaN values
print(df.info())
# Check missing values
print(df.isnull().sum())
# Drop rows with missing values (simplest option for this example)
df_clean = df.dropna()
# Histogram of bill length
plt.hist(df_clean["bill_length_mm"], bins=20, color="skyblue", edgecolor="black")
plt.title("Distribution of Bill Length")
plt.xlabel("Bill Length (mm)")
plt.ylabel("Frequency")
plt.show()
# Box plot of body mass by species
sns.boxplot(data=df_clean, x="species", y="body_mass_g", palette="pastel")
plt.title("Body Mass Distribution by Species")
plt.ylabel("Body Mass (g)")
plt.show()
# Scatterplot to explore relationships
sns.scatterplot(data=df_clean, x="bill_length_mm", y="bill_depth_mm", hue="species", style="sex")
plt.title("Bill Length vs. Depth by Species and Sex")
plt.xlabel("Bill Length (mm)")
plt.ylabel("Bill Depth (mm)")
plt.legend()
plt.show()
这些简单的图表已能揭示一些有趣的模式,例如按物种形成的聚类以及雌雄企鹅之间的差异。
笔记本分享与协作
当您的笔记本准备就绪后,分享非常简单:
- 将
.ipynb文件直接保存到 GitHub 仓库 - 邀请他人查看、评论,或在其自己的 Studio Lab 环境中运行
您甚至可以在公共 GitHub 仓库的 README.md 文件或笔记本中添加“Open in Studio Lab” 徽章。
只需将以下内容添加到您的 README.md 文件中:
[](https://studiolab.sagemaker.aws/import/github/org/repo/blob/master/path/to/notebook.ipynb)
您可以查看README.md 文件,位置在 我的仓库,了解其实际效果。
如果您与队友或导师协作,这种方式能让同行评审、反馈与可复现性变得非常顺畅。您甚至可以附上 requirements.txt 以确保对方安装相同依赖。
用例与教育场景
SageMaker Studio Lab 不仅可作为机器学习的练兵场,也可作为教育、快速实验和轻量级原型设计的实用工具。由于它免费、易访问且在浏览器中运行,因此为学习者、讲师与开发者打开了广泛的应用场景。
学术与自定进度学习
Studio Lab 已被用于高校课堂、在线课程和编程训练营,作为教学工具。
其优势包括:
- 无需本地环境:无论学生使用何种设备,都可立刻开始编码。
- 持久化存储:可在会话间保存数据,方便从中断处继续。
- 预装包:覆盖大多数入门到中级 ML 课程需求。
- JupyterLab:知名的 JupyterLab 界面,适合演示与交互式编码。
作为讲师,您可以轻松:
- 分享带有起始代码的 GitHub 仓库。
- 将作业制作成笔记本并直接托管。
- 通过教授正确的环境管理来鼓励可复现性。
作为学生或自学者,Studio Lab 为您提供空间以:
- 用真实数据进行练习。
- 跟随教程学习。
- 提交项目以供评审。
原型设计与轻量实验
Studio Lab 并非为企业级工作负载而建,但在原型设计方面表现相当不错。
当您希望:
- 验证一个建模想法。
- 运行基准对比。
- 清洗并探索新数据集。
- 与队友分享一个快速演示。
因此它非常适合:
- 黑客松,时间与算力资源有限的场景。
- 早期研究,想法仍在形成阶段。
- 副业项目,无需管理基础设施,只需快速跑起来。
我会在需要快速测试一些在别处看到的代码,或为我的文章准备演示时使用它。
对比与关键限制
人们常将 SageMaker Studio Lab 与 Google Colab、JupyterHub,甚至完整版 SageMaker Studio 对比。不过,尽管这些平台表面上相似,但它们的优势、限制与理想用例差异明显。
让我们将 Studio Lab 与 Google Colab 做个比较。
Studio Lab 与 Google Colab 对比
硬件与性能
|
功能 |
Studio Lab |
Google Colab |
|
CPU 会话时长 |
4 小时/会话,8 小时/天 |
约 12 小时/会话 |
|
CPU 规格 |
4 vCPU,16GB 内存 |
2 vCPU,13GB 内存 |
|
GPU 访问 |
4 小时/天,Tesla T4 |
Tesla P100 或 Tesla K80 |
|
存储 |
15 GB 持久化 |
临时,会话重置(可挂载 Google Drive) |
实践来看:
- Studio Lab 更适合需要稳定环境与持久化存储的场景(如课程作业或较长期项目)。
- Google Colab 更适合与 Google 服务(如 Google Drive)协同,且在频繁分享笔记本方面更便捷(Google 生态稍容易)。
您打算长期使用 AWS 工具吗?Studio Lab 是迈向 SageMaker Studio 及云端工作流的更有效垫脚石。
用户体验与界面稳定性
Studio Lab 基于 JupyterLab,而 Colab 基于经典 Jupyter Notebooks。
这意味着 Studio Lab 提供多标签布局、终端、文件资源管理器以及自定义 conda 环境。
Colab 则更为轻量,但开箱即用地缺乏环境隔离与可复现性。
如果您习惯 JupyterLab(或希望更接近 IDE 的体验),Studio Lab 会更有结构、也更易扩展。
成本与可访问性
两个平台都免费,但存在一些关键差异:
- Studio Lab:100% 免费,无高级版,也无任何账单集成。
- Colab:免费层有一定限制。可通过 Pro/Pro+ 订阅获得更好资源。
Studio Lab 非常适合希望拥有一个可靠、可预测平台进行教学或实验的学习者与讲师。Colab 则可能提供更强算力,但往往要付出不稳定或需要升级的代价。
Studio Lab 的限制
由于 Studio Lab 是免费的,它也存在一些不足之处。
来看下您需要注意的方面。
资源约束
Studio Lab 存在以下资源约束:
- 会话限制:每次会话 4 小时(CPU/GPU),且有每日配额。
- 不支持并行作业:一次只能有一个运行时会话。
- 运行时可用性:仅在资源可用时才能获得运行时。对我而言,有时即便是 CPU 运行时也需要等一会儿才能启动。
- 存储:15 GB 的硬性限制,对大型数据集或模型检查点而言可能不足。
对于中小型项目,这些限制仍可管理。但在规划工作结构与数据存储时,请将上述限制纳入考虑。
功能缺口与替代方案
Studio Lab 不支持:
- 与 AWS 服务(如 S3、SageMaker 端点或 IAM 角色)的直接集成。
- 自定义网络或端口转发。
- 后台作业或长期运行的服务。
但您至少可以通过以下方式弥补部分缺口:
- 使用 Hugging Face Datasets 或公共 S3 URL 获取数据。
- 使用 GitHub 进行版本管理与检查点分享。
- 实时流式获取数据,而非一次性全部下载。
- 如果您要托管应用或模型,可使用付费 AWS 服务,但仍可在 Studio Lab 中进行开发。
如果您在构建生产级流水线,或需要完整的云端集成,建议切换到 Amazon SageMaker Studio 或具备云端 IAM 访问的托管环境。
结论
如果您需要便捷的可访问性、灵活性与免费的机器学习开发能力,Amazon SageMaker Studio Lab 是理想之选。它消除了云端设置或账单等常见入门障碍,让您专注于学习、实验与原型设计。
对于学生、自学者和教育者而言,Studio Lab 是一个绝佳环境,可用于:
- 练习 Python 与 ML 工作流
- 运行小型深度学习模型
- 通过 GitHub 协作
- 在 JupyterLab 界面中探索真实数据集
有局限吗?当然!您需要面对会话超时、无法直接集成 AWS、以及 15 GB 存储限制。但对于轻量实验与动手学习而言,这些取舍在免费工具的前提下是合理且可接受的。
如果您刚开始机器学习之旅,或在寻找一种直接、可复现的方式来验证想法,Studio Lab 已足以助您启程。
想进一步提升您的 ML 技能?探索 AWS Cloud Technology and Services,开始打造可用于生产的环境。
FAQs
Studio Lab 与 SageMaker Studio 有何不同?
Studio Lab 是一款轻量、对初学者友好的版本,无需 AWS 账户。SageMaker Studio 则是 AWS 内部的完整企业套件。
使用 Studio Lab 需要安装任何东西吗?
不需要。它完全在您的浏览器中运行,界面为 JupyterLab。注册后即可使用。
我可以在 Studio Lab 上训练真实的 ML 模型吗?
当然可以。您可以使用 CPU 和(基于申请的)GPU。它非常适合较小的模型、演示和教育项目。
SageMaker Studio Lab 与 Google Colab 相比如何?
Studio Lab 提供持久化存储与 JupyterLab 界面;Colab 则提供更长会话时长,并与 Google 生态集成更好。就一致性与可复现性而言,Studio Lab 更胜一筹。
使用 SageMaker Studio Lab 需要 AWS 账户吗?
不需要 AWS 账户。您只需申请访问,获批后即可获得一个独立的 Studio Lab 账户,无需任何账单设置。
如何在 SageMaker Studio Lab 中安装额外的 Python 库?
您可以在笔记本单元中使用 %pip install 或 %conda install 安装库,或使用 requirements.txt 来复刻环境。
如何与他人分享我的 SageMaker Studio Lab 笔记本?
您可以通过 GitHub 分享 .ipynb 文件,甚至在仓库中嵌入 “Open in Studio Lab” 徽章以便快速访问。
我是一名云工程师,拥有坚实的电气工程、机器学习和编程基础。我的职业生涯始于计算机视觉领域,专注于图像分类,随后转向 MLOps 和 DataOps。我擅长构建 MLOps 平台、支持数据科学家,并交付基于 Kubernetes 的解决方案,以优化机器学习工作流。
