精品项目

使用基础模型提升Amazon SageMaker中的模型准确性 机器学习博客

2026-01-27 13:07:28



使用基础模型提升 Amazon SageMaker 的模型准确性

关键要点

通过使用基础模型,结合多模态数据,提升机器学习模型在房地产估价中的准确性。Amazon SageMaker 提供了强大的工具,如 Data Wrangler 和 Canvas,简化模型构建和数据处理过程。通过视觉问答(VQA)模型,可以提取图像中的特征,以增强数据集,改进回归模型的预测能力。

确定房价的价值是机器学习(ML)的经典例子,由哈里森和鲁宾菲尔德在1978年发表的一篇开创性论文及其数据集非正式称为波士顿房屋数据集产生了重大影响。这项开创性研究提出了一种方法,通过多个维度其中空气质量是主要的研究重点来估算房价。近50年来,房价估算已成为学生和专业人士在商业决策中利用数据和机器学习的重要教学工具。

在本文中,我们讨论了一个专门设计用于视觉问答(VQA)的开源模型。通过 VQA,您可以用自然语言对照片提问,并以通俗语言获取答案。我们希望通过此文激励您,展示使用这一技术的可能性。我们建议使用该技术与 Amazon SageMaker 服务平台相结合,以提高机器学习用例中的回归模型准确性,并独立进行自动化图像标记。

我们还提供了一个对应的 YouTube 视频,展示上述内容,视频将在中间播放,以突出最关键的点。建议您在阅读完本文后查看视频,以进一步巩固理解。

基础模型

本解决方案的核心是使用发布到 Hugging Face 模型库的基础模型。在这里,我们使用“基础模型”来描述已在大量多样化数据上进行预训练的人工智能 (AI) 能力。基础模型在某些情况下可以无需从零开始训练模型,而是直接使用。有些基础模型可以进行微调,这意味着教授它们与您的业务相关但原始模型所缺失的额外模式。微调有时是必要的,以便为您的用例或知识体提供准确的响应。

在 Hugging Face 库中,有几个 VQA 模型可供选择。我们选择了在撰写时下载量最多的模型。虽然本文展示了如何使用开源模型库中的模型,但同样的概念适用于您从零开始训练的模型或来自其他可信提供者的模型。

现代方法应对经典用例

房价估算传统上是通过表格数据来进行的,其中房产特征用来告知价格。尽管需要考虑的特征数可能达到数百个,但一些基本示例包括房屋的成品面积、卧室和浴室数量,以及房屋的地理位置。

机器学习能够整合来自表格数据的多样化输入源,例如音频、静态图像、动态视频和自然语言。在人工智能中,“多模态”一词指的是使用多种媒体类型,如图像和表格数据。在本文中,我们展示了如何使用多模态数据来发现并释放当今现代世界中产生的大量数字信息所蕴藏的隐藏价值。

考虑到这一点,我们演示了如何使用基础模型从房产图像中提取潜在特征。通过利用图像中发现的见解,模型的准确性得以提升,而这些信息在表格数据中并不存在。本文中讨论的图像和表格数据最初由 Ahmed 和 Moustafa2016在 GitHub 发布。

一图胜千言

现在我们了解了 VQA 的能力,让我们考虑下图中的两个厨房图片。您将如何根据这些图像评估房屋的价值?您会问自己哪些问题?每张图片可能会在您的脑海中激发出数十个问题,其中一些问题可能会引导您获得有助于提高房屋估值过程的有意义答案。

图像来源:Francesca Tosolini (左) 和 Sidekix Media (右) 在 Unsplash 上

下表提供了 VQA 交互的轶事示例,显示了问题及其相应的答案。这些答案可以是分类、连续值或二元响应。

示例问题基础模型的示例答案台面是用什么材料做的?花岗岩、瓷砖、大理石、层压板等。这是一个昂贵的厨房吗?是、否有多少个独立的水槽?0、1、2

参考架构

在本文中,我们使用 Amazon SageMaker Data Wrangler 对数千张照片进行统一的问题询问。SageMaker Data Wrangler 专为简化数据准备和特征工程的过程而构建。通过提供300多种内置转换功能,SageMaker Data Wrangler 将准备表格和图像数据所需时间从数周缩短至几分钟。在这里,SageMaker Data Wrangler 将原始表格集的数据特征与基础模型提取的图像特征结合,以进行模型训练。

