该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

项目定位(1030版本)

  1. 承担魔乐社区和infra支持下的,全尺寸全类型模型的下载和推理,对标modelscope,为openmind社区生态的窗口项目
  2. 结合当前热点,对LLM,MM相关任务做了重点优化,支持训练、评测、部署流水线, 对标swift-ms 和 llama-factory
  3. 数据工程等围绕LLM训练衍生出的相关功能
  4. 给用户提供高层次的封装接口,但是底层同时支持pytorch 和mindspore两套框架和对应的各种组件,但用户不感知细节
  • 项目帮助中小开发者迅速做业务验证,完成项目中前期开发工作
  • 更专业的部署和大规模训练,本项目不涉及

当前版本的问题

功能缺失

  1. 大模型的推理缺乏template,依赖pipeline,进而就难以训练
  2. 关键训练任务的数据缺少统一管理,需要用户手动构造

扩展和维护困难

  1. 新任务不容易扩展(受制于现有设计和强依赖transformers和mindformers, 无法横向添加diffuser等)
  2. 当前openmind能够完整地支持哪些任务和模型,无法清晰的感知和集中管理
  3. mindspeed等组件使用割裂,未深度集成
  4. models目录下的种子模型可能会导致一些代码逻辑的不一致性
  5. Pt和Ms框架的不一致性缺乏统一管理和抽象封装
  6. mindspore或者pytorch的特殊操作需要用户自行处理,理论需要封装

新版本设计要求

  1. 管理清晰 对openmind重点支持的范围有清晰准确的把控,从项目配置可以推导出完整的支持列表和依赖关系
  2. 可扩展性 容易引入新任务和依赖,不影响原有模块功能,通过插件式可插拔的设计,降低发新版的回归测试工作量
  3. 兼容性 与历史版本接口兼容,Pt和Ms框架兼容和隔离
  4. 可运维 因为做了很多集成,依赖管理多,需要构建错误日志定位体系,迅速找到错误点
  5. 流水线齐全 包含完整的推理,训练,评测,部署流程,通过cli和统一的参数可以统一调用

核心思想

所有模块注册制加入,构建关联关系

  • 注册task (顶层概念,比如nlp下的chat, mm下的text2image)
  • 注册pipeline wrapper (与task 1对1, task的推理抽象承载层)
  • 注册pipeline (与 wrapper 1对2(ms和pt),包含了task在不同框架下具体的preprocess,forward,postprocess)
  • 注册trainer wrapper(与task 1对N, 加stage 可以确定1对1, task的训练抽象承载层)
  • 注册trainer (与 wrapper 1对2,包含了task在不同框架下具体的训练策略)
  • 注册model group (与 task N对M,比如llama group 和chatglm group 都对应 CHAT, 同时也可以对应 TEXT_2_EMB 任务, 定义了模型的一些meta信息)
  • 注册template (与 model group 1对1,包含了模型的的多模态prompt处理)
  • 注册dataset (与task 加stage 1对多,针对LLM,MM等任务训练所需要的标准格式的数据处理)

后续暴露的sdk和cli,是在 pipeline wrapper 层级上

20240918 版本进展

完成了task, pipeline wrapper,pipeline, model group, template 部分的概要设计

20241007 版本进展

完成了trainer 的workflow 流程定义,优化model wrapper定义

mindspore chat模型加载流程 # init_and_load

pytorch chat模型加载流程 # init_and_load

pytorch 的chat pipeline推理流程 # pipeline

pytorch chat的训练流程

空文件

简介

openmind_design 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化