命令行工具
Featurize 提供了一个命令行工具 featurize 来让一些操作能自动化地完成:
➜ ~ featurize --helpUsage: featurize [COMMAND]
Commands: compress 压缩目录 decompress 解压文件 instance 实例管理 dataset 数据集相关操作 port 端口转发管理 notify 发送微信公众号通知 config 管理本地配置 help Print this message or the help of the given subcommand(s)
Options: -h, --help Print help一些功能与浏览器页面上有重复,以命令行方式提供的目的是为了让用户能够自动化得使用这些功能,另外还有一些功能是页面上不提供的,仅命令行才能使用。
大部分命令行工具的功能只支持在实例中使用,而对于比较重要的例如数据集上传,则也支持在用户的电脑中使用。
下载工具#
实例中默认已经安装了命令行工具,如果用户希望在本地电脑中使用命令行工具(例如上传数据集),则需要下载,下载时请认准自己的操作系统下载对应的软件:
- Windows 👉 x86_64-pc-windows-gnu.zip
- Linux 👉 x86_64-unknown-linux-gnu.zip
- macOS Intel 👉 x86_64-apple-darwin.zip
- macOS M1 👉 aarch64-apple-darwin.zip
info
由于下载的是一个二进制文件,对于 macOS 用户,下载后可能需要在系统设置中放行该文件的执行权限。
info
推荐用户将该可执行文件放在 $PATH 环境中,这样可以在任何地方使用 featurize 命令。macOS 和 Linux 用户直接将文件放在 /bin/ 下即可(需要 sudo 权限)。Windows 11 的用户可将可执行文件放置在 C:\Users\$USERNAME\AppData\Local\Microsoft\WindowsApps 目录下。
数据集相关#
我们更推荐用户使用命令行工具来制作、上传以及下载数据集,这会提供更好的性能和更稳定的体验。
上传数据集#
featurize dataset upload <目录或文件>在最新的镜像版本中,通过页面上拉取数据集到实例,实际背后也是调用命令行工具。
相比于浏览器,通过命令行工具上传数据集有以下优势:
✅ 可以直接上传一个目录,而不是一定要先打包
✅ 更好地支持断点续传,不会因为网络问题导致上传失败而重传
✅ 真 · 多线程上传,实测速度是浏览器的 1.5 倍左右
✅ 自动化,可以将多个上传任务写在 Shell 脚本里完成顺序批量上传数据集
success
我们推荐直接上传目录,而不是手动打包后再上传,因为命令行工具使用的压缩算法比一般的 zip 或 gz + tar 更高效。特别是对于超大的数据集,在数据集解压速度上会有非常明显的优势。
如果一定要压缩目录,也推荐使用 featurize compress 和 featurize decompress 来进行压缩和解压,理由如上:压缩算法更高效,解压速度更快。featurize decompress 也支持直接解压常见的压缩包,例如 zip、tar.gz 等。
下载数据集#
featurize dataset extract <数据集ID> # 推荐
或
featurize dataset download <数据集ID>使用 featurize dataset download 仅会下载数据集的原始文件,对于很大的数据集来说,这可能导致磁盘不够用,考虑一个 200GB 的数据集,下载 + 解压至少会占用 400GB 的磁盘空间。
因此,更推荐使用 featurize dataset extract,这个方式会以流式解压,也就是不下载原始文件,而是直接将远程原始文件解压到本地磁盘中,磁盘利用率更高,速度也更快。
warning
数据集下载仅支持在实例中使用,不支持在用户本地使用。
通知#
featurize notify -t "测试通知"`可以通过命令行工具给自己发送通知,通知以 Featurize 公众号消息的形式发送,这在很多场景下非常有用,比如:
- 在某个训练完成后发送通知
- 在某个任务失败后发送通知
- 每轮训练完后自动发送训练的结果
- ...
info
接收通知需要用户关注 Featurize 公众号,另外该命令也仅能在实例中使用。
端口转发至公网#
featurize port export <端口号>如果用户在实例中起了一些端口,并且希望将端口暴露到公网访问,可以使用该功能。例如,用户通过命令行起了一个 TensorBoard 服务,这个服务监听的端口是 6006,那么可以这么使用:
(base) ➜ ~ featurize port export 6006 ✅ 端口已转发至公网,可使用 workspace.featurize.cn:48625 进行访问。 🔗 如果是 HTTP 服务,可直接在浏览器中访问 http://workspace.featurize.cn:48625 。这样,我们就可以在浏览器中输入 http://workspace.featurize.cn:48625 访问到 TensorBoard 面板了。
danger
注意,服务必须绑定 IP 地址 0.0.0.0 才能被公网访问。大部分服务默认绑定的 IP 地址是本地 IP,即 localhost 或 127.0.0.1,这种情况下是无法被公网访问的,需要手动指定绑定 IP 地址为 0.0.0.0。
即便访问地址使用 Featurize 域名,对外提供的内容由你本人独立发布,与 Featurize 无关,相关法律责任由你自行承担。详见 用户服务协议 第 5.6 条。