跳转到主要内容

交互式组合探索器

项目描述

交互式组合探索器 🧊

ICE是一个用于语言模型程序的Python库和跟踪可视化器。

截图

ice-screenshot 在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。

入门

  1. 作为一般的良好 Python 实践,首先创建并激活一个 虚拟环境 以避免全局安装 ICE。例如

    python -m venv venv
    source venv/bin/activate
    
  2. 安装 ICE

    pip install ought-ice
    
  3. Primer 中运行 Hello World 脚本以查看渲染的跟踪。

  4. 可选地,在 ~/.ought-ice/.env 中设置密钥(如您的 OpenAI API 密钥)。有关格式,请参阅 .env.example。如果未设置,则运行需要它们的脚本时会提示您。

开发 ICE

  1. 如果您想对 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
    
  2. 如果您正在处理后端,您可能会发现删除语言模型调用缓存很有帮助

    rm -r ~/.ought-ice/cache
    
  3. pre-commit 会抱怨您的代码未通过某些检查。它在您提交时运行,可能会拒绝您的提交,并要求您在再次提交之前修复问题(所以您可能需要使用您第一次使用的相同的提交信息)。

请注意,您实际上 不需要 运行 pre-commit install,但 这做可能会导致您的提交失败 CI。(这可能很嘈杂,包括生成会修复格式等的提交。)

Storybook

我们使用 Storybook 进行 UI 测试。您可以在本地运行它们

npm --prefix ui run storybook

请注意,build-storybook 仅用于 CI,不应在本地运行。

术语

  • 食谱 是将任务分解为子任务的分解。

    食谱的意义是:如果一个人执行了这些步骤,并在每个工作区中独立地做好每一步,那么总体答案将是好的。这种分解可能受到我们认为 Ml 在这一点上能做什么的影响,但食谱本身(作为一个抽象)并不知道特定的代理。

  • 代理 执行预定义形状的原子子任务,如完成、评分或分类。

    代理不知道哪个食谱在调用它们。代理不会在子任务之间保持状态。代理通常试图完成它们被要求完成的全部子任务(不管多糟糕),但某些代理可能没有某些任务类型的实现。

  • 食谱运行的 模式 是一个全局设置,可以影响每个代理调用。例如,是否使用人类或代理。食谱也可以带有某些 RecipeSettings,这些设置可以将任务类型映射到特定的 agent_name,从而可以修改用于特定类型任务的代理。

其他资源

  1. 加入 ICE Slack 频道 与其他编写语言模型任务的团队合作。您还可以使用它来询问有关使用 ICE 的问题。

  2. 观看 Ought 的 Lab Meeting 记录 以了解 ICE 的高层次目标,了解它如何与 Ought 的其他工作互动,以及它如何有助于对齐研究。

  3. 阅读 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(1.8 MB 查看哈希值

上传时间 源代码

构建发行版

ought_ice-0.5.0-py3-none-any.whl(1.1 MB 查看哈希值

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面