Zpět na domů

Restaurace ruGPT-3 XL pro transformers

Článek popisuje konverzi legacy ruGPT-3 XL z Megatron-formátu do HuggingFace. Detailní mapování vah, vlastní třídy, testování na RTX 4090 a MERA-benchmark. Model je připraven k fine-tuning a GGUF-konverzi.

Obnovili ruGPT-3 XL: od Megatron k transformers
Advertisement 728x90

Převod a obnova ruGPT-3 XL pro moderní frameworky

Vývojáři se potkali s problémem spuštění zastaralé jazykové modelu ai-forever/rugpt3xl (1,3 miliardy parametrů) z roku 2021. Model, který byl trénován od nuly na ruském korpusu jako modifikace GPT-2, je uložen ve formátu Megatron-LM checkpointu a vyžaduje PyTorch 1.7 a transformers 3.5. Převod do formátu HuggingFace umožňuje použití s moderními nástroji pro inference i fine-tuning.

Proces zahrnuje extrakci vah z mp_rank_00_model_states.pt, mapování na strukturu GPT2Model a vytvoření vlastních tříd pro transformers.

Struktura vah: Megatron-LM vs HuggingFace

Původní váhy používají spojenou QKV-projekci [6144, 2048], kterou je třeba rozdělit na samostatné Q, K, V o rozměrech [2048, 2048]. Kompletní mapování:

Google AdInline article slot

| Megatron-LM | HuggingFace |

|-------------|-------------|

| word_embeddings.weight | model.embed_tokens.weight |

Google AdInline article slot

| position_embeddings.weight | model.embed_positions.weight |

| transformer.layers.{i}.input_layernorm. | model.layers.{i}.input_layernorm. |

| transformer.layers.{i}.attention.query_key_value.weight | model.layers.{i}.self_attn.{q,k,v}_proj.weight |

Google AdInline article slot

| transformer.layers.{i}.attention.query_key_value.bias | model.layers.{i}.self_attn.{q,k,v}_proj.bias |

| transformer.layers.{i}.attention.dense. | model.layers.{i}.self_attn.o_proj. |

| transformer.layers.{i}.post_attention_layernorm. | model.layers.{i}.post_attention_layernorm. |

| transformer.layers.{i}.mlp.dense_h_to_4h. | model.layers.{i}.mlp.up_proj. |

| transformer.layers.{i}.mlp.dense_4h_to_h. | model.layers.{i}.mlp.down_proj. |

| transformer.final_layernorm. | model.norm. |

| - | lm_head.weight (kopie embed_tokens) |

Skript convert.py převede checkpoint do safetensors, kompatibilních s transformers.

Vlastní třídy modelu

Vytvořeny nové třídy bez závislostí na Megatron-LM a DeepSpeed:

  • RuGPT3XLConfig: dědičnost od PretrainedConfig s parametry (vocab_size=50264, hidden_size=2048, num_layers=24).
  • RuGPT3XLAttention: multi-head attention s oddělenými Q/K/V a DynamicCache.
  • RuGPT3XMLP: MLP blok (up_proj → GELU → down_proj).
  • RuGPT3XLDecoderLayer: dekódovací vrstva (pre-LN → attention → post-LN → MLP).
  • RuGPT3XLModel: embedingy + 24 vrstev + final LN.
  • RuGPT3XLForCausalLM: s lm_head.

Klíčové vylepšení:

  • Standardní forward() pro SFTTrainer/LoRA.
  • KV-cache prostřednictvím DynamicCache.
  • Gradient checkpointing.
  • Spuštění na CPU/GPU pomocí device_map="auto".

Model je dostupný jako evilfreelancer/ruGPT3XL na HuggingFace.

Výsledky testování

Generování na RTX 4090 (float16):

  • Průměrná rychlost: 66,7 tokenů/s (batch_size=1).
  • Udržuje kontext i při dlouhých promptech.
  • Generuje skutečné texty (recepty, historie) přesně.

Benchmark MERA (celkový skóre 0,198):

  • PARus (zdravý rozum): 0,500
  • ruHateSpeech: 0,558
  • BPS (kód/matematické úlohy): 0,528
  • RWSD (úsudek): 0,488
  • ruTiE (dialogy): 0,502
  • ruMMLU: 0,252

Matematika a kód jsou blízko baseline, jak očekávané u base-modelu bez instruction tuning.

Převod do GGUF pro llama.cpp

Po převodu do HF formátu byl konvertér convert_hf_to_gguf.py upraven pro ruGPT-3 XL. Model běží v llama.cpp bez závislostí na Megatron, podporuje KV-cache a moderní inference.

To umožňuje fine-tuning na vlastních datasetech prostřednictvím LoRA nebo SFT, integraci do pipeline a testování na edge zařízeních.

Co je důležité

  • Kompatibilita: model funguje s transformers ≥4.x, bez legacy stacku.
  • Výkon: 66,7 t/s na RTX 4090, KV-cache pro generování.
  • Školení: připravený na LoRA/SFTTrainer, gradient checkpointing.
  • Benchmarky: silný v zdravém rozumu a hate speech (0,5+), slabý v matematice/kódu.
  • Formáty: HF + GGUF pro širokou ekosystém.

— Editorial Team

Advertisement 728x90

Číst dál