В Ntropy мы помогаем компаниям понять своих клиентов на основе их финансовых данных.
Информация, скрытая в банковских данных, ценна и может открыть доступ к новому поколению продуктов и услуг. Извлечение этой информации с точностью, близкой к человеческой, до недавнего времени было невозможно из-за достижений в моделях естественного языка. Подробнее об этом здесь.
Обогащение финансовых данных — проблема, которая может показаться простой, но на самом деле ее довольно сложно решить. Если ваша цель — иметь базовое решение, вы можете создать свой собственный подход на основе правил за несколько недель, используя ChatGPT или механизм обогащения, полученный от агрегаторов данных. Однако в таких случаях точность категорий и продавцов будет составлять всего около 60–70%.
Для более сложных приложений, таких как андеррайтинг, кредитный скоринг или обнаружение мошенничества, неправильно классифицированная транзакция может быть разницей между получением убытка или прибылью от решения. Чтобы достичь точности, близкой к человеческому уровню, требуется другая установка, на создание которой своими силами с нуля уйдут годы. Вам также понадобится вычислительная инфраструктура (множество графических процессоров!), выделенная команда инженеров (которой нужно как минимум 2 большие пиццы на обед), команда специалистов по маркировке (5–20 человек), надежная база данных продавцов (не менее десятков миллионов продавцов) и множество разнообразных данных о транзакциях (не менее 100–200 миллионов транзакций). Использование поставщика, специализирующегося на обогащении финансовых данных, почти всегда является наиболее эффективным с точки зрения затрат и времени решением, которое не отвлекает внимание от вашего основного продукта.
В этом посте мы демонстрируем различные части нашего конвейера обогащения транзакций, включая сами модели, человеческую маркировку и контроль качества, базы данных продавцов и бенчмаркинг. Мы будем максимально открытыми в отношении наших процессов и опустим только некоторые ключевые детали, относящиеся к собственности.
Обогащение сделки
Банковская транзакция инициируется отправителем или получателем денег для удовлетворения потребности. Последовательность таких событий раскрывает информацию о потребителе или компании, которой принадлежит учетная запись. Из каждой транзакции мы можем извлечь имя продавца, логотип, веб-сайт, местоположение, MCC, категорию транзакции, шаблоны повторения, идентификацию всех контрагентов и многое другое. Эта информация обеспечивает динамическое андеррайтинг денежных потоков, модели мошенничества, выходящие за рамки простого сбора идентификаторов устройств и метаданных, персонализированные продукты и цены, создание похожих аудиторий, автоматическую подачу налоговых деклараций и многое другое.
Три измерения подхода к обогащению транзакций — это задержка, точность и стоимость. Оптимальный механизм обогащения — это тот, который может обогатить типичную транзакцию с наименьшими затратами, оставаясь при этом в пределах требований к задержке и точности. Эффективная стоимость представляет собой разницу между выгодой, которую она приносит, и стоимостью обогащения. Области, где важна низкая задержка, обычно также требуют высокой точности. И наоборот.
Например, для авторизации платежей и обнаружения мошенничества требования к задержке составляют менее 200 мс. В этом режиме обогащение может выполняться только одной транзакцией за раз, и стоимость каждой транзакции высока. Для регистрации пользователей и финансового планирования задержки составляют несколько минут, а обогащение может выполняться пакетами из тысяч транзакций. В исследованиях рынка и бухгалтерском учете временные рамки еще длиннее. В этом режиме основными показателями являются совокупные рыночные статистические данные, где стоимость транзакции невелика. Тем не менее, объемы также очень высоки, и чувствительность к точности меньше.
В масштабе большая часть затрат приходится на облачные графические процессоры и кэш-память (для информации о продавцах и транзакциях). При более высоких задержках и более низкой точности обогащение может быть выполнено со значительно меньшими затратами. Например, пакеты можно запланировать на более благоприятные временные интервалы, когда доступно оборудование и можно использовать более простые модели, требующие меньше вычислений.
Модели
Как мы писали в предыдущем блоге о сетях данных и общем машинном обучении, самые мощные модели машинного обучения являются также и самыми общими, в отличие от программного обеспечения, где специализированные версии лучше, чем готовые. Это также стало очевидным из недавнего успеха больших языковых моделей. Ниже мы опишем, как мы объединяем людей, правила, модели с небольшим языком и модели с большим языком внутри, чтобы максимизировать производительность нашего API для обогащения транзакций.
Люди
Для особо важных дел, таких как андеррайтинг крупных бизнес-кредитов или бухгалтерский учет, люди традиционно были лучшими. Причиной тому, помимо высокой цены ошибок, является ответственность. Когда человек принимает решение, он может нести за него ответственность. Они могут предоставить обоснование, учиться на любых ошибках и столкнуться с последствиями, если они действуют безответственно или небрежно.
В Ntropy мы используем команду опытных специалистов по этикетированию, чтобы создавать достоверные данные для наших моделей, чтобы тренировать их, и для обеспечения качества нашего производственного API. Наша инженерная команда тоже люди (до сих пор:) и регулярно проводят проверки качества, которые охватывают важные области для улучшения.
Алгоритмы на основе правил
Первая итерация конвейера обогащения транзакций обычно выполняется с помощью правил, таблиц поиска и людей в цикле. Правила быстро и легко создаются, чтобы получить от нуля до посредственной точности. Они дешевы в эксплуатации и объяснимы. Однако только в США каждый год открывается около 5 миллионов предприятий. Для каждого платежного процессора, который использует каждое из этих предприятий, необходимо поддерживать отдельный набор правил. При масштабировании правила также начинают усложняться и взаимодействовать друг с другом, что быстро становится невозможным для поддержки.
В Ntropy мы используем правила в нашей конечной точке персонализации для корректировки выходных данных API в режиме реального времени, нашей командой контроля качества для исправления критических ошибок в производстве, не дожидаясь новой версии модели, и как часть создания набора данных для эффективного перенести в модель фундаментальные финансовые знания.
Небольшие языковые модели (SLM)
Мы использовали стеки SLM (до 1 миллиарда параметров) с первого дня в качестве основного механизма Ntropy API. Мы обнаружили, что SLM являются единственным подходом, который может понимать данные о банковских транзакциях с точностью, близкой к человеческому, при сохранении надежных гарантий задержки и по цене, которая позволяет нам масштабировать до миллиардов транзакций в месяц.
Большие языковые модели (LLM)
Мы также используем LLM внутри компании для дополнения некоторых меток, созданных нашей командой по маркировке. Это позволяет нам увеличивать объем и разнообразие наших обучающих данных по запросу, не увеличивая размер нашей команды по маркировке.
Мы обнаружили, что большие LLM (более 175 миллиардов параметров) со специализированной подсказкой, которая включает конкретные инструкции и оптимальные помеченные примеры, значительно более точны, чем меньшие, точно настроенные и адаптированные LLM с открытым исходным кодом (параметры 7–30B). Однако меньшие LLM могут быть намного быстрее.
Вывод общей крупноязыковой модели полностью определяется входной подсказкой. Подсказка, которую мы используем, состоит из 3 частей:
1) статическая часть, описывающая задачу.
2) переменная часть, которая содержит список релевантных помеченных примеров
3) сам пример ввода
Алгоритм, который создает подсказку, которая обеспечивает максимальную точность и минимизирует задержку модели, может иметь такую же сложность, как и автономная модель обогащения. Например, соответствующие помеченные транзакции в подсказке могут значительно повысить точность. Тем не менее, эти примеры должны быть тщательно отобраны. Чем больше набор предварительно помеченных транзакций, тем лучше могут быть примеры в подсказке, что, в свою очередь, повысит общую точность. Точность модели также сильно коррелирует с точностью этих меток.
Стоимость и точность
Как мы обсуждали выше, стоимость транзакции является ключом к созданию положительной ценности. Любая модель будет регулярно обновляться, поэтому важны и затраты на обучение.
Обучение:
- Чтобы приступить к работе, специалистам по маркировке людей необходимо изучить финансовые условия и общую структуру транзакций. После начального барьера точность со временем быстро улучшается.
- Написать несколько правил, обрабатывающих некоторые ключевые шаблоны и дающих посредственную точность, очень просто. Однако для достижения высокой точности нам нужно экспоненциально больше правил, чтобы покрыть все крайние случаи, и это быстро становится неуправляемым.
- SLM требуют большого количества обучающих данных, чтобы начать давать достойные результаты. Для дальнейшего повышения точности требуется еще больше данных и более качественные метки, а также ряд других приемов, связанных с архитектурой модели и предварительным обучением.
- Как упоминалось выше, в этом посте мы сосредоточимся только на быстрой настройке больших LLM, поскольку мы обнаружили, что это приводит к более высокой точности, чем тонкая настройка или адаптация меньших моделей. С LLM легко начать работу, просто предоставив транзакцию и обязательные поля в приглашении. Чтобы еще больше повысить точность, нам нужны инструменты, аналогичные SLM, большой набор помеченных примеров и настроенная функция подобия, чтобы выбирать релевантные.
Вывод:
- Человеческие ярлыки стоят дорого. Великие человеческие ярлыки стоят еще дороже.
- После развертывания правила требуют очень мало вычислительных ресурсов. Дополнительные правила незначительно увеличивают эту стоимость, поскольку их можно использовать выборочно, в зависимости от входных данных.
- SLM значительно дороже, чем правила, и требуют GPU для достижения приемлемой задержки. Однако эта стоимость не зависит от точности, если размер модели остается прежним.
- LLM — это более крупные модели, чем SLM, и, соответственно, более дорогие в эксплуатации. Со специальной подсказкой для более высокой точности стоимость и задержка могут быть такими же, как у человека.
Маркировка данных и контроль качества
Человеческие ярлыки являются важным компонентом в нашем конвейере обогащения транзакций. Мы используем человеческие метки для обучения всех наших моделей, контроля качества нашего производственного API, отслеживания изменений качества модели с течением времени и поиска ошибок, которые необходимо исправить, в наших производственных данных.
Маркировка данных может быть утомительным процессом, и согласованность имеет первостепенное значение. Ключевыми показателями являются точность, эластичность и стоимость. На рынке существует множество аутсорсинговых вариантов маркировки данных, которые обеспечивают эластичность, аналогичную облачным вычислениям. Почти произвольная маркировка томов в любое время. Классический пример — механический турок Amazon. Однако, учитывая наши высокие требования к безопасности и точности данных, мы нашли непревзойденную собственную команду по маркировке, специально обученную для понимания банковских данных.
Чтобы маркировать данные полностью собственными силами, мы создали обширный набор внешних и внутренних инструментов, специально предназначенных для финансовых данных. Мы также позаимствовали некоторые подходы из мобильных игр, чтобы стимулировать нашу команду по маркировке и улучшить согласованность и качество. С момента своего создания наша собственная команда пометила сотни тысяч транзакций с очень высокой точностью.
Данные продавца
Категоризация сделки требует 3 основных этапа:
- Распознавайте ключевые части описания транзакции, такие как имя продавца, местоположение и т. д.
- Если мерчант присутствует, найдите его сайт, описание, МСС, полное название и т. д.
- На основе всей вышеизложенной информации найдите подходящую категорию для сделки.
Точные данные продавца имеют решающее значение для понимания транзакции. Ежедневно в мире открываются десятки тысяч новых предприятий. Аналогичный номер закрылся. Поэтому эти данные необходимо регулярно обновлять, чтобы отслеживать эти изменения. Подробнее о нашем подходе к этому здесь.
Крайне важно обеспечить максимальную точность, охват и релевантность нашего кэша продавцов. Для этого мы объединяем несколько источников данных, включая проприетарные и общедоступные базы данных продавцов, страницы результатов поисковых систем, данные, полученные от LLM и данные о транзакциях. Мы поддерживаем кэш около 100 миллионов продавцов по всему миру.
БД продавца
Базу мерчантов можно получить либо купив ее у продавца, либо создав собственную, соскребая данные с агрегаторов мерчантов с открытым доступом. Данных о продавце Святого Грааля поблизости нет. Каждая запись в базе данных содержит подмножество веб-сайта, местоположения, кода MCC, имени продавца, контактных данных, материнской компании и т. д. В проприетарных базах данных продавцов на рынке мы обнаружили долю записей, в которых все поля указаны правильно. обычно менее 50%, и только несколько БД выше этого значения. Общий охват обычно намного ниже этого. Мы объединяем несколько таких баз данных с помощью вероятностной привязки сущностей, чтобы увеличить это значение до 90% в географических регионах, которые мы охватываем.
SERP
Страницы результатов поисковой системы — еще один источник данных о продавцах. Обновление индекса поисковых систем может занять от нескольких дней до нескольких недель. Эти данные более актуальны в реальном времени, чем базы данных продавцов, а также отсортированы по популярности. Однако для того, чтобы результаты поисковой системы соответствовали правильному продавцу в транзакции, требуется множество уловок.
LLM
Веса моделей LLM могут действовать как лучший механизм ранжирования, чем традиционные алгоритмы поисковых систем, поскольку мы обходим SEO поисковых систем, которые имеют тенденцию всплывать менее релевантного контента, и можем использовать способность рассуждений моделей, чтобы помочь найти правильная информация. Хотя таким образом можно получить только ту информацию, которая была доступна до прекращения знания модели, большая ее часть по-прежнему актуальна. Поскольку информация о продавце является дискретной и несжимаемой, мы обнаружили, что для этого надежно работают только самые большие модели, размер которых аналогичен количеству токенов в обучающем наборе. Чтобы оптимизировать задержку, мы предварительно извлекаем и кэшируем эту информацию асинхронно.
Данные транзакции
Некоторая информация о продавце может быть получена непосредственно из данных о транзакциях. Например, по сумме и повторяемости транзакций продавцу мы можем увидеть, предлагает ли он услугу подписки и к какой категории продукта она может относиться.
Бенчмаркинг
Измерение того, насколько хорошо работает обогащение транзакций, имеет решающее значение, независимо от того, оцениваете ли вы поставщика или внутреннее решение. Без надлежащих метрик вы можете не видеть, почему продукты, основанные на банковских данных, становятся лучше или хуже. Однако бенчмаркинг API-интерфейсов для обогащения транзакций — это, как известно, сложный и часто неоднозначный процесс.
Неудивительно, что частные показатели точности печально известны тем, что они полностью фальшивые. Популярная цифра, которую следует использовать, находится где-то в диапазоне 95–98%. Из того, что мы видели, это отраслевой стандарт для того, что любой поставщик должен сказать о точности. 100% не верится. Значительно ниже 95% начинает выглядеть плохо. 95–98% в самый раз. Частично цель этого поста — помочь нашим нынешним и будущим клиентам ориентироваться в этом пространстве, а не мутить воду выдуманными цифрами.
Ниже мы сравним точность категорий транзакций, возвращаемых нашим API, по сравнению с обученным специалистом по маркировке и GPT-4. Категория транзакции характеризует ее цель перевода денежных средств по поручению. потребности владельца счета. Присвоение категории транзакции сложно даже человеку и требует финансовых знаний, информации о контексте транзакции и общего понимания мира. Категоризация является основой для проверки доходов банком, оценки рисков на основе движения денежных средств, управления финансами и других приложений.
Обратите внимание, что нет такой вещи, как 100% объективная метрика. Например, точность категоризации зависит от конкретных транзакций в тестовом наборе, иерархии категорий (обычно, чем более грубая иерархия, тем выше точность), истинности основания (например, иногда может быть несколько меток, которые действительны для одна транзакция, даже если она помечена человеком, не является на 100% точной), версия модели (на следующей неделе может быть выпущена лучшая модель для этого набора транзакций), метрика (f1, точность, точность, отзыв и т. д.). .), владелец счета (в некоторых случаях влияет на метку транзакции), количество утечек из поезда в тестовый набор.
Набор данных доступен в репозитории бенчмарков. Все имена, номера, местоположения и суммы были анонимизированы для сохранения конфиденциальности. Этот эталон намеренно сделан сложным, поскольку состоит в основном из торговцев с длинными хвостами и типов переводов. Вот цифры:
- * базовая подсказка, нулевой выстрел
- **расширенная подсказка с соответствующими помеченными примерами и дополнительными инструкциями.
- *** в зависимости от кэширования
- ^ в зависимости от конфигурации
- ^^ в зависимости от типа транзакции
- ^^^ это, безусловно, наилучший случай, если предположить, что количество транзакций в размере пакета достаточно велико, так что инструкционная часть подсказки амортизируется.
- ” это средняя точность нашей собственной команды по маркировке, специально обученной для маркировки банковских транзакций. Основная правда для каждого примера в тестовом наборе была проверена трижды, чтобы быть на 100% верной.
“ — это средняя точность нашей собственной команды по маркировке, специально обученной для маркировки банковских транзакций. Основная правда для каждого примера в тестовом наборе была проверена трижды, чтобы быть на 100% верной.
Заключение
В этом посте мы обсудили ключевые компоненты нашего стека обогащения финансовых данных. Модели, маркировка данных и контроль качества, данные о продавцах и бенчмаркинг. Люди могут мыслить нестандартно, но это медленно и дорого. Правила дешевы в небольшом масштабе, но они невозможны вне прототипирования. SLM масштабируемы и точны, но их обучение и повторение могут быть дорогими. API-интерфейсы LLM могут помочь вам быстро приступить к работе без особых предварительных знаний, но их нельзя использовать в режиме реального времени, и для их правильной работы требуются большие объемы данных, человеческие метки и итерации. В Ntropy мы объединяем все четыре, чтобы обеспечить максимальную точность при минимальной задержке и стоимости.
Как и в нашей корпоративной культуре, мы максимально открыты с нашими методами, показателями и процессами. Мы считаем, что это ключ к дальнейшему расширению границ того, что можно делать с финансовыми данными. Мы надеемся, что остальная часть отрасли последует этому примеру. Свяжитесь с нами, чтобы узнать больше или приступить к работе через несколько минут через наш портал самообслуживания.