IPD Q&A

导言

  • IPD 流程在 AI 里过于厚重和低效,所以华为AI产品线的IPD流程已经进化了:工作内容和方向已经支持灵活的随时变化了,但是需求只落小范围的,确定的,快做完的东西,来应付人力分配说明流程。
  • IPD流程貌似更强调流程,弱化个人影响。甚至还有三个臭皮匠顶个诸葛亮的说法。在AI研究领域或者其他领域这方法对吗?公司应该花大价钱招一个强人,还是招多个能力稍差的人
  • IPD关于培养人才梯队还有独特的观点:高手的能力是可以被拆解复制的,被下面的人继承。
Read more

Agile Governance: Balancing IPD and AI Innovation

导言

厚重的 IPD 流程 和 AI 创新,如何平衡?

两种范式的对垒

  • IPD (集成产品开发 - 华为/IBM): 强调“确定性”。通过跨部门协同和严格的阶段评审,将研发视为一项低风险的投资,追求一次把事情做对,适合硬件和大型系统。
  • 字节跳动模式: 强调“演化性”。依托强大的技术中台和 A/B 测试,通过极致的敏捷迭代和数据驱动决策,在不确定性中快速筛选胜者。

AI 开发的特殊挑战

AI 研发具有高不确定性、高算力成本和极快的技术更迭周期。这导致传统的 IPD 流程在 AI 领域显得过重,而纯粹的敏捷模式在面对大额算力投资时又显得缺乏战略定力。

Read more

AI Compiler

百度

秋招面试时遇到高铁柱前辈。问了相关的问题(对AI专业的人可能是基础知识)

  1. nvcc编译器不好用吗?为什么要开发tvm之类的编译器?
    1. 答:首先,nvcc是类似与gcc, msvc(Microsoft Visual C++) 之类的传统的编译器,支持的是CUDA C/C++ 代码。
    2. 但是tvm编译器是张量编译器,支持的是python之类的代码,将其中的网络设计,编译拆解成各种算子,然后使用cudnn或者特定硬件的高效机器码来执行。

蔚来

数字信号处理器 (Digital signal processor)

HLO 简单理解为编译器 IR。

TVM介绍

https://tvm.apache.org

  1. TVM解决的问题:
    1. 2017年,deploy Deep learning(TF,Pytorch) everywhere(hardware).
    2. Before TVM,
      1. 手动调优:loop tiling for locality.
      2. operator fusion 算子融合。虽然性能高,但是部署不高效
  2. 编译优化思路引入深度学习
    1. 定义了算子描述到部署空间的映射。核心是感知调度空间,并且实现compute/schedule 分离
  3. TVM当前的发展
    1. 上层计算图表示:NNVM Relay Relax
    2. 底层优化方式:manual -> AutoTVM(schedule最优参数的搜索,基于AI的cost model) -> Ansor(也不再需要手动写AutoTVM模版,使用模版规则生成代码)
  4. TVM的额外工作
    1. HeteroCL: TVM + FPGA


  1. output Fusion
    1. 减少Global Memory Copy

把中间算子库替换成编译器?

暂时不好支持张量

AI自动调整变化来调优

自动调参。缺点:

  1. 需要人工写模版
  2. 人工导致解空间变小

随机各级循环应用优化策略(并行,循环展开,向量化

介绍了Ansor效果很好

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

AI Image

AI tag

https://www.bilibili.com/video/BV1L84y1z7bH/?spm_id_from=333.999.0.0&vd_source=5bbdecb1838c6f684e0b823d0d4f6db3

https://aitag.top/

novelAI

官网要钱,有泄漏的50G的模型,B站有up抽取了其中的一个做了整合包

不知道,会不会有版权问题下架了。

1
2
https://pan.baidu.com/s/1AAHoNYYano6q7XBl3luCcg
upqn

常见问题(环境RTX3070 8G)

  1. 6G、8G显存生成太慢的问题已经修复
    1. 百度盘里已经上传了修复包,请下载并且替换hydra_node里所有文件
    2. 然后6G显存请使用6g的bat文件 等于8G或者以上的直接使用start.bat
  2. 网址是 127.0.0.1:6969
  3. CTRL+C 好像才能启动?
    1. RTX3070 大概20s一张

可以把start.bat改成sh脚本在实验室A100上跑

参考文献

作者:秋葉aaaki https://www.bilibili.com/read/cv19038600?spm_id_from=333.788.b_636f6d6d656e74.7 出处:bilibili

Code Migration And Alignment

导言

  • 越靠近一线的研发,更会忙碌于开源代码/特性的迁移工作。
  • 原因主要在于客户发现了效果好的开源成果,就觉得没有复用门槛,反过来催促开发快点实现。
  • 读论文也是为了更好的理解迁移的代码,而较少关注其原理

无论是把 PyTorch代码 迁移到其他框架(e.g.,MindSpore),还是把将代码继承到All IN ONE 框架(e.g., MindSpeed-MM),都经常遇到如下头大的问题:

  1. 一行行代码理解迁移速度太慢,并且要理解的非重要、不相关内容太多。
  2. 一股脑先移植过来,总是遇到channel对不上、触发算子计算维度限制条件 等问题。
  3. 训练推理流程打通之后,也会遇到精度不对齐的问题。

原始的解决办法就是在计算流程上打印关键数据的变化,找到是开始出现了差异(非预期)地方,使用起来非常不方便:

  1. 需要手动加print;
  2. 需要肉眼对比打屏信息;

想寻找/开发一个python工具DataDiffer/TensorDiffer:

  1. 比如通过装饰器等方法,跟踪函数内,指定变量的变化;
  2. 包括shape,tensor内前5个非0值,
  3. 支持将变化信息保存到文件,方便后续对比;
Read more