【问题标题】:Vertex AI prediction - Autoscaling cannot set minimum node to 0顶点 AI 预测 - 自动缩放无法将最小节点设置为 0
【发布时间】:2021-12-22 12:24:44
【问题描述】:

我不清楚模型预测的 Vertex AI 定价。在documentation 中,在更多关于预测节点的自动缩放标题下,提到的一点是:

"如果选择自动伸缩,节点数会伸缩 自动,并且可以在无流量持续时间内缩小到零”

后面文档中提供的示例似乎也表明,在没有流量的时期,零节点正在使用中。但是,当我在 Vertex AI 中创建端点时,在 Autoscaling 标题下会显示:

“自动缩放:如果您设置最小值和最大值,计算节点将缩放以满足这些边界内的流量需求”

“最小计算节点数”下的值为0是不允许的,所以你必须输入1或更大,并提到:

默认为 1。如果设置为 1 或更多,则计算资源将 即使没有流量需求也能持续运行。这会增加成本 但要避免由于节点初始化而丢弃的请求。

我的问题是,当我通过将最小值设置为 1 并将最大值设置为 10 来选择自动缩放时会发生什么。1 个节点是否总是连续运行?还是按照文档的建议,在没有流量的情况下缩小到 0 个节点。

为了测试,我部署了一个具有自动缩放功能的端点(最小值和最大值设置为 1),然后当我发送预测请求时,响应几乎是立即的,表明节点已经启动。大约一个小时后,我再次这样做,并且响应立即表明该节点可能永远不会关闭。此外,对于高延迟要求,自动缩放到 0 个节点,如果这确实可能,甚至是实际的,即我们可以期望从 0 个节点启动的延迟是多少?

【问题讨论】:

    标签: google-cloud-platform google-ai-platform google-cloud-vertex-ai


    【解决方案1】:

    您使用的是 N1 还是非 N1 机器类型?如果要自动缩放为零,则必须使用非 N1 机器。参见节点分配中的second note

    注意:使用 Compute Engine (N1) 机器类型的版本无法缩减到零节点。它们至少可以缩减到 1 个节点。

    更新:AI Platform 支持缩放到零,而 Vertex AI 目前不支持。在scaling 文档中,节点可以扩展,但没有提到它可以缩减到零。这是一个公开的feature request,供想要跟踪此问题的人使用。

    关于延迟要求,实际输出会有所不同。但是,根据文档需要注意的一件事是,该服务可能无法以足够快的速度使节点联机以跟上请求流量的大峰值。如果您的流量经常出现急剧的峰值,并且如果可靠的低延迟对您的应用程序很重要,那么您可能需要考虑手动扩展。

    其他参考:https://cloud.google.com/ai-platform/prediction/docs/machine-types-online-prediction#automatic_scaling

    【讨论】:

    • 谢谢,基于此文档,cloud.google.com/vertex-ai/docs/predictions/…,似乎只有“N1”机器类型可用于 Vertex AI 中的预测,因此在 Vertex AI 中缩小到 0 是不可能的?我还尝试从云控制台创建端点,唯一可用的选项是 N1 机器类型。
    • @racerX 就是这样。我更新了我的答案。请为功能请求加注星标,以便获得关注(虽然没有 ETA)。
    • 我只是让一个节点运行了一天,花了我 33 美元。我添加了feature request。创建此功能时没有考虑任何预算方面,这对许多用户来说是最重要的部分。
    【解决方案2】:

    目前无法将 N1 机器扩展到零 - 我们计划在 2022 年(希望如此)添加此支持。传统 AI 平台上的 mls- 机器可以扩展到 0,但是它不支持 GPU,并且模型大小的限制更小(2G?)

    【讨论】:

    • 我创建了一个模型,让它运行一天;它烧了大约 20 美元,什么也没做。如果我让它运行一个月,只需一个节点就需要花费超过 600 美元;如果我们需要一个在需要时启动节点的连续解决方案怎么办?用现有的结构是不可能做到的。谷歌创造了一些从长远来看没有人会使用的很棒的东西;这是不可持续的。 @肖恩
    • *更新:不是每天 20 美元,而是每天 33 美元。如果您想要一个持续的解决方案,只需一个节点每月就会花费您 1000 美元。
    • 您说的是哪种机器类型?对于 n2-standard-2,$0.097118 * 24 * 30 = $70
    • 其实我错了;每天几乎是 40 美元,而不是 33 美元。所以我每个月都会花费我40*30 = $1200。对于Vertex Ai,你没有任何选项可以选择什么,我根据THIS使用Java代码示例:AutomaticResources automaticResourcesInput = AutomaticResources.newBuilder().setMinReplicaCount(1).setMaxReplicaCount(1).build();
    • 注意:如果我想使用MachineSpec machineSpec = MachineSpec.newBuilder().setMachineType("n1-standard-2").build(); DedicatedResources dedicatedResources = DedicatedResources.newBuilder().setMinReplicaCount(1).setMachineSpec(machineSpec).build();,它会抛出一个错误,因为这是custome_trained而不是AutoML。
    猜你喜欢
    • 2020-03-30
    • 2021-09-20
    • 2022-08-03
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2016-09-04
    相关资源
    最近更新 更多