GLiNER: универсальная модель для распознавания именованных сущностей с использованием двунаправленного трансформера
Распознавание именованных сущностей (NER) — важная задача обработки естественного языка (NLP), которая идентифицирует и классифицирует такие сущности, как имена, местоположения и организации в тексте. Это позволяет извлекать структурированную информацию для различных приложений. NER также может решать такие задачи, как построение графов знаний, поиск информации и анализ контента.
Традиционные модели NER хорошо справляются с идентификацией заранее определенных сущностей. В отличие от них, большие языковые модели (LLM) могут работать с более сложными и разнообразными сущностями. Однако LLM часто требуют значительных ресурсов, что создает трудности для практического развертывания. Существующие дообученные open-source LLM для распознавания именованных сущностей (NER), такие как InstructUIE, UniNER и GoLLIE, эффективны, но сталкиваются с такими проблемами, как большой размер, медленная генерация токенов и ограниченное параллельное извлечение сущностей. Чтобы решить эти проблемы, исследователи разработали GLiNER — компактную и эффективную модель NER, предназначенную для повышения эффективности, масштабируемости и многоязычной производительности при сохранении точности.
GLiNER — это open-source модель NER, использующая двунаправленный transformer энкодер. Она позволяет выполнять параллельное извлечение сущностей и устраняет ограничения как традиционных подходов к NER, так и подходов на основе LLM. В оценках zero-shot на различных бенчмарках NER, включая многоязычные, она превосходит как ChatGPT, так и дообученные LLM, такие как UniNER. Даже самая маленькая версия GLiNER превосходит крупные модели, такие как InstructUIE, в условиях zero-shot.
Рисунок: BiLM для открытого NER
Рисунок: BiLM для открытого NER | Источник
В этом блоге будет рассмотрена GLiNER, ее подход к NER и ее влияние на область NLP. Дополнительные сведения можно найти в статье GLiNER.
Обзор распознавания именованных сущностей
Распознавание именованных сущностей (NER) — фундаментальная задача в обработке естественного языка (NLP), которая идентифицирует и классифицирует именованные сущности в тексте. Эти сущности представляют объекты реального мира, такие как люди, организации, местоположения, даты и т. д.
Ключевые компоненты NER
Обнаружение сущностей: Определение границ именованных сущностей в тексте (например, идентификация "Albert Einstein" как интересующего фрагмента).
Классификация сущностей: Назначение правильной метки каждой обнаруженной сущности (например, маркировка "Albert Einstein" как Person).
Понимание архитектуры и функциональности GLiNER
GLiNER использует двунаправленные языковые модели (BiLM), такие как BERT и DeBERTa. Эти модели известны способностью извлекать богатые контекстные представления из текста. Ключевая идея GLiNER заключается в том, чтобы сформулировать задачу NER как задачу сопоставления, где эмбеддинги типов сущностей сравниваются с представлениями текстовых фрагментов в общем латентном пространстве. Это отличается от традиционных подходов, которые рассматривают NER как задачу генерации.
GLiNER состоит из трех основных компонентов:
Предобученный текстовый энкодер: Основой GLiNER является предобученная BiLM, такая как DeBERTa, которая служит текстовым энкодером. BiLM обрабатывает входную последовательность, улавливая контекстные связи между словами и генерируя контекстуализированные представления (эмбеддинги) для каждого токена.
Модуль представления спанов: Этот компонент отвечает за вычисление представления для каждого возможного спана (непрерывной последовательности слов) во входном тексте. Представление спана получается путем объединения выходов BiLM для начального и конечного токенов каждого спана. Эти эмбеддинги оптимизируются так, чтобы близко соответствовать представлениям релевантных типов сущностей.
Модуль представления сущностей: Этот компонент генерирует эмбеддинги для каждого типа сущностей, которые модель стремится извлечь. Специальные токены, представляющие типы сущностей, пропускаются через BiLM, а их выходы уточняются с помощью полносвязной сети прямого распространения. Затем эти эмбеддинги сущностей сравниваются с эмбеддингами спанов для определения совпадений.
Рисунок: архитектура GLiNER
Рисунок: архитектура GLiNER | Источник
Вот как работает GLiNER.
Форматирование входных данных
GLiNER получает на вход как текст, из которого нужно извлечь сущности, так и список потенциальных типов сущностей. Эти элементы объединяются в единую последовательность. Специальные токены, включая [ENT] и [SEP], играют важную роль в этой последовательности:
Токен
[ENT]предшествует каждому типу сущности в списке.Токен
[SEP]служит разделителем между списком типов сущностей и входным текстом.Токены
[ENT]и[SEP]случайным образом инициализируются в начале процесса обучения.
Рисунок: пример формата входных данных
Рисунок: пример формата входных данных | Источник
Представление токенов с помощью BiLM
Затем предварительно обученная BiLM обрабатывает унифицированную входную последовательность. BiLM анализирует всю последовательность, понимает взаимосвязи между всеми токенами и выводит контекстуализированные векторные представления для каждого токена.
- Выход для токенов типов сущностей (связанных с
[ENT]) обозначается как p.
- Выход для каждого слова во входном тексте обозначается как h.
- Для слов, разбитых на подслова во время токенизации, GLiNER использует представление первого подслова, что является распространенной практикой в NER.
Генерация эмбеддингов сущностей и спанов
GLiNER стремится закодировать как типы сущностей, так и текстовые спаны в едином латентном пространстве, где их можно эффективно сравнивать. Это включает следующее:
- Уточнение представления сущностей: Исходное представление типов сущностей (p) уточняется с помощью двухслойной полносвязной сети прямого распространения (FFN). В результате получается новое представление, обозначаемое как q, которое отображает типы сущностей в латентное пространство.
- Вычисление представления спана: Спан — это последовательность подряд идущих слов во входном тексте. GLiNER вычисляет эмбеддинг для каждого возможного спана с помощью другой двухслойной FFN. Эта FFN работает с конкатенированными представлениями начального и конечного токенов спана. Этот процесс позволяет GLiNER улавливать смысл спана в целом.
Сопоставление типов сущностей со спанами
Закодировав как типы сущностей, так и спаны в одном латентном пространстве, GLiNER определяет вероятность принадлежности спана к определенному типу сущности, вычисляя оценку соответствия между их соответствующими эмбеддингами. Оценка соответствия рассчитывается с использованием скалярного произведения эмбеддинга спана Sij и эмбеддинга сущности qt, за которым следует сигмоидная функция активации. Полученная оценка (i, j, t) может интерпретироваться как вероятность того, что спан (i, j) относится к типу t.
Во время обучения с использованием бинарной кросс-энтропийной функции потерь модель максимизирует оценки соответствия для правильных (положительных) пар «фрагмент-сущность» и минимизирует их для неправильных (отрицательных) пар.
Положительные пары — это те, в которых фрагмент действительно размечен типом сущности в обучающих данных.
Отрицательные пары генерируются путем случайной выборки сущностей из других примеров в том же батче. Это помогает модели эффективно различать истинные и ложные назначения сущностей.
Функция потерь при обучении для отдельного примера определяется как:
Функция потерь при обучении для отдельного примера
Декодирование с жадным выбором фрагментов
GLiNER использует жадный алгоритм выбора фрагментов для извлечения наиболее вероятных сущностей из входного текста на этапе декодирования. Этот алгоритм отдает приоритет непересекающимся фрагментам с наивысшими оценками соответствия. Он поддерживает два режима NER:
Плоское NER: Этот режим выбирает только непересекающиеся фрагменты, отдавая приоритет тем, у которых самые высокие оценки.
Вложенное NER: Этот режим допускает выбор вложенных фрагментов (фрагментов, полностью содержащихся внутри других сущностей), избегая при этом частичных пересечений.
Этот жадный подход гарантирует, что GLiNER соблюдает специфические для задачи ограничения, эффективно извлекая релевантные сущности.
Экспериментальные настройки и гиперпараметры GLiNER
Для оценки эффективности GLiNER были реализованы тщательно разработанная экспериментальная схема и надежная конфигурация гиперпараметров. Модель обучается на наборе данных Pile-NER, коллекции из 44 889 фрагментов текста с 240 000 фрагментами сущностей и 13 000 уникальных типов сущностей. Этот набор данных был получен из корпуса Pile: 50 000 текстов были отобраны и размечены с помощью ChatGPT. Аннотации создавались без заранее заданных ограничений типов, что позволило набору данных охватить разнообразные сущности.
Запрос к ChatGPT для извлечения сущностей
Рисунок: Запрос к ChatGPT для извлечения сущностей | Источник
GLiNER использует модель deBERTa-v3 в качестве базовой архитектуры благодаря ее доказанной эмпирической эффективности. Модель включает непредобученные слои с размерностью 768 и применяет коэффициент dropout 0,4 для снижения переобучения.
Процесс обучения продолжается максимум 30 000 шагов, начинаясь с фазы разогрева в 10%, за которой следует фаза затухания, управляемая косинусным планировщиком. Во время обучения отрицательные типы сущностей случайно выбираются из других примеров в том же батче, чтобы улучшить способность модели обрабатывать случаи, когда определенные типы сущностей отсутствуют.
Для повышения устойчивости модели и предотвращения переобучения реализовано несколько стратегий регуляризации. Эти стратегии включают:
Перемешивание порядка сущностей: Это помогает модели идентифицировать сущности независимо от их позиции во входных данных.
Случайное удаление сущностей: Это заставляет модель обрабатывать случаи, когда информация отсутствует или неполна.
Чтобы управлять вычислительной сложностью во время обучения, вводится ограничение на количество типов сущностей, обрабатываемых в одном предложении. Этот предел установлен на уровне 25.
Анализ производительности GLiNER
После обучения производительность GLiNER была протестирована на различных бенчмарках NER, а факторы, способствующие ее эффективности, были проанализированы.
Zero-Shot производительность на англоязычных наборах данных
GLiNER оценивалась в zero-shot режиме, то есть она обучалась на наборе данных Pile-NER, а затем напрямую тестировалась на ранее не виденных наборах данных без дополнительной донастройки.
Бенчмарк OOD NER
Бенчмарк OOD (Out-of-Domain) NER, состоящий из семи разнообразных наборов данных NER, использовался для оценки способности GLiNER обобщаться на разные домены. GLiNER во всех вариантах размера (small, medium и large) продемонстрировал впечатляющую производительность, превзойдя такие модели, как ChatGPT, Vicuna, и даже значительно более крупную InstructUIE.
Примечательно, что GLiNER среднего размера достиг результатов, сопоставимых с моделью UniNER 13B, несмотря на то что был в 140 раз меньше. Самая крупная модель GLiNER стабильно превосходила конкурентов, включая GoLLIE (самую эффективную LLM) и USM.
Рисунок: Zero-Shot оценки на бенчмарке Out-of-Domain NER
Рисунок: Zero-Shot оценки на бенчмарке Out-of-Domain NER | Источник
20 NER Benchmark
GLiNER был дополнительно оценен на бенчмарке из 20 наборов данных NER, охватывающих различные домены. Он превзошел как ChatGPT, так и UniNER на большинстве этих наборов данных, продемонстрировав свою устойчивость и адаптивность в разных доменах. Однако он показал более слабые результаты по сравнению с UniNER на наборах данных NER на основе твитов, что указывает на потенциальную область для улучшения при обработке неформального и зашумленного текста.
Zero-shot производительность на 20 наборах данных NER
Zero-shot производительность на 20 наборах данных NER | Источник
Zero-Shot многоязычная оценка
Чтобы оценить обобщаемость GLiNER на невиданные языки, он был протестирован на наборе данных Multiconer, который содержит данные на 11 языках. Использовались два варианта GLiNER:
Один с English DeBERTa backbone (GLiNER-En).
Один с multilingual DeBERTa backbone (GLiNER-Multi).
GLiNER-Multi показал себя исключительно хорошо, превзойдя ChatGPT на большинстве языков. Он
продемонстрировал способности к межъязыковому переносу, хотя не обучался на этих языках. Он даже показал немного лучший результат на испанском, чем на английском.
Zero-Shot оценки на разных языках
Zero-Shot оценки на разных языках | Источник
Внутридоменное supervised дообучение
GLiNER также был дообучен на 20 наборах данных NER, чтобы сравнить его производительность с LLM в supervised-сценарии. Были протестированы два его варианта: один инициализирован весами zero-shot модели (предобученной на Pile-NER), а другой обучен с нуля. Предобученный вариант стабильно превосходил непредобученный вариант, демонстрируя преимущества предобучения на разнообразном наборе данных.
Supervised производительность при разных размерах наборов данных
Supervised производительность при разных размерах наборов данных | Источник
Предобученный GLiNER также превзошел значительно более крупную InstructUIE, подчеркивая эффективность архитектуры GLiNER. Хотя он уступил UniNER, GLiNER всё же достиг наивысших оценок на 7 из 20 наборов данных.
Рисунок: Внутридоменное supervised дообучение
Рисунок: Внутридоменное supervised дообучение | Источник
Аббревиатура w/ означает "with" и указывает, что модель GLiNER сначала обучалась на наборе данных Pile-NER перед дообучением на 20 наборах данных NER.
Аббревиатура w/o означает "without" и указывает, что модель GLiNER не была предварительно обучена на наборе данных Pile-NER.
Разнообразные архитектурные решения и стратегии обучения
Было исследовано несколько архитектурных и обучающих стратегий для оптимизации производительности GLiNER и обеспечения адаптивности в различных сценариях.
Оценка разных backbones
GLiNER был дополнительно исследован с использованием разных базовых моделей BiLM, чтобы понять, как они влияют на его производительность. Были протестированы различные модели, такие как BERT, RoBERTa, ALBERT и ELECTRA, при этом DeBERTa-v3 стабильно демонстрировала лучшую производительность. Однако все базовые модели показали сильные результаты по сравнению с существующими моделями. Это указывает на то, что архитектура GLiNER эффективна для разных BiLM.
Рисунок: Zero-shot производительность для разных базовых моделей
Рисунок: Zero-shot производительность для разных базовых моделей | Источник
Оценка влияния выборки отрицательных сущностей
Выборка отрицательных сущностей вводится во время обучения, чтобы учитывать, что в реальных данных часто отсутствуют определенные типы сущностей. Затем производительность модели оценивается с использованием разных соотношений отрицательной выборки (0%, 50% и 75%), и соотношение 50% обеспечивает лучший баланс между точностью и полнотой. Обучение только на положительных сущностях приводит к большему числу ложноположительных срабатываний (более низкая точность), тогда как высокая доля отрицательной выборки делает модель чрезмерно осторожной, что приводит к пропущенным сущностям (более низкая полнота).
Рисунок: Влияние выборки отрицательных типов сущностей
Рисунок: Влияние выборки отрицательных типов сущностей | Источник
Оценка преимуществ случайного удаления типов сущностей
Случайное удаление подсказок типов сущностей во время обучения повышает устойчивость модели и ее адаптируемость к различному количеству сущностей в реальных сценариях. Эта техника приводит к среднему улучшению на 1,4 пункта при оценке вне домена.
Рисунок: Случайное удаление типов сущностей
Рисунок: Случайное удаление типов сущностей | Источник
Последствия разработки GLiNER
Разработка GLiNER имеет значительные последствия для области распознавания именованных сущностей (NER):
Ресурсная эффективность для NER: GLiNER продвигает NER, достигая высокой производительности при меньших размерах модели, чем крупные LLM. Такая эффективность полезна в средах с ограниченными ресурсами, делая NER более доступным для различных приложений. GLiNER эффективно использует BiLM без вычислительных накладных расходов LLM, формулируя NER как задачу сопоставления между эмбеддингами типов сущностей и представлениями текстовых фрагментов в латентном пространстве.
Zero-Shot обобщение между доменами и языками: GLiNER исключительно хорошо работает в zero-shot условиях, достигая передовых результатов на бенчмарках NER без тонкой настройки под конкретную задачу. Его способность обобщать на различные домены и языки делает его перспективным решением для сценариев с ограниченным объемом размеченных данных.
Улучшенная производительность благодаря предварительному обучению: Предварительное обучение на наборе данных Pile-NER перед тонкой настройкой для внутридоменных задач приводит к заметным улучшениям производительности. Это особенно верно, когда объем контролируемых данных ограничен. Выигрыш наиболее значителен на меньших наборах данных. Это указывает на то, что предварительное обучение способствует эффективному переносу знаний, повышая способность модели обобщать и адаптироваться к новым доменам и типам сущностей.
Направления будущих исследований
Можно исследовать несколько направлений, чтобы дополнительно расширить возможности GLiNER:
Изучение альтернативных архитектур: Хотя текущая архитектура GLiNER эффективна, есть возможности для улучшения за счет экспериментов с различными вариантами BiLM (Bidirectional Language Models) или внедрения новых техник представления фрагментов. Такие инновации могут привести к дополнительному росту производительности и позволить GLiNER решать более сложные задачи с большей эффективностью.
Обработка зашумленного и неформального текста: Хотя GLiNER хорошо работает во многих контекстах, его способность обрабатывать зашумленный, неформальный текст нуждается в улучшении. Контент социальных сетей часто включает сленг, сокращения и нестандартную грамматику, что создает уникальные трудности. Будущие исследования могут быть сосредоточены на доработке GLiNER, чтобы лучше улавливать эти нюансы и повышать его устойчивость при обработке такого неструктурированного текста.
Включение внешних знаний: Интеграция внешних источников знаний, таких как графы знаний или доменно-специфические справочники, может повысить точность GLiNER в разрешении неоднозначности сущностей. Встраивая эти ресурсы в архитектуру модели, исследователи могли бы разрабатывать более точные и контекстно-ориентированные представления именованных сущностей, улучшая производительность.
Дообучение для доменно-специфических сценариев использования: Хотя zero-shot производительность GLiNER впечатляет, существует потенциал для дальнейшего улучшения за счет доменно-специфического дообучения. Такие области, как биомедицинский анализ текстов или анализ юридических документов, могли бы выиграть от этого подхода. Это делает GLiNER более адаптируемым к специализированным областям, где распознавание сущностей должно учитывать сложные и технические языковые паттерны.
Заключение
GLiNER представляет собой значительное достижение в NER. Благодаря своим компактным двунаправленным моделям transformer, он сочетает эффективность, адаптивность и доступность. Он демонстрирует сильную zero-shot и многоязычную производительность без вычислительных затрат, характерных для более крупных моделей, превосходя такие альтернативы, как ChatGPT и UniNER.
Будущие исследования могут изучить альтернативные архитектуры, повысить устойчивость к зашумленному и неформальному тексту, интегрировать внешние знания для лучшего разрешения неоднозначности сущностей, дообучение на доменно-специфических наборах данных и повысить производительность в языках с ограниченными ресурсами за счет межъязыкового переноса. Эти направления обладают большим потенциалом для дальнейшего повышения эффективности GLiNER в разнообразных задачах NER.
Дополнительные ресурсы
Читать далее

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.



