Рано, ох рано я взялся за вторую Гемму. Официальные приколы:

- Связанный embed_tokens и lm_head (из-за чего при развязывании модель становится уже 10B) и огромный словарь.

- Скользящее окно внимания в каждом втором слое. До сих пор не поддерживается в vllm.

- Мягкая обрезка логитов во внимании и в финальном слое. Не совместимо с родным FlashAttention, из-за чего в том же vllm используют FlashInfer вместо этого.

- Post-ln и pre-ln одновременно, и с RMSNorm. В целом не проблема, но вот ортогонализации мешает.

- GQA: пофиг, все уже привыкли.



А есть ещё и неофициальные приколы:

- Неправильная константа масштабирования во внимании, которую поправили только недавно. И из-за которой какое-то время не работала конвертация в GGUF.

- Домножение эмбеддингов на sqrt(hidden_dim), что может быть проблемой в bf16. Плюс об этом нужно помнить во всех реализациях.



Плюс в том же Unsloth всё ещё есть баги при дообучении.