Ещё недавно работа с нейросетями ассоциировалась с мощными серверами и дорогими видеокартами. Сегодня для первых экспериментов достаточно обычного ноутбука. Разберёмся, что на нём можно делать с нейросетями, сколько оперативной памяти для этого нужно и когда всё-таки понадобятся видеокарта или облачные вычисления.
Что можно делать на обычном ноутбуке
На обычном ноутбуке можно обучать небольшие нейросети и запускать готовые модели. Для обучения подойдут небольшие задачи. Например, можно создать модель для классификации изображений, поработать с учебным датасетом или провести простые эксперименты с текстом. Так можно изучить весь процесс: подготовить данные, обучить модель и проверить, насколько хорошо она справляется с новыми примерами.
Готовую нейросеть можно использовать без обучения с нуля. Она получает входные данные и выдаёт результат — например, определяет, что изображено на картинке, или генерирует текст. Такая работа модели называется инференсом и обычно требует меньше ресурсов, чем её обучение.
На ноутбуке можно запускать и некоторые готовые языковые нейросети. Например, Intel запускала Phi-2 с 2,7 миллиарда параметров на ноутбуке с процессором Intel Core Ultra 7 155H. Для этого использовали OpenVINO и квантование. Квантование уменьшает объём памяти, который нужен модели. Проще говоря, нейросеть становится «легче», поэтому её проще запустить на устройстве с ограниченными ресурсами.
Что нужно для первого проекта
Для небольшого учебного проекта подойдёт обычный процессор (CPU) — отдельная видеокарта NVIDIA не обязательна.
Чаще всего для таких проектов используют язык Python и одну из библиотек для машинного обучения — TensorFlow или PyTorch. Они берут на себя сложные вычисления: с их помощью можно собрать модель, обучить её и проверить результат.
Код можно писать в обычных Python-файлах или в Jupyter Notebook. Jupyter похож на электронную тетрадь: программу можно разбить на небольшие блоки и запускать их по очереди. Результат каждого блока появляется сразу под ним. Это удобно для экспериментов: например, можно изменить один параметр модели и посмотреть, что получится, не запуская всю работу заново.
Для обучения нужны данные, или датасет. Датасет — это набор примеров, на которых нейросеть учится. Для первого проекта необязательно собирать его самостоятельно: существуют готовые учебные наборы:
- MNIST содержит 70 тысяч изображений рукописных цифр размером 28 × 28 пикселей. 60 тысяч изображений используют для обучения, ещё 10 тысяч — для тестирования. На таком наборе можно научить модель определять, какая цифра изображена на картинке.
- В учебном датасете Iris собраны характеристики цветков ириса. По этим данным можно учиться решать задачу классификации — определять, к какому классу относится объект.
Как проходит обучение нейросети
Обучение можно представить как череду попыток и исправлений. Сначала готовят данные и задают устройство нейросети — её архитектуру. Затем модель получает примеры, делает предсказания и постепенно учится ошибаться реже.
Внутри нейросети есть веса — числовые параметры, от которых зависит её ответ. Во время обучения алгоритм меняет их так, чтобы уменьшить ошибку. Когда модель один раз обработала все обучающие данные, прошла одна эпоха. Обычно таких проходов делают несколько.
Но хорошо отвечать на знакомых примерах недостаточно. Допустим, нейросеть почти без ошибок распознаёт цифры, на которых училась, а с новыми изображениями справляется гораздо хуже. Это называется переобучением: модель слишком хорошо подстроилась под обучающие данные и хуже работает с новыми.
Чтобы заметить такую проблему, данные разделяют на части:
- Обучающая выборка нужна, чтобы модель училась.
- Проверочная выборка помогает следить за качеством обучения и подбирать настройки.
- Тестовую выборку модель получает в самом конце — по ней проверяют, насколько хорошо она справляется с новыми данными.
Качество работы модели оценивают с помощью метрик — числовых показателей. Например, можно посчитать точность (accuracy): если нейросеть правильно распознала 92 изображения из 100, точность составит 92%. Но иногда этого показателя недостаточно. Тогда используют другие метрики — например, precision (точность положительных ответов) и recall (полноту).
С чего начать: первый проект с нейросетью
Для первого проекта удобно взять MNIST — готовый набор изображений рукописных цифр от 0 до 9. Задача — показать нейросети много примеров, а затем проверить, научилась ли она распознавать цифры на новых картинках.
Для работы понадобятся Python, TensorFlow или PyTorch. Код можно запускать, например, в Jupyter Notebook или обычном Python-файле. Сам MNIST можно загрузить прямо через библиотеку — отдельно искать и скачивать тысячи изображений не придётся.
Дальше работа выглядит так:
- Загрузить данные. Ты получишь изображения цифр и правильные ответы к ним. Например, рядом с изображением рукописной семёрки будет указано, что это цифра 7.
- Подготовить изображения. Нейросеть работает с числами, поэтому данные нужно привести к подходящему для модели виду. В учебном проекте большую часть этой подготовки можно сделать средствами выбранной библиотеки.
- Создать модель. В TensorFlow или PyTorch ты задаёшь, из каких слоёв будет состоять нейросеть и какой результат она должна выдавать. В случае MNIST это один из десяти вариантов — цифра от 0 до 9.
- Запустить обучение. Модель получает изображения из обучающей выборки, пытается определить цифры и сравнивает свои ответы с правильными. Если она ошибается, алгоритм меняет веса. Так повторяется много раз.
- Следить за результатом. Во время обучения можно смотреть на loss и accuracy. Если accuracy растёт, модель чаще даёт правильные ответы. По loss можно следить, уменьшается ли ошибка.
- Проверить модель. В конце ей дают тестовые изображения, на которых она не обучалась. Так можно узнать, справляется ли нейросеть с новыми примерами, а не только с уже знакомыми.
В результате у тебя получится настоящая работающая модель, которой можно передать изображение цифры и получить предсказание.
Если тебе интереснее нейросети, которые работают с текстом, можно начать с готовой языковой модели. Обучать её самостоятельно не придётся: ты скачиваешь модель, запускаешь её на ноутбуке и общаешься с ней примерно как с обычным чат-ботом — задаёшь вопрос и получаешь ответ. При этом вычисления могут выполняться прямо на твоём компьютере, без облачного сервиса.
Как ноутбук ведёт себя во время обучения
Во время обучения нейросети ноутбук выполняет много вычислений подряд, поэтому процессор или видеокарта могут быть сильно загружены. Корпус нагревается, а вентиляторы начинают работать активнее. Само по себе это нормально: система охлаждения отводит тепло, а у современных процессоров есть механизмы защиты от перегрева.
При большой нагрузке ноутбук может работать медленнее. Если не хватает памяти, обучение может остановиться с ошибкой. А вот зависание или неожиданное закрытие программы не всегда связано с нагрузкой — у этого могут быть и другие причины. При сильном нагреве процессор также может снижать производительность, чтобы уменьшить температуру.
На расход памяти влияет размер батча. Батч — это количество примеров, которые модель обрабатывает за один шаг. Например, она может брать не весь датасет сразу, а по 32 изображения. Если памяти не хватает, размер батча можно уменьшить — тогда на один шаг потребуется меньше памяти.
За обучением можно следить прямо во время работы программы. TensorFlow или PyTorch могут показывать текущую эпоху и показатели модели. Например, loss показывает величину ошибки, а accuracy — долю правильных ответов. По их изменениям можно следить за тем, как идёт обучение.
Когда понадобится видеокарта
Если обучение на обычном процессоре ноутбука занимает слишком много времени, его можно ускорить с помощьювидеокарты (GPU). GPU умеет выполнять много похожих вычислений одновременно, поэтому хорошо подходит для обучения нейросетей.
Видеокарта пригодится, когда данных становится больше, модель усложняется или тебе нужно много раз запускать обучение с разными настройками. Например, один эксперимент на CPU может занимать слишком много времени, а тебе нужно провести несколько и сравнить результаты. В таких случаях GPU помогает быстрее закончить вычисления и перейти к следующему эксперименту.
При работе с крупными моделями важна и видеопамять — собственная память видеокарты. Во время обучения она нужна для весов модели, обрабатываемых данных и промежуточных результатов вычислений. Если видеопамяти не хватает, обучение может не запуститься или остановиться с ошибкой.
Когда пригодится облако
Если ноутбук не справляется с задачей или обучение идёт слишком долго, вычисления можно перенести на более мощный компьютер в интернете — в облако. При этом код ты запускаешь со своего ноутбука, но основные вычисления выполняются на удалённом сервере.
Один из самых доступных вариантов — Google Colab. Он работает с Jupyter Notebook прямо в браузере, поэтому устанавливать среду на компьютер не обязательно. В бесплатной версии Colab иногда можно получить доступ кGPU или TPU — специальным ускорителям для вычислений. Но они доступны не всегда, а ограничения бесплатной версии могут меняться.
Полностью переходить в облако необязательно.
Например, облако пригодится, если обучение занимает слишком много времени, модели не хватает оперативной или видеопамяти либо на ноутбуке нет подходящего GPU.
Безопасно ли запускать нейросеть локально
Если нейросеть работает локально, вычисления происходят на твоём ноутбуке, а не на сервере компании. Поэтому текст, фотографии или другие данные можно обрабатывать, не загружая их в облачный сервис. Но важно проверить саму программу: даже локальное приложение может подключаться к интернету и передавать какие-то данные.
Есть и другой риск. Чтобы запустить нейросеть, обычно приходится скачивать саму модель и устанавливать дополнительные программы и библиотеки. Как и любые файлы из интернета, они могут оказаться небезопасными.
Особенно внимательно нужно относиться к файлам Pickle. В этом формате Python может сохранять разные данные и объекты. При загрузке специально созданного Pickle-файла в Python может выполниться вредоносный код, поэтому такие файлы не стоит брать из неизвестных источников. Для весов нейросетей часто используют Safetensors — более безопасный формат, который не позволяет выполнять произвольный код при загрузке.
Библиотеки Python часто устанавливают с помощью pip — программы для установки Python-пакетов. Здесь тоже важно проверять название: иногда опасный пакет маскируется под известный и отличается от него всего несколькими буквами.
Перед запуском нейросети проверь:
- Откуда скачана модель. Лучше использовать официальный сайт разработчика или страницу самого проекта.
- Какие программы предлагают установить. Проверь названия библиотек и не устанавливай незнакомые пакеты вслепую.
- Какой формат у модели. С неизвестными Pickle-файлами важно быть особенно осторожными. Если те же веса доступны в Safetensors, этот формат безопаснее с точки зрения выполнения постороннего кода.
- Что делают команды из инструкции. Не копируй неизвестную команду в терминал, если не понимаешь, что она устанавливает или запускает.
- Выходит ли программа в интернет. Локальный запуск не всегда означает полностью автономную работу.
- Какие данные ты передаёшь модели. Для первых опытов лучше использовать учебные данные, а не личные документы, фотографии и другую важную информацию.
Что в итоге
Начать знакомство с нейросетями можно с простого проекта — например, обучить небольшую модель на CPU. А готовые компактные языковые нейросети можно запускать локально, прямо на ноутбуке. Если его ресурсов станет не хватать, можно использовать GPU или перенести вычисления в облако.