Передовая история от команды разработчиков @CB Insights

Ежемесячно мы собираем 2 миллиона документов в CB Insights (CBI), чтобы расширить возможности лиц, принимающих решения в области технологий, и исследователей. Как специалисты по машинному обучению и НЛП, мы слишком хорошо знаем святой Грааль, стоящий за этим утверждением: данные сами по себе не превращаются в идеи; самая первая проблема, с которой мы часто сталкиваемся, заключается в том, как извлечь соответствующую информацию с масштабом, скоростью и точностью.

Когда мы начинали в CBI, НЛП было еще доисторическим, когда «мешок слов» ходил по земле. Перенесемся на десять лет вперед: рождение «механизма внимания» вызвало взрыв НЛП и сильный попутный ветер для больших и малых команд.

В этой серии из трех частей мы расскажем, как мы модернизировали наш стек НЛП в CBI Delphi (да, это наша команда по исследованиям и разработкам), о проблемах, с которыми мы боролись, и об извлеченных уроках. Часть Iдает обзор стека НЛП CBI после временной шкалы «революции внимания» — как мы начали экспериментировать с глубоким обучением в НЛП и где сегодня находится конвейер. Часть II рассказывает о первых шагах и делится уроками, полученными при использовании моделей преобразования для различных задач и языков, будь то точная настройка для финансового NER или нулевой выстрел для извлечения отзывов клиентов. Часть IIIраскрывается над куполом и обсуждает, куда движется область DS и что это значит для коллег-практикующих.

Если вы найдете их актуальными или интересными, я буду рад услышать от вас.

Хорошо, поехали.

Часть I. Ветер крепчает

Язык — это ворота к подавляющему большинству накопленных человеческих знаний. Это то, что область обработки естественного языка (NLP) стремится взломать: дать машинам возможность понимать и использовать человеческий язык.

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

От доисторического до бронзового века

За последнее десятилетие НЛП переместилось из доисторических времен в бронзовый век в том, как оно представляет язык.

Некоторые древние изобретения никогда не выходят из моды. В некотором смысле набор слов и TF-IDF подобны бумаге: они остаются опорой для современных приложений НЛП, таких как поисковые системы. В 2013 году Word2Vec знаменует собой начало каменного века, и люди все еще поражены king — man + women = queen открытием векторного пространства. Бронзовый век дебютировал с нейронными языковыми моделями (2017 г.) и процветал благодаря «механизму внимания». достичь беспрецедентной универсальности. Супертрансформеры теперь вездесущи.

Три столпа

Процветание бронзового века стоит на трех столпах: механизме «внимания», обучении с самоконтролем и масштабировании по степенному закону.

По своей сути 'внимание' — это более эффективный способ кодирования информации, который устраняет критические проблемы, с которыми сталкиваются последовательные модели: медлительность, зависимость на большом расстоянии, взрывные/исчезающие градиенты и т. д. Он позволяет встраивать контекстно-зависимые модели. которые глубоко двунаправлены и могут изучаться параллельно.

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

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

Начиная с BERT, модели суперязыков снижались с беспрецедентной скоростью, начиная с диапазона параметров в 100 миллионов и быстро дорастая до триллионного уровня. Мы наблюдаем сдвиг парадигмы от «обучения с учителем» к «предварительному обучению, точной настройке», а затем к «предварительному обучению, подсказке, прогнозированию, за последние пять лет. Прогресс в области обобщаемости поразителен, а ранние тенденции в эффективности и объяснимости впечатляют.

Модернизация стека НЛП @CBI

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

НЛП-конвейер CBI в его нынешнем виде отражает эту краткую историю эволюции НЛП, как скалы каньона. Конвейер начинается с приема необработанных текстовых данных, проходит через цепочку стандартизированной обработки и разветвляется на различные приложения. Помимо тяжелой работы CoreNLP, стандартизированный конвейер включает в себя знакомый набор приемов, таких как стоп-слова, регулярное выражение и сходство строк. Он жил и дышал, как крокодил со своей доисторической мощью. На прикладном уровне НЛП у нас сейчас работает более 20 моделей преобразователей, от классификации до пользовательских NER и QA.

