AbdulElahGwaith's picture
Upload folder using huggingface_hub
a9bd396 verified

์ด ๋ชจ๋ธ์€ 2025๋…„ 7์›” 10์ผ์— ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, 2025๋…„ 7์›” 10์ผ์— Hugging Face Transformers์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PyTorch

LFM2

๊ฐœ์š”[[overview]]

LFM2๋Š” Liquid AI๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ฐจ์„ธ๋Œ€ Liquid Foundation Model๋กœ egde AI์™€ ์˜จ๋””๋ฐ”์ด์Šค ๋ฐฐํฌ์— ํŠนํ™”๋˜์–ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋ธ๋“ค์€ 350M, 700M, 1.2B, 2.6B์˜ ๋„ค ๊ฐ€์ง€ ํฌ๊ธฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ œ๊ณต๋˜๋ฉฐ, CPU, GPU, NPU ํ•˜๋“œ์›จ์–ด์—์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํŠนํžˆ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„, ์˜คํ”„๋ผ์ธ ์ž‘๋™ ๋ฐ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ๊ฐ€ ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜[[architecture]]

์•„ํ‚คํ…์ฒ˜๋Š” ๊ฒŒ์ดํŠธ๊ฐ€ ์žˆ๋Š” ์งง์€ ํ•ฉ์„ฑ๊ณฑ ๋ธ”๋ก๊ณผ QK ๋ ˆ์ด์–ด ์ •๊ทœํ™”๊ฐ€ ์ ์šฉ๋œ ๊ทธ๋ฃน ์ฟผ๋ฆฌ ์–ดํ…์…˜ ๋ธ”๋ก์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์„ค๊ณ„๋Š” ์„ ํ˜• ์—ฐ์‚ฐ์ด ์ž…๋ ฅ ์˜์กด์ ์ธ ๊ฒŒ์ดํŠธ์— ์˜ํ•ด ์กฐ์ ˆ๋˜๋Š” ๋™์  ์‹œ์Šคํ…œ ๊ฐœ๋…์—์„œ ๋น„๋กฏ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์งง์€ ํ•ฉ์„ฑ๊ณฑ์€ ํŠนํžˆ ์ž„๋ฒ ๋””๋“œ SoC CPU์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์–ด, ํด๋ผ์šฐ๋“œ ์—ฐ๊ฒฐ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ณ  ๋กœ์ปฌํ™”๋œ ์ถ”๋ก ์ด ํ•„์š”ํ•œ ์žฅ์น˜์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

LFM2๋Š” ์ œํ•œ๋œ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ํ™˜๊ฒฝ์—์„œ ํ’ˆ์งˆ์„ ์ตœ๋Œ€ํ™”๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ€„์ปด ์Šค๋ƒ…๋“œ๋ž˜๊ณค ํ”„๋กœ์„ธ์„œ์—์„œ ์‹ค์ œ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์ถ”๋ก  ์†๋„๋ฅผ ์ธก์ •ํ•˜์—ฌ, ์ž„๋ฒ ๋””๋“œ ํ•˜๋“œ์›จ์–ด์—์„œ์˜ ์‹ค์ œ ์„ฑ๋Šฅ์— ๋งž๊ฒŒ ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ฒด๊ณ„์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํƒ์ƒ‰์„ ํ†ตํ•ด ๋‹ฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๋น„์Šทํ•œ ํฌ๊ธฐ์˜ ๋ชจ๋ธ์— ๋น„ํ•ด 2๋ฐฐ ๋น ๋ฅธ ๋””์ฝ”๋”ฉ ๋ฐ ํ”„๋ฆฌํ•„ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋ฉด์„œ๋„, ์ง€์‹, ์ˆ˜ํ•™, ์ง€์‹œ ์‚ฌํ•ญ ๋”ฐ๋ฅด๊ธฐ, ๋‹ค๊ตญ์–ด ์ž‘์—… ์ „๋ฐ˜์—์„œ ์šฐ์ˆ˜ํ•œ ๋ฒค์น˜๋งˆํฌ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋Š” ๋ชจ๋ธ์ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ[[example]]

๋‹ค์Œ ์˜ˆ์‹œ๋Š” AutoModelForCausalLM ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

from transformers import AutoModelForCausalLM, AutoTokenizer

# ๋ชจ๋ธ๊ณผ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค
model_id = "LiquidAI/LFM2-1.2B"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    dtype="bfloat16",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

# ๋‹ต๋ณ€ ์ƒ์„ฑ
prompt = "What is C. elegans?"
input_ids = tokenizer.apply_chat_template(
    [{"role": "user", "content": prompt}],
    add_generation_prompt=True,
    return_tensors="pt",
    tokenize=True,
)

output = model.generate(
    input_ids,
    do_sample=True,
    temperature=0.3,
    min_p=0.15,
    repetition_penalty=1.05,
    max_new_tokens=512,
)

print(tokenizer.decode(output[0], skip_special_tokens=False))

Lfm2Config [[transformers.Lfm2Config]]

[[autodoc]] Lfm2Config

Lfm2Model [[transformers.Lfm2Model]]

[[autodoc]] Lfm2Model - forward

Lfm2ForCausalLM [[transformers.Lfm2ForCausalLM]]

[[autodoc]] Lfm2ForCausalLM - forward