交互式组合探索器
项目描述
交互式组合探索器 🧊
ICE是一个用于语言模型程序的Python库和跟踪可视化器。
截图
在ICE中可视化的执行跟踪
功能
- 以不同模式运行语言模型食谱:人类、人类+LM、LM
- 在浏览器中检查执行跟踪以进行调试
- 定义和使用新的语言模型代理,例如思维链代理
- 通过并行化语言模型调用快速运行食谱
- 重用组件食谱,例如问答、排名和验证
ICE尚未达到1.0版本
:warning: ICE API可能在任何时候更改。 ICE接口正在积极开发中,我们可能会在包括移除功能、重命名方法、将ICE拆分为多个项目和其他类似破坏性更改的任何时候更改API。使用风险自负。
需求
ICE 需要 Python 3.9、3.10 或 3.11。如果您没有安装支持的 Python 版本,我们建议使用 pyenv 来安装支持的 Python 版本并管理多个 Python 版本。
如果您使用 Windows,您需要在 WSL 中运行 ICE。
入门
-
作为一般的良好 Python 实践,首先创建并激活一个 虚拟环境 以避免全局安装 ICE。例如
python -m venv venv source venv/bin/activate
-
安装 ICE
pip install ought-ice
-
在 Primer 中运行 Hello World 脚本以查看渲染的跟踪。
-
可选地,在
~/.ought-ice/.env
中设置密钥(如您的 OpenAI API 密钥)。有关格式,请参阅.env.example
。如果未设置,则运行需要它们的脚本时会提示您。
开发 ICE
-
如果您想对 ICE 本身进行更改,请克隆存储库,然后以可编辑模式安装它
python -m venv venv source venv/bin/activate pip install --upgrade pip pip install -e '.[dev]' --config-settings editable_mode=compat pre-commit install npm --prefix ui ci npm --prefix ui run dev
-
如果您正在处理后端,您可能会发现删除语言模型调用缓存很有帮助
rm -r ~/.ought-ice/cache
-
pre-commit
会抱怨您的代码未通过某些检查。它在您提交时运行,可能会拒绝您的提交,并要求您在再次提交之前修复问题(所以您可能需要使用您第一次使用的相同的提交信息)。
请注意,您实际上 不需要 运行 pre-commit install
,但 不 这做可能会导致您的提交失败 CI。(这可能很嘈杂,包括生成会修复格式等的提交。)
Storybook
我们使用 Storybook 进行 UI 测试。您可以在本地运行它们
npm --prefix ui run storybook
请注意,build-storybook
仅用于 CI,不应在本地运行。
术语
-
食谱 是将任务分解为子任务的分解。
食谱的意义是:如果一个人执行了这些步骤,并在每个工作区中独立地做好每一步,那么总体答案将是好的。这种分解可能受到我们认为 Ml 在这一点上能做什么的影响,但食谱本身(作为一个抽象)并不知道特定的代理。
-
代理 执行预定义形状的原子子任务,如完成、评分或分类。
代理不知道哪个食谱在调用它们。代理不会在子任务之间保持状态。代理通常试图完成它们被要求完成的全部子任务(不管多糟糕),但某些代理可能没有某些任务类型的实现。
-
食谱运行的 模式 是一个全局设置,可以影响每个代理调用。例如,是否使用人类或代理。食谱也可以带有某些
RecipeSettings
,这些设置可以将任务类型映射到特定的agent_name
,从而可以修改用于特定类型任务的代理。
其他资源
-
加入 ICE Slack 频道 与其他编写语言模型任务的团队合作。您还可以使用它来询问有关使用 ICE 的问题。
-
观看 Ought 的 Lab Meeting 记录 以了解 ICE 的高层次目标,了解它如何与 Ought 的其他工作互动,以及它如何有助于对齐研究。
-
阅读 ICE 宣布帖子 了解另一篇介绍。
贡献
ICE 是由 开源 的 Ought 项目。我们是一个应用 ML 实验室,正在构建 AI 研究助手 Elicit。
我们欢迎社区贡献
- 如果您是开发者,您可以深入了解代码库,帮助我们修复错误、提高代码质量和性能,或添加新功能。
- 如果您是语言模型研究人员,您可以帮助我们添加新代理或改进现有代理,并完善或创建新的食谱和食谱组件。
对于较大的贡献,在提交PR之前先提出一个讨论问题。
对于更大的贡献,加入我们——我们正在招聘!
如何引用
如果您使用ICE,请引用
迭代分解:通过监督推理过程改进科学问答。Justin Reppert,Ben Rachbach,Charlie George,Luke Stebbing Jungwon Byun,Maggie Appleton,Andreas Stuhlmüller(2023)。Ought技术报告。arXiv:2301.01751 [cs.CL]
Bibtex
@article{reppert2023iterated,
author = {Justin Reppert and Ben Rachbach and Charlie George and Luke Stebbing and Jungwon Byun and Maggie Appleton and Andreas Stuhlm\"{u}ller},
archivePrefix = {arXiv},
eprint = {2301.01751},
primaryClass = {cs.CL},
title = {Iterated Decomposition: Improving Science Q&A by Supervising Reasoning Processes},
year = 2023,
keywords = {language models, decomposition, workflow, debugging},
url = {https://arxiv.org/abs/2301.01751}
}
项目详情
ought-ice-0.5.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 96768e80ce6fce194b90f74d9ec99fb05b9dfc04f79aeed2dab751d277155c2e |
|
MD5 | b6cebaf11756cc080ca54e6122b31bad |
|
BLAKE2b-256 | 8356502ad059b62ccd7276cb987c0f16883bd33fbbc2cbe3777eb1f7f6766064 |
ought_ice-0.5.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0caa08d95b3360cd8d30490e5c53cd98a1ffdd9d2e10efe187d26944c2a19655 |
|
MD5 | 156ca531cd0678caf6c6e17af207f87b |
|
BLAKE2b-256 | 2bbd08a43d4c41f4d94aab448764919f5225558ebe1cc9202f1b370e6708a6bf |