接下来,我们使用 Amazon SageMaker Canvas 构建回归模型。SageMaker Canvas 无需编写任何代码即可构建模型,并在短短2到15分钟内提供初步结果。在接下来的部分中,我们提供了用于实现此解决方案指导的参考架构。

许多热门模型来自 Hugging Face 和其他提供商,可以由 Amazon SageMaker JumpStart 一键部署。这些库中有成千上万的模型可用。在此文中,我们选择了一个不在 SageMaker JumpStart 中的模型,因此需要客户部署。如下面的图示所示,我们使用 Amazon SageMaker Studio 笔记本部署一个 Hugging Face 模型进行推理。该笔记本用于部署实时推理的端点,使用包含 Hugging Face 二进制模型、容器镜像指针和与模型预期输入和输出相匹配的专用 inferencepy 脚本的资产。

在 VQA 模型通过 SageMaker 端点提供服务后,我们使用 SageMaker Data Wrangler 来协调管道,最终将表格数据和从数字图像中提取的特征结合起来,并对数据重新塑形以进行模型训练。下面的图像展示了如何运行全规模的数据转换作业。

使用基础模型提升Amazon SageMaker中的模型准确性 机器学习博客

在下方图示中,我们使用 SageMaker Data Wrangler 协调数据准备任务,并使用 SageMaker Canvas 进行模型训练。首先,SageMaker Data Wrangler 使用 Amazon Location Service 将原始数据中的邮政编码转换为经度和纬度特征。其次,SageMaker Data Wrangler 能够协调将数千张照片发送到 SageMaker 托管端点进行实时推理,为每个场景询问统一的问题。这生成了一系列丰富的特征,用于描述厨房、浴室、房屋外部等特征。经过 SageMaker Data Wrangler 准备的数据集可在 Amazon S3 中获得,使用该 S3 数据作为输入,SageMaker Canvas 能够在短短2到15分钟内训练模型,而无需编写任何代码。

使用 SageMaker Data Wrangler 进行数据转换

以下屏幕截图展示了 SageMaker Data Wrangler 的工作流程。该工作流从存储在 Amazon S3 中的数千张房屋照片开始。接下来,场景检测器确定场景如厨房或浴室。最后,针对图像提出特定场景的问题,生成一个用于训练的更丰富的表格数据集。

接下来的代码示例展示了 SageMaker Data Wrangler 自定义转换代码,旨在与基础模型交互并获取有关厨房照片的信息。

pythonfrom botocoreconfig import Configimport jsonimport boto3import base64from pysparksqlfunctions import col udf struct lit

def getanswer(question image) encodedinputimage = base64b64encode(bytearray(image))decode() payload = { question question image encodedinputimage } payload = jsondumps(payload)encode(utf8) response = boto3client(runtimesagemaker config=Config(regionname=uswest2))invokeendpoint(EndpointName=myvqaendpointname ContentType=application/json Body=payload) return jsonloads(response[Body]read())[predictedanswer]

vqaUDF = udf(lambda q img getanswer(q img))

只处理厨房类型的图像

df = df[df[scene] == kitchen]

visualquestions = [ (kitchenfloorcomposition what is the floor made of) (kitchenfloorcolor what color is the floor) (kitchencountercomposition what is the countertop made of) (kitchencountercolor what color is the countertop) (kitchenwallcomposition what are the walls made of) (kitchenrefrigeratorstainless is the refrigerator stainless steel) (kitchenrefrigeratorbuiltin is there a builtin refrigerator) (kitchenrefrigeratorvisible is a refrigerator visible) (kitchencabinetcomposition what are the kitchen cabinets made of) (kitchencabinetwood what type of wood are the kitchen cabinets) (kitchenwindow does the kitchen have windows) (kitchenexpensive is this an expensive kitchen) (kitchenlarge is this a large kitchen) (kitchenrecessedlights are there recessed lights)]

for i in visualquestions df = dfwithColumn(i[0] vqaUDF(lit(i[1]) col(imagecoldata)))

一元云网页版入口

作为安全考虑,您必须首先通过 AWS 身份和访问管理 (IAM) 启用 SageMaker Data Wrangler 调用您的 SageMaker 实时端点。同样,您通过 SageMaker Data Wrangler 调用的任何 AWS 资源也需要相应的权限。

SageMaker Data Wrangler 之前和之后的数据结构

