/ Модель

Характеристики

Контекст
2 048 токенов
Параметры
53 млн
Лицензия
Apache 2.0
Архитектура
deepseek_v4 · dense
Базовая модель
wader-100m-base
Библиотека
transformers
Опубликована
13 окт 2026

lilo

Генерация текстаТекст → текст

Компактная модель для локальной генерации текста и чат-ответов на индонезийском языке на CPU с ограниченной памятью.

228скачиваний за 30 дней0лайковвеса обновлены13 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

lilo — компактная языковая модель примерно на 53 млн параметров по метаданным каталога; README указывает около 110 млн параметров. Её выпустил zelapi как вариант neosantara/wader-100m, дообученный для диалога и следования инструкциям на индонезийском языке. Модель использует архитектуру DeepSeek-V4 и предназначена для локального запуска на CPU с ограниченными памятью и ресурсами. Разработчик сообщает о вариантах fp16 и int8 и приводит замеры скорости и потребления памяти на VPS с 2 vCPU и 2 ГБ RAM.

Модель генерирует текст и поддерживает чат-сценарии, включая ответы на индонезийские запросы и выполнение простых инструкций. Заявлены контекст до 2048 токенов и лицензия Apache-2.0. README отмечает, что поколения часто бывают несвязными или фактически неверными; обучение включало 5 тыс. шагов предобучения и 3 тыс. шагов дообучения. В README также указано, что веса DeepSeek-V4 не использовались; точное соотношение этой формулировки с указанной в метаданных базовой моделью не поясняется.

Сценарии применения

  • ответы на простые вопросы на индонезийском языке
  • чат-бот для локального запуска на CPU
  • выполнение простых инструкций на индонезийском языке

Ограничения

Модель очень мала и, согласно README, часто генерирует несвязный или фактически неверный текст; обучение было ограниченным по числу шагов. Метаданные каталога указывают 53 млн параметров, тогда как README сообщает около 110 млн.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

lilo-100m — Lightweight Local Intelligence & Optimizer

A ~110M parameter language model implementing the DeepSeek-V4 architecture, fine-tuned for chat/instruction following in Indonesian. This is the lilo release of neosantara/wader-100m: same architecture and weights, re-packaged explicitly for CPU-only, low-memory, low-footprint use.

Why lilo

wader-100m (original)lilo-100m
Weights on disk421MB fp32119MB (int8) / 221MB (fp16)
CPU-friendly runtimebf16 NaN bugs, no KV cachefp32/fp16 stable, KV cache, inference_mode
Runs on 2 vCPU / 2GB RAM VPSuntestedmeasured

Variants

VariantFileDiskPPL delta vs fp32Greedy outputs
fp16 (default)model.fp16.safetensors221MB+0.08%5/5 identical
int8model.int8.safetensors119MB+0.32%5/5 identical

Notes:

  • int8 is symmetric group-wise quantization (group=64) on all nn.Linear layers + embeddings; norms/router/HC params stay fp32. Scales cost ~7MB.
  • Both dequantize to fp32 compute on load — the disk footprint is what shrinks, because this CPU (Zen2, AVX2-only, no VNNI) does fp32 GEMM as fast as int8 anyway, and fp16 GEMM is faster still.
  • fp16 is the default because it is both the closest to the original quality and the fastest on CPU.

CPU speed (measured on 2 vCPU AMD EPYC 7K62 "Zen2", AVX2-only, box under load)

Variantthreads=1threads=2
fp1614–22 tok/s11–12 tok/s
int89–19 tok/s5–8 tok/s

On this tiny model (320 hidden, 8 layers) thread sync overhead dominates — --threads 1 is fastest. On 8+ core machines try 2–4.

Memory safety (no OOM)

Peak RSS measured on a 2 vCPU / 1.9GB RAM VPS: ~0.85GB (int8) / ~1.05GB (fp16) including the Python/torch runtime. Rules baked into run_cpu.sh:

  • OMP_NUM_THREADS bounded, MALLOC_ARENA_MAX=1 (glibc per-thread arenas can silently eat GBs)
  • TMPDIR forced to disk, never /tmp when /tmp is tmpfs
  • prefill chunked at 256 tokens so attention never allocates a big [S,S] matrix

Usage

git lfs install
git clone https://huggingface.co/hzlo0/lilo-100m
cd lilo-100m
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install transformers safetensors tokenizers accelerate

bash run_cpu.sh                              # chat, default fp16
CUDA_VISIBLE_DEVICES="" python chat_lilo.py --variant int8 --threads 1 "Halo, apa kabar?"

Chat template (DeepSeek-V4 style):

<|begin_of_sentence|><|User|>Halo<|Assistant|>
import torch
from lilo_common import load_lilo, generate_lilo, chat

torch.set_num_threads(1)
tok, model = load_lilo(".", variant="fp16")          # or "int8"
print(chat(tok, model, [{"role": "user", "content": "Halo, apa kabar?"}],
           max_new_tokens=200, temperature=0.7, top_p=0.9))

Requires trust_remote_code-free loading: the model code ships as plain files (modeling_deepseek_v4.py) loaded by lilo_common.py. (The same code also works via AutoModelForCausalLM.from_pretrained(..., trust_remote_code=True).)

Architecture

ComponentDetails
Parameters~110M (41M embeddings, 69M non-embedding)
Hidden size320 · Layers 8
Attention8 heads, 1 KV head (MQA), MLA q_lora_rank=160, grouped low-rank output
MoE4 routed experts + 1 shared, top-2 routing
Hyper-Connectionshc_mult=4, Sinkhorn routing (replaces residual stream)
Vocab129,280 (DeepSeek-V4 tokenizer) · Context 2,048

What was fixed for CPU in this release

  1. freqs_cis recomputed on demand — original code left a buffer uninitialized after meta-device loading, corrupting RoPE beyond a few tokens.
  2. KV cache honored — original forward hardcoded use_cache=False, recomputing the whole sequence every decode step. This release caches and steps one token.
  3. return_dict defaults to True — transformers 5.x deprecated config.use_return_dict, which silently returned tuples.
  4. Expert dtype bridge — w2(x.to(w2.weight.dtype)) silently cast activations to int8 under weight-only quantization.
  5. bf16 NaN — model runs fp32/fp16; no bf16 anywhere.

Limitations

  • Tiny model: 110M params, most capacity in embeddings. Generations are often incoherent or factually wrong.
  • Undertrained: 5K pretrain + 3K SFT steps (upstream). Production models train 100K+ steps on trillions of tokens.

License

Apache-2.0 (inherited from upstream neosantara/wader-100m).

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
DeepseekV4ForCausalLM
Ревизия весов
3506c36

0 моделей