/ Модель

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

Контекст
384 токена
Параметры
1,2 млн
Лицензия
MIT
Архитектура
qwen3_5_text · dense
Опубликована
20 мая 2026

Dillion-1.2M

Генерация текстаТекст → текст3 профессии

Компактная англоязычная языковая модель на 1,2 млн параметров для генерации текста и экспериментов с малыми моделями.

99скачиваний за 30 дней2лайкавеса обновлены31 мая 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dillion-1.2M — небольшая языковая модель Harley-ml (автор Paul Courneya) для генерации текста. Она основана на архитектуре Qwen3.5 и содержит около 1,2 млн параметров; модель обучали на примерно 9 млрд токенов датасета FineWeb-edu. В конфигурации 12 слоёв и контекст 384 токена. Модель принимает и выдаёт текст, обучена на английских данных и распространяется в формате Safetensors с лицензией MIT.

Модель предназначена для экспериментов с языковыми моделями малого размера, дообучения под узкие задачи и запуска на устройствах с ограниченными ресурсами. В карточке приведены сравнительные результаты на нескольких бенчмарках для малых моделей, однако автор предупреждает, что Dillion не умеет надёжно отвечать на вопросы, вести диалог, рассуждать или писать код и может выдавать недостоверную информацию. Поэтому её не следует использовать там, где важна точность ответов.

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

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

Ограничения

Модель не предназначена для чата, рассуждений, написания кода или ответов на вопросы и может генерировать недостоверные сведения. Контекст ограничен 384 токенами.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Dillion-1.2M

Summary

Task: Text-Generation
Total training time: ~2.5 days
Inputs: text
Outputs: text
Params: ~1.2M
Framework: PyTorch, transformers
Author: Paul Courneya (Harley-ml)

Description

Dillion is a 1.2M parameter language model trained on ~9B tokens of FineWeb-edu. Our goal was to make one of the best sub-1.5M parameter LMs through depth (12 layers) and huge overtraining (about 8900 tokens per parameter). Dillion beats or ties with models much larger than itself such as SupraMini-v4-2M and Tenete-8M.

Why "Dillion"?

I was scrolling through Hugging Face and saw GPT-2, the smallest variant. I looked at its download count and saw 16 million. My brain, for some random reason, hallucinated “Dillion.” So I decided to call my next model, no matter the task or size, Dillion.

I decided to dig a bit deeper, and after a quick Google Search, I found that “Dillion” is an alternate spelling of the Irish name Dillon, which translates to “loyal” or “faithful.” But let me tell you, this model ain’t loyal or faithful; actually, it probably doesn’t even know what those words mean.

Architecture

Dillion-1.2M uses the Qwen3.5 architecture.

ParameterValue
NUM_HIDDEN_LAYERS12
HIDDEN_SIZE72
NUM_ATTENTION_HEADS3
NUM_KEY_VALUE_HEADS3
VOCAB_SIZE3076
INTERMEDIATE_SIZE288
ROPE_THETA10000.0
MAX_POSITION_EMBEDDINGS384
LAYER_TYPESfull_attention

Training

Hardware

We trained Dillion for 0.71 epochs on 14B (only saw ~9B) tokens of FineWeb-edu on an RTX 2060 6GB with a batch size of 72 and a gradient accumulation of 4.

Training Results

