使用情况统计收集#

从 Ray 1.13 版本开始,Ray 默认收集使用情况统计数据(受可选退出提示保护)。这些数据将供开源 Ray 工程团队用于更好地了解如何改进我们的库和核心 API,以及如何优先处理 bug 修复和功能增强。

以下是我们的收集策略指导原则

  • 无意外 — 在我们开始收集数据之前,您将收到通知。关于收集的数据或其使用方式的任何变更,您也将收到通知。

  • 易于退出: 您将能够轻松选择退出数据收集

  • 透明度 — 您将能够查看发送给我们的所有数据

  • 控制 — 您将对您的数据拥有控制权,我们将遵从您的数据删除请求。

  • 我们将不会收集任何个人身份信息或专有代码/数据

  • 我们不会出售您的数据,也不会购买关于您的数据。

您将始终能够禁用使用情况统计收集

欲了解更多背景信息,请参阅此RFC

收集哪些数据?#

我们收集非敏感数据,帮助我们了解 Ray 的使用情况(例如,使用了哪些 Ray 库)。永远不会收集个人身份信息。 请查看 UsageStatsToReport 类以了解我们收集的数据。

如何禁用#

在启动集群之前,有多种方式可以禁用使用情况统计收集

  1. 添加 --disable-usage-stats 选项到启动 Ray 集群的命令中(例如, ray start --head --disable-usage-stats 命令)。

  2. 运行 ray disable-usage-stats 禁用未来所有集群的收集。这不会影响当前正在运行的集群。在后台,此命令会将 {"usage_stats": true} 写入全局配置文件 ~/.ray/config.json

  3. 将环境变量 RAY_USAGE_STATS_ENABLED 设置为 0(例如, RAY_USAGE_STATS_ENABLED=0 ray start --head 命令)。

  4. 如果您正在使用 KubeRay,您可以添加 disable-usage-stats: 'true'.spec.[headGroupSpec|workerGroupSpecs].rayStartParams.

当前无法启用或禁用正在运行的集群的数据收集;您必须停止并重启集群。

工作原理是什么?#

当 Ray 集群通过 ray start –headray upray submit –startray exec –start 启动时,Ray 将按顺序考虑以下因素来决定是否启用使用情况统计收集

  1. 它检查环境变量 RAY_USAGE_STATS_ENABLED 是否已设置:1 表示启用,0 表示禁用。

  2. 如果环境变量未设置,它会读取全局配置文件 ~/.ray/config.json 中键 usage_stats 的值:true 表示启用,false 表示禁用。

  3. 如果两者都未设置且控制台是交互式的,则会提示用户启用或禁用收集。如果控制台是非交互式的,使用情况统计收集将默认启用。此决定将被保存到 ~/.ray/config.json 中,因此提示只会显示一次。

注意:通过 ray.init() 启动的本地开发集群不会启用使用情况统计收集,除非是 nightly wheel 版本。这意味着 Ray 永远不会收集非直接使用 Ray 的第三方库用户的数据。

如果启用了使用情况统计收集,head 节点上的后台进程将收集使用情况统计并每小时报告给 https://usage-stats.ray.io/ 。报告的使用情况统计也会保存到 /tmp/ray/session_xxx/usage_stats.json 在 head 节点上,以便检查。您可以检查此文件是否存在,以查看是否启用了收集。

使用情况统计收集非常轻量,对您的工作负载不会有任何影响。

请求删除已收集数据#

要请求删除已收集数据,请发送电子邮件至 usage_stats@ray.io 并附上 session_id 您可以在 /tmp/ray/session_xxx/usage_stats.json 中找到的。

常见问题 (FAQ)#

session_id 是否映射到个人数据?

不,uuid 将是 Ray session/job 特定的随机 ID,无法用于识别特定个人或机器。它不会超出您的 Ray session 的生命周期;收集它主要是为了使我们能够遵从删除请求。

session_id 会被记录,以便遵从删除请求。

企业是否可以轻松配置附加端点或替换为不同端点?

我们非常理解这种用例,并乐意与您交流以实现此功能 – 请发送电子邮件至 usage_stats@ray.io

联系我们#

如果您对使用情况统计收集有任何反馈,请发送电子邮件至 usage_stats@ray.io