2023¶
3.3 EfficientWorkLearning
科研工作的目标
- 从底层的优化做起,自底向上的。对整个AI训练的难点有个全面细致的认知。
- 或者从应用的问题出发建模,从上到下有个全面的认知。
- 往架构师的方向努力
淡而不厌,简而文,温而理,知远之近,知风之自,知微之显,可与人德矣。
科研学习
狠狠吸收
华为实习部门的都是手握A会的博士大佬。本人望尘莫及,我会狠狠吸收的。
科研的长远与犀利的眼光
- 如何识别伪装信息 和被包装的工作
- 明确理论目标上限,当前的差距,实现路径
研究理解与实现
- 跨领域知识:公众号,订阅
- follow前沿论文:follow学者, 公众号,
- 实际问题、需求的发现
- 技术论证:理论上限,可行方案
- 独立任务分割
- 高效实现(解决问题)
科研工作的全局观念
- 自顶向下的设计规划、工作全局观 (从目标、需求、愿景出发。不断细化实现点)
- 顶:论文全流程思路图(构思与其余工作的对比):当前实现和问题、兼顾创新性的方法 和 设计目标期望效果。
- 中:代码实现逻辑框架图
- 底:代码语言具体实现:高内聚低耦合的重要性,解耦,拆分,这样就容易重构了。独立的微服务
- 自底向上的知识积累 与研究方法提出
- 底:领域的基础知识
- 中:领域的主流方法和解决方案
- 顶:行业痛点和有待补完的领域空白。
- 当两者相联,目标才能顺利的达成,
高效学习的过程中注意点
- 学习的优先级:用20%时间先掌握80%的基础知识或者感兴趣的关键
- 难的问题可以讨论合作得出
- 提问式主动学习:不是被动学习,尝试通过提问、讨论、教授他人等方式来加深理解和巩固所学内容。
- 合作学习: 不仅能头脑风暴idea。对概念的理解,表达能力,心理健康有好处
- 交叉与分割学习: 概念文字、视频和案例分析交叉理解。长时间执行单一学习会枯燥,效率降低。切换学习一些新鲜东西:每日关注LLM的有趣实现。
- 理论实践交融:实际运行或者编写测试代码运行来深入理解
- 持续反馈与评估:每天每周对学习的进度和效果进行分析、来调整学习计划和研究方向。可以遵循STAR 法则。
具体研究点的克服
体系结构量化分析方法,重点就在于量化分析开销,比较然后进行tradeoff。当前前提是你要有基本的相关概念。
具体知识来源的优先级,或者说如何使用搜索引擎:
- 明白原理,设计实验,实际机器测量
- 认知概念,理解 (图解 >> 列表对比 >> 文字list >> 大段描述)
- 阅读相关的论文以及书籍
- 国内大佬的博客和大论文
- 国外论坛Stack Overflow > 国内知乎 > 博客园 > csdn > 其他
- 资料的来源(论文 >> 官方文档 >> 英文博客 >> 高质量中文资料)
在理解概念,量化了具体场景的数值后,就可以开心进行tradeoff了。
- 思维导图、摘要,来理清概念 和思路
- 结合PPT 数据与图表展示效果
注意项目的可读性和可拓展性一般与性能是不兼容的。这取决于项目的checkpoint/middleValue的保存,在性能优化时往往会消除中间变量。这样会导致代码的可读性和可拓展性下降。
check-point的合理设置
- 合理的检查点,既是阶段性的成果,又能在此衍生出无限的可能
- 需要能高效的复现与重构
关于如何解决困难
困难的定义可以基于以下几个要素进行评估:
- 个人技能能力:困难的程度可以取决于个人所具备的技能和能力水平。对于一个人来说,某项任务可能很容易,而对另一个人来说可能很困难,这取决于他们的专业知识、经验和技能。如果一个人已经具备了必要的知识和技能,那么他们可能更容易应对困难任务。相反,如果缺乏必要的知识和技能,任务就会更具挑战性。
- 任务量评估:任务的规模和复杂性也是评估困难程度的重要因素。任务量的多少以及任务本身的复杂性(比如需要解决的问题、涉及的步骤等)会对困难程度产生影响。
- 多人合作:效率会由于沟通同步而减半
- 量化分析加深理解:对于某些任务,特别是涉及复杂问题解决或决策制定的情况,进行量化分析可以加深对问题本质的理解。这种理解的深度也会对困难程度产生影响,因为解决关键核心会对整个任务的理解的评估进行重大修正。
- 对未知领域的任务量评估,会随着了解而变得准确。(这不是产品经理的工作吗?
- 时间的紧迫程度:完成任务所要求的时间紧迫程度也是评估困难程度的因素之一。如果任务需要在很短的时间内完成,那么它可能会被认为是更具挑战性和困难的。
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无
3.2 taskPriority
工作优先级四象限(优先级矩阵)

- 基础版本(艾森豪威尔)
- 对于紧急又重要的事情马上做。如果这类事情过多,那就想办法规划时间,减少此类事情。
- 对于重要但不紧急的事情计划做。尽可能地把时间花在重要但不紧急的事情上,这样才能减少产生重要且紧急的工作量。
- 对于紧急但不重要的事情授权做。处理原则是授权,让别人去做。
- 最后对于不重要不紧急的事情减少做
- 额外的维度
- 依赖关系:工作中显露的潜在工作会打断工作的交付,砍半降低交付效率
- 尽可能全面
- 依赖关系:工作中显露的潜在工作会打断工作的交付,砍半降低交付效率
拓展版本
- 当前工作优先级评估由 四个连续值维度 + 三个逻辑指标 组成
- 优先级评估的时候不止是自己的视角,还有别人的视角(别人在心里的权重 * 重要性 * 紧迫性)。其中别人在心里的权重,一般来说: 父母、爱人、子女 > 领导 > 我
四个连续值维度
- 喜好程度
- 估计工作量(投入收益比)。这一点其实很难量化,自己都没有做怎么知道,只能横向收集友商的数据。
- 紧急的纬度由DDL时间确定,这点可以和工作量指标互动。
- 重要性由以下几点确定,都能提高对工作的重要性评价:
- 增加对工作的喜爱程度的任务: 高效插件与可视化工具的学习使用,
- 提高工作效率的任务:学习基础知识,
- 减少长期的工作量:学习、制造和使用轮子;自动化工作。
三个逻辑指标
- 工作间依赖关系
- 专注度要求(与疲劳度互补,清醒时才能做思考工作,一天工作后也能进行的简单工程工作)
- 是否属于未知的领域。(与
专注度要求不是正交的关系,是集合的包含关系。需要动脑的事情,肯定是未知的)
经常遇到的实际情况
相同的指标
- 紧急程度:不紧急。我一般会比较焦虑,所以工作会较早立项。
- 重要程度:我认为重要的才会主动去做,无论是对眼前的毕业考核,还是长远的考虑
- 喜好程度:我认为有趣的才会主动去做
- 工作间的依赖关系:我会遵守逻辑
不同的指标:
- 是否未知:阅读信息的需求
- 是否需要专注: 思考需求
两者结合:纯思考 > 阅读加稍微思考 > 初步的阅读收集信息 > 纯机械工作
任务周期内:时间分配和执行顺序
之前的任务优先级评判,都是从完成任务的角度考虑。但是实际情况是每个任务都需要很久(许多任务周期)才能完成。
按照优先级的指标,例如:
| 紧急性(3) | 重要性(3) | 喜好(1) | 工作量(3) | 总分 | 分配 | 要求 | |
|---|---|---|---|---|---|---|---|
| report | 3 | 0 | 0 | 0 | 3 | 一天欠 | 2 |
| thesis | 3 | 3 | 0 | 3 | 9 | 两天多 | 3 |
| AI | 2 | 2 | 1 | 2 | 7 | 两天欠 | 1 |
| OpenCL | 2 | 1 | 1 | 1 | 5 | 一天多 | 1 |
| web | 1 | 0 | 0 | 1 | 2 | 一天欠 | 1 |
| Summary | 26 |
- 紧急性: 迫在眉睫(几天), 稍等几周,稍等几月,半年一年,可有可无
- 重要性: (当下)重大转折,(潜在)深远影响, 一年内小方向,与我无瓜
- 喜好:特别喜欢,有点意思,毫无波澜,有点厌恶
- 预估工作量(专心情况下):半年以上,一个季度,一个月,一周
- 要求(专注度):纯思考 > 阅读加稍微思考 > 初步的阅读收集信息 > 纯机械工作 (3~0)
注意
- 工作安排 “必须做”占 40%,“愿意做”限制在 30% 左右,剩下30%处理出现的未发现的依赖任务和计划外工作。
- 涉及到合作的工作:要与对方商量好,自己的选择(
为什么把你鸽了,不是)
理想中的二维可视化细节
- 科研工作与生活各自独立一张图。处理的时间段不同。
- 横坐标是时间DDL表示紧急程度Urgency,纵坐标是重要性Impact(代表能增强自身和造轮子,还是繁琐小事)
- 横坐标会随时间自动移动,
- 标记出四块或者9块颜色
- 节点可以可视化的部分
- 颜色深浅表示喜好程度、投入收益比
- 大小表示工作量绝对值(难易程度)
- 会根据每日的任务自动调整
- 甘特图 Gantt:的长条状,中间塞进度条的百分比实现。
- 和连线表示工作依赖关系
- 特殊颜色/形状 表示设置里程碑(北极星)任务,完成后自己会收获什么(能力属性标签)
- 节点额外的属性值(不可视化)
- 任务的风险
- 需要的合作者,资源
- DoD (完成标准,验收标准)
- 根据公式和数据, 计算工作的优先级并给出推荐。
- 考虑WIP(Work in Progress)
- 实现日历功能
- 为了能激励自身,引入信息增长统计
- 过去一周/月/季度/年,完成的各类型的Task
- 引入勤劳值(工作量统计),和收获值(能力增长统计)
- 能力属性标签, 数值是否随时间衰减
已有的优先级矩阵产品
- ducalis
- 另一种维度,将紧急程度与工作量交换:

团队合作的优先级
团队合作中,解决问题的策略与优先级
对象:领导、部门的同事团队( 其余部门的同事团队),个人主体。
思考的基础与前提(多沟通,深分析,找关键):
- 找到问题的关键,并提出实用有效的方法
- 问题考虑全面,目光长远,设计方法可持续
情形:
- 别人遇到问题求助
- 授人以鱼不如授人以渔
- 如果有其余需求,归纳到最后一点统计决策
- 自己遇到问题
- 研究瓶颈
- 在充分的调研与汇总整理后,向同事或者上级咨询与求助
- 两难抉择: 返工的bug修复,新功能,新业务,新研究方向与现有的工作的时间冲突
- 工作优先级四象限:根据重要性、紧急程度、喜好程度、工作量(投入收益比)与依赖关系分类
- 要与提出需求的对方商量好,解释自己的选择和困难
- 研究瓶颈
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无
3 EfficientJumpingRunning
jumping the branch task
五大阻碍工作完成时间的罪魁祸首
- 过多的Work in Progress
- 太多WIP会导致很多问题:交付延误、品质下降和员工情绪恶化
- 利特尔定律 $\(平均周期时间 =\frac{平均WIP量 }{平均产出量 }\)$
- 未知的依赖工作
- 常见依赖关系有3种: > 架构(软件和硬件):一个组件的变更可能破坏另一个组件导致它停止运行 专业知识:从专家那里获得建议或帮助(需要怎样做某事) 活动:直到活动完成才能取得进展
- 计划外工作(妨碍你完成某事或导致你无法实现里程碑的干扰事项)
- 优先级冲突(相互竞争的项目和任务。当你不确定做什么事情是最重要的时候,就会加剧这种冲突)
- 被忽视的工作(技术债)
如何相互影响
- 信念/意志确实很重要
- 强烈的信念能让你的工作迈出坚实的第一步,而且每一步都走得是否有力
- 但是前提是你要十分明确努力的方向,对工作的不自信会减半工作热情。
- 工作的优先级冲突,这将导致过多的WIP,从而导致更长的周期时间。
- 明确任务的优先级,并分阶段、逐步击破是最好的选择。
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无
2: Courage to move on
Dilemma 困境
现实中的困难挫折、不如意、或者突如其来的变故/变化 会消磨和摧毁人的信念,让人变得失望难过。想逃避或者麻木自己,通常会在幻想 或者虚拟世界里寻求解脱。
Theoritical Foundation
- World is crucial. No time to sleep and waste more in virtual world
- just some happy and painless
- In virtual life, the more you pay, the more you lose.
- 逃避收获的事片刻的精神释放和快乐,但是带来的更chaos of real life
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无
AntiCheat
AntiCheat
运行卡拉比丘时,报错 Anti-Cheat Expert (ACE)
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
上面回答部分来自ChatGPT-3.5,没有进行正确性的交叉校验。
无
VIM
cheat sheet

More advanced details

basic mode
:to change mode?
search
/to search?to up search*to search cursor current word
replace
- 作用范围:用于指定替换的范围,
1,3表示替换第一行至第三行,1,$表示替换第一行到最后一行,也可以直接用%表示。
- 替换标志(可以组合使用):
c: confirm,每次替换前都会询问e:不显示errorg: globe,不询问,整个替换i: ignore,即不区分大小写
分屏
- 创建空白分屏
:new - 打开当前文件 ???
- 命令(水平):
[CTRL] [W] s - 命令(垂直):
[CTRL] [W] v
- 命令(水平):
- 打开任意文件
- 命令(水平):
:split [FILENAME] #或 :sp [FILENAME] - 命令(垂直):
:vsplit [FILENAME] #或 :vs [FILENAME]
- 命令(水平):
- 关闭
- 取消其它分屏,只保留当前分屏
:only - 或者
[CTRL] W o - 退出当前所在分屏
:q#或者::quit
- 取消其它分屏,只保留当前分屏
usefully tricks
comment block text
teminal read code
ctags + 函数跳转
- 安装ctags
sudo apt-get install exuberant-ctags - 生成函数名索引文件
ctags -R . /path/another/includewill generatetagsfile
添加
echo "set tags=$PWD/tags" >> ~/.vimrc
# or
vim ~/.vimrc
# set tags=~/Download/llvm-project-main/llvm/tags
vim 使用
Further: other ides
huawei programming : dev machine 使用tmux和zsh可以实现统一的开发环境