更新记录

v0.4.1(2021-07-15)

一站式开发平台

BugFix

  • 将文件下载服务前移到天枢官网 https 服务

v0.4.0(2021-07-06)

一站式开发平台

Breaking Changes

  1. 后端由单体架构升级为 Spring Cloud 微服务架构
  2. 存储方式解耦 NFS ,现在可以支持任意可挂载的文件存储系统
  3. 新增单机一键部署脚本,简化部署流程,用户手册和部署文档都已更新

Features

  1. 数据管理模块:

    • 新增图像语义分割标注
    • 新增文本标注类型:文本分类、中文分词、NER(命名实体识别)
    • 新增语音标注:音频分类、语音识别
    • 新增「自定义数据集」
  2. 模型管理模块:

    • 新增模型转换服务,可将 TensorFlow SaveModel 模型转换为 ONNX 模型
  3. 控制台模块:

    • 新增控制台-用户管理-资源独占功能,管理员用户可设置集群中某台服务器为指定用户独占,其他用户无法使用该服务器进行训练。
    • 新增控制台-资源管理界面,统一管理 cpu,gpu 等资源规格
    • 新增控制台-用户组管理功能(可以对同一群组的用户进行批量操作,如:批量激活/锁定用户、批量修改角色或批量删除用户等操作)
    • 新增控制台-权限管理功能(可以新建权限组,然后勾选指定的权限,用于「角色管理」中权限分配功能,旨在可以更加动态自由的分配相关的操作权限)
    • 新增控制台-角色管理-权限分配功能(可对各类用户角色进行权限分配)
  4. 算法管理模块:

    • 新增推理脚本管理
  5. 云端部署模块:

    • 新增自定义推理脚本功能,支持用户选择「算法管理」中的推理脚本
    • 新增支持用户选择镜像,对接「训练管理」中的「镜像管理」模块

Fix

  1. 数据管理模块:
    • 视频标注支持多视频上传
    • OFRecord 发布更改为可选,且仅支持图像分类标注
    • 一些体验优化:标注详情默认定位到未标注、标注详情展示文件数量、支持标注文件筛选等
  2. 训练参数变化,train_out 改为 train_model_out,train_log 改为 train_out
  3. 优化停止任务逻辑,停止 Notebook 和训练任务可立即停止
  4. 优化下拉框,所有下拉框统一改为可搜索式,用户可输入关键字搜索下拉框内容
  5. 优化 Notebook,现在 Notebook 支持数据集挂载功能
  6. 优化集群状态监控,非完成状态 pod 列入集群状态页面
  7. 优化 k8s 任务信息到前端的反馈,pod 描述反馈到页面,增强“待处理”状态的可理解程度
  8. 自定义推理脚本接入到算法管理模块进行管理
  9. 云端部署模块 tianshu_serving 代码名称变化,tianshu_serving 修改为 dubhe_serving

v0.3.0(2021-01-14)

一站式开发平台

Breaking Changes

天枢深度学习一站式平台新增:

  1. 模型炼知模块:包括度量管理、图谱可视化、图谱列表
  2. 模型优化模块:模型压缩
  3. 云端部署模块:包括在线服务和批量服务

Features

  1. 数据处理模块增加医学影像、文本两类数据集支持
  2. 数据处理自动标注算法增加多 GPU 切换能力
  3. 数据集上传脚本工具优化日志输出功能,增加对于新增数据集支持,增加预置数据集上传功能
  4. 数据模块处理标签组增加类型区分功能
  5. 训练管理模块新增支持炼知模型的训练,优化底层 k8s pod 回调日志
  6. 镜像管理模块支持管理 Notebook 镜像

天枢深度学习框架 OneFlow

Breaking Changes

  • Chain 重构

  • 新的 Checkpoint

  • Optimizer Placement 优化

  • SSP 优化

  • 亚线性内存优化

  • 量化训练支持

  • 支持 Partial FC

  • CFG 优化

  • 安培架构显卡支持和优化

  • 大量算子增添及优化

