Как работает Преобразование текста

Преобразование текста — это процесс перевода или преобразования последовательности текста в другую последовательность той же или другой длины. Это достигается с помощью моделей последовательность в последовательность (или Seq2seq) в домене обработки естественного языка (NLP). Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты для обучения моделей преобразования текста, а также для использования моделей для преобразования текста из одной формы в другую.

Инструмент Обучение модели преобразования текста обучает модели NLP задачам преобразования последовательность в последовательность; обученные модели можно использовать с инструментом Преобразовать текст при помощи глубокого обучения для аналогичного преобразования, перевода или суммирования текста.

Возможное применение

Ниже приведены потенциальные варианты применения этого инструмента:

  • Неверные адреса с орфографическими ошибками и нестандартным форматированием можно исправить и стандартизировать. Это может повысить точность геокодирования этих адресов.
  • Для лучшего понимания и дальнейшей обработки текста на иностранном языке, его можно перевести (в рамках ограничений машинного перевода).
  • Допустимые описания границ участков (например, пограничные столбы и знаки) могут быть преобразованы в файлы теодолитного хода и автоматически обработаны для получения геометрии участков.
Блок-схема модели преобразования текста
Модель преобразования текста для стандартизации адресов может исправить орфографические ошибки и стандартизировать адреса улиц.

Модели преобразования текста в ArcGIS основаны на архитектуре Transformer, предложенной Васвани и соавторами в основополагающей статье “Внимание — это все, что вам нужно“. Это позволяет моделям быть более точными и распараллеливаемыми, при этом требуя меньше размеченных данных для обучения.

По сути, модели преобразования текста в ArcGIS являются моделями кодировщик-декодер. Слои рассмотрения кодировщика получают все слова входного текста, но слои рассмотрения декодера могут получить доступ только к словам до того, как они будут обработаны. Затем декодер переводит закодированные представления объектов для создания выходной последовательности токенов. Некоторые известные модели кодировщик-декодер — это BART и T5.

Кодировщик и декодер описываются следующим образом:

  • Кодировщик — кодировщик преобразует входной текст в числовое представление в виде признакового описания объекта фиксированной длины. Это числовое представление сохраняет смысловое значение входного текста.
  • Декодер — декодер берет закодированные признаковые описания объекта из кодировщика и объединяет их с входной последовательностью для создания выходной последовательности токенов.
Компоненты в модели преобразования текста

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

  • Sliding Window Attention — эффективно обрабатывает длинные тексты, обрабатывая их в виде более мелких, перекрывающихся сегментов, что снижает вычислительные затраты и использование памяти, сохраняя при этом важный контекст.
  • Grouped Query Attention — повышает эффективность за счет кластеризации похожих запросов, что минимизирует объем вычислений внимания и ускоряет обработку.
  • Токенизатор Byte-Fallback BPE (Byte Pair Encoding) — преобразует текст в токены для обработки моделью.
Примечание:

Модели NLP могут эффективно использоваться при автоматизации анализа больших объемов неструктурированного текста. Как и в случае с моделями другого типа, убедитесь, что они применяются к соответствующим задачам с надлежащим уровнем человеческого контроля и прозрачности в отношении типа модели и обучающих наборов данных, используемых для обучения модели.

Используйте модели преобразования текста

Инструмент Преобразовать текст при помощи глубокого обучения можно использовать для применения обученной модели преобразования текста к неструктурированному тексту и преобразования его в другой язык или формат. Вы можете использовать предварительно обученные модели преобразования текста из ArcGIS Living Atlas of the World или обучать пользовательские модели с помощью инструмента Обучение модели преобразования текста.

