Автоматизация (почти) без разработки ПО

Что, если бы каждое электронное письмо, каждый PDF-файл с заказом, счетом-фактурой, жалобой, запросом предложения или заявлением о приеме на работу можно было бы преобразовать в машиночитаемые данные? И могут ли они быть автоматически обработаны ERP/CRM/LMS/TMS…? Без программирования специального интерфейса.

Звучит волшебно? В этом есть какая-то магия. Но стало возможным совсем недавно.

Решением являются модели больших языков (LLM). Они, подобно офисному работнику, способны преобразовывать электронную почту в структурированные данные без обучающих образцов или с небольшим количеством образцов. Электронное письмо, PDF или документ распознаются как заказ, тендер, напоминание. И конкретные данные находятся и извлекаются. Например, для запроса транспортного заказа клиент, количество поддонов, вес, место получения, время получения, место доставки.

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

Что такое большие языковые модели и почему нас это должно волновать?

В последние годы разработка больших языковых моделей стала важной вехой в машинном обучении. Особенностью моделей является их способность отвечать на вопросы на естественном языке, создавать тексты, обобщать их, переводить на другие языки или языковые игры, или производить код — и все это без написания сценариев, т.е. без специально запрограммированного алгоритм, связывающий пользовательский ввод с машинным выводом. Модели не только выдают синтаксически (орфографически, грамматически) правильный вывод, но и способны семантически правильно решать сложные лингвистические задачи. Существует ряд LLM, наиболее известные из которых включают GPT-3 (OpenAI), BERT, T5 (Google) или Wu Dao (Пекинская академия искусственного интеллекта), MT-NLG (Microsoft).

LLM демонстрируют удивительные навыки в ответах на вопросы, а также в продолжении или резюмировании текста. Во многих случаях их навыки даже превосходят навыки собеседника-человека. Вот несколько примеров возможностей трех LLM: GPT-3 davinci, AI21 studio j1-jumbo, Macaw 11B. Ни одна из задач не была специально обучена, и ни один ответ не был запрограммирован. Скорее, это примеры нулевой компетентности: способность делать что-то без специальной подготовки.

Также можно генерировать структурированные данные, например. простые программы:

Модели, как правило, способны обрабатывать и другие широко распространенные языки, хотя и не так хорошо, как английский.

Как работает LLMS?

Мастера ответили на все вопросы правильно. Как это возможно?

Краткий обзор основ больших языковых моделей: наиболее мощными системами являются модели-трансформеры, которые по своей сути состоят из модели глубокого обучения (определенного типа нейронной сети) и оснащены механизмом внимания. Они могут обрабатывать последовательный ввод (например, текст) и производить соответствующий вывод. Делают они это по существу на основе статистики: какое наиболее вероятное продолжение (ответ на вопрос, следующее высказывание в диалоге, завершение начатого текста)? — Это означает, что их ответы не основаны на фиксированном сопоставлении намерений пользователя с ответами, как в настоящее время Siri, Alexa или другие голосовые помощники.

Модели являются большими во всех измерениях: теперь они обычно содержат более 100 миллиардов параметров. Проще говоря, параметры — это веса между нейронами, которые корректируются по мере обучения модели. Модели обучались на нескольких сотнях мегабайт в основном общедоступных данных, таких как Википедия и подобные большие корпуса. Содержание обучения эквивалентно по размеру более чем ста тысячам книг. Для сравнения: человеку трудно прочитать более 5000 книг за всю жизнь. Экологический след этих моделей также огромен: по оценкам, первоначальное обучение наиболее успешного LLM стоило столько энергии, сколько требуется, чтобы доехать на машине до Луны и обратно. Для LLM количество в некоторой степени переходит в качество. Нынешние достижения стали возможными благодаря десятикратному, стократному и тысячекратному увеличению размеров моделей за последние 2–3 года.

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

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

Интересной областью, в которой модели действительно набирают очки, является анализ текстов. В следующем примере мы говорим модели, что делать, и приводим два примера: iPhone и ветчина Serrano. Для третьего входа (сидр) сама модель может дать правильный ответ (несколько выстрелов).

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

Настройка автоматизации с большими языковыми моделями

Как можно использовать языковые модели для преобразования неструктурированных данных в структурированные и их автоматической обработки? Пример реализации из собственного практического опыта продемонстрирует это. (- Конечно, мы определенно не единственные, кто занимается этими вопросами, см. также эту статью).

А. Настройка модели (POC 1)

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

Для этого мы предоставляем модели несколько обучающих выборок (от нескольких десятков до нескольких сотен). Образцы должны быть максимально разнообразными, чтобы модель научилась справляться со всем спектром запросов. Образцы также должны охватывать намерения, отличные от только запросов предложений: например, запросы относительно незавершенной поставки или жалобы, чтобы помочь модели определить правильную классификацию. Учебные образцы включают полезную нагрузку в виде текста электронной почты или PDF, а также структурированные данные для вывода. Любые данные, которые можно извлечь из электронной почты с помощью простого сценария и не требуют машинного обучения, должны быть удалены заранее, например, адрес отправителя или адрес получателя. Ввод должен содержать реальные данные, не вычищенные вручную, а с орфографическими ошибками, разговорным временем и всеми возможными языками. Целевые данные не обязательно должны быть в автономном формате (JSON и т. д.) для запуска. Преобразование снова может быть выполнено с помощью простых алгоритмов.

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