Features

系统组件

  • [enhancement][system] migrate job_build_and_infer api to pybind11 #3940

  • [feature][system] quantization aware training pass #3817

  • [eager][enhancement][system] Mig op arg para attr #4102

  • [feature][system] Tensor Float 32 Support. #4072

  • [enhancement][system] Mig op arg para attr #4090

  • [enhancement][system] Mig py cfg sbp #4086

  • [enhancement][system] Refactor python remote blob #4081

  • [enhancement][system] remove BlobDef #4071

  • [enhancement][system] Refactor python blob desc #4063

  • [feature][system] Add nvtx range and thread naming #4064

  • [documentation][enhancement][system] Add docs on installing legacy versions of oneflow #4056

  • [enhancement][system] Add err info for ncclGroupEnd check #4048

  • [enhancement][system] Optimize dynamic loss scale parameters #4045

  • [purge][system] Remove col_id #4046

  • [enhancement][system] Scope with symbol #4040

  • [enhancement][system] Job desc with symbol #4032

  • [enhancement][system] Parallel desc with symbol #4017

  • [enhancement][system] Set default block size to 512 #4011

  • [feature][system] Remove swig in oneflow #3969

  • [feature][system] Migrate oneflow internal api to pybind11 #3953

  • [build][enhancement][system] Bump nccl from 2.7.3 to 2.8.3 #3875

  • [enhancement][system] Migrate foreigns to pybind11 #3939

  • [enhancement][system] Optimize NcclCollectiveBoxingExecutorBackend::ExecuteGroup latency #3997

  • [feature][system] OptimizerPlacementOptimization #3944

  • [bottleneck][enhancement][system] Sublinear memory cost by checkpointing #3976

  • [enhancement][system] Add gradients stats aggregation #3979

  • [feature][system] nccl enable mixed fusion #3981

  • [enhancement][refactor][ssp] Dev ssp fix fuse and add just #3959

  • [enhancement][system] remove serialized in python callback #3891

  • [feature][system] Add NaiveB2PSubTskGphBuilder #3942

  • [feature][system] Add Nccl All2All #3538

  • [bottleneck][enhancement][refactor][system] New Chain #3874

  • [feature][system] New checkpoint #3540

  • [feature][system] DynamicLossScale #3886

  • [feature][system] add initializers to check_point #3762

  • [feature][ssp][system] Memory Reuse support time shape > meta shape #3796

  • [feature][system] OneFlow support tensor shape max dim size up to 6 #3802

  • [enhancement][system] Simple kernel memory bandwidth profiler #3855

