Не так давно составлял индивидуальный учебный план для одного из подписчиков, который хотел перейти в сферу data science / machine learning. План был сильно "заточен" под этого конкретного человека и его бэкграунд. Потом я подумал, что будет полезно также опубликовать здесь обобщённый учебный план для тех, кто хотел бы заниматься машинным обучением, но не знает, с чего начать. Надеюсь, кому-то из вас будет полезно! Смотрите следующий пост.
#ml #career
#ml #career
Учебный план для погружения в data science и machine learning с нуля
Включает области, которые нужно "прокачать", кратко - зачем это нужно, а также ссылки на ресурсы (старался подбирать бесплатные и русскоязычные).
1) Программирование на Питоне
1.1) Базовый синтаксис языка
Python - "родной" язык для машинного обучения и интеллектуального анализа данных.
https://stepik.org/course/58852/
https://stepik.org/course/67/
1.2) Основы объектно-ориентированного программирования (ООП)
Нужно, чтобы реализовывать собственные компоненты на основе существующих библиотек. Для этого нужны некоторые знания ООП, хотя и в меньшем объеме, чем для бэкенд-разработки.
https://stepik.org/course/100558/ - для C++, но хорошая теоретическая база по ООП и паттернам, можно взять выборочно
https://stepik.org/course/114354/ - для Python, но платный курс
https://stepik.org/course/94022/ - для Python и бесплатный, но незавершённый
Дополнительно: читайте открытый код на гитхабе. Отдавайте предпочтение репозиториям с большим количеством звёзд. Можно поизучать, как устроены известные библиотеки. Почти во всех применяется ООП.
1.3) Алгоритмы (не МЛ, а классические: сортировка, нахождение пути и т.д.)
В некоторых компаниях в качестве скрининга предлагают решить 1-2 задачи на алгоритмы. Знание алгоритмов нужно не только бэкенд-разработчикам. Оно помогает всем писать более качественный код.
https://stepik.org/course/217/
https://stepik.org/course/1547/
2) Математика: матанализ, теория вероятностей, статистика, линейная алгебра.
Нужно для более глубокого понимания того, как работают алгоритмы машинного обучения. Есть мнение, что математика в ML/DS нужна не всем и не всегда. Моё дело - предложить. :)
На начальном этапе я бы не отделял это от изучения машинного обучения (см. соответствующий раздел). Во многих учебниках и курсах по машинному обучению есть в начале разделы по математике - их объёма вполне достаточно на первых порах.
3) Анализ данных
Обучение модели обычно начинается с разведочного анализа данных. "Become one with your data" (c) A. Karpathy
3.1) Теория анализа данных
https://stepik.org/course/73952/ (тут есть и машинное обучение)
https://stepik.org/course/57623/ (тут больше на статистику упор)
3.2) NumPy и Pandas - базовые библиотеки для анализа данных
https://stepik.org/course/120014/ - платный курс
Но в сети также есть много бесплатных тьюториалов.
4) Машинное обучение
Нужно изучить не только алгоритмы машинного обучения, но и лучшие практики обучения моделей и внедрения их в реальные продукты.
https://stepik.org/course/4852/
https://stepik.org/course/8057/
Как обобщение всего пройденного с заходом на новый уровень - глубокое обучение - рекомендую школу глубокого обучения МФТИ:
https://stepik.org/course/135002/
Также мне очень нравится книга: Николенко, Кадурин, Архангельская "Глубокое обучение. Погружение в мир нейронных сетей". С нуля читать будет сложновато, а вот с некоторой базой - очень полезно.
5) Дальше нужно выбирать специализацию: структурированные данные, тексты, изображения или звук. Это особая история, выходящая за рамки базового учебного плана. Может быть, ещё поговорим об этом отдельно.
Включает области, которые нужно "прокачать", кратко - зачем это нужно, а также ссылки на ресурсы (старался подбирать бесплатные и русскоязычные).
1) Программирование на Питоне
1.1) Базовый синтаксис языка
Python - "родной" язык для машинного обучения и интеллектуального анализа данных.
https://stepik.org/course/58852/
https://stepik.org/course/67/
1.2) Основы объектно-ориентированного программирования (ООП)
Нужно, чтобы реализовывать собственные компоненты на основе существующих библиотек. Для этого нужны некоторые знания ООП, хотя и в меньшем объеме, чем для бэкенд-разработки.
https://stepik.org/course/100558/ - для C++, но хорошая теоретическая база по ООП и паттернам, можно взять выборочно
https://stepik.org/course/114354/ - для Python, но платный курс
https://stepik.org/course/94022/ - для Python и бесплатный, но незавершённый
Дополнительно: читайте открытый код на гитхабе. Отдавайте предпочтение репозиториям с большим количеством звёзд. Можно поизучать, как устроены известные библиотеки. Почти во всех применяется ООП.
1.3) Алгоритмы (не МЛ, а классические: сортировка, нахождение пути и т.д.)
В некоторых компаниях в качестве скрининга предлагают решить 1-2 задачи на алгоритмы. Знание алгоритмов нужно не только бэкенд-разработчикам. Оно помогает всем писать более качественный код.
https://stepik.org/course/217/
https://stepik.org/course/1547/
2) Математика: матанализ, теория вероятностей, статистика, линейная алгебра.
Нужно для более глубокого понимания того, как работают алгоритмы машинного обучения. Есть мнение, что математика в ML/DS нужна не всем и не всегда. Моё дело - предложить. :)
На начальном этапе я бы не отделял это от изучения машинного обучения (см. соответствующий раздел). Во многих учебниках и курсах по машинному обучению есть в начале разделы по математике - их объёма вполне достаточно на первых порах.
3) Анализ данных
Обучение модели обычно начинается с разведочного анализа данных. "Become one with your data" (c) A. Karpathy
3.1) Теория анализа данных
https://stepik.org/course/73952/ (тут есть и машинное обучение)
https://stepik.org/course/57623/ (тут больше на статистику упор)
3.2) NumPy и Pandas - базовые библиотеки для анализа данных
https://stepik.org/course/120014/ - платный курс
Но в сети также есть много бесплатных тьюториалов.
4) Машинное обучение
Нужно изучить не только алгоритмы машинного обучения, но и лучшие практики обучения моделей и внедрения их в реальные продукты.
https://stepik.org/course/4852/
https://stepik.org/course/8057/
Как обобщение всего пройденного с заходом на новый уровень - глубокое обучение - рекомендую школу глубокого обучения МФТИ:
https://stepik.org/course/135002/
Также мне очень нравится книга: Николенко, Кадурин, Архангельская "Глубокое обучение. Погружение в мир нейронных сетей". С нуля читать будет сложновато, а вот с некоторой базой - очень полезно.
5) Дальше нужно выбирать специализацию: структурированные данные, тексты, изображения или звук. Это особая история, выходящая за рамки базового учебного плана. Может быть, ещё поговорим об этом отдельно.
Stepik: online education
"Поколение Python": курс для начинающих
В курсе рассказывается об основных типах данных, конструкциях и принципах структурного программирования языка Python. Курс содержит теорию в формате текстовых конспектов и более 500 задач с автоматизированной проверкой. Этот курс является первой частью линейки…
Как многие знают, NLP сейчас в тренде – особенно всё, что касается больших языковых моделей (large language models или LLM). Крупные компании обучают свои аналоги ChatGPT, а небольшие стартапы строят свои продукты на основе АПИ от OpenAI. Сделал для вас небольшую подборку полезных бесплатных ресурсов, которые помогут относительно быстро “вкатиться” в LLM, особенно если у вас уже есть некоторый опыт в ML и NLP. Всё на английском.
1. LLM best practices от Weights&Biases
https://wandb.ai/site/llm-whitepaper
2. Patterns for Building LLM-based Systems & Products
https://eugeneyan.com/writing/llm-patterns/
3. OpenAI best practices
https://platform.openai.com/docs/guides/gpt-best-practices
4. DeepLearning.AI short courses
https://www.deeplearning.ai/short-courses/
Изучение этих ресурсов должно дать понимание, как и для чего применять LLM, когда имеет смысл обучать свою модель, а когда достаточно существующих, и т.д. Это поможет вам не только в профессиональном развитии и работе над своими проектами, но и для прохождения собеседований, ведь, как я уже сказал, LLM – это горячая тема.
Безусловно, LLM – не абсолютная панацея. Бывает так, что применять их к конкретному запросу от вашего заказчика – не самая лучшая идея. Но и в этом случае полезно ориентироваться в теме, чтобы аргументированно обосновать свой отказ от этой технологии.
1. LLM best practices от Weights&Biases
https://wandb.ai/site/llm-whitepaper
2. Patterns for Building LLM-based Systems & Products
https://eugeneyan.com/writing/llm-patterns/
3. OpenAI best practices
https://platform.openai.com/docs/guides/gpt-best-practices
4. DeepLearning.AI short courses
https://www.deeplearning.ai/short-courses/
Изучение этих ресурсов должно дать понимание, как и для чего применять LLM, когда имеет смысл обучать свою модель, а когда достаточно существующих, и т.д. Это поможет вам не только в профессиональном развитии и работе над своими проектами, но и для прохождения собеседований, ведь, как я уже сказал, LLM – это горячая тема.
Безусловно, LLM – не абсолютная панацея. Бывает так, что применять их к конкретному запросу от вашего заказчика – не самая лучшая идея. Но и в этом случае полезно ориентироваться в теме, чтобы аргументированно обосновать свой отказ от этой технологии.
Всем привет! У нас в компании (напомню, это Центр искусственного интеллекта МТС) есть пара интересных NLP-вакансий. Наши рекрутеры попросили порекомендовать кого-то из знакомых, потому что от меня уже было несколько удачных рекомендаций. 💼🙌 Кажется, эти вакансии пока не опубликованы у нас на сайте.
Здесь в канале есть NLP-шники с опытом, многих из вас я знаю лично. Нужен мидл и мидл+/сеньор. Если хотите узнать подробности и (при совпадении опыта и интересов) получить мою рекомендацию, пишите в личку, контакты в описании канала. 🤝
А вот, кстати, список тех вакансий, что опубликованы:
https://mts.ai/ru/career/
Там довольно разнообразно. 👀
Здесь в канале есть NLP-шники с опытом, многих из вас я знаю лично. Нужен мидл и мидл+/сеньор. Если хотите узнать подробности и (при совпадении опыта и интересов) получить мою рекомендацию, пишите в личку, контакты в описании канала. 🤝
А вот, кстати, список тех вакансий, что опубликованы:
https://mts.ai/ru/career/
Там довольно разнообразно. 👀
mts.ai
Карьера в компании MWS AI - Вакансии
Карьерные возможности в компании МВС АИ: мы создаем все условия для комфортной работы и развития.
Завтра (суббота 23 сентября 2023) в 18:00 Мск буду делать доклад для нижегородского ODS-сообщества. Если хотите послушать о новейших паттернах и лучших практиках применения и обучения больших языковых моделей (large language models, LLM), приходите!
https://us02web.zoom.us/j/86771868132
Кроме моего, там будет ещё один доклад: Александр Пономаренко, научный сотрудник лаборатории Латас НИУ ВШЭ, расскажет про метод NeuralODE.
https://us02web.zoom.us/j/86771868132
Кроме моего, там будет ещё один доклад: Александр Пономаренко, научный сотрудник лаборатории Латас НИУ ВШЭ, расскажет про метод NeuralODE.
Лучшие практики LLM 20230923.pdf
1.9 MB
Спасибо всем, кто приходил вчера послушать мой доклад!
Пока ждём видеозапись (обещают через пару недель выложить на YouTube), предлагаю посмотреть мои слайды. Там много нейроартов)
Пока ждём видеозапись (обещают через пару недель выложить на YouTube), предлагаю посмотреть мои слайды. Там много нейроартов)
Извините, что так много анонсов в последнее время и мало содержательных постов, обещаю исправиться! 😖
А пока - вот ещё один анонс. 🙈 Позвали выступить на Фенисте (Фестиваль наук, искусств и технологий Института прикладной физики РАН). Кто в Нижнем и есть время вечером, заходите, пообщаемся!
https://vk.com/wall-45512825_1430
А пока - вот ещё один анонс. 🙈 Позвали выступить на Фенисте (Фестиваль наук, искусств и технологий Института прикладной физики РАН). Кто в Нижнем и есть время вечером, заходите, пообщаемся!
https://vk.com/wall-45512825_1430
VK
Фестиваль «Фенист». Пост со стены.
А в очной программе в Институте прикладной физики РАН сегодня лекция про ChatGPT🤖
Наш спикер ... Смотрите полностью ВКонтакте.
Наш спикер ... Смотрите полностью ВКонтакте.
Если вдруг вы, как я, холодным субботним вечером задались вопросом, а можно ли в Питоне построить простую диаграмму Венна, то вот ответ:
Кстати, посмотрите внимательно код, ниже будет мини-квиз)
python
#!pip install matplotlib-venn
from matplotlib import pyplot as plt
from matplotlib_venn import venn3
ai = set(['AI1', 'AI2', 'AI3', 'NLP', 'NLP/ML', 'ML'])
nlp = set(['NLP', 'NLP/ML'])
ml = set(['NLP/ML', 'ML'])
diagram = venn3([ai, nlp, ml], ('AI', 'NLP', 'ML'))
for label in diagram.subset_labels:
if label is not None:
label.set_visible(False)
plt.show(out)
Кстати, посмотрите внимательно код, ниже будет мини-квиз)
А зачем нам во множестве `ai` целых три строки: "AI1", "AI2", "AI3", а не просто "AI"?
Anonymous Quiz
4%
Это ни на что не влияет, ведь эти строки есть только в первом множестве
39%
Чтобы круг AI на диаграмме получился визуально больше
51%
Чтобы у нас получилось всего три круга
6%
Чтобы цвет круга был розовенький
Вам нужно с нуля разобраться в новой для вас ML-задаче, например, named entity linking. Что будете делать в первую очередь? (можно выбрать несколько вариантов)
Anonymous Poll
70%
Просто погуглю по названию задачи
45%
Буду читать научные статьи (Google Scholar, Semantic Scholar, Arxiv Sanity, Papers with Code и т.п.)
43%
Пойду на GitHub искать готовые решения с большим количеством звёзд
22%
Brain storm со своей командой / спрошу у опытных знакомых
12%
Спрошу в специализированных чатах
38%
Спрошу у ChatGPT
11%
Спиритический сеанс
0%
Свой вариант в комментариях
У меня для вас снова вакансии в Центре искусственного интеллекта МТС! На этот раз - AI-тренер и Prompt-инженер. Приходите к нам работать! 😉🤝
Чем занимаются AI-тренеры и prompt-инженеры, в чём разница между ними? Обе эти профессии обычно не предполагают написание кода, но навыки программирования, конечно же, будут плюсом! 🙌 AI-тренеры занимаются созданием качественных обучающих примеров для ИИ. Когда ваша модель учится на различных инструкциях, написанных экспертами, AI-тренеры - это те самые эксперты. Prompt-инженеры - это мастера "общения" с уже обученными моделями. Они умеют правильно задавать нейросети вопросы, чтобы получать более полные и точные ответы. И AI-тренеры, и prompt-инженеры также занимаются оценкой качества ответов ИИ, анализируя сильные и слабые места и предлагая гипотезы по улучшению моделей. 💡
Исследователи и ML-инженеры занимаются обучением моделей и выводом их в продакшн, но без хороших данных и надёжных методов оценки нельзя получить сильную модель. Именно поэтому так важны крутые специалисты по созданию обучающих примеров, идеально подходящих под задачу. А когда сложно или невозможно автоматизировать оценку качества выполнения машиной той или иной задачи, нужны люди, способные объективно и грамотно оценивать ответы модели. 💪🦾
Чем занимаются AI-тренеры и prompt-инженеры, в чём разница между ними? Обе эти профессии обычно не предполагают написание кода, но навыки программирования, конечно же, будут плюсом! 🙌 AI-тренеры занимаются созданием качественных обучающих примеров для ИИ. Когда ваша модель учится на различных инструкциях, написанных экспертами, AI-тренеры - это те самые эксперты. Prompt-инженеры - это мастера "общения" с уже обученными моделями. Они умеют правильно задавать нейросети вопросы, чтобы получать более полные и точные ответы. И AI-тренеры, и prompt-инженеры также занимаются оценкой качества ответов ИИ, анализируя сильные и слабые места и предлагая гипотезы по улучшению моделей. 💡
Исследователи и ML-инженеры занимаются обучением моделей и выводом их в продакшн, но без хороших данных и надёжных методов оценки нельзя получить сильную модель. Именно поэтому так важны крутые специалисты по созданию обучающих примеров, идеально подходящих под задачу. А когда сложно или невозможно автоматизировать оценку качества выполнения машиной той или иной задачи, нужны люди, способные объективно и грамотно оценивать ответы модели. 💪🦾
hh.ru
Вакансия AI-trainer / тренер ИИ в Москве, работа в компании МТС (вакансия в архиве c 30 ноября 2023)
Зарплата: не указана. Москва. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 31.10.2023.
Недавно наткнулся на статью A Survey of Large Language Models. Это, по сути, введение в область LLM. Здесь чётко и по делу рассказывается о том, откуда взялись большие языковые модели, как они устроены, на чём их обучают и т.д. В статье обобщаются основные достижения последних лет в данной области и даются ссылки на 683 🤯 источника. Но при этом основной текст - меньше 70 страниц. Можно попробовать почитать на выходных, если интересна данная тема. 🧑💻🧠🏋️
Горжусь своей сестрой. Она год назад начала учиться с нуля на Java-разработчика, а сейчас уже приступила к своей первой оплачиваемой работе по этой специальности! 💪
Это было очень непросто, но если есть упорство и правильная мотивация, то обязательно всё получается. 😎
Это было очень непросто, но если есть упорство и правильная мотивация, то обязательно всё получается. 😎
Хотите применить трансформеры к своей задаче, но не знаете, какую модель выбрать? 🤔 Информация о трансформерах для обработки русского языка разбросана по разным уголкам Интернета, поэтому я постарался собрать всё самое важное в своём списке русскоязычных трансформеров. 📃 Для каждой модели есть ссылки на код / статьи, важные архитектурные детали и рекомендации по применению. 🤓 Это первая версия списка, возможно, в нём есть недочёты - буду благодарен за обратную связь. 🙌
Вчера мне написал мой бывший студент, талантливый NLP-разработчик Павел. Он нарисовал суперполезную схему энкодера трансформера, причём более подробную, чем все схемы трансформера, что я видел. Ему удалось в одной диаграмме уместить все важные детали этой ключевой для NLP архитектуры. 👏 Мне кажется, получилось замечательно, поэтому я предложил ему поделиться схемой с сообществом, что он и сделал:
https://github.com/pa-shk/transformer-encoder
Почему это круто? Как известно, трансформеры перевернули мир NLP, их используют почти во всех сложных задачах по автоматической обработке текстов. Не случайно на большинстве собеседований по NLP спрашивают про устройство трансформера. Однако при всём изобилии материалов в Интернете именно такой подробной и информативной схемы мне ещё не попадалось - её можно увлечённо изучать, как карту сокровищ! 🤩 Надеюсь, вам тоже понравится (и тогда не забудьте поставить звёздочку репозиторию Павла).
https://github.com/pa-shk/transformer-encoder
Почему это круто? Как известно, трансформеры перевернули мир NLP, их используют почти во всех сложных задачах по автоматической обработке текстов. Не случайно на большинстве собеседований по NLP спрашивают про устройство трансформера. Однако при всём изобилии материалов в Интернете именно такой подробной и информативной схемы мне ещё не попадалось - её можно увлечённо изучать, как карту сокровищ! 🤩 Надеюсь, вам тоже понравится (и тогда не забудьте поставить звёздочку репозиторию Павла).
GitHub
GitHub - pa-shk/transformer-encoder
Contribute to pa-shk/transformer-encoder development by creating an account on GitHub.
Все же знают про "Дзен Питона"? (Если не знаете, выполните команду
А я вам сегодня принёс "Дзен Плюшевого Питона"!
===
Качественные данные важны не меньше, чем сильная модель.
Избегание ненужной сложности важно не меньше, чем улучшение метрики на 0.2%.
Читаемость кода важна не меньше, чем его эффективность.
Личные качества важны не меньше, чем техническая экспертиза.
Увидеть широкую картину важно не меньше, чем сосредоточиться на ТЗ.
Развиваться важно не меньше, чем закрывать "горящие" задачи.
Понятно объяснять важно не меньше, чем много знать.
===
Можно не воспринимать этот пост слишком серьёзно... Но без шуток, для меня эти принципы действительно много значат. Я стараюсь руководствоваться ими в своей работе. Хотя это, конечно, не исчерпывающий список! 😉
import this в питоновском интерпретаторе.) А я вам сегодня принёс "Дзен Плюшевого Питона"!
===
Качественные данные важны не меньше, чем сильная модель.
Избегание ненужной сложности важно не меньше, чем улучшение метрики на 0.2%.
Читаемость кода важна не меньше, чем его эффективность.
Личные качества важны не меньше, чем техническая экспертиза.
Увидеть широкую картину важно не меньше, чем сосредоточиться на ТЗ.
Развиваться важно не меньше, чем закрывать "горящие" задачи.
Понятно объяснять важно не меньше, чем много знать.
===
Можно не воспринимать этот пост слишком серьёзно... Но без шуток, для меня эти принципы действительно много значат. Я стараюсь руководствоваться ими в своей работе. Хотя это, конечно, не исчерпывающий список! 😉
С чем из этого вы больше всего согласны? (можно выбрать только один вариант ответа)
Anonymous Poll
35%
Качественные данные важны не меньше, чем сильная модель.
3%
Избегание ненужной сложности важно не меньше, чем улучшение метрики на 0.2%.
7%
Читаемость кода важна не меньше, чем его эффективность.
7%
Личные качества важны не меньше, чем техническая экспертиза.
15%
Увидеть широкую картину важно не меньше, чем сосредоточиться на ТЗ.
19%
Развиваться важно не меньше, чем закрывать "горящие" задачи.
13%
Понятно объяснять важно не меньше, чем много знать.
Сегодня делюсь с вами крутым списком ключевых статей по NLP, опубликованных _после_ BERT, по мнению Ильи Гусева. Кто не знает, это один из авторитетнейших экспертов в NLP. Илья составил этот список в ответ на вопрос пользователя в одном из профильных чатов. Не знаю, будет ли где-то ещё публиковать, но я уверен, что этот список точно заслуживает внимания, поэтому решил репостнуть здесь.
- GPT-2, Radford et al., Language Models are Unsupervised Multitask Learners, https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
- GPT-3, Brown et al, Language Models are Few-Shot Learners, https://arxiv.org/abs/2005.14165
- LaBSE, Feng et al., Language-agnostic BERT Sentence Embedding, https://arxiv.org/abs/2007.01852
- CLIP, Radford et al., Learning Transferable Visual Models From Natural Language Supervision, https://arxiv.org/abs/2103.00020
- RoPE, Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding, https://arxiv.org/abs/2104.09864
- LoRA, Hu et al., LoRA: Low-Rank Adaptation of Large Language Models, https://arxiv.org/abs/2106.09685
- InstructGPT, Ouyang et al., Training language models to follow instructions with human feedback, https://arxiv.org/abs/2203.02155
- Scaling laws, Hoffmann et al., Training Compute-Optimal Large Language Models, https://arxiv.org/abs/2203.15556
- FlashAttention, Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness, https://arxiv.org/abs/2205.14135
- NLLB, NLLB team, No Language Left Behind: Scaling Human-Centered Machine Translation, https://arxiv.org/abs/2207.04672
- Q8, Dettmers et al., LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale, https://arxiv.org/abs/2208.07339
- Self-instruct, Wang et al., Self-Instruct: Aligning Language Models with Self-Generated Instructions, https://arxiv.org/abs/2212.10560
- Alpaca, Taori et al., Alpaca: A Strong, Replicable Instruction-Following Model, https://crfm.stanford.edu/2023/03/13/alpaca.html
- LLaMA, Touvron, et al., LLaMA: Open and Efficient Foundation Language Models, https://arxiv.org/abs/2302.13971
P.S. Коллеги из того чата также предложили добавить в список статью про Flan-T5, я согласен с этим: https://arxiv.org/abs/2210.11416
- GPT-2, Radford et al., Language Models are Unsupervised Multitask Learners, https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
- GPT-3, Brown et al, Language Models are Few-Shot Learners, https://arxiv.org/abs/2005.14165
- LaBSE, Feng et al., Language-agnostic BERT Sentence Embedding, https://arxiv.org/abs/2007.01852
- CLIP, Radford et al., Learning Transferable Visual Models From Natural Language Supervision, https://arxiv.org/abs/2103.00020
- RoPE, Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding, https://arxiv.org/abs/2104.09864
- LoRA, Hu et al., LoRA: Low-Rank Adaptation of Large Language Models, https://arxiv.org/abs/2106.09685
- InstructGPT, Ouyang et al., Training language models to follow instructions with human feedback, https://arxiv.org/abs/2203.02155
- Scaling laws, Hoffmann et al., Training Compute-Optimal Large Language Models, https://arxiv.org/abs/2203.15556
- FlashAttention, Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness, https://arxiv.org/abs/2205.14135
- NLLB, NLLB team, No Language Left Behind: Scaling Human-Centered Machine Translation, https://arxiv.org/abs/2207.04672
- Q8, Dettmers et al., LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale, https://arxiv.org/abs/2208.07339
- Self-instruct, Wang et al., Self-Instruct: Aligning Language Models with Self-Generated Instructions, https://arxiv.org/abs/2212.10560
- Alpaca, Taori et al., Alpaca: A Strong, Replicable Instruction-Following Model, https://crfm.stanford.edu/2023/03/13/alpaca.html
- LLaMA, Touvron, et al., LLaMA: Open and Efficient Foundation Language Models, https://arxiv.org/abs/2302.13971
P.S. Коллеги из того чата также предложили добавить в список статью про Flan-T5, я согласен с этим: https://arxiv.org/abs/2210.11416
На этой неделе у меня произошло важное событие - перешёл на новую работу, ведущим ML-разработчиком в СберДевайсы. Буду помогать делать GigaChat умнее, в частности, техлидить одно из направлений, связанных с alignment. Пока что довольно много стресса, большой поток новой информации. Надеюсь, быстро освоюсь и оправдаю высокие ожидания коллег! 🙏
Для джунов, которые "никому не нужны"
Поделюсь мыслями на одну животрепещущую для многих тему. Есть такой тезис: джуны никому не нужны. Об этом уже не первый год говорят, кстати. Некоторые довольно авторитетные разработчики вообще не советуют новичкам сейчас начинать изучать технологии, потому что потом всё равно не получится найти работу. Без опыта не найти работу. А без работы не приобрести опыт. Тогда и смысла нет учиться. Так? Нет, не так.
Да, согласен, джуны сейчас на рынке, как правило, не востребованы. Джуновских вакансий (или стажёрских) - раз, два и обчёлся. Нужны мидлы. Мидловых вакансий просто море. Мидлов на рынке даже близко не достаточно. Но интересно получается:
- Мидлы нужны?
- Да.
- Их не хватает?
- Да.
- А откуда взяться новым?
- Вырастут из джунов.
- Но джуны же никому не нужны?..
Получается, нужно расти с нуля до мидла. Я понимаю, как это звучит. Но можно ли с нуля дорасти до мидла без работы в компаниях? Я считаю, что можно. Только поймите правильно. Не получая практический опыт решения сложных задач - нет, конечно, нельзя. Но не работая в компаниях или на коммерческих проектах - можно. Это, кстати, путь, которым шёл я сам.
Вы не станете мидлом сразу, минуя этап джуна, это невозможно. Просто расти от джуна до мидла придётся не на (основной, оплачиваемой) работе, а где-то ещё. Нужно будет очень серьёзно поучиться.
Лучше учиться фул-тайм. Но и не фул-тайм тоже можно, только тогда на это надо закладывать несколько лет. Это самое сложное - нужно долго учиться до того момента, когда кто-то захочет платить вам деньги за ваши навыки. Экономически это может быть очень сложно. Но по-другому никак.
Кто-то может себе позволить поучиться около года фул-тайм на платных курсах. Я нормально отношусь к платным курсам. Не аффилиирован с ними, не буду рекламировать какие-то конкретные, но знаю людей, которые устроились на первую работу после подобных курсов.
Можно учиться в вузе - это более долговременное вложение в своё будущее, но важно понимать, что не все программы одинаково хороши. Часто в них много лишнего и устаревшего. Тем не менее, (не только в топовых вузах) многие студенты устраиваются на первую работу на 2-3 курсах бакалавриата. Один мой знакомый уже после второго курса прошёл сразу на сеньорную ML-вакансию, а потом быстро вырос до тимлида.
Формальное образование - на курсах или в вузе - помогает самоорганизоваться. Но можно и самостоятельно изучить всё необходимое, и даже без денежных вложений (правда можно). Просто так сложнее и обычно дольше. Впрочем, без внутренней мотивации ничего не получится ни на курсах, ни в самом топовом вузе. Насильно вас никто ничему не научит.
Таким образом, если хочется с нуля стать разработчиком, сейчас, скорее всего, вам придётся расти не до джуна, а до мидла. Придётся накопить такой опыт, который работодатель просто не сможет игнорировать, даже несмотря на отсутствие формальной работы по специальности в вашем резюме. Но как получить этот самый опыт, если не на оплачиваемой работе по специальности? Пути известны, не скажу тут ничего нового: через пет-проекты, build your own X, изучение опен-сорса и вклад в него, неоплачиваемые стажировки, общение с более опытными людьми, чтение профильных чатов, соревнования и хакатоны.
По сути, вы будете заниматься примерно тем же, что и на "настоящей" работе по специальности: изучать новые инструменты, решать сложные задачи, (в отчаянии) дебажить код и т.д. Если вам это сейчас кажется неинтересным, скучным, слишком сложным, - действительно, тогда не стоит и начинать, наверное. Ваша будущая работа из всякого такого и будет состоять. Но если вас это не пугает и вы готовы испытать себя, то жму вам руку и от всего сердца желаю удачи!
Поделюсь мыслями на одну животрепещущую для многих тему. Есть такой тезис: джуны никому не нужны. Об этом уже не первый год говорят, кстати. Некоторые довольно авторитетные разработчики вообще не советуют новичкам сейчас начинать изучать технологии, потому что потом всё равно не получится найти работу. Без опыта не найти работу. А без работы не приобрести опыт. Тогда и смысла нет учиться. Так? Нет, не так.
Да, согласен, джуны сейчас на рынке, как правило, не востребованы. Джуновских вакансий (или стажёрских) - раз, два и обчёлся. Нужны мидлы. Мидловых вакансий просто море. Мидлов на рынке даже близко не достаточно. Но интересно получается:
- Мидлы нужны?
- Да.
- Их не хватает?
- Да.
- А откуда взяться новым?
- Вырастут из джунов.
- Но джуны же никому не нужны?..
Получается, нужно расти с нуля до мидла. Я понимаю, как это звучит. Но можно ли с нуля дорасти до мидла без работы в компаниях? Я считаю, что можно. Только поймите правильно. Не получая практический опыт решения сложных задач - нет, конечно, нельзя. Но не работая в компаниях или на коммерческих проектах - можно. Это, кстати, путь, которым шёл я сам.
Вы не станете мидлом сразу, минуя этап джуна, это невозможно. Просто расти от джуна до мидла придётся не на (основной, оплачиваемой) работе, а где-то ещё. Нужно будет очень серьёзно поучиться.
Лучше учиться фул-тайм. Но и не фул-тайм тоже можно, только тогда на это надо закладывать несколько лет. Это самое сложное - нужно долго учиться до того момента, когда кто-то захочет платить вам деньги за ваши навыки. Экономически это может быть очень сложно. Но по-другому никак.
Кто-то может себе позволить поучиться около года фул-тайм на платных курсах. Я нормально отношусь к платным курсам. Не аффилиирован с ними, не буду рекламировать какие-то конкретные, но знаю людей, которые устроились на первую работу после подобных курсов.
Можно учиться в вузе - это более долговременное вложение в своё будущее, но важно понимать, что не все программы одинаково хороши. Часто в них много лишнего и устаревшего. Тем не менее, (не только в топовых вузах) многие студенты устраиваются на первую работу на 2-3 курсах бакалавриата. Один мой знакомый уже после второго курса прошёл сразу на сеньорную ML-вакансию, а потом быстро вырос до тимлида.
Формальное образование - на курсах или в вузе - помогает самоорганизоваться. Но можно и самостоятельно изучить всё необходимое, и даже без денежных вложений (правда можно). Просто так сложнее и обычно дольше. Впрочем, без внутренней мотивации ничего не получится ни на курсах, ни в самом топовом вузе. Насильно вас никто ничему не научит.
Таким образом, если хочется с нуля стать разработчиком, сейчас, скорее всего, вам придётся расти не до джуна, а до мидла. Придётся накопить такой опыт, который работодатель просто не сможет игнорировать, даже несмотря на отсутствие формальной работы по специальности в вашем резюме. Но как получить этот самый опыт, если не на оплачиваемой работе по специальности? Пути известны, не скажу тут ничего нового: через пет-проекты, build your own X, изучение опен-сорса и вклад в него, неоплачиваемые стажировки, общение с более опытными людьми, чтение профильных чатов, соревнования и хакатоны.
По сути, вы будете заниматься примерно тем же, что и на "настоящей" работе по специальности: изучать новые инструменты, решать сложные задачи, (в отчаянии) дебажить код и т.д. Если вам это сейчас кажется неинтересным, скучным, слишком сложным, - действительно, тогда не стоит и начинать, наверное. Ваша будущая работа из всякого такого и будет состоять. Но если вас это не пугает и вы готовы испытать себя, то жму вам руку и от всего сердца желаю удачи!
Возможно, некоторые из вас уже видели этот пост Миланы, но я всё равно хочу им поделиться) Тем более, что тоже немного поучаствовал. Она собрала список актуальных и современных вопросов для собесов по NLP. Я тоже несколько штук закинул, которые реально задавал на собесах не раз.
https://news.1rj.ru/str/grokaem_seby/271
Именно современных списков вопросов по NLP в сети не так много, потому что область ну очень активно развивается. Тем и интересна эта подборка.
Если хотите, могу написать, как бы я ответил / какой ответ бы ожидал на какие-то из этих вопросов. Кидайте в комментарии наиболее интересные для вас. Только не предлагайте отвечать на все 100, это слишком долго 😅
https://news.1rj.ru/str/grokaem_seby/271
Именно современных списков вопросов по NLP в сети не так много, потому что область ну очень активно развивается. Тем и интересна эта подборка.
Если хотите, могу написать, как бы я ответил / какой ответ бы ожидал на какие-то из этих вопросов. Кидайте в комментарии наиболее интересные для вас. Только не предлагайте отвечать на все 100, это слишком долго 😅
Telegram
grokaem себя
#grokaem_собес #grokaem_nlp
Я собрала 100 вопросов по NLP, которые мне задавали или задавала я. Надеюсь, что они будут полезны, чтобы освежить в памяти важные моменты.
*Notion будет пополняться*
Notion русская версия
В составлении вопросов помогали:…
Я собрала 100 вопросов по NLP, которые мне задавали или задавала я. Надеюсь, что они будут полезны, чтобы освежить в памяти важные моменты.
*Notion будет пополняться*
Notion русская версия
В составлении вопросов помогали:…