Найти в Дзене
Стас советолог

«ИИ на коленке: 5 проектов, которые вы можете сделать за выходные, чтобы понять основы»

Вы наверняка слышали этот гул. Гул вокруг искусственного интеллекта. Он повсюду: в новостях, в разговорах, в бесконечных постах о том, как он всё изменит. И от этого иногда становится не по себе. Кажется, что это что-то запредельно сложное, область гениев в гигантских корпорациях. Что-то, что требует лет учебы, суперкомпьютеров и тайных знаний.
Не чтобы создать Skynet, а чтобы почувствовать, из
Оглавление

Вы наверняка слышали этот гул. Гул вокруг искусственного интеллекта. Он повсюду: в новостях, в разговорах, в бесконечных постах о том, как он всё изменит. И от этого иногда становится не по себе. Кажется, что это что-то запредельно сложное, область гениев в гигантских корпорациях. Что-то, что требует лет учебы, суперкомпьютеров и тайных знаний.

Но что, если я скажу, что самый верный способ перестать бояться этой штуки и начать её понимать это не читать тонны теории, а поиграть с ней? Да-да, прямо сейчас. На своём ноутбуке. За выходные.

Не чтобы создать Skynet, а чтобы почувствовать, из чего он, этот ИИ, на самом деле состоит. Увидеть его не как магический чёрный ящик, а как набор вполне понятных, иногда даже простых, идей. Идеи, которые оживают от нескольких строчек кода.

Вот несколько проектов, которые и правда можно сделать «на коленке».

Они расположены по нарастающей от «воу, это было легко» до «ого, а это уже серьёзно». Главное правило не стремитесь к совершенству. Стремитесь к тому, чтобы к воскресенью вечером вы могли сказать: «Ага, вот как это работает. Понял».

-2

1. Детектор настроений для своих сообщений (Суббота, утро, с чаем)

Начнём с чего-то минималистичного и забавного. Откройте любой текстовый редактор или даже блокнот. Мы будем делать простейший анализатор тональности.

Суть в чём? Мы возьмём готовую библиотеку (это как набор готовых инструментов), которая уже умеет определять, позитивный текст, негативный или нейтральный. Наш код будет устроен просто: вы даёте ему фразу, а он выдает вердикт.
-3

Почему это хороший старт?

Вы сразу сталкиваетесь с ключевой концепцией: ИИ часто это не что-то, что вы создаёте с нуля, а что-то, что вы грамотно используете. Вы берёте мощный инструмент (модель, обученную на миллионах твитов и отзывов) и применяете его к своей задаче. Вы за пять минут напишете скрипт, который будет анализировать ваши старые сообщения в телеграме или посты в соцсетях. Увидите, как часто вы жалуетесь или шутите. Это моментальная обратная связь и первый щелчок: «О, так вот что значит "применить модель"».

2. Нейросеть, которая отличает кошек от собак (Суббота, день, с перерывами на обед)

Здесь чуть сложнее, но куда интереснее. Мы не будем тренировать нейросеть с нуля это долго и нужно много данных. Мы воспользуемся другим супер-важным приёмом: transfer learning (перенос обучения).

Представьте, что есть готовая, очень умная нейросеть, которую годами учили различать тысячи объектов на фотографиях: от самолётов до морковок. Она уже умеет видеть края, текстуры, формы. Мы как будто берём очень опытного художника, который знает всё о свете и тени, и просто учим его отличать два конкретных предмета.

-4

Вы скачаете небольшой набор картинок с кошками и собаками (готовых датасетов в интернете полно). Потом, с помощью фреймворка вроде TensorFlow или PyTorch (не пугайтесь названий, для этого есть чёткие туториалы), вы «подставите» свои данные в уже готовую, мощную модель. Процесс обучения займёт maybe 15-30 минут на обычном ноутбуке.

И вот он, момент истины:

вы загружаете фото своей соседской мурки, и модель уверенно говорит: «Cat». Вы понимаете самую суть машинного обучения: это не волшебство, а нахождение закономерностей в данных. И вы только что настроили этот механизм под свою, пусть и смешную, задачу.

-5

3. Бот-собеседник на основе персонажа (Суббота, вечер, для души)