Op 新增和性能优化

  • [enhancement][op] reduce sum half kernel #4110

  • [enhancement][op] simplify cosface #4107

  • [enhancement][op] indexed_slices update support weight_decay #4096

  • [enhancement][op][python] Migrate swish and mish namespace from math to nn #4104

  • [enhancement][op] Add elementwise maximum/minimum ops #4069

  • [enhancement][op] Fix Code format warning in hardswish #4105

  • [enhancement][feature][op] Add Scalar Pow #4082

  • [enhancement][op][refactor] Migrate cast_to_static_shape to user op #4095

  • [feature][op] Add GroupNorm op #4089

  • [feature][op] Distributed partial sampler #3857

  • [enhancement][op][python] add Relu6 activation #4029

  • [enhancement][op] add remove_img_without_anno api for COCOReader #4088

  • [enhancement][op] Add Hardtanh activation #4049

  • [enhancement][op] Add ELU activation #4065

  • [enhancement][op][python] Update logsoftmax.py #4041

  • [documentation][op] Fix in_top_k api document #4079

  • [enhancement][op] Add Hardswish activation #4059

  • [enhancement][op][python] Add hard sigmoid #4043

  • [enhancement][op] Dev in top k #3611

  • [enhancement][op] Optimize softmax cuda kernel #4058

  • [feature][op] Add InstanceNorm 1d & 3d implementation #4052

  • [feature][op] Quantization aware training releated ops #3764

  • [enhancement][op] Generic unfold kernel implementation #4033

  • [enhancement][op] User op dim_gather support dynamic input and index #4039

  • [enhancement][op] Reflection pad2d op #3777

  • [enhancement][op] slice support empty blob #4025

  • [enhancement][op][refactor] Make MaxWithLogThreshold and SafeLog header only #4030

  • [op][purge] Tidy up op_conf.proto #3932

  • [enhancement][op][python] Dev bcewithlogits loss #4024

  • [feature][op] Add implementation of InstanceNorm2D op #4020

  • [enhancement][op][refactor] Refactor gpu_atomic_add #4027

  • [enhancement][op][python] add kldivloss #4012

  • [enhancement][op][python] Dev oneflow ones #3990

  • [enhancement][op] Add flatten/squeeze/expand_dims to auto mixed precision clear list and use reshape instead of reshape_like to do reshape grad computation #4015

  • [enhancement][op][python] add pixel shuffle #4003

  • [enhancement][op] Scalar kernels use element-wise template #4013

  • [enhancement][op][python] add zeros api #3991

  • [enhancement][op] Optimize ComputeEntropyGpu with CUB #3930

  • [feature][op] CUDA template for element-wise kernels #4007

  • [feature][op][python] add swish activation #3970

  • [enhancement][op] Argwhere support empty blob #4009

  • [feature][op][python] add mish activation #3972

  • [enhancement][op] Fuse cast scale #3999

  • [enhancement][op] layer_norm_grad_add_to_output #3998

  • [enhancement][op] Dev optimize prelu #3987

  • [api][enhancement][op] Switch identity to user op and add it to auto mixed precision clear list #3992

  • [enhancement][op] Optimize slice kernel #3989

  • [enhancement][op] fused_scale_tril / hot fix matmul / softmax broadcast_sub broadcast_div #3980

  • [feature][op] Add multi_square_sum op #3977

  • [feature][op] TripOp add fill value #3960

  • [feature][op] add combined margin loss #3819

  • [enhancement][op] slice_update op #3544

  • [feature][op] dynamic loss scale schedule op #3885

  • [feature][op][python] add mseloss #3893

  • [feature][op] LAMB support #3620

  • [feature][op] logical slice_assign and slice op #3647

  • [feature][op][system] Add Repeat/Acc user op #3707

  • [enhancement][op] Unpack/Pack user op #3727

  • [feature][op][ssp] Ssp variable proxy #3715

  • [enhancement][op] adam_bias_correction_learning_rate #3763

  • [enhancement][op][serving] add flatten op implementation #3789

  • [enhancement][op] Dev enhance sort ops #3828

  • [enhancement][op] Optimize softmax cuda kernel block size #3853

  • [enhancement][op] SplitLikeOp prefix support #3866

  • [feature][op] multi_count_not_finite op #3879

  • [feature][op] model update op add skip if #3883

Python 前端

  • [feature][python] add stack #3897

  • [api][enhancement][python] add deprecate api optimizer.PolynomialSchduler #4038

  • [cfg][enhancement][python] Dev replace py job conf proto to cfg #3856

  • [feature][python] Add triplet loss #3864

  • [enhancement][feature][python] add l1 loss op in python #3793

  • [feature][python] add bceloss #3804

工具链

  • [feature][tooling] split_cfg_cpp_and_pybind_generator #4002

  • [enhancement][tooling] Cfg hash #4084

  • [enhancement][tooling] Finetune cfg tool #4050

  • [enhancement][tooling] optimize link time #4042

  • [cfg][enhancement][refactor][tooling] replace ScopeProto to cfg #3816

  • [api][enhancement][refactor][tooling] Refine custom op build #3925

  • [enhancement][tooling] default show cpp error stack frame #3948

  • [cfg][enhancement][tooling] Dev replace py parallel conf proto to cfg #3810

  • [enhancement][feature][tooling] Py kernel2 #3686

