8 вопросов специалисту про карьеру в ML: все про стек, собесы, рост в профессии и как туда свитчнуться
Запускаем в Adviser «Карьерную Википедию», где будем собирать гайды от состоявшихся специалистов. Первый выпуск, конечно же, про Machine Learning — самую главную сферу IT в 2024 году.
Сегодня наш собеседник — Анна, Lead Machine Learning Engineer. Выбрали для разговора с ней 8 самых важных вопросов о карьере в ML: как сделать карьерный свитч в желанную сферу, что для этого нужно прокачать, как проходить собесы, что читать, учить, смотреть и как дальше развиваться в профессии.
— Расскажи про то, как ты пришла в IT
Еще со школы моим любимым предметом была математика. И хотя были разные мысли по поводу будущей карьеры, было решено пойти учиться на математика-программиста. Математика, потому что нравилась, и получалась, а программирование, потому что уже тогда было понятно, что в Беларуси (и не только) с этой профессией все неплохо.
Я училась на ФПМИ БГУ, в середине обучения нужно было выбрать дополнительную специализацию. Я выбрала кафедру математического моделирования и анализа данных просто из-за программы по телевизору, где показывали ученых из Швеции, которые внедряли на улицах городов умные системы светофоров и таким образом оптимизировали дорожное движение. В программе прямо звучало, что все это делается при помощи методов математического моделирования, я очень впечатлилась и решила, что мне непременно нужно так же.
Впоследствии оказалось, что именно эта кафедра в программу обучения включает те предметы, которые являются базой для современного ML — математическая статистика, статистический анализ данных, временные ряды.
Начало моей карьеры — это автоматическое тестирование. Я устроилась программистом на позицию Junior сразу после окончания второго курса и проработала примерно год на полставки. Писала тесты на C и запускала их на устройствах под Linux. За этот год поняла, что в офис всегда успею, а вот в науку может и нет, уволилась и несколько лет работала в университетской лаборатории по изучению временных рядов.
Всерьез думала начать заниматься исследованиями в этой области, даже пошла в магистратуру с прицелом на аспирантуру. Но уже ближе к окончанию магистратуры поняла, что мне очень хочется видеть, как можно решить при помощи математических методов настоящие, а не теоретические задачи. Так я поняла, что мне нужен бизнес — и стала искать работу.
С учетом моей специализации, смотрела что-то вроде Data Analyst. Не уверена, что тогда — в 2015–2016 году — профессия Data Scientist, а тем более Machine Learning Engineer уже существовала. Точно также, не уверена, что в те годы много кто работал с нейронными сетями в принципе. Мне кажется, это был просто один из алгоритмов, который, к тому же, было и сложнее тренировать, чем статистические вещи.
Начала свою карьеру как Junior (позже Middle) Data Analyst, через несколько лет в той же компании просто поменяла титул на Data Scientist — сначала Midde, потом Senior. Сейчас работаю как Lead Machine Learning Engineer, хотя сама думаю, что все эти красивые названия описывают происходящее во время каждодневной работы только отчасти. Был период, когда меня называли R&D Specialist. В принципе, я готова называться любым образом, лишь бы проекты были интересные.
— Из какой сферы ты пришла в ML? Что это был за путь, что пришлось подтянуть или доучить?
Формально я не меняла сферу и, напротив, мой путь движения был очень логичным. Начала со статистики, каких-то статистических алгоритмов машинного обучения, типа линейной регрессии или кластеризации. Потом довольно органично в мою жизнь вошли нейронные сети, глубокое обучение — а с ними Big Data, GPU, MLOps. Сейчас, наверное, неизбежно, погружаюсь в NLP. С определенного момента становится уже не так важно, какую именно специализацию выбираешь, потому что основы вообще-то общие.
Но учиться приходится на ежедневной основе. Был период в карьере, когда я формально не училась — не проходила какие-то курсы несколько лет, — но все равно требовалось постоянно читать статьи. В Machine Learning уже есть база, которую нужно обязательно знать всем: например, выучить статистику и Calculus, пройти базовые специализации по выбору от Deep Learning AI.
Чем глубже погружаешься в какую-то область, тем ближе к краю исследований подбираешься. И в итоге приходишь к тому, что многие ответы на твои вопросы содержатся только в статьях, или, что еще веселее — в чатиках и на форумах.
Я никогда не училась Computer Vision & Deep Learning систематически, потому что стала работать в сфере в 2018 году — сразу же с очень практической задачи. И так и прыгала по разным задачам и моделям. Когда в 2023 году меняла работу и решила поднять свои навыки, оказалось, что одной из лучших инвестиций в знания было просто пойти еще раз на курс по Computer Vision.
Прослушала лекции обо всех алгоритмах, которые уже знаю и применяю, по порядку — и в голове все выстроилось в гораздо более полную и четкую картинку. Так я решила, что даже имея большой опыт в чем-то, не нужно стесняться учиться снова и снова. В процессе открываются новые перспективы уже известного знания. Ну, а еще важнее — все это применять на практике.
— Какие навыки или знания, полученные в других областях IT, пригодились тебе в ML?
Хороший вопрос, ведь я почти не работала в других областях! Если говорить о знаниях, полученных за время работы в автоматическом тестировании, то супер-важным является знание и работа с bash и командной строкой.
Также Linux как операционная система. Сейчас куча графических пакетов для ML и многие вещи пишутся в Jupyter Notebooks или скриптах. Но очень важно мочь настраивать сервера, общаться с DevOps или знать низкоуровневые команды, которые помогут решить легко формулируемую задачу быстрее, чем если под это придется писать скрипты на высокоуровневых языках.
Из университетской лаборатории я принесла осознание того, что вообще-то модели могут и не работать. В науке обычно все идет не так, как хочется, а потом после 10 неудачных попыток случается одна, которая продвигает исследования вперед. В ML ситуация похожая: чем более развитая технология — тем проще. Например, современные модели уже можно тренировать без опасения, что они «не сойдутся» благодаря многим приемам, заложенным во все современные архитектуры и фреймворки по умолчанию. Хотя на заре нейронных сетей большим успехом было то, что модель в принципе начала сходиться.
При переходе из Data Analysis в Data Science с собой берется вообще весь багаж знаний. Меняются масштабы, размеры моделей и количество данных, необходимых для их обучения. Но все базовые вещи: про репрезентативность выборки, выбор параметров обучения, необходимость измерения и сравнения результатов — все это нужно.
— Какие навыки важно прокачивать сегодня тем, кто хочет прийти в ML с опытом работы в других областях ИТ? Без чего точно не обойтись?
Желающим сменить сферу, как мне кажется, важно понимать математику. В теории, без математики можно быть программистом в некоторых из областей. Но в ML требуется понимать все те основы, которые, например, дают в вузе: это Calculus, Linear Algebra + матричные вычисления, Probability & Statistics. К счастью, нет необходимости идти в университет снова, чтобы это выучить — сейчас есть много качественных и чаще всего бесплатных курсов и YouTube.
Я бы сказала, что необходимо потратить на это время, но не стоит засиживаться и год учить математику, достаточно посвятить 2-3 месяца. После заложенной базы стоит хотя бы первоначально сосредоточиться на одной из областей ML и развиваться уже непосредственно в ней. Позже можно будет переключиться.
Сейчас принципиально выбор, наверное, стоит между Compute Vision, Natural Language Processing, Audio & Speech. Само собой, все еще важными остаются анализ Tabular Data. И наверняка есть много других областей, с которыми я не работала, и поэтому их тут не упомянула.
В общем, погружение в область — это снова прохождение какого-то базового большого курса с основами. И потом я бы рекомендовала уже искать стажировку/internship, умело управляя вашими сильными сторонами из предыдущего опыта и новоприобретенными знаниями.
В сфере ML очень большое значение имеют разные конкурсы, соревнования и хакатоны. И я думаю, что это тоже может быть отличным вкатыванием в сферу.
— Какие инструменты и библиотеки для машинного обучения ты используешь в своей работе чаще всего?
В базе, конечно, Python и bash. Так как я все же чаще работаю с Computer Vision, то PyTorch (еще Tensorflow, но в последнее время очень редко с ним сталкиваюсь) — тут есть torchvision и torchaudio, для задач CV и Audio Processing. Для задач NLP это HuggingFace с их библиотекой transformers и огромным количеством моделей и датасетов.
База, конечно, это NumPy, Pandas и OpenCV. А еще некоторые модели — теперь уже отдельные самодостаточные инструменты. Например, такие как Whisper или Stable Diffusion.
Подавляющее большинство пакетов, с которыми я работаю — это собранные с GitHub удачные реализации нужных мне технологий. Вообще, умение работать с open sources — еще один необходимый навык. В открытом доступе очень много крутых проектов, и у меня есть ощущение, что все нынешние AI-based бизнесы просто нашли классное применение тому, что другие люди создали и открыли для использования.
— Как готовиться к собеседованиям? На что сделать упор, чтобы успешно пройти интервью?
Самая главная вещь в собеседованиях по Data Science — не притворяться тем, кем не являешься. Нет людей, которые могут знать все технологии. И нет ничего стыдного в том, чтобы в этом признаваться. Зато за те технологии, которые знаешь, придется «пояснить». Можно написать в своем CV все то, что косвенно встречалось в проекте, который случайно скачал с GitHub и просто запустил, но если не вникал в суть — это не даст большой ценности. За каждым успешным решением стоит понимание: а что же тут происходило.
Во все большие компании собеседование обязательно будет включать часть, где придется писать на Python, поэтому культура кода и немного практики в быстром решении небольших задачек — хорошая идея. Я сейчас говорю не только про LeetCode, я сама, например, люблю дать на собеседовании готовые куски кода, которые нужно незначительно модифицировать. По тому, пишет ли человек отдельную функцию для подсчета среднего значения, или помнит, что можно вызвать np.mean (), сразу можно увидеть многое.
Поэтому мое подобие рецепта успеха (а я не могу сказать, что прошла 100% собеседований, на которые попадала, тем не менее, проходила успешно собеседования несколько раз за последний год) выглядит так:
быть готовым высокоуровнево рассказать о своих прошлых успехах (в том числе учебных или больше связанных с доведением продукта до прода, чем с тренировкой модели),
быть готовым написать код, похожий на тот, что вы писали в рабочих или учебных проектах,
не забывать повторять все те математические основы, про которые я уже упоминала, потому что на их обсуждении обычно и строится среднее собеседование.
И да, не стесняйтесь читать форумы, типа GlassDoor, где пишут о том, каков процесс в конкретных компаниях. И не забывайте искать Engineering-блоги ML-отделов вашего места мечты — в них могут упоминаться технологии, которые вы сможете выучить конкретно под собеседование.
— Как ты видишь будущее профессии специалиста по машинному обучению? Какие навыки и знания будут востребованы через 5 лет?
О, сейчас ответ на этот вопрос не даст никто! Думаю, все, кто давал прогнозы летом-осенью 2022 года (до выхода ChatGPT) — все свои прогнозы уже признали недостоверными и пересмотрели. Я тоже не возьмусь загадывать сильно наперед. Возможно, через 5 лет за всех нас код уже будут писать LLM, а мы все станем одной большой службой поддержки.
Можно сказать наверняка, что люди, умеющие интерпретировать происходящее внутри черных ящиков моделей, все еще будут востребованы. Не уверена, станет ли специализация внутри ML более критичной вещью, или наоборот, специалисты станут мультимодальными и должны будут уметь и решать задачи со зрением, и с текстами и с аудио. В любом случае, для нас как для людей, важен принцип start small, but continue consistently — выбрать цель и двигаться к ней постепенно.
Думаю, что soft skills в итоге перевесят hard skills в такой сфере, как Machine Learning или Artificial Intelligence. Но я открыта к обсуждению этого вопроса с заинтересованными.
— Твои рекомендации тем, кто хочет глубже погрузиться в тему ML: что смотреть, слушать, читать?
Сейчас много качественной информации на тему ML. Определенно, стоит уделить внимание классикам — Andrew Ng и Andrej Karpathy, оба активно занимаются просветительской деятельностью в сфере и не собираются останавливаться.
Для тех, кто любит email-рассылки, есть AI Edge, The Batch от DeepLearning.ai, The Algorithm от MIT Technology Review, The Gradient. Хотя мне бывает тяжело их читать.
А вот лента в LinkedIn для меня работает. После определенного периода настройки и подписки на инфлюэнсеров (Julien Chaumond, CNO HuggingFace, Ron Kohavi (рассказывает про A/B тесты), Navdeep Singh, автор NeetCode). Вероятно, у меня хороший нетворк там, но лента обычно радует меня интересными статьями и выходящими новыми технологиями.
Второй важный источник информации для меня: Телеграмм-каналы. Существует довольно большое количество авторских и сборных каналов по AI/ML и нишевым технологиям. То ли они пишут интереснее, то ли просто понятнее, потому что большинство из них на русском, но читать мне гораздо проще, чем рассылки.
Книг я читаю ограниченное количество, курсы прохожу тогда, когда они неоднократно попадает ко мне в закладки, а Youtube обычно сразу добавляю в «Смотреть позже» и потом просто выбираю случайно, а дальше лента настраивается под меня.
8 онлайн-курсов и интенсивов для Product Manager (февраль, 2024)
Собрали проверенные онлайн-курсы и интенсивы для Product Manager. В этой подборке: курсы от действующего PM в Microsoft, актуальная специализация по управлению продуктами в сфере AI, курсы для начинающих специалистов и лайфхаки как проходить собеседования на позицию продакта.
Как очистить Mac? Лучшие платные приложения для macOS (август 2024 г.)
Чем просканировать накопившийся за время работы мусор на диске вашего в Мака и навести порядок? Рассказываем о 7 платных приложениях для очистки macOS. Мы не называем их лучшими — просто советуем обратить на них внимание.
11 лучших сертификаций Coursera, чтобы освоить новую специальность (август, 2023)
Проанализировали Coursera в поисках лучших профессиональных программ на 2023 год, прохождение которых позволит получить востребованную специальность. Рассказываем, на какие направления обратить внимание и как сертификация Coursera помогает изменить вашу карьеру.
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digitaldefynd мы составили список курсов по Java, которые подойдут как новичкам, так и людям с опытом программирования, чтобы освоить этот востребованный язык.
Хотите сообщить важную новость? Пишите в Telegram-бот
Главные события и полезные ссылки в нашем Telegram-канале
Обсуждение
Комментируйте без ограничений
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
21 июня 2024, 00:11
0
К сожалению, сейчас у всех, кто работает с ML становится гораздо меньше возможностей для самостоятельного обучения. Да, есть теория прекрасно описанная; да, есть много полезных курсов, НО лично для меня многое банально упирается в "железо". Если тот же Bert и его вариации и модельки из Deep Pavlov ещё можно было как-то локально у себя погонять и потюнить, то монстров вроде LlaMA особо на своём железе не погоняешь для экспериментов. Аналогичная ситуация и с CV моделями, если они тяжелее YOLO и ResNet-подобных. Реально поэкспериментировать получится либо если работаешь в большой компании на их мощностях, либо на курсах от "облаков", но там особой свободы действий не дадут и кредиты ограничены. Мне вот хочется поиграться с L-RoPE в контексте LLM, но я реалистично смотрю на вещи - даже если я себе куплю топовый комп с модной видюхой, то всё равно вряд ли оно вытянет. Интересно, как Анна обходит "железный" потолок?
Вы не совсем правы. Да, с большими моделями поработать без дорого железа не получится, но МЛ сейчас можно запускать хоть на умных часах, хоть в браузере. И там модели крутятся очень маленькие. И рынок на такие разработки есть.
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
21 июня 2024, 06:55
0
Да, собственно, за счёт такого рынка и кормимся. То, что можно назвать малыми (инференс на устройстве) и средними (инференс на инстансе) моделями. Плюс third-part API, которые облачные провайдеры предоставляют (там у них целые model zoo, model garden-ы): получил эмбэддинги или результаты инференса чужой модели и дальше с ними там дорабатываешь, или даже дотюнил её иногда средствами поставщика. Это востребованно и на этом вполне можно зарабатывать, но дотянуться до самого "вкусного", cutting edge SoTA, тоже бы хотелось. А то возникает ощущение застоя. Отчасти помогает улучшить ситуацию появление хороших производительных векторных баз данных и соответствующих плагинов для уже существующих, но у меня лично без доступа к топчику грусть и тоска развиваются.
Пользователь отредактировал комментарий 21 июня 2024, 06:55
Здесь вот какой момент. Между обучением сети и использованием готовой модели есть разница.
Тоже уже обученно CV прекрасно заливается на малину и работает. Обучение - да, ого. Обучите на чём-то вроде амазоновских серверов свою модель а потом играйтесь.
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
И даже если взять pretrained модель и близкий к реальности датасет, скажем, на 40-50 ГБ, то файнтюнить её все равно получится очень и очень дорого. Такие развлечения себе только богатые галеры могут позволить. Видимо, надо идти учиться куда-то к производителям железа NVIDIA сейчас вроде дает возможность руками потрогать топовые модели. Но отзывов пока про их курсы не получал от знакомых. https://learn.nvidia.com/
Автор берет LLaMA3 и дообучает своими датасетами, ослабляющими цензуру. It took 2.5 days on 8x L40S. L40S на RunPod стоит $1.09 в час. Наверное, можно найти и дешевле. Конечно, его датасеты намного меньше 40-50Gb. Но так ли нужно столько данных? Их ведь еще готовить нужно, в инструкции превращать. Наверное, ML инженер нашел бы какой-то компромис или способ оптимизаци. На мой взгляд, для компаний это вполне поэъемные расходы, было бы желание
ML - это не только LLM. Это больше про данные и выводы по ним. Например, дали много логов и просят сделать что-то, что поможет ошибки предугадывать. А ML инженер должен придумать как это сделать, какие алгоритмы и методы применить. Может даже задачи не быть - просто данные, а что с ними сделать можно - это тоже нужно найти. У нас ML команда ломает голову над тем, как разбить сеть на сегменты и рекомендовать правила доступа на основании трафика. В самом начале даже трафик не дали в нужных количествах - только спекуляции, каким он будет. Прежде, чем что-то делать, обычно садишься и ищешь уже существующие научные работы на похожую тему. Наверняка, кто-то уже анализировал трафик. Находишь работу, где предлагается вырабатывать типовые шаблоны трафика и вешать лейблы на каждый flow. Интересно, но для кластеризации не годится. Зато можно вредителей вычислять. У нас на ресурсы в сети тэги вешаются, может быть, этим алгоритмом можно тэги рекомендовать - надо запомнить. В другой работе выводят зависмости между разными flow и ищут паттерны там. Это уже лучше, то тоже не то. В итоге пишется какой-то свой алгоритм. Часто можно отделаться простой линейной алгеброй - векторами и всякими средними значениями. Бывает, что нужно идти в дебри статистики. Тренировать LLM для этой задачи нет смысла. Вернее, смысл можно было бы поискать, но денег никто не даст
Пользователь отредактировал комментарий 21 июня 2024, 16:44
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
21 июня 2024, 17:26
1
Это я понимаю, такие задачи тоже бывают периодически. И поиск аномалий, и тэгирование, и скоринг, да много всякого рутинного. Так-то в большинстве случаев дип лернинг вообще не нужен. Классические модели вполне себе неплохо справляются. Но тут речь о том, чтобы какой-то топчик руками потрогать. И не апишку, а именно саму модель. То есть тут не вопрос "чем заняться", тут вопрос - где добыть возможности прокачаться в том, что ресурсоёмкое и поэтому не может быть изучено на собственном железе или силами малой или средней компании. Согласитесь, ведь те люди, которые работают с этими здоровенными топовыми моделями не родились со знаниями и навыками создания и тюнинга этих монстров. Где-то учились, как-то экспериментировали. И в этом собственно суть моего вопроса - где и как прокачаться?
Пользователь отредактировал комментарий 21 июня 2024, 17:26
Вот, например: https://www.youtube.com/watch?v=l8pRSuU81PU&t=162s&ab_channel=AndrejKarpathy
Упомянутый Анной Andrej Karpathy пишет и тренирует с нуля GPT-2 модель на 120M параметров. Если дома запускать не на чем, то аренда нужного железа будет стоит $10. Там в конце ролика можно увидеть, что эта штука вполне себе работает.
Еще меня впечатляют волшебники c Huggingface, который препарируют существущие модели и делают с ними просто непотижимую магию. Например, вот эта модель https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0 полгода назад была довольно популярна, потому что ненадолго обошла конкурентов аналогичного размера. Она была сделана из Llama2 путем отрезания слоев спереди и сзадали, а потом дублирование того, что осталось. Я так и не смог понять, как кто-то пришел к подобной идее и почему это сработало. Но тем, кто понимает подобные вещи, не нужны суперкомьютеры - они делают эсперименты дома.
Еще на подобную тему вот это исследование от Anthropic: https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html Их научный отдел смог подробно разобрать, что происходит под капотом их средней модели размером с GPT-3.5. Но перед тем, как им дали возможность работать с этой моделью, они вывели теорию и опробовали ее на очень маленькой модели с 1 слоем. Только когда они проверили алгоритмы и доказали, что их можно скейлить на больший маштаб, им дали ресурсы пробовать дальше. Им нужно было по-новому тренировать модель, чтобы их алгоритмы работали. Выходит, что даже у самых умных в самых крутых AI компаниях проблемы с доступом к большим моделям. Наверное, эсперименты с GPT-4 - это как работа с телескопом James Webb. Стоишь полгода в очереди, чтобы за бешеные даньги получить достун на час.
Пользователь отредактировал комментарий 21 июня 2024, 18:09
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
22 июня 2024, 00:57
1
С GPT и GPT-2 я пробовал. У меня где-то до сих пор лежит статья, где чел его пошагово поясняет в ходе написания кода. Когда его выпустили, я как раз первый раз устроился дата сайнтистом в одну минскую небольшую компанию. Но под наши задачи он не годился. Только поразвлекались с ним локально и отпустили с богом. Если честно, я тогда не верил, что из этого может что-то адекватное вырасти. Сама по себе моделька очень легкая и в принципе с ней можно развлекаться даже на обычном средненьком компе с видюхой, которая дружит с CUDA. И даже на голом проце. А вот GPT-3 и далее, там уже всё, облом. А вообще, спасибо за направление мысли, ведь действительно количество слоев и голов внимания можно уменьшить (собственно то, что скейлится). По сути, если оставить без скейлинга уникальные компоненты из одной архитектуры, а потом привнести от себя туда изменения и сравнить сначала этих мелких гоблинов друг против друга и попробовать скейлить, то с определённой степенью уверенности можно ожидать, что позитивный или негативный эффект от изменения проявится и (вероятно) кратно усилится при скейлинге.
Пользователь отредактировал комментарий 22 июня 2024, 00:57
Я смотрел разные интервью с людьми из OpenAI - там тоже мало кто верил. Была только теория, что это должно скейлиться, но результатами были удивлены все.
По поводу GPT-3 - его локально запустить сложно, но есть модели меньше, которые догнали его по производительности. Год или два назад кто-то придумал mixture of exprets. Это 8 7B моделей разной специализации и роутер, который выбирает, какие 2 модели будут отвечать. Есть французская компания Mistral - они, наверное, вторые после Meta, кто онпенсорсит большие модели. Их mixtral-8x7B модели на какое-то время наводнили Huggingface, потому что это было лучшее, что можно можно получить от опенсорса, они били Llama2 70B. Мне удавалось запустить это на игровом компе со сносной скоростью работы.
Вообще, сейчас все работают над мультимоделями, которые могут принимать данные в разных форматах (текст, картинки) и превращать их в совместимые токены, которые дальше идут в одну нейронку. То же самое с выходом. Так что термин LLM уже к ним не подходит. Вот очень крутая бумага о том, как GPT-4o превращает картинки в токены: https://www.oranlooney.com/post/gpt-cnn/ Это спекуляции и реверс инжениринг, но мне это скидывал знакомый, который работал в OpenAI. Говорил, что похоже на правду.
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
23 июня 2024, 12:38
1
Alex V, у меня был занимательный опыт использования нейронки для компьютерного зрения под задачу навроде скоринга. Сеть новостных сайтов с платной подпиской собирала информацию о последовательности действий пользователей на сайте. И на основе этой последовательности нужно было предложить подписку с каким-то дисконтом так, чтобы точно попасть в результат: максимум прибыли для новостника, но так чтобы пользователь купил, а не отказался. Ну и для новых пользователей, принять решение, когда выводить пейволл, чтобы склонить к оплате, но не потерять. В итоге количество всяких мелких активностей, которые мониторились выросло почти до сотни + эмбэддинги контента и получался эдакий временной ряд, где токенами являются собственно действия юзера. Очень долго я мучался с понижением размерности, потом с разбалансированностью выборки, целая Санта-Барбара, а последний степ в этом стаке моделек все никак не поддавался. Ну, и я тогда решил извратиться - взял то ли ResNet, то ли какую-то модификацию (забыл уже). Уложил всю эту последовательность действий в двумерную матрицу и отмасштабировал фичи к пространству gray scale картинки. То есть история пользователя получилась эдаким черно-белым снимком, а потом на этих "снимках" затюнил классификатор ResNet. И прям сработало. Клиент был доволен, а я вытер холодный пот со лба, который выступил от ожидания лещей от руководства. Здесь же, насколько понимаю, происходит обратная трансформация - картинку превращают в последовательность токенов и скармливают генеративной текстовой модели.
Пользователь отредактировал комментарий 23 июня 2024, 12:38
Звучит интересно. Наши ML команды всегда смотрят в сторону статистики, всяких алгоритмов с векторами и скорингом. Наверное, это проще объяснять, писать, дебажить
Zhan Chubukou
B2B Contractor (AI Solution Manager) в Worldwide Market
22 июня 2024, 01:35
1
Исследование Anthropic прямо зашло :) Это ж надо так изгалиться: продублировать слой, а между исходным и дубликатом воткнуть латентное пространство, чтобы получился автоэнкодер. А потом скармливать модели всякое неэтичное (и этичное тоже), чтобы посмотреть комбинации каких фичей оказывают наибольший эффект, чтобы потом усиливать/приглушать весовые коэффициенты комбинаций фичей, дабы ничего вредного не генерила модель.
Пользователь отредактировал комментарий 22 июня 2024, 01:35
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
К сожалению, сейчас у всех, кто работает с ML становится гораздо меньше возможностей для самостоятельного обучения. Да, есть теория прекрасно описанная; да, есть много полезных курсов, НО лично для меня многое банально упирается в "железо". Если тот же Bert и его вариации и модельки из Deep Pavlov ещё можно было как-то локально у себя погонять и потюнить, то монстров вроде LlaMA особо на своём железе не погоняешь для экспериментов. Аналогичная ситуация и с CV моделями, если они тяжелее YOLO и ResNet-подобных. Реально поэкспериментировать получится либо если работаешь в большой компании на их мощностях, либо на курсах от "облаков", но там особой свободы действий не дадут и кредиты ограничены. Мне вот хочется поиграться с L-RoPE в контексте LLM, но я реалистично смотрю на вещи - даже если я себе куплю топовый комп с модной видюхой, то всё равно вряд ли оно вытянет. Интересно, как Анна обходит "железный" потолок?
Вы не совсем правы. Да, с большими моделями поработать без дорого железа не получится, но МЛ сейчас можно запускать хоть на умных часах, хоть в браузере. И там модели крутятся очень маленькие. И рынок на такие разработки есть.
Да, собственно, за счёт такого рынка и кормимся. То, что можно назвать малыми (инференс на устройстве) и средними (инференс на инстансе) моделями. Плюс third-part API, которые облачные провайдеры предоставляют (там у них целые model zoo, model garden-ы): получил эмбэддинги или результаты инференса чужой модели и дальше с ними там дорабатываешь, или даже дотюнил её иногда средствами поставщика. Это востребованно и на этом вполне можно зарабатывать, но дотянуться до самого "вкусного", cutting edge SoTA, тоже бы хотелось. А то возникает ощущение застоя. Отчасти помогает улучшить ситуацию появление хороших производительных векторных баз данных и соответствующих плагинов для уже существующих, но у меня лично без доступа к топчику грусть и тоска развиваются.
Пользователь отредактировал комментарий 21 июня 2024, 06:55
Здесь вот какой момент. Между обучением сети и использованием готовой модели есть разница.
Тоже уже обученно CV прекрасно заливается на малину и работает. Обучение - да, ого. Обучите на чём-то вроде амазоновских серверов свою модель а потом играйтесь.
Штука в том, что обучить даже среднюю модель LLAMA3 7B - это 1.3 млн GPU часов на видеокартах H100. Это помимо остального железа. Правда, это на 15 триллионов токенов. https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md
И даже если взять pretrained модель и близкий к реальности датасет, скажем, на 40-50 ГБ, то файнтюнить её все равно получится очень и очень дорого. Такие развлечения себе только богатые галеры могут позволить. Видимо, надо идти учиться куда-то к производителям железа NVIDIA сейчас вроде дает возможность руками потрогать топовые модели. Но отзывов пока про их курсы не получал от знакомых. https://learn.nvidia.com/
Вот, например, популярная на Huggingface модель Dolphin поверх LLaMA3: https://huggingface.co/cognitivecomputations/dolphin-2.9-llama3-8b
Автор берет LLaMA3 и дообучает своими датасетами, ослабляющими цензуру. It took 2.5 days on 8x L40S. L40S на RunPod стоит $1.09 в час. Наверное, можно найти и дешевле. Конечно, его датасеты намного меньше 40-50Gb. Но так ли нужно столько данных? Их ведь еще готовить нужно, в инструкции превращать. Наверное, ML инженер нашел бы какой-то компромис или способ оптимизаци. На мой взгляд, для компаний это вполне поэъемные расходы, было бы желание
ML - это не только LLM. Это больше про данные и выводы по ним. Например, дали много логов и просят сделать что-то, что поможет ошибки предугадывать. А ML инженер должен придумать как это сделать, какие алгоритмы и методы применить. Может даже задачи не быть - просто данные, а что с ними сделать можно - это тоже нужно найти. У нас ML команда ломает голову над тем, как разбить сеть на сегменты и рекомендовать правила доступа на основании трафика. В самом начале даже трафик не дали в нужных количествах - только спекуляции, каким он будет. Прежде, чем что-то делать, обычно садишься и ищешь уже существующие научные работы на похожую тему. Наверняка, кто-то уже анализировал трафик. Находишь работу, где предлагается вырабатывать типовые шаблоны трафика и вешать лейблы на каждый flow. Интересно, но для кластеризации не годится. Зато можно вредителей вычислять. У нас на ресурсы в сети тэги вешаются, может быть, этим алгоритмом можно тэги рекомендовать - надо запомнить. В другой работе выводят зависмости между разными flow и ищут паттерны там. Это уже лучше, то тоже не то. В итоге пишется какой-то свой алгоритм. Часто можно отделаться простой линейной алгеброй - векторами и всякими средними значениями. Бывает, что нужно идти в дебри статистики. Тренировать LLM для этой задачи нет смысла. Вернее, смысл можно было бы поискать, но денег никто не даст
Пользователь отредактировал комментарий 21 июня 2024, 16:44
Это я понимаю, такие задачи тоже бывают периодически. И поиск аномалий, и тэгирование, и скоринг, да много всякого рутинного. Так-то в большинстве случаев дип лернинг вообще не нужен. Классические модели вполне себе неплохо справляются. Но тут речь о том, чтобы какой-то топчик руками потрогать. И не апишку, а именно саму модель. То есть тут не вопрос "чем заняться", тут вопрос - где добыть возможности прокачаться в том, что ресурсоёмкое и поэтому не может быть изучено на собственном железе или силами малой или средней компании. Согласитесь, ведь те люди, которые работают с этими здоровенными топовыми моделями не родились со знаниями и навыками создания и тюнинга этих монстров. Где-то учились, как-то экспериментировали. И в этом собственно суть моего вопроса - где и как прокачаться?
Пользователь отредактировал комментарий 21 июня 2024, 17:26
Вот, например: https://www.youtube.com/watch?v=l8pRSuU81PU&t=162s&ab_channel=AndrejKarpathy
Упомянутый Анной Andrej Karpathy пишет и тренирует с нуля GPT-2 модель на 120M параметров. Если дома запускать не на чем, то аренда нужного железа будет стоит $10. Там в конце ролика можно увидеть, что эта штука вполне себе работает.
Еще меня впечатляют волшебники c Huggingface, который препарируют существущие модели и делают с ними просто непотижимую магию. Например, вот эта модель https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0 полгода назад была довольно популярна, потому что ненадолго обошла конкурентов аналогичного размера. Она была сделана из Llama2 путем отрезания слоев спереди и сзадали, а потом дублирование того, что осталось. Я так и не смог понять, как кто-то пришел к подобной идее и почему это сработало. Но тем, кто понимает подобные вещи, не нужны суперкомьютеры - они делают эсперименты дома.
Еще на подобную тему вот это исследование от Anthropic: https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html Их научный отдел смог подробно разобрать, что происходит под капотом их средней модели размером с GPT-3.5. Но перед тем, как им дали возможность работать с этой моделью, они вывели теорию и опробовали ее на очень маленькой модели с 1 слоем. Только когда они проверили алгоритмы и доказали, что их можно скейлить на больший маштаб, им дали ресурсы пробовать дальше. Им нужно было по-новому тренировать модель, чтобы их алгоритмы работали. Выходит, что даже у самых умных в самых крутых AI компаниях проблемы с доступом к большим моделям. Наверное, эсперименты с GPT-4 - это как работа с телескопом James Webb. Стоишь полгода в очереди, чтобы за бешеные даньги получить достун на час.
Пользователь отредактировал комментарий 21 июня 2024, 18:09
С GPT и GPT-2 я пробовал. У меня где-то до сих пор лежит статья, где чел его пошагово поясняет в ходе написания кода. Когда его выпустили, я как раз первый раз устроился дата сайнтистом в одну минскую небольшую компанию. Но под наши задачи он не годился. Только поразвлекались с ним локально и отпустили с богом. Если честно, я тогда не верил, что из этого может что-то адекватное вырасти. Сама по себе моделька очень легкая и в принципе с ней можно развлекаться даже на обычном средненьком компе с видюхой, которая дружит с CUDA. И даже на голом проце. А вот GPT-3 и далее, там уже всё, облом. А вообще, спасибо за направление мысли, ведь действительно количество слоев и голов внимания можно уменьшить (собственно то, что скейлится). По сути, если оставить без скейлинга уникальные компоненты из одной архитектуры, а потом привнести от себя туда изменения и сравнить сначала этих мелких гоблинов друг против друга и попробовать скейлить, то с определённой степенью уверенности можно ожидать, что позитивный или негативный эффект от изменения проявится и (вероятно) кратно усилится при скейлинге.
Пользователь отредактировал комментарий 22 июня 2024, 00:57
Я смотрел разные интервью с людьми из OpenAI - там тоже мало кто верил. Была только теория, что это должно скейлиться, но результатами были удивлены все.
По поводу GPT-3 - его локально запустить сложно, но есть модели меньше, которые догнали его по производительности. Год или два назад кто-то придумал mixture of exprets. Это 8 7B моделей разной специализации и роутер, который выбирает, какие 2 модели будут отвечать. Есть французская компания Mistral - они, наверное, вторые после Meta, кто онпенсорсит большие модели. Их mixtral-8x7B модели на какое-то время наводнили Huggingface, потому что это было лучшее, что можно можно получить от опенсорса, они били Llama2 70B. Мне удавалось запустить это на игровом компе со сносной скоростью работы.
Вообще, сейчас все работают над мультимоделями, которые могут принимать данные в разных форматах (текст, картинки) и превращать их в совместимые токены, которые дальше идут в одну нейронку. То же самое с выходом. Так что термин LLM уже к ним не подходит. Вот очень крутая бумага о том, как GPT-4o превращает картинки в токены: https://www.oranlooney.com/post/gpt-cnn/ Это спекуляции и реверс инжениринг, но мне это скидывал знакомый, который работал в OpenAI. Говорил, что похоже на правду.
Alex V, у меня был занимательный опыт использования нейронки для компьютерного зрения под задачу навроде скоринга. Сеть новостных сайтов с платной подпиской собирала информацию о последовательности действий пользователей на сайте. И на основе этой последовательности нужно было предложить подписку с каким-то дисконтом так, чтобы точно попасть в результат: максимум прибыли для новостника, но так чтобы пользователь купил, а не отказался. Ну и для новых пользователей, принять решение, когда выводить пейволл, чтобы склонить к оплате, но не потерять. В итоге количество всяких мелких активностей, которые мониторились выросло почти до сотни + эмбэддинги контента и получался эдакий временной ряд, где токенами являются собственно действия юзера. Очень долго я мучался с понижением размерности, потом с разбалансированностью выборки, целая Санта-Барбара, а последний степ в этом стаке моделек все никак не поддавался. Ну, и я тогда решил извратиться - взял то ли ResNet, то ли какую-то модификацию (забыл уже). Уложил всю эту последовательность действий в двумерную матрицу и отмасштабировал фичи к пространству gray scale картинки. То есть история пользователя получилась эдаким черно-белым снимком, а потом на этих "снимках" затюнил классификатор ResNet. И прям сработало. Клиент был доволен, а я вытер холодный пот со лба, который выступил от ожидания лещей от руководства. Здесь же, насколько понимаю, происходит обратная трансформация - картинку превращают в последовательность токенов и скармливают генеративной текстовой модели.
Пользователь отредактировал комментарий 23 июня 2024, 12:38
Звучит интересно. Наши ML команды всегда смотрят в сторону статистики, всяких алгоритмов с векторами и скорингом. Наверное, это проще объяснять, писать, дебажить
Исследование Anthropic прямо зашло :) Это ж надо так изгалиться: продублировать слой, а между исходным и дубликатом воткнуть латентное пространство, чтобы получился автоэнкодер. А потом скармливать модели всякое неэтичное (и этичное тоже), чтобы посмотреть комбинации каких фичей оказывают наибольший эффект, чтобы потом усиливать/приглушать весовые коэффициенты комбинаций фичей, дабы ничего вредного не генерила модель.
Пользователь отредактировал комментарий 22 июня 2024, 01:35