Дэвид Розенберг, возглавляющий отдел стратегии машинного обучения в офисе CTO Bloomberg, рассказывает о создании BloombergGPT — специализированной языковой модели на 50 миллиардов параметров. В интервью обсуждаются технические вызовы обучения LLM с нуля, особенности обработки финансовых данных и стратегический выбор между использованием готовых решений и собственной разработкой.
📈 Стратегическое решение и истоки проекта 0:00
Решение об инвестициях в собственную большую языковую модель (LLM) было принято в офисе CTO Bloomberg в конце 2020 года, вскоре после выхода GPT-3 . По словам Дэвида Розенберга, в тот момент не было до конца ясно, какими будут конкретные сценарии использования, но потенциал технологии казался огромным.
Основные предпосылки проекта:
- Осознанный риск: хотя точная стоимость обучения GPT-3 не была известна, было очевидно, что это потребует колоссальных ресурсов .
- Специфика данных: Bloomberg обладает огромными массивами проприетарной финансовой информации, накопленной десятилетиями.
- Контроль и безопасность: для компании критически важно обрабатывать данные внутри собственной инфраструктуры, не отправляя их сторонним провайдерам через API .
🏗️ Архитектура и уникальный набор данных FinPile 4:01
BloombergGPT представляет собой модель с 50 миллиардами параметров. В отличие от универсальных моделей, её обучающая выборка была разделена примерно поровну (50/50) между общедоступными данными и специализированным финансовым корпусом .
Состав обучающих данных:
- Общий корпус: стандартные наборы данных, используемые в моделях типа OPT и Bloom.
- FinPile: массив данных Bloomberg, собиравшийся с 2007 года. Он включает в себя финансовые новости, отчетность компаний (filings), пресс-релизы и транскрипты звонков руководства с инвесторами .
Технические особенности:
- Токенизация чисел: стандартные токенизаторы (например, от GPT-2) разбивают числа случайным образом (например, «5234» может превратиться в «523» и «4»). По словам Розенберга, это усложняет математическую логику модели . В BloombergGPT, по аналогии с моделью PaLM, каждое число разбивается на отдельные цифры, чтобы модель могла лучше понимать разрядность .
- Словарь (Vocabulary): размер словаря составил 150 000 токенов, что значительно больше типичных для английских моделей 50 000 токенов .
- Архитектура: за основу была взята модель Bloom от сообщества Big Science с небольшими изменениями .
🛠️ «Приключение» длиною в три версии: процесс обучения 7:45
Процесс обучения модели не был линейным и потребовал нескольких попыток. Розенберг называет этот этап «настоящим приключением».
- Версия 0 (V0): Команда применила «обучение по расписанию» (curriculum learning), подавая данные FinPile последовательно во времени (от старых к новым). Через 8–10 дней обучение остановилось: графики производительности на валидационном наборе замерли. По мнению гостя, такой подход оказался слишком рискованным шагом в неизвестность .
- Версия 1 (V1): Все данные были перемешаны случайным образом. Обучение шло успешно 8 дней, после чего начались резкие скачки нормы градиента (gradient spikes). Веса в слое Layer Norm в самом начале сети начали аномально расти. Команда пыталась откатываться к чекпоинтам и снижать скорость обучения (learning rate), но это не дало стабильного результата .
- Версия 2 (V2): Финальная рабочая версия. Команда исправила баг в оптимизаторе (ошибка в применении weight decay к весам Layer Norm), добавила дополнительный слой Layer Norm в самом начале и исправила проблемы со смешанной точностью (mixed precision) .
Модель обучалась стабильно в течение 42 дней на инфраструктуре AWS SageMaker . Использовалось 512 графических процессоров NVIDIA A100 (40 ГБ). Суммарно было затрачено около 1,3 миллиона GPU-часов . Обучение было остановлено на отметке 75% от запланированного объема данных, так как бюджет был исчерпан, а достигнутая производительность уже превзошла ожидания .
📊 Тестирование и бенчмарки 17:37
BloombergGPT сравнивали с открытыми моделями аналогичного размера (OPT-66B, Bloom, GPT-NeoX), а также сопоставляли с опубликованными результатами GPT-3 и PaLM .
- Общие задачи: Модель показала результаты на уровне конкурентов в тестах типа MMLU и Big Bench Hard .
- Финансовые задачи: Здесь BloombergGPT значительно опередила аналоги .
- FinQA: В тесте на понимание финансовых отчетов и таблиц с применением численной логики разрыв между BloombergGPT и другими моделями был наиболее впечатляющим .
- Внутренние задачи: Модель успешно справилась с анализом настроений (sentiment analysis), распознаванием именованных сущностей (NER) и генерацией заголовок новостей .
Особый интерес представляет способность модели генерировать код на BQL (Bloomberg Query Language) — сложном внутреннем языке запросов. Несмотря на то, что модель специально не обучалась на BQL, она смогла освоить его в режиме few-shot (на 10 примерах) .
🧪 Будущее: обучение с нуля или дообучение? 24:48
Один из главных вопросов дискуссии — стоит ли компаниям обучать свои модели с нуля. Дэвид Розенберг отмечает, что когда они начинали, доступных моделей с открытыми весами для коммерческого использования практически не было .
Основные тезисы Розенберга о выборе стратегии:
- Адаптация домена: Если у вас есть 350 миллиардов токенов специализированных данных (как в FinPile), граница между «дообучением» (fine-tuning) и полноценным обучением размывается. Это превращается в адаптацию домена, где наука еще не дала однозначного ответа, какой метод эффективнее .
- Малые модели: Розенберг проявляет интерес к эффективным малым моделям (типа Llama), которые можно запускать на одном GPU .
- Инструкции: Сейчас команда занимается дообучением на инструкциях (instruction tuning), используя огромные внутренние массивы размеченных данных Bloomberg .
⚠️ Риски, этика и галлюцинации 40:41
На текущий момент BloombergGPT используется только в исследовательских целях и не внедрена в клиентские продукты . По словам Розенберга, компания проявляет крайнюю осторожность из-за нерешенной проблемы галлюцинаций .
Ключевые вызовы:
- Контроль качества: если ИИ работает слишком хорошо, люди перестают проверять его ответы. Розенберг задается вопросом: «Как поддерживать вовлеченность и внимательность человека, если нейросеть ошибается редко, но критично?» .
- Этика: компания внимательно следит за литературой по этике ИИ, хотя фокусировка на финансовых темах и коде несколько снижает риск столкновения с наиболее острыми социальными проблемами .
Розенберг заключает, что проект дал команде необходимую уверенность в своих силах. Следующий этап — более дисциплинированные эксперименты с токенизацией, архитектурой и качеством данных на меньших масштабах перед повторным рывком вверх .