/ Модель

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

Контекст
3 584 токена
Лицензия
Apache 2.0
Архитектура
vision-encoder-decoder · dense
Опубликована
8 окт 2023

nougat-latex-base

Описание изображенийИзображение → текст4 профессии

Модель распознаёт математические формулы на изображениях и преобразует их в код LaTeX.

2 663скачиваний за 30 дней83лайкавеса обновлены26 фев 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nougat-LaTeX-based — модель для преобразования изображений математических формул в код LaTeX. Она разработана как дообученная версия facebook/nougat-base на датасете im2latex-100k. Модель использует архитектуру vision encoder-decoder; для формул изменены разрешение входного изображения и адаптивное дополнение полями, чтобы уменьшить артефакты масштабирования.

Модель предназначена для распознавания формул на изображениях, в том числе фрагментов из статей и других документов. В описанной оценке на парах изображений формул и LaTeX, собранных из Wikipedia, arXiv и im2latex-100k, она показала token accuracy 0,624 и нормированное расстояние редактирования 0,062; сравнение проводилось с pix2tex. Для запуска README указывает Transformers версии 4.34.0 или новее. Репозиторий распространяется по лицензии Apache-2.0.

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

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

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

Nougat-LaTeX-based

Nougat-LaTeX-based is fine-tuned from facebook/nougat-base with im2latex-100k to boost its proficiency in generating LaTeX code from images. Since the initial encoder input image size of nougat was unsuitable for equation image segments, leading to potential rescaling artifacts that degrades the generation quality of LaTeX code. To address this, Nougat-LaTeX-based adjusts the input resolution and uses an adaptive padding approach to ensure that equation image segments in the wild are resized to closely match the resolution of the training data.

Evaluation

Evaluated on an image-equation pair dataset collected from Wikipedia, arXiv, and im2latex-100k, curated by lukas-blecher

modeltoken_acc ↑normed edit distance ↓
pix2tex0.53460.10312
pix2tex*0.600.10
nougat-latex-based0.6238500.06180

pix2tex is a ResNet + ViT + Text Decoder architecture introduced in LaTeX-OCR.

pix2tex*: reported from LaTeX-OCR; pix2tex: my evaluation with the released checkpoint ; nougat-latex-based: evaluated on results generated with beam-search strategy.

Requirements

pip install transformers >= 4.34.0

Uses

The inference API widget sometimes cuts the response short. Please check this issue for more details. You may want to run the model yourself in case the inference API bug cuts the results short.

  1. Download the repo
git clone git@github.com:NormXU/nougat-latex-ocr.git
cd ./nougat-latex-ocr
  1. Inference
import torch
from PIL import Image
from transformers import VisionEncoderDecoderModel
from transformers.models.nougat import NougatTokenizerFast
from nougat_latex import NougatLaTexProcessor

model_name = "Norm/nougat-latex-base"
device = "cuda" if torch.cuda.is_available() else "cpu"
# init model
model = VisionEncoderDecoderModel.from_pretrained(model_name).to(device)

# init processor
tokenizer = NougatTokenizerFast.from_pretrained(model_name)

latex_processor = NougatLaTexProcessor.from_pretrained(model_name)

# run test
image = Image.open("path/to/latex/image.png")
if not image.mode == "RGB":
    image = image.convert('RGB')

pixel_values = latex_processor(image, return_tensors="pt").pixel_values

decoder_input_ids = tokenizer(tokenizer.bos_token, add_special_tokens=False,
                              return_tensors="pt").input_ids
with torch.no_grad():
    outputs = model.generate(
        pixel_values.to(device),
        decoder_input_ids=decoder_input_ids.to(device),
        max_length=model.decoder.config.max_length,
        early_stopping=True,
        pad_token_id=tokenizer.pad_token_id,
        eos_token_id=tokenizer.eos_token_id,
        use_cache=True,
        num_beams=5,
        bad_words_ids=[[tokenizer.unk_token_id]],
        return_dict_in_generate=True,
    )
sequence = tokenizer.batch_decode(outputs.sequences)[0]
sequence = sequence.replace(tokenizer.eos_token, "").replace(tokenizer.pad_token, "").replace(tokenizer.bos_token, "")
print(sequence)

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
VisionEncoderDecoderModel
Ревизия весов
6c6f2af

0 моделей