Sakhanda Wire
NVDA MSFT GOOGL META AMZN
← К новостям

Fastino выпустила GLiNER2.5: архитектура предсказания границ, устраняющая перебор спанов при извлечении информации

Команды по извлечению информации регулярно сталкиваются с выбором. Небольшие модели-энкодеры дешевы, но негибки, а большие языковые модели универсальны, но дороги в расчёте на документ. Fastino выпустила GLiNER2.5, чтобы сократить этот разрыв. В новой версии перечисление спанов заменено предсказанием границ: модель оценивает, где сущность начинается и заканчивается, вместо оценки каждого возможного спана в пределах заданной ширины. Это единственное изменение устраняет максимальную ширину сущности, позволяет работать с контекстом до 4096 слов и сохраняет линейную по длине последовательности вычислительную сложность при фиксированной схеме. Оно также открывает возможности совместного декодирования сущностей и отношений, межзадачных ограничений меток и атрибутов отдельных спанов. На 16 бенчмарках в режиме zero-shot многоязычный чекпойнт достигает общего macro F1 56,17 против 56,09 у GLiNER2, с приростом на 24,75 пункта в XNLI. На Hugging Face доступны три чекпойнта под лицензией Apache 2.0: на 74, 194 и 287 млн параметров.

Готова ли она к развёртыванию?

Да, Fastino выпустила три чекпойнта GLiNER2.5 на Hugging Face под лицензией Apache 2.0 с возможностью локального запуска на CPU, CUDA или MPS через pip install "gliner2[local]" (Python 3.10+). В настоящее время ни один провайдер инференса не размещает эти чекпойнты, поэтому единственный путь к развёртыванию — самостоятельный хостинг.

  • Уровень компании: любой. Чекпойнты на 74 и 194 млн параметров работают на стандартных CPU-серверах, поэтому команда из двух человек может внедрить извлечение информации без бюджета на GPU. Крупные организации получают альтернативу извлечению на основе LLM с оплатой за токены — с возможностью дообучения и приватного размещения.
  • Отрасли: юридическая сфера и работа с договорами, здравоохранение и клиническая документация, финансовые услуги, страховые требования, клиентская поддержка и инструменты безопасности ИИ.
  • Применения: обнаружение и редактирование персональных данных, извлечение пунктов договоров, графы знаний для памяти агентов, маршрутизация агентов и моделей, классификация для защитных ограничений, извлечение клинических сущностей с атрибутами отрицания и дозировки.

Что изменилось

Предыдущие модели GLiNER находили сущности, перечисляя возможные спаны: каждая начальная позиция сочеталась с каждой допустимой шириной, после чего пары оценивались относительно схемы. Такая архитектура связывала вычисления с осью ширины и устанавливала жёсткий предел длины сущности.

GLiNER2.5 устраняет перечисление. Общий энкодер по-прежнему обрабатывает текст и запросы схемы за один проход. Вместо оценки спанов модель предсказывает оценки начала и конца на границах токенов, а также оценки внутренних позиций для токенов. Разреженный этап формирования предложений выбирает наиболее перспективные начала и концы для каждого запроса и объединяет их без ограничений по расстоянию. Затем голова переранжирования оценивает каждого кандидата, используя данные о границах и содержимое спана. Кандидаты отношений извлекаются из того же пула, а не отдельным путём.

Команда Fastino сообщает, что при фиксированных схеме и бюджете кандидатов вычислительная сложность остаётся линейной по длине последовательности.

Пять вытекающих из этого возможностей

  • Извлечение из длинного контекста: удаление явных представлений спанов сократило потребление памяти настолько, что стало возможным обучение на последовательностях длиной до 4096 слов. Чекпойнты поставляются с параметром max_len=4096. Библиотека также добавляет встроенные помощники для разбиения на фрагменты (extract_entities_long, extract_long, Classifier.classify_long, JointIE.extract_long), которые сопоставляют спаны с символьными смещениями в исходном документе.
  • Неограниченная длина спана: GLiNER2 перечисляла спаны только до фиксированной ширины, обычно около двенадцати слов; более длинные сущности никогда не оценивались. В GLiNER2.5 спан может начинаться на первом токене и заканчиваться на последнем. Поиск пункта о возмещении убытков длиной в сорок слов стоит столько же, сколько поиск имени из двух слов.
  • Совместное извлечение сущностей и отношений: пользователи задают типы сущностей, типизированные отношения и структурные правила (unique_head=True, no_self_loops()), а поиск по лучу собирает глобально согласованный граф. Недопустимые комбинации не допускаются, поэтому результат соответствует схеме по своей конструкции. Перед использованием графа проверьте result.feasible.
  • Классификация с ограничениями: правила C.implies и C.excludes связывают метки между задачами во время декодирования. Собственная защитная модель Fastino GLiGuard демонстрирует решаемую проблему: без ограничений запрос может быть помечен как безопасный и одновременно отмечен как содержащий инъекцию промпта. Если допустимого назначения меток не существует, классификатор выдаёт ошибку.
  • Атрибуты спанов: группы атрибутов, например тональность, привязываются к определённым типам сущностей через applies_to и декодируются отдельно для каждого спана в рамках того же прямого прохода. Сущности возвращаются в квалифицированном, а не плоском виде.

Семейство моделей

МодельПараметрыЭнкодерЯзык
gliner2.5-small-v174MDeBERTa-v3-xsmallАнглийский
gliner2.5-base-v1194MDeBERTa-v3-baseАнглийский
gliner2.5-multi-v1287MmDeBERTa-v3-baseМногоязычная

Все три используют один и тот же публичный API. Загружайте их через AutoExtractor, а не через устаревший загрузчик спанов GLiNER2.

Бенчмарки

Команда Fastino проводит оценку в режиме zero-shot на 16 общедоступных наборах данных, сравнивая macro F1 с GLiNER2 сопоставимого размера.

Общее среднее: GLiNER2.5 Multi достигает 56,17 против 56,09 у GLiNER2 Multi. GLiNER2.5 Base достигает 54,87 против 53,34. Наиболее заметный прирост наблюдается в XNLI: показатель Multi вырос до 62,30 с 37,55, то есть на 24,75 пункта. Результат Few-NERD для Base улучшился с 47,22 до 55,14. Румынский RONEC — язык, на котором модель не обучалась, — улучшился для обеих моделей.

Ключевые выводы

  • Предсказание границ заменяет перечисление спанов; ширина сущности больше не увеличивает вычислительные затраты.
  • Три чекпойнта Apache 2.0: 74M, 194M и 287M, все запускаются на CPU.
  • Совместное декодирование возвращает графы, соответствующие схеме, устраняя необходимость в слоях постфактум-валидации.
  • Общий F1 вырос до 56,17 (Multi) и 54,87 (Base); средний показатель извлечения для Multi снизился.
  • При разбиении на фрагменты спан сохраняется только в том случае, если обе его границы попадают в один фрагмент.

Ознакомьтесь с техническим блогом Fastino, репозиторием на GitHub и документацией по архитектуре границ. Также посетите нашу страницу GitHub с учебными материалами, кодом и ноутбуками.

Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту по машинному обучению с более чем 150 тыс. участников и подписаться на нашу рассылку. Постойте! Вы есть в Telegram? Теперь вы можете присоединиться к нам и в Telegram.

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости