
Open-Assistant 项目全景解析从数据众包、模型训练到推理部署的开源助手技术栈【免费下载链接】Open-AssistantOpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so.项目地址: https://gitcode.com/gh_mirrors/op/Open-AssistantOpen Assistant下文简称 OA是一个以聊天对话为核心的开源大语言模型项目由 LAION 组织发起、全球志愿者协作开发。本文基于仓库 docs/docs/intro.md 的官方介绍结合仓库内真实源码、配置与文档系统梳理 OA 的项目愿景、四大协作领域、顶层目录结构与设计原则帮助读者快速建立对这套数据收集—模型训练—推理服务—前端产品完整技术栈的整体认知并为后续深入某个子模块提供路线图。说明Open Assistant 项目已正式收官concluded仓库仍完整保留全部代码、文档与数据。本文描述的架构与目录结构以当前仓库实际内容为准。项目定位与核心愿景Open Assistant 的目标是构建一个基于聊天的开源助手让每个人都能访问一个优秀的聊天式大语言模型。其核心愿景包括可在消费级硬件上运行项目的长期目标是让一个足够大的语言模型能够跑在单张高端消费级 GPU上而非依赖大规模 GPU 集群可扩展与第三方系统交互经过适当修改后Open Assistant 应能方便地对接第三方应用并能够从数据库和互联网动态检索信息开源开放代码、权重与数据面向公众开放。这一愿景直接对应仓库 README 中的表述——OA 不满足于复刻 ChatGPT而是希望构建未来的助手能够写邮件与求职信、完成有意义的工作、调用 API、动态研究信息并且允许任何人对其进行个性化定制与扩展见 README.md。项目如何运转四大核心协作领域项目官方在 docs/docs/intro.md 中明确了志愿者可以参与的四个主要方向它们共同构成 OA 的数据飞轮数据标注与对话生成在数据收集网站上为提示词prompt排名、打标签、撰写回复。这类任务的具体形态可参考 docs/docs/tasks/README.md 中列出的五类任务为助手的回复打标签、为提示词打标签、以助手身份回复、以用户身份提供提示词、为多个助手回复排名数据集策展与数据增强包括网络爬取、汇集其他公开数据集等。相关成果集中在 data/datasets 目录例如TSSB-3M、oa_dolly_15k、oa_leet10k、oa_stackexchange、zhihu-kol等多个数据集子目录每个目录均包含生成脚本、加载脚本或 README数据集规范见 docs/docs/data/datasets.md模型创建与微调OA 自身的训练与微调工作集中在 model 目录其中 model/model_training 包含 SFT监督微调、RM奖励模型与 RL强化学习三套训练器网站与后端开发面向用户的产品集中在 websiteNext.js 前端含游戏化机制与 backendFastAPI 后端两个目录。需要强调的是这种人类生成对话树 → 排名数据 → 奖励模型 → RLHF 微调的流水线正是 InstructGPT 论文所提出的三步法这一点在 docs/docs/guides/developers.md 中有更详细的展开SFT 阶段利用人类撰写的对话树与指令数据集做监督微调RM 阶段让用户对同一提示词的多个回答进行排序并训练奖励模型RL 阶段使用 PPO 算法结合奖励模型与 SFT 模型生成最终的 RL 模型。仓库顶层目录结构详解以下是 docs/docs/intro.md 中列出的仓库一级目录及其职责说明路径均已转换为仓库根目录下的相对路径目录职责ansible使用 Ansible 管理整套技术栈的部署包含deploy-to-node.yaml、deploy-server.yaml、deploy-worker.yaml等 playbook 与测试清单test.inventory.iniassets项目 Logo 资源含 SVG 与 PNG 格式如logo.svg、logo_mono.svgbackendopen-assistant.io 与 Discord 机器人的后端FastAPI本地测试 API 调用时可参考其 API 路由位于 backend/oasst_backend/api/v1涵盖认证、任务、消息、排行榜等端点copilot与 AWS Copilot CLI 相关用于云部署配置manifest.yml注意此目录与 OpenAI Codex 无关data数据相关代码与数据集脚本data/datasets 内是各类数据集的爬取、清洗与上传脚本数据集本身托管于 Hugging Facedeploy部署配置包含 dev-node、prod-node、prod2-node 三套环境下的 Nginx 与证书管理配置discord-bots以 Discord 机器人为前端的志愿者数据收集入口同时包含 Pythonoa-bot-py与 JavaScript/TypeScriptoa-bot-js两个实现docker各服务的 Dockerfile 与配套配置如后端、网站、模型训练、推理镜像及 Prometheus/Grafana 监控配置docs本说明网站的全部源码Docusaurus 站点即读者当前所在文档inferenceOpen Assistant 模型的推理流水线包括 FastAPI 推理服务器inference/server、分布式 GPU workerinference/worker、安全过滤服务inference/safety与文本客户端model模型训练/微调脚本与工具包含 model/model_trainingSFT/RM/RL 训练器与 model/model_eval评估与拒绝采样notebooks数据爬取与增强的 Jupyter Notebook 集合已弃用DEPRECATED被 data/datasets 取代oasst-sharedOpen Assistant 共享 Python 代码包含 API 客户端、模型配置与共享 schemascripts各类辅助脚本如后端/前端/机器人本地开发脚本、数据增强与后处理脚本PII 检测、排名统计、重要性采样等text-frontend基于 Typer 的文本命令行前端用于通过终端与推理服务交互websiteopen-assistant.io 网站的全部代码包含数据收集界面、聊天界面与游戏化机制基于 Next.js TypeScript目录间的调用关系从源码结构看从 docs/docs/guides/developers.md 的架构说明与 docker-compose.yaml 中的服务定义可以推断出各目录的协作链路前端webNext.js通过 HTTP API 调用后端backendFastAPI存取对话树及其元数据标签、排名后端数据存储于 Postgres容器名db并用 Redis容器名redis做 API 请求缓存聊天界面同时调用推理服务inference-server后者通过 WebSocket 与多个inference-worker通信由 worker 加载模型完成实际推理推理侧另有独立的inference-dbPostgres与inference-redis用于消息队列以及inference-safety安全服务文本客户端text-frontend与 Discord 机器人则作为额外的对话/数据收集入口同样通过 API 与后端和推理服务交互。本地运行整套技术栈README.md 给出了在本地以 Docker 启动完整开发环境的命令不含聊天推理。在仓库根目录执行docker compose --profile ci up --build --attach-dependencies随后访问http://localhost:3000即可与网站交互首次启动可能需要一些时间。注意若在 Apple M1 芯片的 MacOS 上运行需使用DB_PLATFORMlinux/x86_64 docker compose ...若通过邮箱登录魔法登录链接会显示在http://localhost:1080maildev 容器如需本地体验聊天推理可在上述命令基础上追加--profile inference但请注意本地环境仅用于开发调试并不等同于现成的本地聊天机器人。docker compose 采用基于 profile 的服务分组docs/docs/guides/developers.md 中列出了主要 profilefrontend-dev、backend-dev、ci、inference、inference-dev、inference-safety、observability含 Prometheus/Grafana/netdata 监控并且 profile 可以组合使用例如ci与observability叠加。项目原则docs/docs/intro.md 最后列出了项目在开发与运营过程中遵循的六条原则这些原则直接塑造了上文所述的架构取舍以人为中心把人类放在中心位置——对话树由人类撰写与排名产品与流程都围绕真实用户体验设计快速交付 MVP趁社区势头正盛尽快做出可用最小产品力往一处使社区协作保持方向一致避免分散务实在工程与研究中坚持实用主义面向消费级硬件模型目标是或经过一定努力后能够在普通消费者硬件上运行这解释了模型体量与量化工作的方向小规模快速验证在投入超算集群大规模训练之前先在较小规模上快速验证 ML 实验。进一步阅读路线图基于本文建立的整体认知读者可以按需深入以下仓库子文档开发者视角的完整技术栈讲解docs/docs/guides/developers.md含容器架构图与各 profile 说明推理链路细节文本客户端 → 推理服务器 → worker 的消息流docs/docs/architecture/inference.md数据收集任务类型docs/docs/tasks/README.md数据集格式与贡献规范docs/docs/data/datasets.md常见问题Docker、许可证、模型下载等docs/docs/faq.md。需要注意的是由于项目已经收官在线演示站点已不再提供服务但全部模型权重、数据集与代码均仍可获取例如通过 Hugging Face 加载模型详见 FAQ 与 model 目录。【免费下载链接】Open-AssistantOpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so.项目地址: https://gitcode.com/gh_mirrors/op/Open-Assistant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考