Instructions to use LTM-Lab/LFM3-1.7B-v9 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use LTM-Lab/LFM3-1.7B-v9 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="LTM-Lab/LFM3-1.7B-v9", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("LTM-Lab/LFM3-1.7B-v9", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained("LTM-Lab/LFM3-1.7B-v9", trust_remote_code=True, device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use LTM-Lab/LFM3-1.7B-v9 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "LTM-Lab/LFM3-1.7B-v9" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LTM-Lab/LFM3-1.7B-v9", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/LTM-Lab/LFM3-1.7B-v9
- SGLang
How to use LTM-Lab/LFM3-1.7B-v9 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "LTM-Lab/LFM3-1.7B-v9" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LTM-Lab/LFM3-1.7B-v9", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "LTM-Lab/LFM3-1.7B-v9" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LTM-Lab/LFM3-1.7B-v9", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use LTM-Lab/LFM3-1.7B-v9 with Docker Model Runner:
docker model run hf.co/LTM-Lab/LFM3-1.7B-v9
LFM3-1.7B-v9
LiquidAI/LFM3-1.7B ๅ ไธ็ถญ็ดๅ้็ถฒ็ตก่จๆถ๏ผWiener Turing memory๏ผlfm3_v9๏ผใ่จๆถๅฏซๅจไธๆขๅชๅขไธๆธใๆไน ๅๅจ็ฃ็ขไธ็่จๆถๅธถ๏ผๆฏๅ token ไธๅๅ ทๅ slot๏ผไนๅพ็ episodeใๅฆไธๅๆจกๅๅฏฆไพๆๅฆไธๅ่ก็จ้ฝ่ฝไพๅ งๅฎนๅฌๅ๏ผๅชๆๆๅๅช้คๆๆ็งป้คใ
- backbone ่ LFM3-1.7B ๅฎๅ จ็ธๅ๏ผ286 ๅ backbone ๅผต้้ไธ่ๅๅงๆฌ้็ธๅ๏ผๅช่จ็ทดไบๆฐๅข็่จๆถ็ตไปถใ
- ่ชๅธถ็จๅผ็ขผ๏ผ
modeling_lfm3_v9.pyๅ งๅซ LFM3 backbone ่ๅ จ้จ่จๆถๆจก็ต๏ผไปฅtrust_remote_code=True่ผๅ ฅ๏ผไธ้่ฆ้กๅคๅฅไปถใ - copy ็ธไผผๅบฆ้ๆชป๏ผๅชๆ่ฎๅฐ็ key ่ๆฅ่ฉขๅค ๆฅ่ฟ๏ผๅไธๆฎตๅ งๅฎน้็พ๏ผๆๆ่ค่ฃฝ่จๆถไธญ็็บ่ฉ๏ผไธ็ธ้ๅฐ่ฉฑ็ๅ งๅฎนไธๆ่ขซ่ค่ฃฝ้ฒๅ็ญใ
ๆถๆง
ๆฏๆฌกๅๅ่ทๅ ฉ่ถ backbone๏ผbaseline ไธ่ถๅพๅฐ base expert ็ๅไฝ p_B ่ๅฎๅ็จ็ hidden state๏ผ่จๆถไธ่ถๅจ็ฌฌ 1 ๅฑค่ผธๅบๅ ไธ sidecar ๆฎๅทฎใ่จๆถ expert
p_M = ฮฑยทq + (1 โ ฮฑ)ยทp_N๏ผฮฑ = ฯ(copy_gate(h)) ยท confidence ยท ฯ(sยท(c โ ฯ))
q ๆฏ่ฎๅบ็็บ่ฉๅไฝ๏ผc ๆฏๆฅ่ฉข่่ฎๅฐ็ key ็ cos๏ผไพ่ฎๅๆฌ้ๅ ๆฌ๏ผ๏ผฯใs ๆฏๅฏๅญธ็็ธไผผๅบฆ้ๆชป่้ณๅบฆใๆ็ตๅไฝ p = w_Bยทp_B + w_Mยทp_M๏ผๆฌ้ไปฅ Bayes ่ฆๅไพๅ ฉๅ expert ๅฐๅทฒ่งๆธฌ token ็้ ๆธฌๆดๆฐใ่ฎๅๅ ๅซๅ งๅฎนใๅๅใๅพๅไธ็จฎๆจกๅผ๏ผDNC ๅผๆๅบ้็ต๏ผ่ Time2Vec ๅนด้ฝก็นๅพตใ
| ้ ็ฎ | ๆธๅผ |
|---|---|
| ๅๆธ | 1,729,815,334๏ผ่จๆถ 1,013,798๏ผ |
| ๆณจๅ ฅๅฑค | ็ฌฌ 1 ๅฑค๏ผ็ฌฌไธๅ attention ๅฑคไนๅ๏ผ |
| key๏ผvalue ็ถญๅบฆใcontext window | 64ใ64ใ16 |
| copy ้ๆชป ฯใ้ณๅบฆ s๏ผ่จ็ทดๅพ๏ผ | 0.883ใ20.4 |
| dtype | bfloat16๏ผ่จๆถ่ backbone ็ธๅ๏ผ |
ไฝฟ็จ
้่ฆ transformers>=5.19ใtorch๏ผflash-attn ๅฏ้ธใ
ๆจกๆฟ้ฎ็ฝฉ
่ๅคฉๆจกๆฟ๏ผ<|im_start|>ใ่ง่ฒๆจ้ ญใ<think> ็ญ๏ผๅบ็พๅจๆฏไธๅๅฐ่ฉฑ่ฃก๏ผๅฟ
้ ๆ้คๅจ่จๆถไนๅค๏ผ้ไบไฝ็ฝฎไธๅฏซๅ
ฅ่จๆถๅธถ๏ผไนไธๅ่ expert ๆฌ้็ๆดๆฐใconfig.json ็ lfm3_v9_template_mask: true ่กจ็คบๆฌๆจกๅไปฅ้ๅ้ฎ็ฝฉ่จ็ทด๏ผๆจ็ๆไน่ฆๅฅ็จ๏ผๆไธ้ข็้ฎ็ฝฉๅณ็ตฆ generate ๆๅๅ็ memory_write ่ memory_feedbackใ
import torch
def template_mask(tokenizer, input_ids):
"""True where the memory may write a slot and update the expert weights."""
template_ids = set(tokenizer.added_tokens_decoder)
im_start = tokenizer.convert_tokens_to_ids("<|im_start|>")
im_end = tokenizer.convert_tokens_to_ids("<|im_end|>")
vocab = tokenizer.convert_ids_to_tokens(list(range(len(tokenizer))))
newline = {i for i, t in enumerate(vocab) if t is not None and "\n" in tokenizer.convert_tokens_to_string([t])}
rows = []
for row in input_ids.tolist():
template, header = [], False
for t, token in enumerate(row):
is_template = token in template_ids or header
if token == im_start:
header = True
elif header and token in newline:
header = False
elif t > 0 and row[t - 1] == im_end and token in newline:
is_template = True
template.append(is_template)
rows.append([not template[t] and (t == 0 or not template[t - 1]) for t in range(len(row))])
return torch.tensor(rows, dtype=torch.bool, device=input_ids.device)
็ๆ
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "LTM-Lab/LFM3-1.7B-v9"
tokenizer = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True, dtype=torch.bfloat16).cuda().eval()
messages = [{"role": "user", "content": "็จไธๅฅ่ฉฑ่งฃ้ไป้บผๆฏ็ฑๆณตใ"}]
text = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
ids = tokenizer(text, return_tensors="pt", add_special_tokens=False).input_ids.cuda()
mask = template_mask(tokenizer, ids)
out = model.generate(ids, max_new_tokens=512, do_sample=False, repetition_penalty=1.1,
memory_write=mask, memory_feedback=mask)
print(tokenizer.decode(out[0, ids.shape[1]:], skip_special_tokens=True))
ๆจ็ๆจกๅผไธๆฏๅ้ ๅฑคๅผๅซๆฏไธๅๆฐ็ episode๏ผprompt ๅฏซๅ ฅ่จๆถๅธถไธฆๅจๅๅณๅๅญๆช๏ผ็ๆๅบไพ็ token ไธๅฏซๅ ฅใ
่จๆถๅธถ
้ ่จญไฝ็ฝฎๆฏ $LFM3_V9_MEMORY_HOME/model-<namespace>/memory.sqlite3๏ผๆช่จญๅฎๆ็บ $XDG_STATE_HOME/lfm3_v9/โฆ๏ผๅ้ๅ ~/.local/state/lfm3_v9/โฆ๏ผ๏ผไนๅฏไปฅๅจ config.json ็ lfm3_v9_memory_config.storage_path ๆๅฎใ่จๆถๅธถ็ถๅฎๅฏซๅ
ฅๅฎ็ๆฌ้๏ผnamespace ๅธถๆๆฌ้ๆ็ด๏ผๆๆฌ้ๅฐฑๆไธๆขๆฐ็่จๆถๅธถใ
bank = model.open_memory_bank()
bank.memories(limit=20) # ไพๅฏซๅ
ฅ้ ๅบ๏ผๆๆฐ็ๅจๆๅพ
bank.recall(name) # ๅฎไธ่จๆถ็ๅ
งๅฎนใๅฏซๅ
ฅๆ้ใๅๅพ้็ต
bank.forget(name) # ๆๅๅช้คไธๅ่จๆถ
bank.forget_episode(episode) # ๅช้คไธๅ episode ๅฏซไธ็ๅ
จ้จ
model.memory_stats()
ๅชๆณ่ฆๅบๅๅ
ง่จๆถใไธๅฏซ็ฃ็ขๆ๏ผ่ผๅ
ฅๅๆ lfm3_v9_memory_config.lifecycle ่จญ็บ "ephemeral"ใ
่จ็ทด
ๅช่จ็ทด่จๆถ็ตไปถ๏ผLFM3 backbone ๅฎๅ
จๅ็ต๏ผ่จๆถ็ๅฎๅ้จๅ๏ผaddressใvalueใTime2Vecใๅ
งๅฎน้ณๅบฆใ่ฎๅๆจกๅผๅๅฅฝใๅพ็ถดๅข็๏ผไนๅ็ต๏ผไฟ็ๆช่จ็ทดๆ็ๅฌๅ่ฝๅใๅฏ่จ็ทด็ๆฏ copy_gate๏ผๅซ็ธไผผๅบฆ้ๆชป๏ผใsidecarsใtarget๏ผๅ
ฑ 751,621 ๅๅๆธใ
- ่ณๆ๏ผ900 ็ญไธๅซๅทฅๅ
ทๅผๅซ็ๅฐ่ฉฑ๏ผClaude-opus-4.6 ่ Claude-opus-4.7 TraceInversion ๆจ็่ป่ทกๅ 300 ็ญ๏ผๅฎ่ผช๏ผๅซ
<think>๏ผ๏ผclean LMSYS-Chat-1M 300 ็ญ๏ผๅค่ผช๏ผ๏ผๅ ฑ 500,025 token๏ผ็ฃ็ฃ token 413,549ใ - ็ฎๆจ๏ผ่ทจ episode ่จๆถ็ฎๆจใๆฏๅๆจฃๆฌๅ ๅจ็กๆขฏๅบฆไธๆไธๆฎต context ๅฏซๅ ฅๆฐ็ RAM ่จๆถๅธถ๏ผๅไปฅๆฐ็ episode ่จ็ฎๆจฃๆฌ็ loss๏ผcontext ไธๅๆฏๆจฃๆฌๆฌ่บซ๏ผๅ ๅ็้็ๅ งๅฎน๏ผ๏ผไธๅๆฏไธ็ธ้็ๆจฃๆฌใloss ๆฏๆ็ตๆททๅๅไฝ็ NLLใ่จ็ทด่ๆจ็้ฝๅฅ็จๆจกๆฟ้ฎ็ฝฉใ
- ่จญๅฎ๏ผLlamaFactory๏ผๅ ๅ
ฅ
lfm3่ๅคฉๆจกๆฟใๅช่จ็ทดๆฐๅข็ตไปถใ่ทจ episode ่จๆถ็ฎๆจใๆจกๆฟ้ฎ็ฝฉ่ fp32 master weights๏ผ๏ผpure bf16 ๆญ้ fp32 master weights ็ AdamW๏ผlr 5e-4ใcosineใwarmup 5%๏ผbatch 1 ร ๆขฏๅบฆ็ดฏ็ฉ 8๏ผ113 ๆญฅ๏ผcutoff 2048๏ผๅฎๅผต NVIDIA RTX PRO 6000 Blackwell๏ผ1 ๅฐๆ 37 ๅใ
่ฉไผฐ
| ้ ็ฎ | LFM3-1.7B | ๅๆถๆงใ่จ็ทดๅ | ๆฌๆจกๅ |
|---|---|---|---|
| ่จๆถๅฌๅ๏ผ็ฉบ่จๆถๅธถ | โ | 0/40 | 0/40 |
| ่จๆถๅฌๅ๏ผๅฏซๅ ฅไธๆฌกๅพ | โ | 26/40 | 35/40 |
| ่จๆถๅฌๅ๏ผๆฐ็ๆจกๅๅฏฆไพ | โ | 26/40 | 35/40 |
| ๅช้คไธๅๅพ๏ผๅทฒๅช้ค๏ผไฟ็ | โ | 0/20๏ผ15/20 | 0/20๏ผ17/20 |
| ็ๆ๏ผ384 token ๅ ง็ตๆ | 3/6 | 3/6 | 4/6 |
็ๆ๏ผ็กๅค้ค <think>ใๅไธ token ้ฃ็บ้่ค โค 8 |
6/6ใ6/6 | 6/6ใ6/6 | 6/6ใ6/6 |
| ็ๆ๏ผๅทฅๅ ทๅผๅซๅฏ่งฃๆ | โ | โ | โ |
| held-out NLL๏ผๆททๅๅไฝ๏ผ | 0.9701 | 0.9679 | 0.8154 |
- ่จๆถๅฌๅ๏ผ40 ็ญๆจกๅไธๅฏ่ฝ้ ๅ
็ฅ้็้จๆฉไบๅฏฆ๏ผ
Registry entry <ๅ็จฑ>: the vault code is <ไปฃ็ขผ>.๏ผ๏ผๆฏ็ญๅจ่ชๅทฑ็ episode ๅฏซๅ ฅไธๆฌก๏ผไนๅพๅจๆฐ็ episode ไปฅRegistry entry <ๅ็จฑ>: the vault code isๆฅ่ฉข๏ผ่ฒชๅฉช่งฃ็ขผ 10 token๏ผๆฅ่ฉขๆฌ่บซไธๅฏซๅ ฅ๏ผ๏ผ่ผธๅบไปฅๆญฃ็ขบไปฃ็ขผ้้ ญๆ็ฎๅฝไธญใใๆฐ็ๆจกๅๅฏฆไพใๆฏ้ๆฐ่ผๅ ฅๆจกๅๅพ่ฎๅไธๆข่จๆถๅธถ๏ผใๅช้คไธๅใไปฅforget_episodeๅช้คๅ 20 ็ญ็ episodeใ - ็ๆ๏ผ6 ๅๅบๅฎ prompt๏ผไธญ่ฑๆๅ็ญใ็ฟป่ญฏใ็จๅผใๅ
ฉ่ผชๅฐ่ฉฑไธญ็ๅไบบ่ณ่จใไธๅๅทฅๅ
ทๅผๅซ๏ผไพๅบๅจๅไธๆขๆไน
่จๆถๅธถไธๅท่ก๏ผ่ฒชๅฉช่งฃ็ขผใ
repetition_penalty=1.1ใๆๅค 384 token๏ผๅฅ็จๆจกๆฟ้ฎ็ฝฉใLFM3-1.7B ๆฌๆฏๅๅงๆจกๅใ - held-out NLL๏ผ60 ็ญ่่จ็ทด่ณๆๅไพๆบใๆชๅ่่จ็ทด็ๅฐ่ฉฑ๏ผ่จ็ทดๆจกๅผ๏ผๅบๅๅ ง่จๆถ๏ผไธ็ฃ็ฃ token ็ๅนณๅ NLL๏ผๅ ฑ 31,310 tokenใLFM3-1.7B ๆฌๆฏ base expert ็ NLL๏ผ่ๅๅงๆจกๅ็ธๅใ
้ๅถ
- ่ฉไผฐ่ฆๆจกๅฐ๏ผ40 ็ญไบๅฏฆใ6 ๅ promptใ60 ็ญๅฐ่ฉฑ๏ผ๏ผๅชๆถต่ไธ่ฟฐๆ ๅขใๅฌๅๆธฌ่ฉฆ็ๆฅ่ฉข่ๅฏซๅ ฅๆ็ๅๆ้ๅญ็ธๅ๏ผ่ชชๆณไธๅๆไธไฟ่ญๅฌๅใ
- ่จๆถๅธถๅชๅขไธๆธ๏ผๆฒๆ่ชๅๆธ ็๏ผ็ฃ็ข่ RAM ็จ้้จๅฏซๅ ฅๆ้ทใ
- ่จๆถ็่ฎๅฏซๆฏ้ token ็ Python ๅ่ๅฏฆไฝ๏ผๆฏๆฌกๅๅ่ทๅ ฉ่ถ backbone๏ผ้ๅบฆ้ ไฝๆผๅๅง LFM3ใ
- ๅช่จ็ทดไบ็ด 0.5M token ็่จๆถ็ตไปถ๏ผLFM3-1.7B ๆฌ่บซ็่ฝๅ่้ๅถไธ่ฎ๏ผ่ฆๅๅงๆจกๅๅก๏ผใ
ๆๆฌ
ๆฒฟ็จ LFM3-1.7B ็ LFM Open License v1.0ใ
- Downloads last month
- -