И последний пост на сегодня, про GaLore. Выяснились некоторые ограничения их интеграции с HF, которые были не сразу очевидны:

- В блоге на HF ошибка, в optim_target_modules надо передавать названия линейных слоёв, а не загадочные "attn" и "mlp".

- Слой embed_tokens не nn.Linear, а nn.Embedding, а значит входные эмбеддинги с GaLore поменять нельзя.

- Попытка применить к lm_head выливается в OOM, даже с 8-битным оптимизатором.

- В HF никак нельзя поменять параметры "сжатия", например ранг.

- Послойный оптимизатор не работает с gradient_accumulation_steps отличным от 1 (но это хотя бы логично).



И в сухом остатке имеем просто Лору с рюшечками, потому что меняются ровно те же слои. Но хоть работает быстрее.