/ Модель

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

Контекст
512 токенов
Параметры
38,5 млн
Лицензия
MIT
Архитектура
t5 · dense
Базовая модель
t5-small
Библиотека
transformers
Опубликована
20 сен 2026

t5-small-nl-to-regex

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

Дообученная T5-small преобразует короткие английские описания текстовых шаблонов в регулярные выражения диалекта DeepRegex.

583скачиваний за 30 дней0лайковвеса обновлены20 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

thealper2/t5-small-nl-to-regex — дообученная автором карточки модель google-t5/t5-small для преобразования краткого описания шаблона на английском языке в регулярное выражение. Она основана на архитектуре T5 и содержит 38,5 млн параметров; в метаданных указано ограничение контекста 512 токенов. Модель обучена на 20 824 примерах из корпусов DeepRegex KB13, NL-RX-Synth и NL-RX-Turk. На тестовой выборке точное совпадение составило 66,78%, валидность выражений — 99,76%, функциональная точность — 78,54%; последняя включает как точную эквивалентность, так и приблизительное совпадение на конечном наборе проверочных строк.

Результат использует диалект DeepRegex с операторами дополнения `~` и пересечения `&`, поэтому его нужно преобразовать перед применением в Python `re`. Модель заменяет слова в кавычках заполнителями `dog`, `truck`, `ring` и `lake` и не копирует исходные литералы. Проверялись короткие однофразовые описания; поведение на произвольных или многофразовых запросах не тестировалось. Генерируемые выражения не проверяются на катастрофический возврат при поиске. Лицензия — MIT.

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

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

Ограничения

Модель выдаёт выражения в диалекте DeepRegex, который нельзя напрямую использовать как Python `re`; буквальные слова заменяются заполнителями. Проверены только короткие однофразовые описания, а безопасность выражений от катастрофического возврата не контролируется.

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

t5-small-nl-to-regex

google-t5/t5-small fully fine-tuned to translate an English description of a text pattern into a regular expression, on the three DeepRegex corpora (KB13, NL-RX-Synth, NL-RX-Turk).

Usage

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("thealper2/t5-small-nl-to-regex")
model = AutoModelForSeq2SeqLM.from_pretrained("thealper2/t5-small-nl-to-regex")

PREFIX = "translate natural language to regex: "

# T5's SentencePiece vocabulary cannot represent \\ ^ ` { } ~, so the
# model emits them as '#b #c #g #l #r #n'. Decode them back:
CODEC = {"#b": "\\", "#c": "^", "#g": "`", "#l": "{", "#r": "}", "#n": "~"}

def decode_regex(text):
    out, i = [], 0
    while i < len(text):
        pair = text[i:i + 2]
        if pair in CODEC:
            out.append(CODEC[pair]); i += 2
        elif pair == "#h":
            out.append("#"); i += 2
        else:
            out.append(text[i]); i += 1
    return "".join(out)

def generate_regex(text):
    ids = tokenizer(PREFIX + text, return_tensors="pt")
    out = model.generate(**ids, max_length=128, num_beams=4, do_sample=False)
    return decode_regex(tokenizer.decode(out[0], skip_special_tokens=True))

generate_regex("lines that contain the word 'dog'")

Output dialect

Outputs follow the DeepRegex regex representation, which is not Python re syntax. It adds two operators:

OperatorMeaningExample
~Xcomplement — matches every string X does not~(.*e.*)
X&Yintersection — matches strings matched by both([A-Z])&([AEIOUaeiou])

Matching is whole-line (full-match) semantics. re.compile accepts these strings but reads ~ and & as literal characters, so outputs must be translated before use with Python re.

String literals follow the datasets' own preprocessing: words in quotes are normalised to the placeholders dog, truck, ring, lake in order of appearance. A description mentioning two quoted words yields a regex over dog and truck, which the caller substitutes back.

Training data

20824 examples from the three DeepRegex corpora:

CorpusExamplesUnique regexesDescription style
KB13824732Kushman & Barzilay (2013), human-written
NL-RX-Synth100009648synthetic descriptions generated from the regex
NL-RX-Turk100009648Mechanical Turk paraphrases of the NL-RX-Synth regexes

Split 80/10/10 with seed 42 (train 16659 / validation 2082 / test 2083), stratified by corpus. NL-RX-Synth and NL-RX-Turk have byte-identical targ.txt files, so they are split on a shared permutation of the line index; otherwise every NL-RX-Turk test regex would also be an NL-RX-Synth training target.

127 of 2083 test regexes (6.1%) also occur as a training target; these are genuine repeats in the corpora and were not removed.

Training procedure

Full fine-tuning of all parameters — no LoRA, adapters or quantisation.

SettingValue
Base modelgoogle-t5/t5-small
Parameters60,506,624
Task prefixtranslate natural language to regex:
Learning rate0.0003
Weight decay0.01
Warmup ratio0.05
LR schedulelinear
Epochs (max)15.0
Effective batch size64
Max source / target length128 / 128
Precisionbf16
Early stopping patience3 epochs on validation exact match
Best checkpointcheckpoint-3915

Evaluation

Held-out test split (2083 examples), beam search with num_beams=4, do_sample=False.

Metrics

  • Exact match — string equality after stripping surrounding whitespace only.
  • Regex validity — the output parses as a well-formed expression of the dialect.
  • DFA equivalence — exact language equivalence decided with automata. Not decidable when either side contains a \b assertion, so it is reported with its coverage.
  • Probe agreement — approximate: the prediction and the reference agree on every generated probe string. Finite-sample agreement, not a proof of equivalence.
  • Functional accuracy — exact matches plus predictions judged equivalent by DFA equivalence, falling back to probe agreement where DFA equivalence is undecidable. The headline number; it mixes an exact and an approximate criterion and is reported as such.

Overall

MetricValue
Exact match66.78%
Regex validity99.76%
Functional accuracy78.54%
DFA equivalence (exact, 77.39% of examples decidable)80.40%
Probe agreement (approximate)79.98%
Character similarity0.9016
Baseline: most frequent training regex0.00% exact match

Per corpus

CorpusnExact matchFunctional accuracyValidity
KB138342.17%68.67%100.00%
NL-RX-Synth100085.90%89.70%99.90%
NL-RX-Turk100049.70%68.20%99.60%

Limitations

  • Output is in the DeepRegex dialect, not Python re; ~ and & need translation before use.
  • Quoted strings are placeholders (dog, truck, ring, lake), inherited from the datasets' preprocessing. The model does not copy real literals.
  • The descriptions are short, single-sentence and template-like; behaviour on free-form or multi-sentence requests is untested.
  • Probe agreement is finite-sample and can call two regexes equivalent when a longer counter-example exists.
  • DFA equivalence cannot decide expressions containing \b, roughly 20% of the corpus.
  • 60M parameters and a domain-specific vocabulary — not a general-purpose regex assistant.
  • Generated regexes are not validated for catastrophic backtracking; do not run them on untrusted input without review.

Citation

Datasets from Locascio et al., Neural Generation of Regular Expressions from Natural Language with Minimal Domain Knowledge (EMNLP 2016), and Kushman & Barzilay, Using Semantic Unification to Generate Regular Expressions from Natural Language (NAACL 2013).

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
T5ForConditionalGeneration
Ревизия весов
80fd696

0 моделей