llm-course-hw1

ДЗ 1 по курсу LLM: byte-level BPE токенизатор (словарь 1024) и небольшая языковая модель, обученные на датасете IgorVolochay/russian_jokes.

Модель

Decoder-only трансформер: alibi, gqa (3 kv heads), SwiGLU, RMSNorm, 6 слоев, 6 голов, hidden 384, ~10.5M параметров, контекст 128.

параметр значение
n_layer 6
n_head 6
n_kv_head 3
hidden_dim 384
intermediate_dim 1024
dropout 0.1
vocab_size 1024
max_seq_len 128
pos_encoding alibi
attention_type gqa
rope_theta 10000.0
kv_lora_rank 0
q_lora_rank 0
mla_rope_dim 0

Обучение: AdamW, lr 3e-4, weight decay 0.01, linear warmup 10% + linear decay, 10000 шагов, batch size 32.

Лосс на тесте

модель val loss
mini ALiBi + GQA (основная), 10000 шагов 2.7328
mini rope, 3000 шагов 3.0934
mini mla, 3000 шагов 3.0604
mini mla-rope, 3000 шагов 3.0737

RoPE и MLA версии: amrvlv/llm-course-hw1-rope, amrvlv/llm-course-hw1-mla, amrvlv/llm-course-hw1-mla-rope.

Примеры генерации (top_k=10)

  1. Заходит в бар в гостиную. Ставит маленький мальчик и говорит:- Смотри, на меня такие маленькие, сынок, а ты мне с тобой не будешь?
  2. Штирлиц пришел домой, а там - в лицо. И тут утром жена выложилась, но вдруг она сняла на моряке и садится к нему под мороженое. - Ну, какая? Я же тебя пьет, так как я сегодня придумал, и сразу отпускаешь. - Ну и что? Я не знал, что я 3
  3. Встречаются как-то два наркомана. Идет по дороге и с ними, один другому говорит:- Пошел ты, играть по пьяни на рыбалку и пойдешь, сейчас вечером я съела.
  4. Приходит мужик к врачу, видит, что его жена говорит, а жена спрашивает, что я хочу сказать, и что употрепаюсь, не могу ли она мне с ней делать, если он навсегда не пришел домой, она говорит:- Мне, и какая у вас, дорогая, я испытываю!
  5. Купил мужик шляпу в сторону. Теперь он её подскакивает, а там ему все равно доказывает и говорит:- А какая ты думаешь о том, что тебе нужно?- Старая, не пойду, я не даже пойду, а ты мне в квартиру пропустил.

Использование

tokenizer = ByteLevelBPETokenizer.from_pretrained("amrvlv/llm-course-hw1")
model = TransformerForCausalLM.from_pretrained("amrvlv/llm-course-hw1").eval()
ids = torch.tensor(tokenizer.encode("Штирлиц пришел домой")[:-1])[None, :]
out = model.generate(ids, max_new_tokens=100, eos_token_id=tokenizer.eos_token_id, do_sample=True, top_k=10)
print(tokenizer.decode(out[0].tolist()))
Downloads last month
32
Safetensors
Model size
10.6M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train amrvlv/llm-course-hw1