编译

  • [build][documentation] Add CentOS specific info on README.md #4099

  • [build][enhancement] Disable CUDA_SEPARABLE_COMPILATION #4036

CI

  • [ci][enhancement] Upload log of distributed CI #4028

  • [ci][enhancement] Make oneflow worker docker stay alive for 6 hours #4026

  • [ci][enhancement] Allow to keep oneflow_worker log in distributed CI #4022

  • [ci][documentation] userop and general pr templates added #3952

  • [ci][enhancement] upload bin to oss #4000

  • [ci][enhancement][test] larger tol for bn #3965

  • [ci][feature] Multi node support in CI #3735

BugFix

系统组件

  • [bug][system] Fix warning: moving a local object in a return statement prevents copy elision #4067

  • [bug][system] Fix warning: moving a local object in a return statement prevents copy elision #4067

  • [bug][system] support eager empty blob #4047

  • [bug][system] change sbp order value for layer norm #3995

  • [bug][system] Fix eager test_resume_training test #4023

  • [bug][system] Fix python cfg error bug #4018

  • [bug][system] Remove redundant pack_size in GenericLauncher #4014

  • [bug][system] disable new checkpoint by default temporarily #3943

  • [bug][system] Explicitly specify the SBP in NonDistributedOptimizerPass #3937

  • [bug][system] Fix CollectiveBoxingGenericTaskNode::ProduceAllRegstsAndBindEdges #3946

  • [bug][system] Remove CheckNoCycle in chain graph #3693

  • [bug][enhancement][system] Support Ampere devices #3806

算子修复

  • [bug][op] Fix bug: mut_shape_view of static output maybe null in UserKernel::ForwardShape #4094

  • [bug][op] Rename ont_hot_op.cpp to one_hot_op.cpp #4093

  • [bug][op][python] fix hardtanh CI precision error #4091

  • [bug][op] Fix argwhere tmp buffer infer #4061

  • [bug][enhancement][op] Migrate argwhere to user op #4021

  • [bug][op] Dev rm old tanh #4035

  • [bug][op] fix argwhere format #4010

  • [bug][op] Hotfix: add parallel cast to amp clear list #3988

  • [bug][op] add combined margin cpu and fix bug #3961

  • [bug][op] fix pad op #3971

  • [bug][op] Fix constant init value #3947

  • [bug][op] indexed_slices_model_update handle empty tensor #3933

Eager 模式

  • [bug][eager] Fix eager bug of test split like #4004

  • [bug][eager] add float16 datatype for eager boxing #4092

  • [bug][eager] Fix eager memory leak and re-enable new checkpoint #4008

  • [bug][eager] barrier for multi node eager #3748

Python前端

  • [bug][enhancement][python] Fix test kldivloss tolerance #4103

  • [bug][enhancement][python] Fix "hardsigmoid" eager test error #4085

  • [bug][documentation][python] Add hardsigmoid #4076

CI

  • [bug][ci] Quit docker after making ssh creadential #4075

  • [bug][ci] Fix CI outputs wrong cmd when printing failed cmd due to shadowed var #4031

  • [bug][ci] fix oss list file 100 limit #3935

v0.2.0(2020-10-26)

一站式开发平台

Breaking Changes

  1. 支持 OneFlow、TensorFlow、PyTorch 等主流框架的多机多卡模式分布式训练
  2. 基于状态机的数据集状态重构,将业务代码和状态变更完全解耦,实现零延时的状态变更响应能力
  3. 添加分布式算法调度。引入任务调度,将算法和应用解耦,支持多算法程序节点并行处理任务,并基于 k8s 实现算法节点自动伸缩
  4. 将标签和数据集拆分,引入「标签组」统一管理标签,实现标签可复用、可重组
  5. 训练时支持将已有模型作为训练入参
  6. 训练时支持区分训练数据集与验证数据集
  7. 平台后端日志分流,区分用户请求日志、平台日志、定时任务日志;精简日志信息
  8. 增加定时任务,异步清理垃圾数据(用户上传文件、训练/模型删除文件、大批量数据集文件)

