Ultralytics YOLO27:

专用端点#

Ultralytics Platform 支持将 YOLO 模型部署到全球 42 个区域的专属端点。每个端点都是一个单租户服务,具有唯一的端点 URL 和独立的监控。默认资源大小在空闲时可缩减为零;自定义大小则会保持一个预热实例,并按运行时间计费。

Ultralytics Platform 模型部署选项卡、区域地图和表格

创建端点#

从部署选项卡创建#

从模型的 Deploy 选项卡部署模型:

  1. 进入你的模型
  2. 点击 Deploy 选项卡
  3. 查看世界地图和区域表格,该表格按从你所在位置测得的延迟排序
  4. 在你想使用的区域行中点击 Deploy
  5. 在对话框中检查 CPU、内存、定价和部署名称,然后点击 Create Deployment

建议的名称结合了模型名称和区域城市(例如 yolo26n-iowa),并且可以在部署前进行编辑。模型必须包含权重,否则标签页将显示空状态而不是区域表格。

从部署页面创建#

从侧边栏的全局 Deploy 页面创建部署:

  1. 点击 New Deployment
  2. 从模型选择器中选择模型,其中列出了已完成的模型
  3. 从小地图或延迟表格中选择区域
  4. 选择 CPU 和内存,查看定价,并根据需要编辑建议的部署名称
  5. 点击 Create Deployment

Ultralytics Platform 新建部署对话框、模型选择器和区域地图

部署生命周期#

stateDiagram-v2
    [*] --> Creating: Deploy
    Creating --> Deploying: Service starting
    Deploying --> Ready: Service URL published
    Ready --> Stopping: Stop
    Ready --> Deploying: Replace model
    Stopping --> Stopped: Stopped
    Stopped --> Deploying: Start
    Deploying --> Stopped: Start failed
    Ready --> [*]: Delete
    Stopped --> [*]: Delete
    Creating --> Failed: Error
    Deploying --> Failed: Error
    Failed --> [*]: Delete

    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,color:#fff
    classDef error fill:#F44336,color:#fff
    classDef extern fill:#607D8B,color:#fff
    class Creating,Deploying,Stopping proc
    class Ready out
    class Failed error
    class Stopped extern

连接 Slack alerts,以便在部署准备就绪或启动失败时接收消息。

区域选择#

你可以从全球 42 个区域中进行选择。交互式区域地图和表格会显示:

  • 区域标记:按延迟以绿色到红色的渐变进行颜色编码(区域越快越绿,越慢越红)
  • 已部署区域:在表格中以 "Deployed" 徽章突出显示
  • 部署中的区域:标记和表格行会显示动画脉冲指示器
  • 双向高亮:将鼠标悬停在地图上会高亮对应的表格行,反之亦然

Ultralytics Platform Deploy Tab Region Latency Table Sorted By Latency

模型 Deploy 标签页上的区域表格包含:

描述
位置带国旗图标的城市和国家
区域区域标识符
延迟从你的浏览器测得的 ping 时间
距离从你大致所在位置到该区域的距离,单位为 km
操作Deploy 按钮或 "Deployed" 状态徽章

表格支持按城市、国家和区域搜索,默认按延迟排序。

新建部署对话框

New Deployment 对话框(来自全局 Deploy 页面)显示一个更简洁的区域表格,仅包含 Location、Latency 和 Select 列,列出速度最快的 20 个区域,并注明其余区域。使用小地图选择其他任意区域。

延迟测量方式

你的浏览器会测量到 42 个区域中每个区域的延迟,结果会缓存 30 分钟,并在 Deploy 选项卡和 New Deployment 对话框之间共享。在模型 Deploy 选项卡中使用 Rescan 按钮,从你当前的网络重新测量。距离根据请求的大致位置计算,因此仅供粗略参考,并非精确值。

可用区域#