epochtrain_losstrain_ppltrain_bpbeval_losseval_ppleval_bpb
0.023684.55394.9171.8754.49289.3001.850
0.047363.95852.3531.6303.94351.5731.624
0.071043.76343.0771.5503.75842.8631.548
0.094723.67239.3301.5123.67039.2521.511
0.118403.62037.3381.4913.62037.3381.491
0.142103.58436.0171.4763.58636.0891.477
0.165803.55735.0581.4653.55835.0931.465
0.189403.53834.3981.4573.53634.3291.456
0.213103.52033.7841.4503.52033.7841.450
0.236803.50433.2481.4433.50733.3481.444
0.260503.49432.9171.4393.49432.9171.439
0.284203.48332.5571.4343.48432.5901.435
0.307803.47532.2981.4313.47532.2981.431
0.331503.46531.9761.4273.46832.0731.428
0.355203.45931.7851.4253.45931.7851.425
0.378903.45231.5631.4223.45431.6271.423
0.402603.44531.3431.4193.44731.4061.420
0.426203.44131.2181.4173.44131.2181.417
0.449903.43731.0941.4163.43731.0941.416
0.473603.43130.9081.4133.43330.9691.414
0.497303.42630.7531.4113.42830.8151.412
0.521003.42330.6611.4103.42430.6921.410
0.544603.41930.5391.4083.42030.5691.409
0.568303.41730.4781.4073.41630.4471.407
0.592003.41330.3561.4063.41330.3561.406
0.615703.40930.2351.4043.41030.2651.404
0.639403.40430.0841.4023.40730.1751.403
0.663003.40330.0541.4023.40330.0541.402
0.686703.39729.8741.3993.40129.9941.401

Benchmarks

ModelParameters
Dillion1,281,384
SupraMini-v4-2M2,623,104
Tenete-8M8,293,888
TaskMetricDillionSupraMini-v4-2MTenete-8M
ARC Easyacc_norm31.36%31.50%31.94%
BLiMPacc62.94%60.70%—
PiQAacc_norm53.10%51.90%55.71%
SWAGacc_norm30.36%—32.97%
WikiTextbits_per_byte1.6161——
WikiTextbyte_perplexity3.06553.1652—

See the raw output from LM Harnes for Dillion here

Generation Examples

Prompt: The

Output:

 Twitter and Freees of Brooklyn Press, Oxford University.
The Home Council of the Monthly Landing Foundation is a partner with the Great War in the South. The Eighteenth Century has been held on the River Battalion by the Vietnam War, which was laid down by the German Empire to the Nazis. Its first-year period was born on May 1, 1846.

Prompt: Artificial Intelligence is

Output:

a new technology that has been used to make the processes we use.
The Mexican War: Since Ireland, it’s not just one of the most important technologies in America, it can be found in Europe and Japan. The Economics Center for Natural Resources (EU), which was created by Berlin, has become an essential component of its development. Firstly, it will enable the Congress to have the opportunity to create such a system and to generate a great range of resources as well. It also uses a variety of methods to provide more detailed information.
Listen to our article on these tools:
- Published on 2017-2015

Prompt: I was walking down the street and saw a

Output:

 balloon on the ground.
Before you see that the floor, we started to build a large-scale planetary traffic, which makes it possible for people to move from a magma to a hospital when they were picked up in the shore of the first day. They had a small window on their nests and so much fine space into the roof. Then in the gap between them and the width of the tropical Solar Systems.
Many scientists have found that the densely grown snowflakes are being born with the mouth of their own. But there is no evidence of the difference in this condition. The findings are not necessarily an effective way to prevent the spread of the knees and its use as well as other conditions. It's a major issue about how many thousands of molecules will be released

Use Cases

  1. Educational work and research
  2. Fine-tuning for downstream use
  3. Deployment on edge devices
  4. Or for fun.

Limitations

Umm... What do you think? Yeah, everything. But... more speciifcally (yep I splet that wrong; what are you gonna do about it!?)

  1. Cannot chat, reason, code, or answer questions
  2. Always unfactual
  3. No long context handling

Inference

#!/usr/bin/env python3
# =============================================================================
# Inference
# =============================================================================

MODEL_DIR      = "Harley-ml/Dillion-1.2M"
TOKENIZER_PATH = MODEL_DIR

# --- Generation settings ---
PROMPT             = "The"
MAX_NEW_TOKENS     = 362
TEMPERATURE        = 0.6
TOP_P              = 0.95
TOP_K              = 30
REPETITION_PENALTY = 1.2
DO_SAMPLE          = True

# =============================================================================

import os
import torch
from pathlib import Path
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    PreTrainedTokenizerFast,
    AddedToken,
)

# ---------------------------------------------------------------------------
# Device
# ---------------------------------------------------------------------------

