/ Модель

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

Контекст
32 768 токенов
Параметры
494 млн
Размер весов
988 МБ
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-0.5B-Instruct
Библиотека
transformers
Опубликована
4 окт 2026

incorrecter

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

Incorrecter добавляет несколько реалистичных ошибок в чистый английский текст, чтобы он выглядел написанным человеком.

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

Бенчмарки

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

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

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

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

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

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

Incorrecter — компактная языковая модель, созданная Léon и дообученная на базе Qwen2.5-0.5B-Instruct. Она принимает выверенный текст на английском языке и возвращает его с 1–3 реалистичными ошибками: например, неверным омонимом, опечаткой, строчной буквой в начале предложения, лишним пробелом или пропущенной точкой. Модель предназначена для превращения гладкого, похожего на машинный текст в текст, который выглядит написанным человеком.

Модель использует плотную архитектуру Qwen2 с 494 млн параметров, принимает текст и генерирует текст; заявленная длина контекста — 32 768 токенов. В README приведены результаты проверки на 58 отложенных текстах и сравнение запусков в Transformers, MLX-LM и Ollama: при рекомендованных параметрах генерации большинство выходов изменялось, обычно на 1–3 слова, а сохранение смысла оценивалось примерно в 95%. Эти результаты относятся к указанным настройкам и тестам, а не гарантируют качество для любых текстов.

Модель распространяется по лицензии Apache-2.0. Она обучена только для английского языка и может чрезмерно или недостаточно исправлять текст; примерно в 4% выходов при рекомендованных настройках ошибка может менять исходный смысл. Для более стабильных результатов автор рекомендует температуру 1,2 и top_p 0,9; без ограничения top_p вероятность смысловой подмены выше.

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

  • добавление естественных опечаток в черновик письма
  • придание сообщению в Slack менее выверенного вида
  • создание реалистично ошибочных вариантов текста для тестирования редакторов
  • подготовка примеров ошибок для оценки систем проверки текста

Ограничения

Модель обучена только на английском языке и иногда добавляет слишком мало или слишком много ошибок. Примерно в 4% выходов при рекомендуемых настройках ошибка может изменить смысл исходного текста; без top_p 0,9 риск выше.

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

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

Открыть на Hugging Face

Incorrecter

The opposite of autocorrect. Incorrecter takes clean, AI-sounding text — a thank-you email, a landlord note, a Slack update, a short essay — and adds a few realistic human errors: eggcorns, wrong homophones, fat-finger slips, a lowercase sentence start, a doubled space, a dropped final period. Text that reads human-typed instead of AI-drafted.

A Qwen2.5-0.5B-Instruct LoRA fine-tune (mlx-lm, Apple Silicon), fp16 fused weights.

Usage

The model expects clean text as the user message and returns the same text with 1–3 word-level errors. It self-identifies as Incorrecter with or without a system prompt. Recommended sampling: temperature 1.2, top_p 0.9, no repetition penalty. This repo's generation_config.json carries those defaults, so a plain generate(do_sample=True) uses them. Greedy decoding makes it timid.

Two settings matter:

  • No repetition penalty. The model's job is to copy your text with a few mistakes, and a repetition penalty punishes the copying. The old default (1.05) over-edited: only 0.53 of changed texts stayed within 1–3 word edits on a 40-text check.
  • top_p 0.9. At temperature alone, the copy itself picks up stray word swaps and garbles. The cap keeps the copy exact and leaves room for the intended typos.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

tok = AutoTokenizer.from_pretrained("Avicennasis/incorrecter")
model = AutoModelForCausalLM.from_pretrained("Avicennasis/incorrecter", dtype=torch.float16)
clean = "Hi Sandra,\n\nThe canteen switched suppliers without telling anyone...\n\nRegards, Aleks"
prompt = tok.apply_chat_template([{"role": "user", "content": clean}],
                                 add_generation_prompt=True, tokenize=False)
ids = tok(prompt, return_tensors="pt")
out = model.generate(**ids, max_new_tokens=200, do_sample=True, temperature=1.2, top_p=0.9)
print(tok.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True))

Or with ollama (Q8_0 GGUF in Avicennasis/incorrecter-GGUF):

ollama run hf.co/Avicennasis/incorrecter-GGUF:Q8_0

The GGUF repo's params file sets ollama to temperature 1.0, top_p 0.9 and repeat_penalty 1.0. The GGUF runs a little hotter than these weights at equal settings.

Training data

  • 644 drafted seeds (glm-5.3-flash, qwen3.8-27b, gemini-3.1-flash-lite, Claude — per-row license tags) plus 699 new drafts (qwen3.8-27b 343, glm 250, gemini 100, claude 6).
  • 693 human-written seeds from permissively licensed datasets: OpenAssistant/oasst2 (Apache-2.0) and google/civil_comments (CC0-1.0), filtered to 20–400 words, gate-cleaned and judged.
  • 600 real-error pairs from grammarly/coedit (Apache-2.0), reversed to clean → erroneous.
  • Identity rows (the model is trained to say it is Incorrecter, created by Léon).

No unpublished correspondence was used.

Evaluation (58 held-out texts, temperature 1.2 + top_p 0.9, 6 draws)

6 draws = 2 training seeds × 3 sampling seeds, through mlx-lm.

MetricResultTarget
texts changed0.830 [0.76–0.90]≥ 0.80
of changed, 1–3 word edits0.882 [0.81–0.92]≥ 0.70
line count kept0.971 [0.97–0.98]≥ 0.95
sign-off kept0.958 [0.91–1.00]≥ 0.95
meaning kept0.957 [0.93–0.98]≥ 0.95
identity probes (with system prompt)3/3 on every model3/3

All five targets pass at the means. This exact checkpoint, on its own (3 draws): 0.874 changed, 0.901 with 1–3 edits, 0.971 lines, 0.958 sign-off, 0.954 meaning.

How meaning is measured. Llama-3.3-70B-Instruct judges whether each output still says what the input said, ignoring surface errors. Before scoring anything, it was calibrated on two sets:

  • 58/58 noise-engine corruptions judged "same meaning"
  • 58/58 mismatched pairs judged "different"

The meaning margin is thin, and it is stated as measured.

Why these settings. At the old recipe (temperature 0.9, no cap), meaning was 0.914, below the target. Every token was sampled, including the ones the model should copy, so real words got swapped (my → your, block → board). The top_p cap fixed this without retraining.

Other runtimes, same checkpoint (40 held-out texts, 3 draws):

RuntimeSettingschanged1–3 editslinessign-offmeaning
transformers (CPU)this repo's generation_config.json0.790.810.960.960.94
ollama (Q8_0)the GGUF repo's params0.930.850.980.970.94

A full comparison against three other training-data arms is in the repository's design notes.

Limitations

  • English only; trained on 0.5B params — expect occasional over- or under-correction.
  • Some errors land on a real word and change what the text says (my → your). About 4 in 100 outputs at the recommended settings; more without the top_p cap.
  • Trained to answer identity questions as Incorrecter, created by Léon.

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

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

GPU в ailist

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

Нельзя запустить

MLX-модели работают только на Apple Silicon.

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
b0e1cbc

0 моделей