在这一部分中,我们讨论原始表格数据的结构和增强数据的结构。增强数据包含与该示例用例相关的新数据特征。在您的应用中,请花些时间设想图像中不同的问题,以帮助您的分类或回归任务。关键是想出尽可能多的问题,并进行测试以确保它们确实能提供附加价值。

原始表格数据结构

根据源 GitHub 仓库,示例数据集中包含535条表格记录,每个房产都有四张图像。以下表格展示了原始表格数据的结构。

特征说明卧室数量浴室数量面积(平方英尺)邮政编码价格这是要预测的目标变量。

增强数据结构

以下表格展示了增强数据结构,包含从图像中派生的几个新特征。

特征说明卧室数量浴室数量面积(平方英尺)纬度通过原邮政编码输入到 Amazon Location Service 计算得到,这是邮政编码的中心点值。经度通过原邮政编码输入到 Amazon Location Service 计算得到,这是邮政编码的中心点值。卧室是否有拱形天花板?0 = 否;1 = 是浴室是否昂贵?0 = 否;1 = 是厨房是否昂贵?0 = 否;1 = 是价格这是要预测的目标变量。

使用 SageMaker Canvas 进行模型训练

一个 SageMaker Data Wrangler 处理作业完全准备好,并将整个表格训练数据集存储在 Amazon S3 中。接下来,SageMaker Canvas 处理机器学习生命周期的模型构建阶段。Canvas 首先打开 S3 训练集。理解模型往往是客户的关键需求。通过几次点击,SageMaker Canvas 提供丰富的视觉反馈,显示模型的性能。

使用原始表格数据和从房地产图像派生的特征训练的模型

从以下截图中,我们可以看到由房产图片开发的特征是重要的。根据这些结果,来自照片的“这个厨房昂贵吗?”问题比表格集中的“卧室数量”更具重要性,特征重要性值分别为708和5498。

以下截图提供了有关模型的重要信息。首先,残差图显示大部分点集中在紫色阴影区域。这里有两个异常值被手动标记在 SageMaker Canvas 外面,以供说明。这些异常值代表真实房价和预测值之间的显著差距。此外,R2 值范围为0100显示为76。这表明模型并不完美,信息点不足以充分考虑所有多样性,以完全估算房屋价值。

我们可以利用异常值来寻找并提出额外信号,以构建更全面的模型。例如,这些异常属性可能包括游泳池或位于大块土地上。数据集中并未包含这些特征;然而,您可以找到这些信息并训练一个新的模型,将“是否有游泳池”作为额外特征。理想情况下,在下一次尝试中,R2 值应该提升,MAE 和 RMSE 值应降低。

未使用从房地产图像派生的特征训练的模型

在转到下一部分之前,让我们探索图像的特征是否有帮助。以下截图提供了另一个未使用 VQA 模型特征的 SageMaker Canvas 训练模型。我们看到模型的错误率增加,从282K的 RMSE 上升到352K。由此,我们可以得出结论,来自图像的三个简单问题使模型准确性提高了约20。未显示的是,为了完整起见,以下模型的 R2 值也有所下降,从有 VQA 特征的76降到62。这是 SageMaker Canvas 如何使快速实验和使用数据驱动的方法来满足您业务需求的简单示例。

展望未来

许多组织对基础模型的兴趣日益增长,尤其是自2022年12月普通预训练变换器GPT正式成为主流话题以来。对基础模型的大部分兴趣集中在大型语言模型 (LLM) 任务;然而,还有其他多样化的用例可用,如计算机视觉,以及更狭义的此处描述的特定 VQA 任务。

本文是一个使用多模态数据解决行业用例的示例。尽管我们展示了在回归模型中使用 VQA 的好处,但它也可用于为后续搜索或业务工作流路由标记和标记图像。想象一下能够搜索待售或出租的房地产。如果您想找到一处有瓷砖地板或大理石台面的房产,您可能需要获得一长串候选物业,自己逐一筛选。然而,想象一下能够过滤出包含这些特征的列表即使此人并未明确标记它们。在保险行业,想象一下能够估算索赔损失,或根据图像为商业工作流的下一步行动进行路由。

总结

本文展示了如何使用基础模型赋能的计算机视觉来改进经典的机器学习用例,以及 SageMaker 平台的应用。作为提出的解决方案的一部分,我们找到一个在公共模型注册表中可用的流行 VQA 模型,并通过 SageMaker 端点进行实时推理进行部署。

接下来,我们使用 SageMaker Data Wrangler 协调工作流程,其中要求对图像提出统一的问题,以生成丰富的表格