Author: [ybq]
Link: [https://zhuanlan.zhihu.com/p/716344766]
这篇文章给大家推荐几个大模型的练手程序,也就是所谓的“基本功”。
先问个问题,除了 transformer、rope、swiglu、rms_norm,大家觉着大模型的基本功都有哪些呢?flash_attention 的原理?megatron 的各种 parallel 策略?量化和推理加速技术?cuda编程?
怎么说呢,这些“有技术含量的大模型的核心技术”确实很重要,但我个人还是觉着大多数人在实际工作中并不需要完全理解它们。因为它们追求的是模型性能的极限优化,对我们做个简单的 SFT、PPO 并无太大助力。往往我们的需求只是使用它们,而不是去优化它们。
所以,我会给出一些我个人认为工作中很常用,但却“没有技术含量”的一些基本功(刷面经的同学可以不用看了哈,我推荐的基本功面试官不会考的)。
trans_XX_to_llama.py
在开源社区,llama 的网络结构已经一统江湖了,那也就是说 modeling_llama.py 理论上可以 load 起来任何一个开源模型。
OK,请自行完成以下脚本,使得我们可以用 modeling_llama.py 加载任何一个其他开源模型。
-
trans_qwen_to_llama.py
-
trans_llama_to_qwen.py
-
……
完成这些工作,你会理解每个开源模型的独特之处,比如,qwen2 的 q、k、v 的线性变换是有 bias 的,baichuan 的 lm_head 之前有一个 normalize() 的操作,甚至每个开源模型你都能观察到一些 attention 的魔改。再然后,对着他们的论文去找,为什么他们的作者要做这些改动?能不能从这个过程中学到知识就看各自悟性了。

最低0.47元/天 解锁文章
4584

被折叠的 条评论
为什么被折叠?