Входными данными для инструмента Преобразовать текст при помощи глубокого обучения является класс пространственных объектов или таблица, содержащая текст, подлежащий преобразованию. Входной моделью может быть файл определения модели Esri JSON (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другие параметры модели. Некоторые модели могут иметь дополнительные аргументы модели. Инструмент создает во входной таблице поле, содержащее преобразованный текст.

Хотя инструмент может запускаться на центральном процессоре, для обработки рекомендуется использовать графический процессор, поскольку глубокое обучение требует больших вычислительных ресурсов. Чтобы запустить этот инструмент с помощью графического процессора, установите для параметра среды Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте параметр среды GPU ID.

Обучить модели преобразования текста

Инструмент Обучение модели преобразования текста можно использовать, чтобы обучить модели NLP преобразовывать текст. Этот инструмент использует подход машинного обучения и обучает модель, предоставляя ей обучающие выборки, состоящие из пар входного текста и целевого преобразованного выходного текста. Благодаря опорной модели Mistral, она использует контекстное обучение, направляя понимание модели и ее ответы с помощью входных подсказок и предоставляя модели конкретные примеры, которые помогают ей делать выводы о желаемом результате. Обучение моделей NLP требует больших вычислительных ресурсов, рекомендуется использовать графический процессор.

Обучающие данные предоставляются в виде входной таблицы, которая содержит текстовое поле, действующее как предикторная переменная, и поле метки, содержащее целевую метку для каждого входного текста в таблице.

При обучении модели преобразования текста вы можете обучить модель с нуля, настроить обученную модель или использовать контекстное обучение. В целом, языковые модели, использующие архитектуру преобразования, считаются малопривлекательными для изучения.

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

Предварительно обученная модель может быть файлом определения модели Esri или файлом пакета глубокого обучения. Выходная модель также сохраняется в этих форматах в указанной папке Выходная модель.

Обучение моделей глубокого обучения представляет собой итеративный процесс, в котором входные обучающие данные несколько раз пропускаются через нейронную сеть. Каждый обучающий проход по всем обучающим данным известен как эпоха. Параметр Максимальное число эпох указывает максимальное количество раз, когда обучающие данные просматриваются моделью во время ее обучения. Это зависит от обучаемой модели, сложности задачи и количества обучающих выборок. Если у вас много обучающих выборок, вы можете использовать небольшое значение. В общем, это хорошая идея - продолжать обучение в течение нескольких эпох снова и снова, пока потери при проверке продолжают снижаться.

Параметр Опорная модель указывает предварительно сконфигурированную нейронную сеть, которая служит кодировщиком для модели и извлекает представления объектов входного текста. Эта модель поддерживает кодировщики на основе T5, которые основаны на архитектуре преобразования и предварительно обучены для больших объемов текста полуконтролируемым образом и хорошо понимают язык. Параметр опорной модели также поддерживает большую языковую модель Mistral (LLM). Mistral — это преобразователь, работающий только с декодером, который использует Sliding Window Attention для эффективной обработки длинных текстов, Grouped Query Attention для оптимизации вычислений и Byte-Fallback BPE Tokenizer для обработки разнообразных текстовых входных данных.

Обучение модели происходит пакетами, а параметр Размер пакета указывает количество обучающих выборок, которые обрабатываются для обучения одновременно. Увеличение размера пакета может повысить производительность инструмента. Однако при увеличении размера пакета используется больше памяти. Если во время обучения модели возникает ошибка нехватки памяти, используйте меньший размер пакета.

Параметр Скорость обучения — один из самых важных гиперпараметров. Это скорость, с которой вес модели корректируется во время обучения. Если вы укажете низкую скорость обучения, модель будет улучшаться медленно, и обучение может занять много времени, что приведет к излишней трате времени и ресурсов. Высокая скорость обучения может быть контрпродуктивной, и модель может плохо обучаться. При высоких скоростях обучения веса модели могут резко измениться, что приведет к ошибочным результатам. Часто лучше не указывать значение параметра Скорость обучения, так как инструмент использует автоматический определитель скорости обучения, основанный на статье Лесли Н. Смит "Циклические скорости обучения для обучения нейронных сетей".

Инструмент использует часть обучающих данных (по умолчанию 10 процентов) в качестве проверочного набора. Параметр Процент для проверки позволяет настроить количество обучающих данных, которые будут использоваться для проверки. Для модели Mistral не менее 50 процентов данных необходимо зарезервировать для проверки, поскольку Mistral требует меньшего обучающего набора и полагается на больший проверочный набор для оценки производительности модели.

По умолчанию инструмент использует метод ранней остановки, который приводит к остановке обучения модели, когда в последующие эпохи обучения модель больше не улучшается. Вы можете отключить это поведение, сняв отметку с параметра Завершить, когда модель перестанет улучшаться.

Вы также можете указать, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально разработаны. По умолчанию слои опорной модели не закрепляются, а веса и смещения значения Опорная модель могут изменяться, чтобы соответствовать обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты.

Текстовые данные часто содержат шум в виде тегов HTML и URL-адресов. Вы можете использовать параметры Удалить HTML-теги и Удалить URL-адреса для предварительной обработки текста и удаления тегов перед обработкой.

Список литературы

Васвани, Ашиш, Ноам Шазир, Ники Пармар, Якоб Ушкорейт, Ллион Джонс, Айдан Н. Гомес, Лукаш Кайзер, Илья Полосухин. "Attention Is All You Need." 6 декабря, 2017. https://arxiv.org/abs/1706.03762.

Раффель, Колин и другие. "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer." 20 июля, 2020. https://doi.org/10.48550/arxiv.1910.10683.

"Encoder models." https://huggingface.co/course/chapter1/5?fw=pt.

Браун, Том Б. и др. "Language Models are Few-Shot Learners". 22 июля, 2020. https://doi.org/10.48550/arxiv.2005.14165.

Смит, Лесли Н. "Cyclical Learning Rates for Training Neural Networks." 4 апреля, 2017. https://doi.org/10.48550/arxiv.1506.01186.

"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.