Какую базовую модель следует использовать для вашего приложения? Ответить на этот вопрос непросто, его следует разбить на несколько подвопросов:

1. Какая модель, в какой конфигурации, с какими настройками дает наилучшие результаты?

2. С какой моделью я могу работать в желаемой конфигурации (работа в собственном облаке, решение SaaS и т. д.) и с моими требованиями (например, конфиденциальность, независимость данных)?

3. Какая модель имеет самую низкую совокупную стоимость владения (фиксированные затраты и затраты на основе запросов)?

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

Если это удастся и вы достигнете достаточно высокого уровня правильных ответов для деловых целей, можно будет сделать следующий шаг. Какая скорость является достаточной, может варьироваться в зависимости от приложения, это может быть 60%, 80% или 98%. Во время испытаний важно разделять обучающие и тестовые данные, чтобы получить результаты, которые можно будет воспроизвести в последующих производственных операциях.

Б. Интеграция в общее решение E2E (POC 2)

Интеграция в более крупную структуру может выглядеть следующим образом: данные, сгенерированные моделью, сначала подвергаются постобработке: LLM не имеют функции сопоставления, они не могут преобразовать адресную информацию, такую ​​как «Werk Stocken Continental AG» (так в оригинале), в адрес для расчета маршрута, так же как они не могут перевести дату вроде «следующая среда, 10:00» в «30.03.2022, 10:00».

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

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

Если сгенерированные данные могут обрабатываться автоматически, их можно, например, просто ввести в систему (например, систему управления транспортом) и, возможно, сразу же обработать там. Например, полный тендер может быть сгенерирован по электронной почте — просто на основе бизнес-алгоритма. Что очаровательно в таком решении, так это то, что возможное непонимание модели не приводит к предложению, которое по своей сути неправильно с точки зрения содержания, с ценой или рисками выполнения для компании. Наоборот, предложение всегда правильное. В худшем случае он просто не соответствует точной цели запроса. Решение можно протестировать с рабочей настройкой, аналогичной продуктивному целевому образу, например. в параллельной работе: почта продолжает поступать в производственные системы, в то время как их клоны обрабатываются в тестовой установке и оцениваются результаты. Проблемы с обработкой, а также с настройкой работы здесь быстро становятся очевидными.

С. Тест, программный запуск и дальнейшие шаги

Если шаг 2 прошел успешно, имеет смысл сначала мягко запустить систему, например, применить ее только к ограниченной группе клиентов, а затем перенастроить, если возникнут проблемы. Или пусть система сначала работает под наблюдением человека (письма проверяются перед отправкой). Если система успешна и стабильна, объем и степень автоматизации могут быть постепенно расширены.

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

В зависимости от приложения степень автоматизации, например, 80 % в начале, может быть увеличена до 90 % или 95 % на более поздних этапах.

Автоматизация с использованием LLM имеет три основных преимущества:

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

В отличие от ручных подходов к автоматизации, таких как создание соединений EDI для конкретных клиентов, автоматизация на основе LLM окупается за автоматизацию процессов между клиентами. Стоимость инвестиций не теряется из-за изменений в спецификациях интерфейса или изменений в отношениях с клиентами. Он также может быть реализован для длинного хвоста клиентов B2B или даже для клиентов B2C, для которых вы не можете создать определенный интерфейс. Решение на основе LLM обычно можно и нужно сочетать с решениями EDI для ключевых партнеров.

Долгосрочная картина

Мы наметили сценарий, в котором входные данные человека, возможно, сгенерированные системой (запрос предложений из системы ERP), попадают в систему, поддерживаемую LLM. Ответ возвращается к человеку, который затем заказывает или выпускает. В долгосрочной перспективе мы можем представить себе дальнейшие сценарии: если у нас есть система с поддержкой LLM как на стороне отправителя, так и на стороне получателя, весь процесс согласования может быть в значительной степени автоматизирован, например, между системой ERP клиента и системами TMS подрядчиков. Одна система отправляет RFQ, TMS отправляет тендеры, ERP выбирает один из них и отправляет заказ, TMS подтверждает и отправляет заказ на выполнение. Таким образом, многонаправленная автоматическая связь с любым партнером была бы простой и жизнеспособной без определенного интерфейса.

Универсальность LLM позволяет им работать с различными форматами, а также структурированными типами запросов — точно так же, как человек.

Первоначально возможный объем и качество обработки запросов, безусловно, были бы возможны только на уровне поддержки 1-го уровня. Более сложные или неотвеченные запросы должны быть надежно идентифицированы, а затем направлены на обработку человеком второго уровня.

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

А люди в офисе? Наконец-то они могут сосредоточиться на более сложных задачах, чем копирование содержимого электронных писем или PDF-файлов в форму, нажатие нескольких кнопок и копирование вывода в другое электронное письмо.

Сокращенная версия моего блога на HIVE.

Изображение на обложке: @floschmaezz на unsplash, отредактировано.

Спасибо за вдохновение, поддержку и отзывы: Александру Ползину, Альмудене Перейре, Хоа Ле ван Лессену, Йохену Эмигу, Кирстен Купперс, Матиасу Синну, Максу Хайнтце.

Конечно, я несу ответственность за содержание этой статьи.