用途
open-strawberry 是一个开源概念验证项目,目标是通过构造“推理轨迹”来构建 OpenAI o1 的开源替代版本。项目受 OpenAI 的 Strawberry 算法启发,尝试用开源工具与方法复现类似的搜索-生成系统,以生成和验证训练数据。
主要能力
- 支持多种模型服务:Groq、ollama、Anthropic、Gemini、OpenAI、Azure。
- 通过多轮对话生成推理轨迹,引导模型逐步逼近答案。
- 支持 prompt caching(Anthropic、Google),降低运行成本;vLLM 支持前缀缓存。
- 提供 Streamlit 应用,方便监控输出。
- 支持逐步提问模型是否确信答案,若确信则要求其将最终答案放入 <final_answer> 标签,并终止推理轨迹生成。
- 生成多个推理轨迹,并通过验证系统检查历史记录中的错误。
- 基于真实标签筛选正确与错误的推理轨迹,应用 DPO 或 NLHF 进行微调,并根据步数调整偏好权重。
- 通过渐进学习与反复微调,逐步处理更困难的问题。
使用方式
- 需要 Python >=3.10。
- 在 .env 文件中填写所需 API 密钥或设置环境变量。
- 对于 ollama,可使用 OpenAI 服务,设置 OLLAMA_OPENAI_BASE_URL=http://localhost:11434/v1/ 以及 OLLAMA_OPENAI_MODEL_NAME=ollama:mistral:v0.3 或模型列表,然后运行 CLI 或在 UI 中选择模型。
- 浏览器打开 http://localhost:8501(应自动弹出),选择提示词。
- 演示地址:https://huggingface.co/spaces/pseudotensor/open-strawberry
适用场景
- 探索推理轨迹生成与验证方法的研究与实验。
- 针对具有可验证真实标签的问题进行推理能力训练。
- 作为开源社区复现 o1 推理机制的起点。
限制
- 项目处于早期阶段,结果与比较将陆续添加。
- 演示提示词针对简单模型,即使 sonnet3.5 和 gpt-4o 在标准 CoT 下也无法找到解决方案,仅 o1-mini 或 o1-preview 有时能解出,而代码智能体可轻松解决。
- 更难的问题仍然难以解决,o1-preview 仅约 50% 成功率(代码智能体约 90%)。
- 需要用户自行配置 API 密钥;部分模型服务可能需要额外费用(原文未提供具体价格)。
- 项目为推测性工作,基于 OpenAI 公开信息,与 OpenAI 无关联。
- 应用 Continue 按钮会保留灰色旧对话,建议干净启动;token 计数仅在点击 Continue 后显示,最好每轮都显示。