完整版介绍可以看 xspike——GPU 任务排队、一键批量启动实验......
使用以下命令安装 xspike:
pip install xspike
xspike 目前可支持的功能有:
- GPU 任务排队 (基于 Redis)
- 批量启动实验脚本
- 钉钉通知
- Comet.ml 管理
安装 Redis、启动 Redis、Redis 数据维护
在命令行输入
xspike
按照提示依次执行 4、5、6 号操作即可部署好 Redis 环境
启动 GPU 任务排队
import xspike as x
queuer = x.GPUQueuer()
queuer.start()
# Your code is here
# ......
queuer.close()
建议在原有的代码最前端插入上述代码,并在实验结束后调用 queuer.close() 来释放当前任务
GPUQueuer() 的初始化参数说明:
visible_cuda (str, optional): 可见的 GPU 编号,多个 GPU 编号用逗号分隔,如 "0,1,2,3". 默认为 "-1",即全部可见.
n_gpus (int, optional): 需要的 GPU 数量. 默认为 1.
memo (str, optional): 任务备注. 默认为 "no memo".
实验计划
即插即用,对原来代码无任何影响
只需要在代码根目录下创建一个名为 “exp_plans” 的文件夹,里边存放每个实验计划要运行的所有脚本,并以 “xxx.sh” 来命名,样例可前往知乎博客查看
如果要取消某个实验,直接注释即可,批量启动时,为了避免 GPU 竞争,设置了实验启动间隔,每分钟启动一个实验
启动时,只需要在终端输入:
xx
即可自动扫描当前目录下的所有计划文件,并在选择后进行启动
钉钉通知
集成了 DingtalkChatbot 的通知功能,设置好 DINGDING_ACCESS_TOKEN 和 DINGDING_SECRET 环境变量或直接在函数调用时通过参数传递,然后调用下面的代码进行通知:
x.notice("Hello World!")
Comet.ml 实验管理
目前这里只实现了 Comet 环境的创建和文件夹的上传
comet_client = CometClient(project_name="Default", api_key="xxx", exp_name="MoE Baseline")
上传文件夹,比如上传本次实验的代码,方便结果复现 将文件夹下的所有 ".py", ".yml" 文件进行上传(包括子文件夹)
comet_client.log_directory("./")
依赖
xspike 非常轻量化,依赖包很少,可以减少与现有的环境发生依赖冲突的情况
nvitop
redis
rich
psutil
jsonlines
setproctitle
dingtalkchatbot
comet_ml
未来计划
- 集成 Comet.ml 实验记录,使其通过最少的代码可以用在各大框架中,并提供便捷的记录模板(Callback)
- 尽量在不增加依赖的情况下,集成实验中常用的工具类和方法
Metadata
Release files for xspike 0.3.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| xspike-0.3.10.tar.gz | 29.4 kB | Without provenance | Details |
Release files / xspike-0.3.10.tar.gz
| Download URL | xspike-0.3.10.tar.gz |
|---|---|
| Size | 29.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e0fd03aaf0889db9d7782e738f3014d508a24eaa5b49dfe4bb63d2b335c93c2
|
|
BLAKE2b-256 checksum How to use checksums |
161a20e725f6dcfcf60286015dec80b1fe04c8fd89b4e734ac8876e546299961
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.13
|
Security for xspike 0.3.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.