device = (
    "cuda" if torch.cuda.is_available() else
    "mps" if torch.backends.mps.is_available() else
    "cpu"
)
print(f"Device : {device}")

# ---------------------------------------------------------------------------
# Tokenizer
# ---------------------------------------------------------------------------

def load_tokenizer(path_or_repo: str):
    p = Path(path_or_repo)

    # Case 1: explicit local tokenizer.json file
    if p.exists() and p.is_file() and p.suffix.lower() == ".json":
        tok = PreTrainedTokenizerFast(tokenizer_file=str(p.resolve()))
    # Case 2: local directory or HF repo ID
    else:
        tok = AutoTokenizer.from_pretrained(path_or_repo, use_fast=True)

    # Ensure required special tokens exist
    if tok.bos_token is None:
        tok.add_special_tokens({"bos_token": "<|bos|>"})
    if tok.eos_token is None:
        tok.add_special_tokens({"eos_token": "<|eos|>"})
    if tok.unk_token is None:
        tok.add_special_tokens({"unk_token": "<|unk|>"})
    if tok.pad_token is None:
        tok.pad_token = tok.eos_token if tok.eos_token is not None else "<|pad|>"

    tok.padding_side = "left"
    return tok

print("Loading tokenizer...")
tokenizer = load_tokenizer(TOKENIZER_PATH)
print(f"  Vocab size : {len(tokenizer)}")
print(f"  BOS        : {tokenizer.bos_token!r}")
print(f"  EOS        : {tokenizer.eos_token!r}")
print(f"  PAD        : {tokenizer.pad_token!r}  (id={tokenizer.pad_token_id})")

# ---------------------------------------------------------------------------
# Model
# ---------------------------------------------------------------------------

print(f"\nLoading model from {MODEL_DIR} ...")
model = AutoModelForCausalLM.from_pretrained(
    MODEL_DIR,
    torch_dtype=torch.float16 if device == "cuda" else torch.float32,
    low_cpu_mem_usage=True,
)

model.eval()
model.to(device)

# Safer inference for cache-related issues
model.config.use_cache = False
if hasattr(model, "generation_config") and model.generation_config is not None:
    model.generation_config.use_cache = False

total_params = sum(p.numel() for p in model.parameters())
print(f"  Parameters : {total_params:,}")

# ---------------------------------------------------------------------------
# Generation helper
# ---------------------------------------------------------------------------

def generate(
    prompt: str = PROMPT,
    max_new_tokens: int = MAX_NEW_TOKENS,
    temperature: float = TEMPERATURE,
    top_p: float = TOP_P,
    top_k: int = TOP_K,
    repetition_penalty: float = REPETITION_PENALTY,
    do_sample: bool = DO_SAMPLE,
) -> str:
    bos = tokenizer.bos_token or ""
    full_prompt = bos + prompt

    inputs = tokenizer(
        full_prompt,
        return_tensors="pt",
        add_special_tokens=False,
    ).to(device)

    inputs.pop("token_type_ids", None)

    gen_kwargs = dict(
        max_new_tokens=max_new_tokens,
        do_sample=do_sample,
        repetition_penalty=repetition_penalty,
        eos_token_id=tokenizer.eos_token_id,
        pad_token_id=tokenizer.pad_token_id,
        use_cache=False,
    )

    if do_sample:
        gen_kwargs["temperature"] = temperature
        gen_kwargs["top_p"] = top_p
        gen_kwargs["top_k"] = top_k

    with torch.inference_mode():
        output_ids = model.generate(**inputs, **gen_kwargs)

    prompt_len = inputs["input_ids"].shape[-1]
    new_ids = output_ids[0][prompt_len:]
    return tokenizer.decode(new_ids, skip_special_tokens=True)

# ---------------------------------------------------------------------------
# Run
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    print(f"\nPrompt : {PROMPT!r}")
    print("-" * 60)

    output = generate(PROMPT)

    print("Generated:")
    print(output)

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Qwen3_5ForCausalLM
Ревизия весов
7ab5bfd

0 моделей