Open Assistant 项目详细介绍
项目概述
Open Assistant 是由 LAION-AI 组织开发的开源聊天AI助手项目。该项目旨在为每个人提供优秀的基于聊天的大语言模型访问权限,通过开源的方式创造语言技术的革新。
⚠️ 重要通知: OpenAssistant 项目已经完成,项目现已结束。最终发布的数据集可以在 HuggingFace 的 OpenAssistant/oasst2 找到。
项目愿景
Open Assistant 相信通过开源协作可以在语言技术领域创造革命,就像 Stable Diffusion 帮助世界以新的方式创造艺术和图像一样。项目的最终目标不仅仅是复制 ChatGPT,而是要构建未来的助手,能够:
- 撰写邮件和求职信
- 执行有意义的工作
- 使用 APIs
- 动态研究信息
- 支持个性化和扩展
技术方法
核心技术栈
项目的主要目标是拥有一个能够回答问题的聊天机器人,通过适配大语言模型(LLM)来更好地遵循指令。为此,项目使用了 InstructGPT 论文提出的方法,该方法基于人类反馈强化学习(RLHF)。
三步训练方法
项目遵循 InstructGPT paper 中概述的三步方法:
第一步:数据收集
- 收集高质量的人类生成的指令-完成样本(提示+响应)
- 目标:超过50,000个样本
- 设计众包流程来收集和审查提示
- 避免训练洪水攻击/有毒/垃圾/个人信息数据
- 通过排行榜激励社区,展示进度和最活跃用户
第二步:排名收集
- 对每个收集的提示进行多次完成采样
- 随机向用户展示提示的完成结果进行排名(从最佳到最差)
- 众包方式处理不可靠或恶意用户
- 收集多个独立用户的投票来测量整体一致性
- 使用收集的排名数据训练奖励模型
第三步:RLHF训练
- 基于提示和奖励模型进行人类反馈强化学习训练阶段
- 可以使用结果模型继续完成采样步骤进行下一次迭代
项目架构
开发环境设置
项目支持完整的 Docker 栈部署,包括网站、后端和相关依赖服务。
基本启动命令:
docker compose --profile ci up --build --attach-dependencies
MacOS M1 芯片用户需要使用:
DB_PLATFORM=linux/x86_64 docker compose ...
本地访问:
- 主网站:http://localhost:3000
- 邮件登录链接:http://localhost:1080
开发容器支持
项目提供标准化开发环境支持:
- 本地 VSCode devcontainer
- GitHub Codespaces 网页浏览器环境
- 配置文件位于
.devcontainer文件夹
功能特性
聊天功能
- 聊天前端已上线,用户可以登录并开始聊天
- 支持对助手响应进行点赞或点踩反馈
- 实时交互体验
数据收集
- 数据收集前端已上线,用户可以登录并开始执行任务
- 通过提交、排名和标记模型提示和响应直接帮助改进 Open Assistant 能力
- 众包方式收集高质量数据
推理系统
项目包含完整的推理系统,支持:
- 本地部署推理服务
- 消费级硬件运行能力
- 可扩展的架构设计
开源特性
社区参与
- 项目由 LAION 和世界各地对将该技术带给每个人感兴趣的个人组织
- 欢迎开发者贡献代码
- 提供详细的贡献指南
项目状态
重要提醒:OpenAssistant 项目已经完成并结束。虽然项目本身已经结束,但是:
- 最终数据集 oasst2 在 HuggingFace 上可用
- 代码仍然开源可访问
- 社区可以继续基于现有工作进行开发
技术要求
硬件需求
- 项目愿景是制作一个可以在单个高端消费级GPU上运行的大语言模型
- 支持消费级硬件部署
- 优化的推理性能
部署选项
- Docker 容器化部署
- 本地开发环境
- 云端部署支持
- 推理服务独立部署
相关资源
- GitHub 仓库: https://github.com/LAION-AI/Open-Assistant
- 数据集: HuggingFace OpenAssistant/oasst2
- 官方网站: https://open-assistant.io/
- 项目文档: https://projects.laion.ai/Open-Assistant/
- 聊天界面: https://open-assistant.io/chat