区域位置
us-central1美国爱荷华州
us-east1南卡罗来纳州,美国
us-east4北弗吉尼亚州,美国
us-east5哥伦布,美国
us-south1达拉斯,美国
us-west1俄勒冈州,美国
us-west2洛杉矶,美国
us-west3盐湖城,美国
us-west4拉斯维加斯,美国
northamerica-northeast1蒙特利尔,加拿大
northamerica-northeast2多伦多,加拿大
northamerica-south1克雷塔罗,墨西哥
southamerica-east1圣保罗,巴西
southamerica-west1圣地亚哥,智利

端点配置#

新建部署对话框#

New Deployment 对话框允许你选择模型、区域、资源和部署名称:

字段描述
模型工作区中已完成的任意模型,通过选择器选择
区域部署区域,可在迷你地图或延迟表中选择
CPU 和内存选择资源大小并查看其显示的定价
部署名称模型和区域设置完成后自动生成,也可以编辑

Ultralytics Platform New Deployment Dialog Fixed Resource Defaults

在资源控件中选择 CPU 和内存大小,并在创建部署前查看显示的定价。默认大小可以使用可用的免费部署额度;自定义大小则使用按量计费。默认大小在空闲时会缩减为零。自定义大小会保持一个预热实例,并从就绪状态开始计费,直到你停止端点为止(包括空闲时间)。当你选择 New deployment… 时,Agents 会重新使用此对话框。

Ultralytics Platform New Deployment Dialog Custom CPU Memory Pricing

自动生成的名称

部署名称由模型名称和区域城市组合而成,例如 yolo26n-iowa。在模型 Deploy 选项卡中,如果该模型已在此区域部署,则会添加数字后缀(例如 yolo26n-iowa-2)。工作区内的名称必须唯一——部署已存在的名称会返回错误,而不会静默重命名。

部署选项卡(快速部署)#

从模型的 Deploy 标签页进行部署会打开相同的对话框,其中已预先选定模型和区域。在创建端点之前,请检查资源大小、定价和自动生成的名称。部署在创建过程中会显示在 Active Deployments 列表中。

管理端点#

视图模式#

部署列表支持三种视图模式:

模式描述
卡片包含日志、代码、预测和可用监控标签页的完整详情卡片
紧凑包含关键指标的较小卡片网格
表格带有可排序列和搜索功能的数据表

Ultralytics Platform 部署选项卡活动部署卡片视图

部署卡片(卡片视图)#

卡片视图中的每张部署卡片显示:

  • 页眉:名称、地区标志、状态徽章以及针对当前状态的操作按钮——状态为就绪时可更新配置、替换和停止,状态为已停止时可启动,任何时候都可以删除
  • 端点 URL:可复制的 URL,以及指向端点自身 API 参考的链接
  • 指标:请求数(24 小时)、P95 延迟、错误率,或“尚无流量”
  • 运行状况检查:显示延迟并支持手动刷新的实时运行状况指示器
  • 标签页LogsCodePredict;付费端点还会显示 Monitoring
  • 页脚:绑定到部署的 API 密钥前缀,以及部署变为就绪状态的日期
  • 状态消息:部署失败时显示失败原因

只有当部署处于 就绪 状态时,才会显示 URL、指标、运行状况检查和选项卡。Logs 选项卡显示最近的日志条目,并支持按严重性筛选(全部 / 错误)。Code 选项卡显示可直接使用的 Python、JavaScript 和 cURL 代码示例,其中包含你的端点 URL;工作区所有者还可查看绑定的 API 密钥(请参阅 监控)。Predict 选项卡提供内联预测面板,用于直接在部署上进行测试。

紧凑视图和表格视图

紧凑卡片显示旗帜、名称、城市、状态和三个指标。表格视图支持按名称、区域、状态、请求数、P95 和错误进行排序,并可跨名称、区域和状态搜索。两种视图都保留删除操作;启动、停止和替换操作可在卡片视图中使用。

更新 CPU 和内存#

  1. 卡片视图中打开一个就绪的端点。
  2. 点击更新部署配置
  3. 选择 CPU内存,并查看显示的每小时费用。
  4. 点击更新配置。在新的配置准备就绪之前,当前配置会继续提供服务。

Ultralytics Platform Deployment Update CPU Memory Configuration

自定义资源采用运行时间计费并保持实例处于预热状态。恢复默认资源会恢复按需缩减至零的行为并移除付费的监控标签页。

