Skip to main content

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

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

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

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

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

  • Неверные адреса с орфографическими ошибками и нестандартным форматированием можно исправить и стандартизировать. Это может повысить точность геокодирования этих адресов.

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

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

Блок-схема модели преобразования текста

Модель преобразования текста для стандартизации адресов может исправить орфографические ошибки и стандартизировать адреса улиц.

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

По сути, модели преобразования текста в 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 или обучать пользовательские модели с помощью инструмента Обучение модели преобразования текста.

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

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

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

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

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

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

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

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

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

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

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

Параметр Скорость обучения — один из самых важных гиперпараметров. Он представляет собой скорость, с которой веса модели будут скорректированы в процессе тренировки. Если вы укажете низкую скорость обучения, модель будет улучшаться постепенно, и обучение может занять много времени, что приведет к потерям времени и ресурсов. Высокая скорость обучения может оказаться контрпродуктивной, и модель будет плохо обучаться. При высоких скоростях обучения веса модели могут быть резко скорректированы, что приведет к получению ошибочных результатов. Часто лучше не указывать значение параметра Скорость обучения, так как инструмент использует автоматический определитель скорости обучения, основанный на статье Leslie N. Smith "Cyclical Learning Rates for Training Neural Networks".

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

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

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

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

Справочная информация

Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. "Attention Is All You Need." December 6, 2017. https://arxiv.org/abs/1706.03762.

Raffel, Colin. et al. "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.

Brown, Tom B. et al. "Language Models are Few-Shot Learners." July 22, 2020. https://doi.org/10.48550/arxiv.2005.14165.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." April 4, 2017. https://doi.org/10.48550/arxiv.1506.01186.

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