3,583 papers
arXiv:2610.29188 74 21 окт. 2026 г. FREE

LTEM: расширение Markdown для таблиц с объединёнными ячейками и многоуровневой шапкой

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LaTeX — худший формат, чтобы показывать модели таблицу. Точность у него самая низкая, а ещё много «битых» ответов, которые нельзя разобрать. Метод LTEM позволяет скармливать модели таблицы с объединёнными ячейками и многоэтажной шапкой, не раздувая промпт. В обычный Markdown добавлены маркеры: << значит «продолжение ячейки слева», ^^ — «продолжение ячейки сверху». Модель перестаёт угадывать структуру и просто читает её: точность на уровне HTML при расходе токенов, близком к Markdown. Честно: над обычным Markdown выигрыш небольшой. Это страховка для сложных таблиц, а не прорыв.
Адаптировать под запрос
⚡

TL;DR

LTEM (LLM-friendly Table-Enhanced Markdown) — это обычная Markdown-таблица, к которой добавлено несколько маркеров. Они прямо показывают модели, какие ячейки объединены и как устроена многоэтажная шапка. << значит «эта ячейка продолжает соседнюю слева», ^^ — «продолжает ячейку сверху». Есть и атрибуты {c:2} и {r:2}: «растянуть на 2 столбца» и «на 2 строки». Строки над разделителем |---| считаются шапкой.

Главная находка — про форматы вообще, а не только про LTEM. Таблицы из отчётов и научных статей почти всегда с объединёнными ячейками. Их приходится отдавать модели в формате, который объединение не выражает (Markdown, CSV), или в многословном (HTML, LaTeX). LaTeX оказался худшим выбором: он даёт самую низкую точность и заметную долю «битых» ответов — модель выдаёт то, что нельзя разобрать. У одной из моделей точность на LaTeX просела очень сильно. HTML точен, но тянет много лишних токенов. Простой Markdown и CSV на средних результатах почти не уступали HTML.

LTEM по точности вышел на уровень HTML, а в расходе токенов он близок к обычному Markdown. «Битых» ответов у него меньше всего. Выигрыш над обычным Markdown небольшой, и честнее считать его страховкой для сложных таблиц, а не прорывом. Метод простой: дать таблицу в LTEM и приложить к промпту короткую справку по семи новым элементам синтаксиса.

🔬

Схема метода

ШАГ 1: Оцени таблицу → плоская (шапка + строки) или с объединёнными ячейками / многоуровневой шапкой
ШАГ 2: Плоская → обычный Markdown (или CSV, если нужна экономия токенов)
ШАГ 3: Сложная → перепиши в LTEM: << / ^^ / {c:N} / {r:N}, шапка в несколько строк над |---|
ШАГ 4: В тот же промпт добавь короткую справку по маркерам → задай вопрос по таблице
(всё в одном промпте; конвертацию можно поручить LLM отдельным запросом)

Чего избегать: отдавать таблицу модели в LaTeX.

🚀

Пример применения

Задача: Финансовый аналитик в Москве разбирает квартальный отчёт эмитента из PDF. Таблица сегментов с «двухэтажной» шапкой: сверху «Выручка, млрд ₽», под ней «Q1» и «Q2». Слева объединённая ячейка «Финтех», под ней две строки. Если вставить такую таблицу в чат обычным текстом, столбцы «поплывут». Модель начнёт путать, к какому кварталу относится число. Цифры в примере условные.

Промпт:

Ниже таблица в формате LTEM (расширенный Markdown).
Правила чтения:
- Все строки над разделителем |---| — шапка. Верхняя строка — группа, нижняя — подзаголовки.
- << в ячейке: она объединена с ячейкой слева (продолжает её).
- ^^ в ячейке: она объединена с ячейкой сверху (продолжает её).
- {c:N} — ячейка занимает N столбцов, {r:N} — N строк.

| Сегмент | Выручка, млрд ₽ | << |
| ^^      | Q1              | Q2 |
| ------- | --------------- | --- |
| Финтех  | 120             | 135 |
| Ритейл  | 310             | 295 |
| Облако  | 40              | 55  |

Вопрос: в каком сегменте выручка во втором квартале выросла сильнее всего в процентах? 
Покажи расчёт по каждому сегменту, затем дай ответ.

Результат: Модель сначала расшифрует структуру шапки: «Выручка» охватывает Q1 и Q2. Затем она пройдёт по сегментам и посчитает рост по каждому. В конце назовёт сегмент с максимальным ростом. Риск перепутать квартал и столбец ниже, чем при «плывущем» тексте из PDF.

