项目介绍:Tango 项目
Tango项目由 Allen Institute for Artificial Intelligence(AI2)开发,旨在通过将实验组织成可缓存和重用的独立步骤来简化研究项目的管理。这种方法替代了杂乱无章的目录和版本管理困难的电子表格,使研究过程更加顺畅和高效。
项目背景与动机
Tango 名称的由来是因为该项目的设计理念着重于将研究过程细分为井然有序的步骤。将这些步骤组合在一起,就像编排一场优雅的舞蹈,因此取名为 “Tango”。 这种方法对于采用传统工作流引擎的生产流程非常重要,而对于经常变化的研究项目而言,Tango 则显得尤为适用。
核心功能
1. 步骤缓存
Tango 的一个关键特性是其高效的缓存机制。通过计算步骤的unique_id
,即步骤输入的哈希值,Tango 能够缓存步骤结果,从而避免不必要的重复计算。如果步骤的实现代码发生了变化,用户只需更新步骤的 VERSION
类变量,即可告知 Tango 步骤已被更新,无需代码哈希的敏感性影响。
2. 实验配置与运行
用户可以通过编写简单的 Python 代码和配置文件来定义实验步骤和对应的实验。如下例:
-
创建一个简单的步骤进行打印:
# hello.py from tango import step @step() def hello(name: str) -> str: message = f"Hello, {name}!" print(message) return message
-
配置一个实验文件:
// hello.jsonnet { steps: { hello: { type: "hello", name: "World", } } }
-
运行实验并缓存结果:
tango run hello.jsonnet -w /tmp/workspace
通过这些操作,用户能够明确查看实验运行状态以及缓存结果的步骤情况。
安装与部署
Tango 需要 Python 3.8 或更高版本,可以通过多种方式进行安装:
-
使用 pip 安装
基础安装:
pip install ai2-tango
安装指定组件,比如
torch
:pip install 'ai2-tango[torch]'
-
使用 conda 安装
基础安装:
conda install tango -c conda-forge
-
从源码安装
首先克隆代码库,然后通过 pip 安装:
git clone https://github.com/allenai/tango.git cd tango pip install -e '.[all]'
-
Docker 部署
用户可以根据项目的需求选择合适的基准Docker镜像来构建适合自己的 Tango 项目环境。
项目团队
Tango 项目由 AllenNLP 团队开发维护,该团队隶属于非营利机构艾伦人工智能研究所(AI2),致力于通过高影响力的人工智能研究与工程为人类做出贡献。
开源许可
Tango 项目遵循 Apache 2.0 许可协议,使项目开源并可供社区开发者使用和改进。用户可以在 GitHub 上查看完整的许可内容。