Trace:新型自动微分工具,用于AI系统和LLM代理
Trace是一种新型的类似自动微分的工具,用于通过一般反馈(如数值奖励或损失、自然语言文本、编译器错误等)对AI系统进行端到端训练。Trace通过捕获和传播AI系统的执行轨迹,实现了反向传播算法的泛化。Trace以类似PyTorch的Python库形式实现。用户可以直接编写Python代码,并使用Trace原语来优化特定部分,就像训练神经网络一样!
安装
只需运行
pip install trace-opt
或者如果是开发目的,克隆仓库并运行以下命令:
pip install -e .
该库需要Python >= 3.8。安装脚本将通过git克隆AutoGen。如果git无法克隆仓库,您可能需要安装Git Large File Storage。
引用
如果您在研究中使用此代码,请引用以下论文:
@article{cheng2024trace,
title={Trace is the New AutoDiff--Unlocking Efficient Optimization of Computational Workflows},
author={Cheng, Ching-An and Nie, Allen and Swaminathan, Adith},
journal={arXiv preprint arXiv:2406.16218},
year={2024}
}
评估
Trace的早期版本使用gpt-4-0125-preview在数值优化、模拟交通控制、big-bench-hard和llf-metaworld任务上进行了测试,在多个随机种子下展示了良好的优化性能;详情请参见论文。
注意 虽然gpt-4大多数时候都能可靠工作,但我们发现gpt-4o有时甚至在非常基本的优化问题上也会产生幻觉。这可能是由于当前优化器的实现依赖于以json格式输出。社区中已有报告指出gpt-4o在处理json时存在问题(参见示例)。
免责声明
- Trace是一个基于LLM的优化框架,仅用于研究目的。
- 当前发布的是该库的测试版。未来将添加更多功能和文档,某些功能可能会发生变化。
- 系统性能可能因工作流、数据集、查询和响应而异,用户负责确定生成内容的准确性。
- 系统输出不代表Microsoft的观点。
- 所有基于系统输出的决策都应在人工监督下做出,不应完全依赖系统输出。
- 使用系统必须遵守所有适用的法律、法规和政策,包括有关隐私和安全的规定。
- 不应在高度监管的领域使用该系统,因为不准确的输出可能会建议导致伤害或对个人的法律、财务或生活机会产生负面影响的行动。
贡献
本项目欢迎贡献和建议。大多数贡献要求您同意贡献者许可协议(CLA),声明您有权并确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.opensource.microsoft.com。
当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并适当地装饰PR(例如,状态检查、评论)。只需按照机器人提供的说明操作即可。您只需在所有使用我们CLA的仓库中执行一次此操作。
本项目已采用Microsoft开源行为准则。 有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com获取任何其他问题或意见。
商标
本项目可能包含项目、产品或服务的商标或徽标。Microsoft商标或徽标的授权使用必须遵循Microsoft商标和品牌指南。 在本项目的修改版本中使用Microsoft商标或徽标不得引起混淆或暗示Microsoft赞助。 任何第三方商标或徽标的使用都受制于这些第三方的政策。
隐私
请参阅Microsoft隐私声明。