当前位置: 首页 > 知识库问答 >
问题:

如何将机器学习模型部署到现有网站

汝弘深
2023-03-14

我熟悉算法实现,对机器学习不熟悉,但我在学术和生产之间有差距。

我正在实施推荐系统,学习模型取得了良好的效果,然后我停下来问下一步该怎么办?如何在现有网站上部署它

在学习过程中,我使用了CSV数据集和本地机器,但在线将是拥有数十万用户和数千用户的数据库。所以我认为不可能加载所有数据并向用户推荐东西。

问题是:我将如何在生产中使用我训练过的模型?

共有3个答案

苏浩瀚
2023-03-14

我真的不明白你的意思。通常,使用一组特定的训练数据来训练模型。然后,使用一组特定的测试数据验证模型。如果模型显示出有希望的结果(例如,“训练良好”),它就会进入生产环境。

以购物共性为例。你已训练一个模型,以根据以前的产品建议下一个产品。现在,在生产中,如果您的客户购买/查看新产品,您可以使用该产品为您的算法提供,它为您提供一组您可能选择的其他产品。这与训练/验证数据相同。

数据的来源通常是不相关的。但也许我真的不明白你的问题。你能详细说明一下吗?

谷梁英资
2023-03-14

您可以通过创建 API 并将其部署到至少几个与负载均衡器连接的实例上,自行将训练的模型部署到生产环境。

另一种方法是使用为您处理该问题的服务。我的服务 mlrequest 使创建和部署高可用性、低延迟模型变得非常简单。

您可以使用非常适合提出建议的强化学习模型。下面是一个电影推荐人的例子。

from mlrequest import RL
rl = RL('your-api-key')
features = {'favorite-genre': 'action', 'last-movie-watched': 'die-hard'}
r = rl.predict(features=features, model_name='movie-recommender', session_id='the-user-session-id', negative_reward=0, action_count=3)
best_movie = r.predict_result[0]

当模型做得很好时(例如,用户点击或开始观看预测的电影),您应该通过给它一个正值(在本例中为1)来奖励模型。

r = rl.reward(model_name='movie-recommender', session_id='the-user-session-id', reward=1)

每当模型因其正确的行为而获得奖励时,它就会学会在这种情况下更频繁地执行这些行为。因此,模型可以从自己的环境中实时学习,并调整其行为以提供更好的建议。无需人工干预。

白昊东
2023-03-14

当你说“数十万用户和数千用户的数据库”我猜你是指“数十万用户和数千项目”。你有用户协同过滤还是项目-项目过滤?

如果是这样,我想那些数字(10K*1K)对于任何像样的关系html" target="_blank">数据库来说都不会是问题。基本上,你创建了一个表,比如说“Rattings”,你在其中存储: UserId、ItemId和Ratting(如果你的“功能”是二进制文件,你可以省略这个Rattting文件,例如:项目购买与否)。

如果您的用户项矩阵是稀疏的,则此表将很小。您还可以创建一个“用户”表,在“Rattings”表中插入任何内容后,您可以预先计算,例如,如果您需要标准化预测和您可能需要的其他数据,则可以预先计算用户平均评分。根据经验,在插入时不要进行非常复杂的微积分,包括扫描其他表,而是进行简单的数学运算,如果这有助于避免在检索数据以计算预测/建议时在其他表中进行复杂的扫描。

你可以从这里得到一些想法:http://lemire.me/fr/documents/publications/webpaper.pdf

考虑到关系数据库是一个存储,即使它可以使用Sql计算几乎所有内容,常规场景是使用关系数据库进行过滤和连接,然后在其他层/trier中进行数学运算。

 类似资料:
  • 我是ML世界的新手,当阅读关于用训练数据构建模型并最终测试数据以适应要求时,直到这一点我都能够理解,我的问题是一旦测试模型就准备好了 生产部署后是否需要训练/重新训练模型? 如果是这样,做法是什么? 有没有办法持久化假设,以便模型可以使用持久化的结果进行预测? 每天、每周或每月重新训练模型是好的做法吗? 假设spark MLib用于构建模型 让我补充更多细节。当我训练模型时,为了论证,它会在预生产

  • 本文向大家介绍机器学习:知道哪些传统机器学习模型相关面试题,主要包含被问及机器学习:知道哪些传统机器学习模型时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 常见的机器学习算法: 1).回归算法:回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。 常见的回归算法包括:最小二乘法(Ordinary Least Square),逐步式回归(Stepwis

  • 我是机器学习算法的新手。我正在学习基本算法,如回归、分类、聚类、序列建模、在线算法。互联网上的所有文章都展示了如何将这些算法用于特定数据。没有关于在正式生产环境中部署这些算法的文章。所以我的问题是 1) 如何在生产环境中部署机器学习算法? 2)机器学习教程中遵循的典型方法是使用一些训练数据构建模型,并将其用于测试数据。但是,是否建议在生产环境中使用这种模型?传入的数据可能会不断变化,因此模型将无效

  • 【写面筋积累好运】 半小时的第一次面试,也是时隔1个月来的面试,希望不是kpi吧。 #网易信息集散地# #23届找工作求助阵地# 项目没有怎么问,基本上是问的项目里面的八股文。 手写某某网络传播公式。 手写xgb的计算公式。 解释用到的网络结构。 问dataset和dataloader的区别。 问python的迭代器什么的(不会) 手撕了一个回溯算法的题,写出来了,但是面试官说没有看到输出,慌得一

  • 我使用内置的线性学习算法训练了AWS SageMaker模型。我可以从S3下载经过训练的模型工件(model.tar.gz)。 如何在独立于AWS的本地环境中部署模型,以便在不访问internet的情况下进行预测和推断调用?

  • 原文链接:Serverless 应用开发指南:使用 S3 部署静态网站 在尝试了使用 Router53 路由到 S3 后,并想试试能否使用 serverless 框架来上传静态内容。在探索官方的 DEMO 后,找到了一个 serverless-finch 插件可以做相应的事情。 serverless create --template aws-nodejs s3-static-file s3-st