В день, когда Сэм Альтман в темной одежде на темном фоне рассказывал миру о запуске GPT-4-Turbo, в те же самые минуты на Kaggle завершалось небольшое, но любопытное соревнование “Predict the LLM”. Цель – узнать автора по тексту. Авторами текстов выступили 7 анонимных больших языковых моделей…  


На Kaggle ходят за знаниями, новыми идеями, иногда за победами, но все чаще вместо казино. Увлекающихся датасаентистов к Kaggle лучше не подпускать. 10 дней назад, листая список соревнований с мыслью «чего бы порешать, о чем бы узнать сегодня» наткнулся на Community соревнование от H2O.  Описание гласило: 

“Delve deep into the world of Language Learning Models (LLMs)! The objective of this competition is to detect which out of 7 possible LLM models produced a particular output. With each model having its unique subtleties and quirks, can you identify which one generated the response?

The challenge of pinpointing the origin LLM of a given output is not only intriguing but is also an area of spirited research. Understanding the nuances between different models allows for advancements in model differentiation, quality assessment, and potential applications in multiple sectors. Dive in, explore the intricacies, and contribute to this emerging area of study!” 

О класс! Что-то такое и хотелось поделать. 

Дальше – больше. Организаторы соревнования — это парни из H2O, а парни из H2O – в общем-то легенды в мире Kaggle и соревновательного Data Science. 

Дальше - снова больше. В качестве скора, который надо пробить на лидерборде - бейзлайн @psi, а Philipp Singer #1 в рейтинге Kaggle

Ну и личная вишенка на торте то, что всех 3-х людей указанных в Citation я как-то немного знаю. Rob Mulla смотрю на YouTube, интервью c Дмтирием Ларко читал недавно в классной книге по DS, а c Габором пересекался на Kaggle митапах в Будапеште. В общем погнали решать. 

На входе имеем размеченный датасет из 3 колонок. Вопрос – Ответ – Лейбл. Каждой из 7 моделей представленных в трейне задали 568 одинаковых вопросов на разные темы от кино и музыки до математики и медицины. Fun fact – вопросы тоже писала LLM. Метрика Log Loss. 50% в публичном лидерборде, 50% в закрытой части. Никаких плясок с Code Competition, все по-честному, шейкапа не предвидится (??). 

Будучи новичком в теме NLP и адептом классического ML, начал решать тоже по классике. Первое предположение, что есть разница в ответах LLM, которая позволит легко классифицировать авторство. И эта разница не в смыслах текстов, а в стилистике и каких-то простых семантико-орфографических характеристиках. Делаю разбор текста на 130+ предикторов с помощью фреймворка spaCy.

Всю эту дискотеку быстро прогнать через бустинги или AutoML и сделать первый сабмит. Провал. Скор ужасен. Второй с конца. До Сингера далеко. 

Нас теперь двое, Chuk & Gek, делаем команду. Один в Будапеште, другой в Москве. Набиваем опыт на Kaggle. Оба давно в поисках работы в DS, но бодрые джуны никому не нужны, все ищут светящихся единорогов на сеньорские позиции.

Поехали дальше. Можно убрать лишние предикторы, настроить параметры моделей. Попробовать другой фреймворк, сделать какой-нибудь ансамбль. 

Пробуем все. Скор улучшается, но психологическая отметка 1, которую хочется пробить все еще далеко. Мы болтаемся в диапазоне 1.4 – 1.8. У Сингера 0.885

Читаем форум. Пишут про кластеризацию, эмбеддинги, Бертовые модели. Наша следующая архитектура решения построена на извлечении эмбеддингов через разные модели и операциями с ними. Кормим все это снова в бустинги. Скор совсем не много улучшается. Однако, приходит понимание, что на этой архитектуре мы не уедем ниже 1. 

Пора расчехлять недельную Kaggle квоту в 30 часов GPU и строить решение на малоосвоенных нейронных сетях. Файн-тюнинг, новые головы, бесконечные параметры. Голова идет кругом от количества информации, которую надо знать, чтобы принимать решения. Сетей много, считать долго, ошибаться просто. Время идет. До конца 14-дневного соревнования осталось несколько дней. Попробуем упростить задачу и сделать бейзлайн не руками, а с использованием опенсорсного H2O LLM Studio

По наводке с форума соревнования выбран следующий подход: взять топовую из не проприетарных LLM модель с HuggingFace. Дообучить ее на наших данных и через Softmax получить искомые вероятности. Количество сна сокращается катастрофически, но мы награждены… Сингер на 17 месте, мы на 18-м. Ура! Единица пробита, мы за 40+ сабмишенов стоим рядом c легендой. 

Казино включилось. Хотим выше. Один из команды грызет документацию Transformers и смотрит топовые решения с прошлых NLP соревнований (кстати, одно из любимых это когда yorko Юрий Кашницкий учил сетки находить сарказм в текстах), другой же тем временем с нулевым опытом пытается развернуть LLM Studio на мощном арендованном сервере. Прокинуть тунель, поставить драйверы для GPU, какие-то sudo, make ошибки из Unix… Не успеваем.

Последняя надежда за час до финала, просто усредняем свои предыдущие предикты и вот мы на 10-м месте в паблике с 0.774 за 50 сабмитов, Сингер на 25м за 1. 

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


Результаты еще не объявлены. Хотя уже появляются решения от лидеров. LLM лучше всего предсказывают … сами LLM  :)

Файнтюнинг и кастомизация больших моделей – это та тема, которая переживает мощный буст. Недаром начал статью с человека в темном. Все эти парни с тысячами идей и миллионами инвесторских денег, миллиардами нейронов в их головах и построенных ими сетях, они делают что-то классное. И можно быть частью этого фантастического сообщества Data Science.  Хотя бы и на Kaggle.

Команда:

Chuk -> https://www.linkedin.com/in/samvelkoch/
&
Gek -> https://www.linkedin.com/in/aleksey-schukin/

Польза:

https://www.kaggle.com/competitions/h2oai-predict-the-llm/overview

https://www.kaggle.com/competitions/h2oai-predict-the-llm/leaderboard

https://www.kaggle.com/code/tanulsingh077/deep-learning-for-nlp-zero-to-transformers-bert

https://www.kaggle.com/AI-Report-2023

https://huggingface.co/learn/nlp-course/chapter1/1

https://www.deeplearning.ai/short-courses/finetuning-large-language-models/

https://www.coursera.org/specializations/natural-language-processing

https://docs.cohere.com/docs/llmu

https://www.coursera.org/learn/generative-ai-with-llms

https://web.stanford.edu/class/cs224u/index.html

https://github.com/h2oai/h2o-llmstudio

https://auto.gluon.ai/stable/index.html

https://www.youtube.com/@robmulla

https://www.youtube.com/@H2Oai

https://www.philippsinger.info

https://www.amazon.com/Data-Analysis-Machine-Learning-Kaggle-ebook/dp/B09F3STL34

Комментарии (0)