Востребованность навыков работы с искусственным интеллектом растет как среди исполнителей, так и среди управленцев. С 2023 года компании в России стали в 7,8 раза чаще указывать в вакансиях опыт работы с ИИ и нейросетями. В статье представлена бесплатная учебная программа для программистов по изучению ИИ, разработанная совместно с Neuro.net.
Разделы
Введение в обучение
В учебной программе используется нисходящий подход к обучению. Он начинается с общего представления о системе или программе и постепенно переходит к изучению ее отдельных элементов. Преимущества подхода состоят в том, что он:
- позволяет получить целостное представление о системе;
- улучшает понимание взаимосвязи между различными элементами системы;
- помогает быстрее освоить базовые принципы работы системы.
Для того, чтобы изучить ИИ важно учиться в рамках публичного обучения (Learning in Public). Эта концепция, зародившаяся в open source сообществах, где разработчики делились кодом, ошибками и даже провалами, создала прозрачную среду для обмена знаниями и создания программного обеспечения будущего.
Сегодня публичное обучение выходит за рамки кода. Это открытый обмен знаниями, опытом, успехами и неудачами с широкой аудиторией через различные форматы и платформы.
Итак, публичное обучение — это:
- писать блоги и учебные пособия;
- присоединяться к хакатонам;
- задавать вопросы и отвечать на них в сообществах Discord;
- работать над сайд-проектами;
- писать о том, что заинтересовало и удивило.
Перейдем к учебной программе. Учебная программа нацелена на начинающих пользователей и разделена на блоки. Изучать темы можно в любом порядке, в зависимости от уровня подготовки.
Некоторые материалы и видеоролики представлены на английском языке. Для тех, кто его не знает, есть возможность перевода в режиме реального времени, однако они помогут только на начальных этапах обучения.
Необходимая теоретическая база
Математика
Вся работа с ИИ опирается на три столпа математики: линейную алгебру, математический анализ, вероятность и статистику. Каждый раздел влияет на понимание функционирования ИИ:
- Линейная алгебра — математический инструментарий для представления данных и манипулирования ими, где матрицы и векторы формируют язык алгоритмов для интерпретации и обработки информации.
- Математический анализ — механизм оптимизации в машинном обучении, позволяющий изучать алгоритмы и совершенствоваться за счет понимания градиентов и темпов изменений.
- Вероятность и статистика — основа для принятия решений в условиях неопределенности, позволяющая алгоритмам прогнозировать результаты и извлекать уроки из данных с помощью моделей случайности и изменчивости.
Что читать
Для изучения теории подойдут такие книги, как:
- Дайзенрот М.П., Фейзал А.А., Он Ч.С. «Математика в машинном обучении» (2020).
- Николенко С. И., Архангельская Е. В. «Глубокое обучение. Погружение в мир нейронных сетей» (2018).
- Вьюгин В. В. Математические основы машинного обучения и прогнозирования (2022).
Что смотреть
Изучение математики для понимания машинного обучения стоит начать с серии видео на Youtube-канале: Math for Machine Learning. Эта подборка позволит получить основные представления о связи науки и технологий.
Нужен подход к линейной алгебре, основанный на программировании? Изучите бесплатный курс «Вычислительная линейная алгебра». Он включает онлайн-учебник и серию видеороликов, а также охватывает приложения (с использованием Python):
- определение переднего плана на видео наблюдения;
- категоризация документов;
- алгоритм, обеспечивающий поиск Google;
- восстановление изображения по компьютерной томографии и другое.
Обратите свое внимание и на такие бесплатные курсы на Youtube, как «Суть линейной алгебры» и «Суть математического анализа» от канала 3Blue1Brown.
Как проверить знания
Проверить знания математики можно с помощью бесплатного тренажера «Основы математики для цифровых профессий» от «Яндекс Практикум» или теста на знание основ математики от GeekBrains.
Программирование
Программирование — это язык, на котором «говорят» с ИИ. Изучая его, пользователь закладывает фундамент, необходимый для понимания работы сложных алгоритмов и нейронных сетей. Изучение этого теоретического раздела поможет не просто пользоваться готовыми решениями, но осознанно их применять, модифицировать и создавать собственные.
Что читать
Для понимания темы стоит изучить курс «Основы программирования», на основе которого преподают в МГТУ им. Н.Э. Баумана. В учебнике изложены теоретические основы разработки ПО с использованием технологии структурного программирования.
А эти книги — база для любого программиста. Их стоит прочитать, если путь в разработке только начинается:
- Гамма Э., Хелм Р. , Джонсон Р., Влиссидес Д. «Приемы объектно-ориентированного проектирования. Паттерны проектирования» (1994).
- Томас Д., Хант Э. «Программист-прагматик» (2020).
- Мартин Р. «Чистый код: создание, анализ и рефакторинг» (2021).
Что смотреть
Изучение теории стоит начать с курса Сергея Терехова «Программирование с нуля». На канале размещены 15 видеоуроков, которые введут в тему даже тех, кто не понимает устройство компьютера.
Кроме того, полезно обратить внимание на курс теории GeekBrains и видеолекции «Основы программирования».
Как проверить знания
Для проверки знаний можно как пройти тесты на теорию, так и решить практические задачи, например, на ресурсе Project Euler.
Основной инструментарий
Python
Python — это универсальный язык программирования общего назначения. Он обладает лаконичным и читаемым синтаксисом, что делает его доступным языком как для начинающих, так и для опытных программистов. Это облегчает изучение основ искусственного интеллекта и машинного обучения, а также разработку сложных ИИ-приложений.
Основная цель изучения — лучше понимать сам язык Python, чтобы вы могли понимать код других людей и применять свои новообретенные знания в своих собственных проектах.
Что читать
Обязательно прочитайте шаблоны проектирования Python от Брэндона Роудса. Кроме того, полезно знать такие книги, как:
- Лейси Н. «Python, например» (2022).
- Лутц М. «Изучаем Python» (2019).
- Бизли Д., Джонс Б. К. «Python. Книга рецептов» (2019).
Что смотреть
Новичкам стоит начать с изучения программирования на Python. Если вы уже освоили Python, обратите внимание на курс Дэвида Бизли «Расширенное владение Python». Он сосредоточен на методах программирования, которые используются в популярных библиотеках и фреймворках.
Как проверить знания
Для проверки знаний используйте тренажеры, например, от Каталога-курсов.
Обращайте внимание на ИИ-инструменты и приложения. Сервис LLM Engine от Neuro.net позволяет уйти от обычных сценариев «конечного автомата» и сделать действительно интересный продукт на базе GPT-подобной модели.
PyTorch
После того, как разобрались с программированием, стоит изучить PyTorch — открытый фреймворк машинного обучения для Python, реализующий функционал для построения, обучения и исследования нейросетей.
Что читать
Для того, чтобы изучить тему не нужны дополнительные источники, подойдут только официальные учебные пособия PyTorch. Однако среди литературы обратите внимание на книги:
- Пойнтер Я. «Программируем с PyTorch: Создание приложений глубокого обучения» (2021).
- Стивенс Э., Антига Л., Виман Т. «PyTorch. Освещая глубокое обучение» (2022).
- Лю Ю. «Обучение с подкреплением на PyTorch. Сборник рецептов» (2020).
Что смотреть
Обратите внимание на подробные учебные пособия на Youtube от Аладдина Перссона.
Как проверить знания
Проверить свои знания можно с помощью тензорных головоломок PyTorch. В сборник включено 21 задание — как шахматные головоломки, так и имитации реальной программы в упрощенной среде.
Практические навыки
Написание алгоритмов
Алгоритмы — это наборы инструкций, которые определяют последовательность действий для достижения определенной цели. В контексте ИИ они используются для обучения и работы моделей машинного обучения, которые могут выполнять задачи, такие как распознавание образов, принятие решений и прогнозирование.
Что читать
Для того, чтобы пополнить базу знаний и практические навыки по написанию алгоритмов, обратите внимание на эти книги:
- Григорьев А. «Машинное обучение. Портфолио реальных проектов» (2023).
- Паронджанов В. «Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления» (2014).
- Уоррен (мл.) Г. С. «Алгоритмические трюки для программистов» (2014).
Что смотреть
Начните с курса MiniTorch — это обучающая библиотека для инженеров по машинному обучению, которые хотят узнать о внутренних концепциях, лежащих в основе систем.
Обратите внимание на репозитории реализации фундаментальных моделей и алгоритмов машинного обучения на Python:
Кодирование трансформера с нуля на PyTorch посмотреть на YouTube-канале Umar Jamil.
Как проверить знания
Основной репозиторий курса MiniTorch доступен на GitHub. Там же по каждому уроку можно выполнять практические задания. Для этого необходимо заполнить инструкции TODO и пройти прилагаемый набор модульных тестов.
Машинное обучение
Работа с искусственным интеллектом не может быть эффективной без навыков в области машинного обучения. Каждая модель, независимо от того, где она используется, должна обучаться на определенном массиве данных: текстах, изображениях, аудиофайлах, видеороликах. Для этого используется машинное обучение.
Машинное обучение (Machine Learning) — это подмножество искусственного интеллекта (ИИ), которое фокусируется на том, чтобы дать компьютерам возможность учиться без явного программирования. Алгоритмы машинного обучения анализируют данные, выявляют в них закономерности и используют эти закономерности для прогнозирования и принятия решений. Так, нейросеть Neuro ASR обучалась на основе звуковых дорожек с реальными голосами разных людей.
Что читать
Обратите внимание на материал «Введение в архитектуры нейронных сетей». В нем Григорий Сапунов рассказывает о базовой терминологии и предоставляет понимание, что к чему в этой области, из каких «кирпичиков» собираются нейросети и как это использовать.
Прочитайте статью Себастьяна Рашки о понимании больших языковых моделей, где он перечисляет литературу, на которую стоит обратить внимание. Недавно он также опубликовал исследовательские работы к январю 2024 года: объединение моделей, смешение экспертов и переход к LLM меньшего размера.
Прочтите блог Андрея Карпати, в котором представлен рецепт для обучения нейронных сетей.Также обратите внимание на его бесплатный курс «Нейронные сети: от нуля до героя», который завершается созданием токенизатора GPT.
Не забывайте читать технические инструкции и документы по внедрению от создателей популярных нейросетей, например OpenAI, — иногда там можно почерпнуть уникальный опыт.
Книги раздела:
- Грессер Л., Кенг В. «Глубокое обучение с подкреплением: теория и практика на языке Python» (2022).
- Марченко А.Л. «Python. Большая книга примеров» (2023).
- Мюллер А., Гвидо С. «Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными» (2016).
Что смотреть
Для расширения кругозора, обратите внимание на такие блоги, как «Внедрение машинного обучения в производство» от Вики Бойкис и «Сделано с ML».
Чтобы получить навыки в обучении нейросетей, необходимо изучить модели и ИИ-инструменты в определенной предметной области. Например, исследовать механику преобразования текста в изображение в Midjourney.
Изучите бесплатный курс от fast.ai. Он предназначен для людей с некоторым опытом программирования, которые хотят научиться применять глубокое и машинное обучение к практическим задачам. Курс состоит из 2-х частей:
- часть 1, записанная в Университете Квинсленда, состоит из 9 уроков, каждый из которых длится около 90 минут;
- часть 2 содержит более 30 часов видеоконтента, в котором специалисты реализуют алгоритм Stable Diffusion с нуля.
Как проверить знания
Повторяйте опыт специалистов с курсов и повторяйте интерактивные эксперименты с машинным обучением.
Применяйте то, чему вы научились, на соревнованиях по машинному обучению на таких платформах Bitgrit и Kaggle. Изучите решения победителей.
Настройка и интеграция LLM
В домашних условиях обучение больших языковых моделей крайне затруднительно, но можно взять готовые LLM и разработаться с интерфейсом взаимодействия с ними.
Large Language Models — это большие языковые модели, которые являются типом искусственного интеллекта (ИИ), обученных на огромных массивах текстовых данных.
В процессе получения навыка важно научиться грамотно выбирать подходящую модель, интегрировать ее в интерфейс, тестировать приложение и масштабировать его. Это позволит в будущем лучше взаимодействовать с LLM, т.к. в настоящий момент в большинстве случаев используется протокол от компании OpenAI (ChatGPT).
Что читать
Для повышения квалификации, прочитайте руководства по настройке (fine-tuning) нейросетей: Hugging Face и The GenAI Guidebook. Обратите внимание на книги:
- Келен О., Блете М. «Разработка приложений на базе GPT-4 и ChatGPT» (2024).
- Тарик Р. «Создаем нейронную сеть» (2023).
- «ARDUINO: Искусственный интеллект и машинное обучение» (2024).
Что смотреть
На YouTube есть множество отличных видеоуроков, которые научат создавать чат-ботов и приложения с ИИ:
- Tech with DK «Создание чат-бота с нуля на Python с помощью NLTK»;
- Skillbox «Чат-бот с искусственным интеллектом и машинное обучение. Интенсив по Python»;
- Andrej Karpathy «Intro to Large Language Models»;
- AI Anytime «Text-to-Video Generation using a Generative AI Model».
Учитесь у профессионалов отрасли. Например, Neuro TTS — Text-To-Speech (синтез речи). Собственная разработка Neuro.net, которая позволяет роботам говорить голосами людей, на которых обучалась модель, и создавать индивидуальные голоса для любого бизнеса.
Как проверить знания
Для начала вы можете использовать шаблоны для создания систем и продуктов на основе LLM от Юджина Яна или редактируемые приложения искусственного интеллекта на платформе Vercel.
Ищите поддержку на форумах или участвуйте в хакатонах, ведь участие в общей разработке может не только помочь вам протестировать знания на практике, но и позволит получить опыт других членов команды.
Главное в работе с искусственным интеллектом — много работать и всегда оставаться в курсе событий. Следите за новостями в мире ИИ, читайте обучающие статьи, смотрите видео и обращайте внимание на технические документы инновационных чат-ботов.
Статью проверил: Дмитрий Лукьянов, к.т.н., Data Science Team Lead Neuro.net