Теперь перейдём к хайповой теме - языковым моделям. Не нужно лезть в дебри GPT. Можно сделать своего, маленького и глуповатого, но очаровательного бота.

Есть такая штука как Markov chains (цепи Маркова). Принцип до безобразия прост: мы анализируем текст (например, все диалоги вашего любимого книжного героя или даже ваши собственные переписки) и учимся: «За словом "Привет" чаще всего следует "как дела"». И потом генерируем новые фразы, основываясь на этой статистике.

-6

Вы пишете скрипт, который «съедает» выбранный вами текст, запоминает частоту сочетаний слов, а потом выдаёт на просьбу «Скажи что-нибудь» новую, никогда не существовавшую, но стилистически похожую фразу. Получится бот, который говорит как Шерлок Холмс, или как герой «Игры престолов», или как вы сами в два часа ночи. Это покажет вам базовый, почти механистический уровень генерации текста. Вы увидите, что даже такая простая логика может рождать забавные и неожиданные результаты.

4. Генератор синтетической музыки или арта (Воскресенье, утро, творческое)

Давайте создадим что-то, что не классифицирует, а творит. Опять же, не с нуля. Есть нейросети, которые обучены на огромных массивах музыки или картин. Некоторые из них устроены как игра в «угадайку»: одна часть сети пытается сгенерировать что-то, а другая отличить сгенерированное от настоящего. В процессе этой борьбы рождается что-то новое.

-7
Вы можете найти готовую модель, например, для генерации мелодий в стиле классики или пиксель-арта. Ваша задача написать небольшой скрипт, который будет «кормить» эту модель разными начальными условиями (называется «seed» - зерно) и сохранять результаты.

Вы запускаете генерацию, и из шума начинает проявляться мелодия, пусть и странная, или абстрактный пейзаж. Это самый наглядный способ понять концепцию латентного пространства той самой «сферы возможностей», в которой живут идеи нейросети. Меняя всего несколько чисел на входе, вы получаете совершенно разные результаты. Вы не художник, вы исследователь, который настраивает параметры огромной, цифровой вселенной.

-8

5. Простой рекомендательный система для вашей же медиатеки (Воскресенье, день, финальный рывок)

А теперь что-то максимально практичное. У вас есть коллекция фильмов, книг или музыки. Как сделать простую систему, которая бы предлагала: «Посмотрев это, ты можешь оценить вот то»?

-9
Здесь вы вплотную подойдёте к данным. Вам нужно будет создать свою маленькую базу: например, табличку, где у каждого фильма будут теги («комедия», «космос», «роуд-муви», «ностальгия»). Потом вы напишете алгоритм, который сравнивает эти теги. Самый простой косинусное сходство. Не нужно глубоко вникать в математику, достаточно понять принцип: мы представляем каждый фильм как набор чисел (есть тег «космос» 1, нет 0) и находим между ними «расстояние».

Вы вручную разметите 20-30 своих любимых фильмов, напишите скрипт, и он выдаст вам рекомендацию. И вот тут вы поймёте самую важную, пожалуй, вещь: качество ИИ на 90% зависит от качества и подготовки данных. Ваша система будет глупой не потому, что алгоритм плох, а потому что вы поставили тегу «ностальгия» вес 3, а «комедии» 1. Вы начнёте думать о том, как представить мир так, чтобы его поняла машина. Это и есть основная работа.

-10
К воскресному вечеру у вас на компьютере будет не просто пять файлов с кодом. У вас будет пять историй, пять «ага-эффектов». Вы увидите, что сложные системы часто состоят из простых, логичных блоков. Вы перестанете смотреть на ИИ как на оракула и начнёте видеть в нём инструмент. Инструмент со своими причудами, ограничениями и огромным потенциалом.

Самое главное вы сделаете это сами.

Своими руками. И это знание, это чувство, что ты прикоснулся к чему-то огромному не как потребитель, а как творец, пусть и начинающий, бесценно. Оно снимает страх и рождает интерес. А интерес лучший двигатель для того, чтобы пойти дальше.

Так что выбирайте проект, ставьте чайник, открывайте ноутбук. И запускайте. Первую строчку кода, первую загрузку данных, первый, возможно, кривой, но ваш результат. Удачи. И помните, дело не в идеальном коде, а в том, чтобы процесс был живым и любопытным.

Ставь лайк и подписывайся