临时监控数据

监控图表和示例图像是轻量级的内存数据。停止、重启、重新部署、调整大小或替换模型可能会清除这些数据。重新启动端点不会恢复历史记录。在更改端点之前,请将有用的示例保存到数据集中并等待数据导入完成。运行指标和日志拥有单独的历史记录窗口。

替换模型#

在不更改 URL 的情况下,替换就绪端点背后的模型:

  1. 卡片 视图中打开部署
  2. 点击 替换模型
  3. 从同一工作区中选择另一个已完成的模型
  4. 可选:编辑部署名称
  5. 点击 替换模型

当前模型会继续提供服务,同时替换模型启动。替换模型就绪后,流量会转移到新模型。部署 ID、URL、区域和 API 密钥保持不变;只有当你输入新名称时,其显示名称才会更改。如果替换失败,之前的模型和名称会继续处于活动状态。

替换必须满足以下所有条件,否则会被拒绝:

  • 部署处于 就绪 状态,且没有其他生命周期操作正在执行
  • 替换模型包含权重,并且与部署属于同一工作区
  • 替换模型不是当前已部署的模型
每个端点只能有一个模型

替换会从部署中移除之前的模型。每个端点只提供一个模型的服务;如果你需要同时使用两个模型,请创建另一个部署。

部署状态#

状态描述
创建中正在设置部署
部署中容器正在启动
就绪端点已上线并接受请求
停止中端点正在关闭
已停止端点已暂停且不可用
失败部署失败(请参阅错误消息)

端点 URL#

每个端点都有唯一的 URL,例如:

https://predict-<deployment-id>-<hash>-<region>.a.run.app

Ultralytics Platform Deployment Card Endpoint Url With Copy Button

点击复制按钮复制网址。点击文档图标打开端点自己的 API 参考。端点提供这些路径服务:

路径方法描述
/predictPOST运行推理;需要部署 API 密钥
/healthGET运行状况检查,报告服务状态和缓存模型数量
/GET已部署服务的状态摘要
/docsGET为此部署、模型和区域生成的交互式 API 参考

生命周期管理#

控制端点状态:

graph LR
    R[Ready]:::out -->|Stop| S[Stopped]:::extern
    S -->|Start| R
    R -->|Delete| D[Deleted]:::error
    S -->|Delete| D

    classDef out fill:#9C27B0,color:#fff
    classDef error fill:#F44336,color:#fff
    classDef extern fill:#607D8B,color:#fff
操作描述
启动恢复已停止的端点
停止暂停端点
Delete永久移除端点

停止端点#

当你不希望端点接受请求时,请停止它:

  1. 点击部署卡片上的暂停图标
  2. 端点状态变为“正在停止”,然后变为“已停止”

已停止的端点:

  • 不接受请求,并不报告任何实时指标或健康状态
  • 停止产生运行时间费用
  • 在服务实例关闭时丢失临时监控统计数据和示例图像
  • 保留其 URL、区域和绑定的 API 密钥,并且可以随时重启
  • 仍会计入你计划中的部署配额——删除端点即可释放其名额

删除端点#

永久移除端点:

  1. 点击部署卡片上的删除(垃圾桶)图标
  2. 在对话框中确认删除
永久性操作

删除会立即生效且无法恢复——部署不会进入回收站。删除端点会移除其服务,并释放部署配额中的一个名额。你始终可以创建新端点,但它会获得新的 URL。

当模型或项目被永久删除,或者已移入回收站的模型或项目 达到其保留期限时,相关部署也会被移除。

使用端点#

身份验证#

每个部署都绑定到模型所属工作区中的一个 API 密钥。请在请求中包含该密钥:

Authorization: Bearer YOUR_API_KEY

