OLMo 2 - ΡΠ΅ΡΠΈΡ ΠΎΡΠΊΡΡΡΡΡ
ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π½Π°ΡΠΊΠΈ ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΠΌΠΎΠ΄Π΅Π»ΡΡ
.
ΠΠΎΠ΄Π΅Π»ΠΈ OLMo 2 Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ
7B ΠΈ 13B ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΡΠ΅Π½Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΄Π°Π½Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ 5 ΡΡΠ»Π½. ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡ
Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΡΠ°Ρ
.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ OLMo 2 ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ RMSNorm, QK-Norm, Z-loss ΡΠ΅Π³ΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π² 2 ΡΡΠ°ΠΏΠ°. ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡΡΠ°Π»ΠΈΡΡ Π½Π° Π΄Π°ΡΠ°ΡΠ΅ΡΠ΅ OLMo-Mix-1124 (3,9 ΡΡΠ»Π½. ΡΠΎΠΊΠ΅Π½ΠΎΠ²). ΠΠ° Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
Dolmino-Mix-1124 (843 ΠΌΠ»ΡΠ΄. ΡΠΎΠΊΠ΅Π½ΠΎΠ²), ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π²Π΅Π±-Π΄Π°Π½Π½ΡΡ
, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΈΠ· Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΡΠΎΡΡΠΌΠΎΠ² Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ², ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠΎΠ². ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ
Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ
Π΄Π°Π½Π½ΡΡ
, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΠΌΠ΅ΡΠΎΠ΄ "model souping".
ΠΠ»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ OLMo 2 Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° OLMES (Open Language Modeling Evaluation System) ΠΈΠ· 20 ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. OLMo 2 ΠΏΡΠ΅Π²Π·ΠΎΡΠ΅Π» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ OLMo 0424 ΠΏΠΎ Π²ΡΠ΅ΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π» Π²ΡΡΠΎΠΊΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ.
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-1124-7B")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-2-1124-7B")
message = ["Language modeling is "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
# optional verifying cuda
# inputs = {k: v.to('cuda') for k,v in inputs.items()}
# olmo = olmo.to('cuda')
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
@ai_machinelearning_big_data
#AI #ML #LLM #OLMo2