🧠

Почему это работает

Слабость. Таблица двумерная, а модель читает текст по одной линии. Если ячейка объединена, в тексте нет знака, что она «растянута». Модель вынуждена угадывать, какие столбцы попадают под заголовок. В HTML и LaTeX объединение записано (colspan, \multicolumn), но модель должна сама превратить эту запись в позиции ячеек. Это лишний шаг, на котором она ошибается и ломает формат ответа.

Сильная сторона. Модели отлично знают Markdown: он повсюду в обучающих текстах и является их формой вывода по умолчанию. LTEM остаётся надстройкой над ним. Даже если маркеры воспринять как обычный текст, базовая структура таблицы сохраняется.

Как метод обходит слабость. Объединение записано явно прямо в ячейке (<<, ^^), и угадывать не нужно. Читать таблицу можно сверху вниз за один проход. При этом не раздувается длина запроса, как с HTML.

Рычаги управления: - Маркер << или {c:N} → << удобнее для узких объединений, {c:5} короче для широких. - Количество строк шапки над |---| → столько уровней и опишутся, дополнительный синтаксис не нужен. - Справка по синтаксису → короче для простых таблиц, полнее для сложных. Она тоже стоит токенов. - Для вложенных таблиц → разбей на отдельные таблицы с метками | # id | и ссылками @id вместо вложенности.

📋

Шаблон промпта

Таблица ниже записана в формате LTEM (Markdown с расширениями).

Правила чтения:
- Все строки над разделителем |---| — многоуровневая шапка.
- << : ячейка продолжает ячейку слева (объединение по столбцам).
- ^^ : ячейка продолжает ячейку сверху (объединение по строкам).
- {c:N} : ячейка занимает N столбцов; {r:N} : N строк; {c:N,r:M} : оба сразу.
- \\ внутри ячейки — перенос строки.
- | # {идентификатор} | в первой строке — метка таблицы; @{идентификатор} в ячейке — ссылка на другую таблицу.

{таблица_в_LTEM}

Задача: {вопрос_или_действие}
Формат ответа: {формат}

Что подставлять: {таблица_в_LTEM} — ваша таблица с маркерами. {вопрос_или_действие} — вопрос по данным или просьба сгенерировать таблицу. {формат} — например, «сначала расчёт по шагам, потом короткий вывод».

Справку по маркерам я собрал по описанию синтаксиса в статье. Полный текст справки авторов лежит в приложениях, их в разбираемом фрагменте нет.

🚀 Быстрый старт — вставь в чат:

Вот шаблон формата LTEM для таблиц. Адаптируй под мою таблицу: [опиши или вставь свою таблицу]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие ячейки объединены и сколько уровней в шапке. Эти данные нужны, чтобы правильно расставить маркеры << и ^^. Она перепишет вашу таблицу в LTEM и соберёт готовый промпт.

⚠️

Ограничения

⚠️ Выигрыш над обычным Markdown небольшой: на средних результатах LTEM, HTML, Markdown и CSV почти не различаются. Главная проблема была у LaTeX. LTEM нужен, когда в таблице есть объединения. На плоских таблицах хватит обычного Markdown.

⚠️ Гайд стоит токенов: справку по маркерам придётся прикладывать к каждому промпту. В статье токены считали без неё, поэтому в коротких запросах «экономия» частично съедается.

⚠️ Генерация таблиц: при создании таблиц лучшим оказался HTML, а LTEM только сравним с MultiMarkdown. Чтобы получить LTEM-ответ, который можно вставить в Word или Notion, его всё равно придётся конвертировать.

⚠️ Синтетические таблицы и разные модели: основной бенчмарк собран автоматически из сгенерированных таблиц и вопросов. Проверка на реальных таблицах (HiTab) тоже есть, но её цифры в доступной части не показаны. У одной из моделей (Gemini 2.5 Pro) разницы с LaTeX значимой не нашли.

⚠️ Нет рендеринга: LTEM — исследовательский формат. Обычные просмотрщики Markdown покажут маркеры как текст.

🔍

Как исследовали

Авторы сначала разложили сложность таблиц на шесть «кубиков»: сетка, шапка, объединение ячеек, вложенная шапка, стопка секций и склейка таблиц с разными схемами. Из них составили шесть уровней сложности. Затем с помощью Claude собрали синтетический бенчмарк STB: 1089 таблиц и 4356 вопросов пяти доменов (наука, финансы, товары, опросы, расписания). Около 30% таблиц попали на уровень L3, где впервые нужны объединённые ячейки. Там Markdown и CSV уже не могут выразить структуру. Чтобы убрать ошибки в ответах, оставили только вопросы, на которых две небольшие модели из разных семейств дали тот же ответ, что и генератор.