端点只接受创建时绑定的密钥,因此其他任何密钥都无法打开它——即使是 同一工作区中的另一个有效密钥也不行。若要控制绑定的密钥,请使用工作区所有者的密钥通过 API 进行部署: 该密钥会被绑定,并且你已经持有它。通过其他方式创建的部署(Platform UI,或以团队成员身份进行身份验证的 API 调用) 会自动绑定所属工作区的一个有效密钥——你可以通过部署卡片页脚中显示的密钥 前缀来识别它,并向工作区所有者索取其值,因为只有所有者可以查看 密钥值(请参阅API 密钥)。没有绑定密钥的团队成员仍可以 在浏览器中通过 Platform predict 代理运行推理。

删除绑定的密钥不会锁定端点

删除或停用绑定的 API 密钥并不会撤销对端点的直接访问权限——任何持有该密钥字符串的人仍然可以调用端点 URL。受影响的是 Platform predict 代理,因为它会实时检查密钥,并报告该密钥已不可用。若要完全撤销访问权限,请停止或删除部署;轮换密钥后,请重新创建端点,使其绑定新密钥。

直接发送端点请求#

将生产请求直接发送到部署卡片上显示的 URL。这些请求不会经过 Platform API 速率限制器,因此每分钟 20 次请求的预测限制不适用。端点仍有自己的 容量上限:

  • 每个端点由一个实例提供服务,同时处理数量有限的请求
  • 无法及时处理的请求会返回 429,并带有 Retry-After 标头
  • 单个请求最长可运行 1 小时,因此可以完成视频推理
  • 大于 1 KB 的响应会进行 gzip 压缩,并且允许跨源浏览器请求

请求示例#

import requests

# Deployment endpoint
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"

# Headers with your deployment API key
headers = {"Authorization": "Bearer YOUR_API_KEY"}

# Inference parameters
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

# Send image for inference
with open("image.jpg", "rb") as f:
    response = requests.post(url, headers=headers, data=data, files={"file": f})

print(response.json())

请求参数#

参数类型默认值范围描述
filefile--图像或视频文件(除非设置了 source,否则为必需)
conffloat0.250.01 – 1.0最小置信度阈值
ioufloat0.70.0 – 0.95NMS IoU 阈值
imgszint64032 – 1280输入图像大小(像素)
normalizeboolfalse-将边界框坐标作为 0 – 1 返回
decimalsint50 – 10坐标值的小数精度
bitsint88, 12, 16深度图量化,仅适用于深度模型
sourcestring--图像 URL 或 base64 字符串(file 的替代项)

请参阅深度响应,了解 bits 如何改变返回的深度图,以及如何 对其进行解码。

视频推理

专用端点通过 file 参数同时接受图像和视频。

  • 图像格式(最大 100 MB):AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WEBP
  • 视频格式(最大 100 MB):ASF、AVI、GIF、M4V、MKV、MOV、MP4、MPEG、MPG、TS、WEBM、WMV

每个视频帧都会单独处理,并按帧返回结果。你也可以通过 source 参数传入公开图像 URL 或 base64 编码的图像,而不是传入 file。超大上传内容会返回 413 并被拒绝。

响应格式#

共享推理相同,但包含特定于任务的字段。

常见问题#

  • 端点数量限制取决于计划:

    • Free:最多 3 个部署
    • Pro:最多 10 个部署
    • Enterprise:部署数量不限

    在计划配额范围内,每个模型仍可以部署到多个区域。配额计入模型所属的工作区, 因此,部署共享模型的团队成员会消耗所有者的配额。达到限制后,系统会返回错误,要求你先删除现有部署。

  • 不可以,区域是固定的。要更改区域:

    1. 删除现有端点
    2. 在所需区域创建新端点

    新端点会获得新的 URL。若只想更改端点背后的模型,请使用 模型替换,这样可以保留 URL。

  • 要实现全球覆盖:

    1. 部署到多个区域
    2. 使用负载均衡器或 DNS 路由
    3. 将用户路由到最近的端点
  • 冷启动时间取决于模型,以及端点是否已缩容至零;Platform 会允许空闲端点额外等待一段时间后再将其报告为不健康。在流量突增前,从部署卡片运行健康检查可以预热实例。

  • 不可以。每个部署都会通过其部署卡片上显示的生成端点 URL 提供流量,该 URL 在部署的整个生命周期内保持稳定——包括模型替换期间。

评论