Features

  1. 数据集图片手动标注优化。支持对标注像素级位置、大小调整,支持常见缩放、拖拽、平移等操作
  2. 通用数据权限方案改造。对业务代码零侵入性的权限方案,实现基于用户,角色,资源的权限数据管理
  3. 超大数据集操作流程优化。实现超大数据集( 40w+ 文件)的前端、后端、存储全流程平滑操作
  4. 支持本地已有数据集兼容。系统提供标准数据集模板,用户按照规范导入数据集文件,实现数据集全功能兼容
  5. 算法开发 Notebook 超时(默认 4h )自动关闭并回收资源
  6. 断点续训功能、模型下载功能、模型保存功能支持通过目录树选择模型文件/文件夹
  7. 文件上传增加进度条展示
  8. 训练创建页,增加运行命令预览功能;训练详情页,增加算法在线编辑跳转功能
  9. 训练支持延时启动、定时停止功能
  10. 训练日志、运行日志下载功能优化,避免大文件导致的浏览器卡死
  11. 镜像管理功能,镜像名称支持自定义;支持镜像的删除、修改等操作;镜像上传后自动清除 docker load 镜像
  12. 上传算法功能、训练创建功能、训练终止功能性能优化
  13. CPU/GPU 规格类配置支持管理员控制台管理
  14. 增加训练失败异常信息反馈

天枢深度学习框架 OneFlow

Breaking Changes

  1. 优化 OneFlow 编译速度
  2. CUDA 性能调优
  3. 自动混合精度性能优化
  4. 支持 P2P 的动态网络传输
  5. 深度学习框架性能评测 —— DLPerf
  6. 云端推理引擎 OneFlow-Serving 设计

Features

  1. Op 修复、性能优化:

    • 支持二元 add op 与前驱节点融合
    • kernel 性能优化
    • 使用 user op 实现 model update ops,以及 model update ops 支持 fusion
    • NCCL 支持设置最大融合 op 数量
    • 增加一些新 op
    • cuDNN 算法推导支持全局缓存
    • 修复一些已知 bug
  2. Eager Execution:

    • 给 eager 相关的代码加上更多注释
    • 微调 stateless_call 指令,区分 mutable_input 和 output 两类不同的参数
    • 实现 broadcast 指令;
  3. pybind11 集成:现在 OneFlow 内 SWIG 和 pybind11 共存,之后会逐步切换到 pybind11

  4. 优化、修复编译工具:修复了一些导致编译失败缓慢的不合理配置、加速了依赖下载、 修复了 ubuntu dockerfile

  5. Transport 网络传输子系统:支持 P2P 动态网络传输

  6. 集成 CFG 工具:CFG 是基于 proto 语法的、生成跨 python、C++ 数据交互代码的工具

  7. XLA 支持优化:升级到了 TF 最新版本

  8. GRPC 升级:升级到了 GRPC 最新版本

  9. CI、测试优化:将 XLA 也加入 CI,优化了 op 的测试用例,自动上传 master 最新 commit

  10. ONNX 支持:优化 IR,更新测试脚本

  11. 增加、修订文档

  12. Python 前端修复

  13. 优化、修复系统通用组件

OneFlow model zoo

Breaking Changes

  1. 新增行为识别算法 (TSN) 的训练与推理,及所需算子
  2. 新增人脸分割算法 (LinkNet) 的训练与推理,及所需算子
  3. 新增超分算法 (SRGAN) 的训练与推理,及所需算子
  4. 新增图像分类网络 (Ghostnet) 的训练与推理,及所需算子
  5. 完善 dcgan、pix2pix 的训练与推理,及所需算子

Features

  1. batch_norm 算子支持 reuse
  2. 新增 marginRankingLoss
  3. 新增 jarccardWeightBinaryLoss
  4. 新增 gather_dim op

BugFix

  1. 解决了 transpose 算子 batch_axis不匹配的 bug
  2. 解决了 broadcast_like 算子反向梯度计算不存在的 bug
Last updated on