Каждую таблицу записали шестью способами: Markdown, CSV, HTML, LaTeX, MultiMarkdown и LTEM. Задавали вопросы пяти моделям (GPT-5, Gemini 2.5 Pro, Llama 4 Maverick, Qwen3-235B, DeepSeek-R1) в три прогона. Проверили и реальные таблицы из HiTab. Для генерации просили трёх моделей восстановить таблицу по описанию и сравнивали с эталоном.

Результаты на STB: LTEM 0.813, HTML 0.812, Markdown и MultiMarkdown 0.810, CSV 0.808, LaTeX 0.777. «Битых» ответов у LaTeX 2,67% против 0,14% у LTEM. Модель Qwen3-235B на LaTeX провалилась до 0,66 при ~0,80 на остальных форматах. Удивило не то, что LTEM сравнялся с HTML, а то, что обычные Markdown и CSV сидели почти там же. Главный вывод для практики: не точность решает выбор, а надёжность формата и цена в токенах. CSV самый дешёвый: около 370 токенов запроса против 612 у HTML. Статистически (тест Макнемара) LTEM значимо обошёл LaTeX на четырёх из пяти моделей.

С ростом сложности точность падает от L2 к L3 и дальше к L4. Именно там модель должна следить за диапазонами объединений и ролями заголовков.

📄

Оригинал из исследования

Примеры синтаксиса из статьи.

| Revenue | << |   | Revenue {c:2} |
| ------- | ------- | = | ------- | ------- |
| Q1   | Q2   |  | Q1   | Q2   |

(Figure 1b: две эквивалентные записи colspan — маркер << и атрибут {c:N}.)

| Report | << | << |
| Region | Q1 | Q2 |
| ------ | --- | --- |
| Asia  | 100 | 120 |

(Figure 2: многоуровневая шапка — все строки над разделителем считаются шапкой.)

| Feature | Details             | Status   |
| ------- | -------------------------------- | ----------- |
| Speed  | - 2x faster \\ - 50% less memory | [x] Done  |
| Formula | $E = mc^2$            | [ ] Pending |

(Figure 3: многострочное содержимое ячейки через \\.)

|# orders |
| OrderID | Customer | Items    | ShipTo |
| ------- | -------- | ----------- | ------ |
| 1001  | Alice  | @items_1001 | Seoul |
| 1002  | Bob   | @items_1002 | Busan |

|# items_1001 |
| Product | Qty | UnitPrice |
| ------- | --- | --------- |
| Apple  | 3  | 1.00   |
| Banana | 5  | 0.50   |

|# items_1002 |
| Product | Qty | UnitPrice |
| ------- | --- | --------- |
| Laptop | 1  | 999.00  |

