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

如何在AWS SageMaker上部署基于TF-IDF的机器学习推荐系统

核心疑问解答

你提到的两个输出都不属于可直接部署的「模型」范畴,两者的定位分别如下:

  • tf.fit_transform(ds['content'])的输出是全量物料文本转换后的TF-IDF特征矩阵,你拟合完成的TfidfVectorizer实例tf本身才是模型组件的一部分:它存储了文本到特征的转换规则,后续如果要对新物料做特征转换、或者实时计算相似度都需要用到这个实例。
  • linear_kernel(tfidf_matrix, tfidf_matrix)的输出是全量物料两两之间的余弦相似度矩阵,你基于这个矩阵生成的results字典是预计算好的每个物料的Top99相似候选集,属于你线上推理可以直接读取的预计算资产。

部署所需资产说明

根据你的业务场景可以选择两种部署模式:

模式1:离线预计算模式(推荐,延迟更低)

如果你的物料库更新频率低(比如每天/每周更新一次),直接采用这种模式即可,需要打包部署的资产包括:

  1. 预计算好的results字典
  2. 物料id和对应信息的映射表(你当前代码里的ds数据集)
    推理逻辑非常简单:接收请求传入的item_id和召回数量num,直接从results里取对应条目的前num个结果返回即可,不需要实时做任何计算。

模式2:实时计算模式(适合物料频繁更新的场景)

如果你的物料库会随时新增内容,不想每次更新都全量重算相似度,可以选择这种模式,需要打包部署的资产包括:

  1. 拟合完成的TfidfVectorizer实例tf
  2. 全量存量物料的TF-IDF特征矩阵tfidf_matrix
  3. 物料id和特征索引的映射表
    推理逻辑:接收请求传入的item_id,先取出对应物料的TF-IDF特征,和全量特征矩阵实时计算余弦相似度,排序后取TopN结果返回。如果有新物料入库,只需要用tf转换新物料的特征加入特征矩阵即可,不需要全量重算所有相似度。

部署到SageMaker的基础步骤

你可以按照以下流程操作:

  1. 用pickle或者joblib将上面选择的对应资产序列化保存到S3存储桶
  2. 基于SageMaker官方提供的SKLearn镜像编写推理脚本,脚本里需要实现model_fn(加载预存的资产)、predict_fn(解析请求参数、执行推荐逻辑、返回结果)两个核心函数
  3. 配置SageMaker模型、端点配置,部署为可调用的REST端点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:24:02