项目介绍:ICE
ICE,全称为「交互式组成探索器」(Interactive Composition Explorer),是一个用于语言模型程序的Python库和执行轨迹可视化工具。这一工具的出现,为开发者提供了一种便捷的方法来运行和调试复杂的语言模型任务。
功能特点
- 多模式运行语言模型任务:ICE支持在多种模式下运行语言模型程序,包括单独由人类、由人类和语言模型结合、或完全由语言模型执行的模式。
- 浏览器中调试执行轨迹:通过浏览器,用户可以直观地查看和调试模型的执行轨迹,让问题的诊断更为高效。
- 自定义语言模型代理:用户可以定义和使用新的语言模型代理,比如链式思维代理等,以适应不同的需求。
- 快速运行任务:借助并行化技术,ICE允许快速进行语言模型调用,加速任务执行。
- 复用组件任务:支持复用问答、排名和验证等组件任务,提高开发效率。
使用前须知
ICE目前处于1.0版本前,这意味着其API可能随时进行变更,包括功能移除、方法重命名或将ICE拆分成多个项目。用户需谨慎使用并随时关注更新。
使用要求
- Python版本:需要Python 3.9、3.10或3.11版本。如果尚未安装支持的版本,推荐使用
pyenv
进行安装和管理多个Python版本。 - Windows用户:需要通过WSL(Windows Subsystem for Linux)运行ICE。
快速开始
-
创建虚拟环境:首先创建并激活一个虚拟环境,以避免全局安装ICE。
python -m venv venv source venv/bin/activate
-
安装ICE:
pip install ought-ice
-
运行示例程序:通过Primer运行Hello World程序,查看执行轨迹。
-
设置机密信息(可选):在
~/.ought-ice/.env
中设置机密信息(如OpenAI API密钥),格式可参考.env.example
。如未设置,运行需要这些信息的任务时会提示输入。
术语解析
- Recipe(任务分解):将一个任务分解为若干子任务,以便于执行和调试。
- Agent(代理):执行预定义形状的原子子任务,如补全、评分或分类。代理不关心调用它们的具体任务分解,也不维护子任务之间的状态。
- Mode(运行模式):决定任务分解的执行方式,比如由人或由代理执行等。可通过
RecipeSettings
对特定子任务类型使用特定的代理。
开发与贡献
ICE是由Ought开发的开源项目,欢迎来自社区的贡献。开发者可以贡献代码来修复Bug、改进代码质量和性能,或添加新功能;语言模型研究者可以帮助添加新代理,改进现有的任务分解和组件。
如有大规模贡献计划,请先创建问题讨论后再提交PR。
ICE还在招募更多人才加入项目团队,欢迎查看招聘信息以获取更多机会。
引用方式
如果在您的研究中使用了ICE,请按照以下方式引用:
Iterated Decomposition: Improving Science Q&A by Supervising Reasoning Processes. Justin Reppert, Ben Rachbach, Charlie George, Luke Stebbing Jungwon Byun, Maggie Appleton, Andreas Stuhlmüller (2023). Ought Technical Report. arXiv:2301.01751 [cs.CL]