(Figure 4: связанные таблицы — вместо вложенности таблицы разделены и связаны метками | # id | и ссылками @ref.)

Контекст: Это иллюстрации синтаксиса из раздела с описанием формата. Полная справка по формату (EBNF, правила валидации) находится в приложениях, в предоставленном фрагменте её нет.

💡

Адаптации и экстраполяции

💡 Адаптация для правила в инструкциях: вывод про LaTeX можно закрепить в системном промпте или файле инструкций (например, GPT с данными или CLAUDE.md). Это моя экстраполяция, сама статья правил для инструкций не даёт.

Если нужно показать или передать таблицу:
- плоскую — формат Markdown;
- с объединёнными ячейками — Markdown с маркерами << (слева) и ^^ (сверху) и краткой справкой по ним;
- не использовать LaTeX и HTML для табличных данных, если об этом не просили.

🔧 Техника: убрать объединения → стабильность. Если не хочется вводить новый синтаксис, разверни объединённые ячейки: повтори значение «Выручка» в каждом подстолбце («Выручка Q1», «Выручка Q2») и в каждой строке группы. Структура станет плоской, и подойдёт обычный Markdown или CSV. Это моя идея, статья её не проверяла.

🔗

Ресурсы

  • LTEM: LLM-Friendly Table-Enhanced Markdown for Table Understanding and Generation
  • Авторы: Eunbin Kim, Hyeonseok Kang, Sangkeun Jung. Chungnam National University (Республика Корея), EurekaAI
  • Бенчмарк STB (Synthetic Table Benchmark), таксономия F1–F6 / L1–L6 и спецификация формата — авторы заявляют об открытом выпуске
  • HiTab (Cheng et al., 2022) — публичный бенчмарк по иерархическим таблицам
  • Связанные работы: Sui et al. 2024, LongTableBench, RealHiTBench

📋 Дайджест исследования

Ключевая суть

Обнаружено: LaTeX — худший формат, чтобы показывать модели таблицу. Точность у него самая низкая, а ещё много «битых» ответов, которые нельзя разобрать. Метод LTEM позволяет скармливать модели таблицы с объединёнными ячейками и многоэтажной шапкой, не раздувая промпт. В обычный Markdown добавлены маркеры: << значит «продолжение ячейки слева», ^^ — «продолжение ячейки сверху». Модель перестаёт угадывать структуру и просто читает её: точность на уровне HTML при расходе токенов, близком к Markdown. Честно: над обычным Markdown выигрыш небольшой. Это страховка для сложных таблиц, а не прорыв.

Принцип работы

Принцип простой. Любое объединение записано прямо в ячейке. << — ячейка склеена с левой. ^^ — склеена с верхней. {c:2} и {r:2} растягивают ячейку на 2 столбца или 2 строки. Все строки над разделителем |---| считаются шапкой, сколько бы их ни было. Это как разметка на карте. Раньше модель видела только список адресов, теперь на карте нарисованы границы районов. Структура таблицы записана в тексте, и её не надо восстанавливать в голове. К промпту добавляется короткая справка по маркерам. Без неё модель может принять << за обычный текст.

Почему работает

Таблица двумерная, а модель читает текст по одной линии. У объединённой ячейки в тексте нет знака, что она «растянута». Модель гадает, какие столбцы лежат под заголовком «Выручка». В HTML и LaTeX объединение записано (colspan, \multicolumn). Но модель должна сама превратить код в позиции ячеек. Это лишний шаг, на нём она ошибается и ломает формат ответа. Прикол: именно LaTeX с явной записью объединения оказался хуже всех. LTEM остаётся надстройкой над Markdown, а его модели видели в обучении чаще всего. Даже если маркеры принять за обычный текст, база таблицы не рассыпается. «Битых» ответов у LTEM меньше всего. Есть и минус. Справка по маркерам стоит токенов, и в коротких запросах экономия частично съедается.

Когда применять

Разбор отчётов и научных статей → таблицы из PDF с объединёнными ячейками и шапкой в два-три этажа, особенно когда вопрос требует понять, какой столбец к какой группе относится. Сюда же — генерация таблиц со сложной структурой в формате, который модель выдаёт без «битого» кода. НЕ подходит для плоских таблиц «шапка плюс строки»: хватит обычного Markdown или CSV. Для генерации таблиц под Word или Notion в статье лучше всего сработал HTML. LTEM-ответ придётся конвертировать, а обычные просмотрщики Markdown покажут маркеры как текст.

Мини-рецепт

1. Оцени таблицу: плоская или есть объединённые ячейки и многоэтажная шапка?
2. Плоская — не мудри: вставь обычный Markdown. Нужна экономия токенов — бери CSV.
3. Сложная — перепиши в LTEM: << для склейки слева, ^^ для склейки сверху, {c:N} и {r:N} для широких и высоких ячеек. Шапку пиши несколькими строками над |---|. Конвертацию можно поручить самой модели отдельным запросом.
4. Приложи справку: 4-5 строк про маркеры в тот же промпт. Для простых таблиц хватит короткой, для сложных дай полную.
5. Проси расчёт по шагам: сначала пусть расшифрует шапку, потом считает.
6. Не бери LaTeX: ни для чтения таблицы, ни для ответа.

Примеры

[ПЛОХО] : Вот таблица из отчёта: Сегмент Выручка Q1 Q2 Финтех 120 135 Ритейл 310 295. В каком сегменте рост больше всего? (текст из PDF «поплыл», модель путает кварталы и столбцы)
[ХОРОШО] : Ниже таблица в формате LTEM. Правила: строки над разделителем |---| — шапка. << значит ячейка продолжает левую, ^^ значит продолжает верхнюю. | Сегмент | Выручка, млрд ₽ | << | | ^^ | Q1 | Q2 | | --- | --- | --- | | Финтех | 120 | 135 | | Ритейл | 310 | 295 | | Облако | 40 | 55 | Вопрос: в каком сегменте выручка во втором квартале выросла сильнее всего в процентах? Сначала опиши структуру шапки, потом посчитай рост по каждому сегменту, затем дай ответ. Цифры условные. Модель сначала поймёт, что «Выручка» охватывает Q1 и Q2. Затем пройдёт по сегментам и назовёт лидера. Риск перепутать квартал и столбец ниже, чем с «плывущим» текстом.
Источник: LTEM: LLM-Friendly Table-Enhanced Markdown for Table Understanding and Generation
ArXiv ID: 2610.29188 | Сгенерировано: 2026-10-22 17:10

Проблемы LLM

ПроблемаСутьКак обойти
Модель путает столбцы в таблице с объединёнными ячейкамиВставляешь таблицу с многоуровневой шапкой или объединёнными ячейками как Markdown или CSV. В этих форматах нет знака «ячейка растянута». Модель угадывает, какие столбцы лежат под общим заголовком. Число уходит не в тот столбец. Ответ выглядит уверенно, но неверен. Проблема есть в любых отчётах, где шапка в несколько этажей.Пометь объединение прямо в ячейке. << значит «продолжает ячейку слева». ^^ значит «продолжает ячейку сверху». Приложи к запросу короткую справку по маркерам (см. метод ниже).

Методы

МетодСуть
Маркеры объединения в Markdown-таблице: сложная таблица без угадыванияОставь обычную Markdown-таблицу. Добавь маркеры. << — ячейка продолжает соседнюю слева. ^^ — продолжает ячейку сверху. {c:2} — растянуть на 2 столбца. {r:2} — на 2 строки. Все строки над разделителем \|---\| считаются шапкой. Столько этажей шапки, сколько строк. В запрос впиши справку: «<< — объединена с ячейкой слева, ^^ — с ячейкой сверху, строки над \|---\| — шапка». Почему работает: Объединение записано в самой ячейке. Угадывать не нужно. Таблицу читают сверху вниз за один проход. Markdown модели хорошо знакомы, поэтому даже непонятый маркер не ломает основу таблицы. Длина запроса почти не растёт, в отличие от HTML. Когда применять: объединённые ячейки, многоэтажная шапка, таблицы из PDF и отчётов. Для узкого объединения удобнее <<, для широкого короче {c:5}. Когда не нужно: плоская таблица. Хватит обычного Markdown. Минусы: справка стоит токенов в каждом запросе. Выигрыш над обычным Markdown небольшой, это скорее страховка. Если нужен ответ-таблица для Word или Notion, придётся конвертировать. Обычные просмотрщики Markdown покажут маркеры как текст. Конвертацию своей таблицы можно поручить самой модели отдельным запросом.
📖 Простыми словами

LTEM:LLM-Friendly Table-Enhanced Markdown for Table Understanding and Generation

arXiv: 2610.29188

Любая LLM читает мир строго линейно — токен за токеном, слева направо. А реальная таблица — это двумерная матрица с объединёнными ячейками и многоэтажными шапками. Обычный Markdown превращает такие данные в кашу из цифр, где модель вслепую угадывает, к какому столбцу относится значение. Тяжёлый HTML с тегами colspan только забивает контекст: модель путается в координатах и выдаёт уверенный бред.

Это как читать сложную бухгалтерскую ведомость через узкую трубочку для коктейля: видишь одну цифру за раз, а границы ячеек кто-то стёр. Модель пытается угадать сетку по памяти, но в итоге смешивает квартальную прибыль с расходами на канцтовары. Кормить её в этот момент сырым кодом таблиц — всё равно что вместо очков выдать инструкцию на китайском.

Что реально решает проблему: формат LTEM, то есть Markdown с простыми пространственными маркерами. Вместо километровых тегов модель видит понятные указатели: стрелка << склеивает ячейку с соседом слева, а знак ^^ намертво привязывает её к строке сверху. Для явного масштаба используются короткие атрибуты вроде {c:2} на два столбца, а всё, что находится над первой чертой, модель железно считывает как многоэтажную шапку.

Тестировали на унылых финансовых отчётах с кривыми PDF-таблицами, но паттерн абсолютно универсален. Тащи этот метод в сложные RAG-пайплайны, медицинскую аналитику, технические спеки оборудования — туда, где AI-агент обязан достать точный факт. Везде, где стандартный Markdown превращает данные в решето, LTEM сохраняет геометрию без бессмысленного раздувания контекста.

Короче: хватит скармливать сеткам плоский текст в надежде, что они как-нибудь сами догадаются. Зашивай LTEM-разметку прямо в препроцессинг документов. Это срежет галлюцинации на таблицах до нуля без дорогого файнтюнинга. Кто внедрит нормальную разметку сейчас — получит рабочую аналитику, остальные продолжат гадать, почему ассистент перепутал кварталы и спустил бюджет.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с