Ветер начал подниматься в ноябре 2018 года, когда Google открыл исходный код BERT на GitHub. Никогда не прикасаясь к предварительно обученной языковой модели и обладая лишь поверхностными знаниями об архитектуре трансформатора, я решил провести эксперимент весной 2019 года в день взлома компании. Задача состоит в том, чтобы предсказать новостные настроения для компаний на основе тем, начиная от «партнерство» и «запуск продукта» (примеры положительных результатов) до «судебного иска» и «увольнения» (примеры отрицательных ответов). Учебный набор имеет 3447 точек данных. Я только что потратил на это месяц, чтобы получить приличное улучшение точности припоминания. Я думал, что 3k данных могут быть шуткой для модели со сотней миллионов параметров, но попробовать не помешает. Результат меня шокировал: эта предварительно обученная нейронная языковая модель научилась на моем крошечном наборе из 2000 и хорошо обобщила. Я получил увеличение точности и отзыва на 10 ppt за пару часов.

Это и пробудило наш интерес, и сделало его реальным. По сравнению с немногими крупными и богатыми, многие команды специалистов по данным «бедны» в том смысле, что они неустанно сосредоточены на достижении практических результатов в условиях ограниченности ресурсов. Аннотации данных часто являются первым препятствием — не каждый проект может позволить себе роскошь большого количества обучающих данных. Кроме того, существуют затраты на производство и техническое обслуживание, не говоря уже о коллективной кривой обучения, которую команде придется преодолевать. Сдвиг парадигмы pretrain-finetune, внесенный BERT, меняет правила игры. Мечта бедняка о глубоком обучении сбылась.

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

Советы по внедрению новых технологий

Внедрение новой технологии в организации никогда не бывает легким. Размышляя о нашем собственном путешествии по модернизации стека НЛП в CBI, мы можем поделиться парой выводов.

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

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

  • В большинстве мест, где я работал, люди не тратят достаточно времени на тестовые системы/тесты производительности, потому что они менее интересны. Развернуть и забыть — обычная практика. Тем не менее, инструменты и эталонные тесты имеют решающее значение для постоянного улучшения продуктов машинного обучения, и их отсутствие часто является первым препятствием для обновления существующего. В программной инженерии поддерживаемая кодовая база начинается с хорошего покрытия тестами. То же самое должно стать стандартом в машинном обучении.
  • Новый сотрудник должен иметь возможность воспроизвести существующий тест производительности, заменить любой компонент/функцию в конвейере машинного обучения и сразу же узнать, как это влияет на производительность. Итак, если ваши данные о поездах/оценках/тестах спрятаны, показатели успеха (как технические, так и продуктовые) плохо задокументированы, нигде нет критериев для создания тестовой системы, пришло время изменить это.

3. Учиться быстро и медленно

  • Экспериментируйте быстро. Возвращаясь к истории BERT о хакерском дне, не бойтесь проводить быстрые/грязные эксперименты над чем-то, что вы не совсем понимаете; даже производственное развертывание может быть оправдано, если все флажки безопасности проверены.
  • Однако для того, чтобы любое новое знание закрепилось и процветало, есть кривая обучения, которую команда должна пройти коллективно. Bootstrap с быстрыми экспериментами, но понимание основ и распространение этих знаний имеет большое значение.

4. Поэтапный переход

  • Даже если мы уверены в новом решении, почти всегда предпочтительнее выпустить программный релиз и провести фактический анализ воздействия, чем просто вырезать существующий рабочий процесс.
  • Одним из крупных конвейеров CBI, связанных с трансформаторами, является компания, финансирующая извлечение информации из новостей. Это хлеб с маслом для приема данных, который требует высокой точности и отзыва. У нас были параллельные системы, работающие для всех экспериментов с трансформаторами в этом пайплайне: люди-рецензенты контролировали, хотят ли они включить новый классификатор. Мы анализировали данные о производительности в течение нескольких месяцев, прежде чем списать старый рабочий процесс.

— — —

Это все на данный момент. Надеюсь, вы наткнулись здесь на что-то интересное.

Ждите вторую часть :)