ИИ на Python начинается не с библиотек, а с двух десятков строк кода: массив входных данных, матрица весов и цикл, который эти веса поправляет, и увидеть это своими глазами полезнее, чем прочитать десяток объяснений «на пальцах». Ниже — рабочий пример, который запускается за один вечер, разбор того, что происходит внутри, и переход к готовым библиотекам.
Простейшая нейросеть на Python — это несколько строк с массивами: входные данные умножаются на веса, результат сравнивается с правильным ответом, веса поправляются, и так двадцать тысяч раз. Никакой магии в коде нет, и увидеть это лучше сразу, а не после трёх глав теории. ИИ на Python в учебном виде помещается на один экран, и запустить его можно тем же интерпретатором, которым вы запускаете любой другой скрипт.
import numpy as np
# Четыре обучающих примера по три признака и правильные ответы к ним
X = np.array([[0, 0, 1],
[1, 1, 1],
[1, 0, 1],
[0, 1, 1]])
y = np.array([[0], [1], [1], [0]])
np.random.seed(1)
weights = 2 * np.random.random((3, 1)) - 1 # по одному весу на признак
def sigmoid(x):
return 1 / (1 + np.exp(-x))
for _ in range(20000): # цикл обучения
output = sigmoid(np.dot(X, weights)) # прямой проход
error = y - output # насколько ошиблись
weights += np.dot(X.T, error * output * (1 - output)) # поправка весов
print(sigmoid(np.dot(np.array([1, 0, 0]), weights)))
Это и есть код искусственного интеллекта в его самом честном виде. Сеть учится замечать, что ответ совпадает с первым признаком, и на новом примере [1, 0, 0] выдаёт число, близкое к единице. Ошибки в такой сети не абстрактны: если поменять данные, она начнёт ошибаться, и это полезно увидеть своими глазами.
Стоит сразу снять одно частое недоразумение. ИИ на Python не устанавливается как программа: нет пакета с таким названием, нет кнопки «включить искусственный интеллект». Есть язык, есть библиотеки для работы с числами и есть ваш код, который описывает модель. Всё, что вы видите в листинге выше, — обычный Python, который читается сверху вниз. Обратный сценарий, когда такой код за вас пишет модель, разобран в материале о том, что такое вайбкодинг.
Одна деталь, на которой спотыкаются те, кто копирует старые примеры. В обучающих материалах прошлых лет встречается команда xrange, и в одном таком разборе автор прямо предупреждает: при работе на Python 3 её нужно заменить на range, иначе скрипт не запустится. Проверяйте версию языка в примерах, которые берёте из интернета, — это самая частая причина ошибки на первом запуске. Код на Python второй версии внешне почти не отличается от кода на третьей, и ошибку вы увидите только при запуске.
Разберём код по частям, без формул:
| Строка | Что происходит |
|---|---|
| X и y | Обучающая выборка: четыре примера и правильные ответы к ним |
| np.random.random | Начальные веса задаются случайно — сеть стартует «ничего не зная» |
| sigmoid | Функция активации: сжимает любое число в диапазон от нуля до единицы |
| np.dot(X, weights) | Прямой проход: каждый признак умножается на свой вес, результаты складываются |
| y - output | Ошибка: расстояние между тем, что сеть предсказала, и правильным ответом |
| weights += ... | Обновление весов в сторону уменьшения ошибки |
| цикл for | Повторение всех шагов, пока ошибка не перестанет падать |
Таблица описывает приведённый выше пример и не является общей схемой всех архитектур нейросетей.
Обратите внимание на структуру: три из шести пунктов — это не «интеллект», а линейная алгебра. Именно поэтому библиотека NumPy оказывается первой, а не последней в списке инструментов. Python здесь выступает языком описания, а сама арифметика уходит в оптимизированный код внутри библиотеки — этим объясняется и скорость, и то, почему циклы стараются не писать руками.
Для этого примера достаточно трёх вещей, и ни одна из них не требует мощного компьютера:
Отдельного «пакета ИИ» устанавливать не нужно. Это первое, что стоит понять: нейросеть на Python — не сервис, к которому подключаются, а код, который вы пишете сами.
Проверьте окружение до того, как начнёте разбираться в ошибках модели. Убедитесь, что pip ставит пакеты в тот же Python, которым вы запускаете скрипт: на компьютере нередко живут две версии языка сразу, и половина сообщений вида «модуль не найден» объясняется именно этим. Виртуальное окружение снимает проблему полностью и создаётся одной командой. Заведите отдельное окружение под каждый проект на Python: библиотеки для нейросетей обновляются часто и ломают совместимость друг с другом чаще, чем хотелось бы.
Обучение сети — это цикл из трёх шагов: прямой проход, расчёт ошибки, обновление весов; всё остальное в больших моделях — надстройки над этим циклом. Понять его на маленьком примере проще, чем на схеме с сотней нейронов. Разбирать ИИ на Python удобно именно так: сначала цикл из трёх шагов, потом всё остальное. Дальше в тексте я разбираю каждый шаг отдельно и показываю, во что он превращается в коде на Python.
Один нейрон делает арифметику: умножает каждый вход на свой вес, складывает результаты, добавляет смещение и пропускает сумму через функцию активации. В коде на Python это одна строка с np.dot, потому что матричное умножение делает всю работу сразу для всех примеров выборки.
В коде на Python эта строка выглядит обманчиво просто, но именно она делает основную работу: умножение матриц заменяет собой вложенные циклы по всем примерам и всем признакам сразу. Функция активации нужна, чтобы сеть могла описывать не только прямые линии. Без неё сколько слоёв ни складывай, получится всё та же линейная зависимость — это ограничение архитектуры, а не недоработка библиотеки. В Python выбор активации — это одна строка, а последствия у него архитектурные: с ней сеть учится нелинейным зависимостям, без неё не учится вовсе.
Ошибка — это разница между предсказанием сети и правильным ответом. В примере выше она считается вычитанием, в реальных задачах — специальной функцией потерь, но смысл тот же: одно число, показывающее, насколько сеть промахнулась на всей выборке. Выбор функции потерь в Python сводится к имени параметра, но подобрать её надо под тип задачи: для классификации и для предсказания числа они разные, и подмена одной другой ломает обучение молча.
На Python эту величину удобно выводить в консоль на каждой сотой итерации — так вы видите, падает ошибка или застряла. Дальше начинается то, ради чего сеть и называют обучающейся. Веса меняются в сторону, которая уменьшает ошибку, и на каждой итерации она становится чуть меньше. Отсюда важное ограничение, и это стоит запомнить сразу, чтобы не гонять пустой цикл часами: если ошибка перестала падать, дело почти никогда не в «недостатке итераций» — обычно данных мало или они противоречивы, и увеличивать число проходов бесполезно.
«На одном из первых учебных примеров я честно прогнал цикл в двести тысяч итераций вместо двадцати тысяч, ожидая, что ошибка в итоге сдвинется. Она не сдвинулась ни на сотую — данных было слишком мало, и никакое число проходов это не лечит. С тех пор при застрявшей ошибке я первым делом смотрю не на количество итераций, а на сами данные — это почти всегда быстрее, чем ждать десятикратный цикл ради того же результата.»
Владислав Папернюк
основатель агентства «Сайт-Активатор», SEO-оптимизатор с 2008 года, к.т.н.
В минимальном примере вес всего три — по одному на признак. Чтобы сеть стала глубже, в неё добавляют скрытые слои, и появляются новые параметры. В одном разборе на профильной площадке автор описывает следующий шаг именно так: в конструктор класса сети добавляются размерности входного и выходного слоёв и количество скрытых слоёв, по умолчанию равное единице.
На Python это выглядит как несколько дополнительных аргументов и ещё одна матрица весов — структура кода не меняется. Дальше рост идёт по той же логике: больше слоёв — больше весов — больше данных нужно, чтобы их настроить. Проверьте это на своём примере: добавьте второй слой на тех же четырёх строках данных, и сеть начнёт запоминать выборку вместо того, чтобы выучивать правило. Это называется переобучением и остаётся главной проблемой на всех масштабах. Ни размер модели, ни версия Python на неё не влияют — лечится она только данными и приёмами регуляризации.
Правило «решают данные» одинаково работает и на учебной сети, и на прикладной задаче. В нашем кейсе AI-агента для технического SEO-аудита модель спрашивают не по сырому HTML и не формулировкой «проанализируй сайт», а по заранее собранной структуре: качество вопроса определяется качеством данных на входе. Сырой вход модели давать не стоит — ответ будет правдоподобным, а проверить его нечем.
На первом запуске учебной сети записывайте, какие данные вы подали и на каких примерах она ошиблась: такой журнал полезнее итоговой точности, потому что показывает, что поправить в данных.
На готовой библиотеке та же задача занимает пять строк вместо двадцати, потому что цикл обучения, расчёт ошибки и обновление весов уже написаны за вас. Плата за это — вы перестаёте видеть механику, которую только что разобрали. ИИ на Python с библиотекой пишется быстрее, но отлаживается тяжелее: ошибка теперь может прятаться внутри чужого кода. Обзор сервисов, которые генерируют код нейросетью, — в отдельном материале.
import numpy as np
from tensorflow import keras
X = np.array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]])
y = np.array([0, 1, 1, 0])
model = keras.Sequential([
keras.Input(shape=(3,)),
keras.layers.Dense(1, activation="sigmoid"),
])
model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=["accuracy"])
model.fit(X, y, epochs=1000, verbose=0)
print(model.predict(np.array([[1, 0, 0]])))
Сравните два листинга построчно — это самый быстрый способ понять, что делает библиотека на Python. Dense — тот самый слой с весами, compile задаёт способ измерения ошибки и правило её уменьшения, fit — цикл обучения. Ничего нового не появилось, просто три знакомых шага спрятаны за именами методов. Обе программы — это ИИ на Python, разница только в том, кто написал цикл обучения: вы или авторы библиотеки.
Ответ зависит от цели, и подменять одну другой не стоит:
| Что вам нужно | Чем собирать | Почему |
|---|---|---|
| Понять, как устроено обучение | NumPy вручную | Виден каждый шаг цикла, ошибку можно потрогать |
| Быстро получить рабочую модель | Keras поверх TensorFlow | Слои и обучение описываются декларативно |
| Экспериментировать с архитектурой | PyTorch | Гибкий контроль над тем, что происходит на каждом шаге |
| Выложить модель в работу | Библиотека плюс обычный код на Python | Обучение и запуск модели — разные задачи и разный код |
Роли библиотек описаны по типичной практике учебных проектов; конкретные версии и способ установки смотрите в официальной документации каждой из них.
Практический порядок такой: соберите руками одну сеть на NumPy, чтобы перестать бояться чёрного ящика, и сразу после этого переходите на библиотеку. Оставаться на ручной реализации дольше не стоит — это учебное упражнение, а не рабочий инструмент. Считать, что владение NumPy заменяет знание библиотек, тоже нельзя: в реальных задачах на Python никто не пишет обратное распространение руками. Ручной пример нужен ровно один раз — чтобы вы понимали, что именно библиотека делает за вас.
Четыре библиотеки закрывают почти весь путь новичка: NumPy для массивов, TensorFlow как движок, Keras как удобный интерфейс к нему, PyTorch как альтернатива обоим. Ставить всё сразу не нужно.
Порядок одинаковый для всех: установить пакет через pip, импортировать его в файле, создать модель и запустить обучение на подготовленных данных. Отдельно стоит завести виртуальное окружение — это две команды, зато версии библиотек одного проекта не будут ломать другой.
Одно предупреждение про установку тяжёлых пакетов. Ставить их «на всякий случай» не стоит: TensorFlow и PyTorch занимают заметный объём и тянут за собой зависимости, а на учебных задачах вы, скорее всего, обойдётесь NumPy. Добавляйте библиотеку тогда, когда она нужна для конкретного шага, а не заранее.
Переход оправдан, когда вам становится тесно в готовых блоках: вы хотите менять поведение обучения на каждом шаге, писать нестандартную функцию потерь или отлаживать модель построчно. Пока задачи типовые, разницы вы не почувствуете, и метаться между библиотеками на старте — верный способ не закончить ни один проект.
Что здесь точно не работает — выбирать библиотеку по числу упоминаний в статьях. Эксперимент честнее: возьмите одну свою задачу, соберите её на двух библиотеках и посмотрите, в какой вам понятнее читать собственный код через неделю. Тот же приём работает и при выборе ИИ для программистов или нейросети для кода — прогон своих задач через двух кандидатов.
Python выбирают не за скорость, а за экосистему: почти все библиотеки машинного обучения выпускаются под него первым, а тяжёлые вычисления всё равно выполняет код на C под капотом. Поэтому «медленный язык» и «главный язык ИИ» не противоречат друг другу.
Позиции языка подтверждаются рейтингами. По данным TIOBE Index за сентябрь 2026 года (сверено 11.09.2026), Python занимает первое место среди всех языков программирования с долей 17,76%, опережая C и C++; годом ранее доля была 25,98% — эту цифру за сентябрь 2025-го приводит одна публикация. В той же публикации приводится и рыночный аргумент: по данным Statista за 2025 год, Python — самый востребованный язык на рынке труда, и 45,7% рекрутеров ищут именно Python-разработчиков.
Методики у этих цифр разные, и это стоит держать в голове: TIOBE считает популярность по поисковым системам и крупным сайтам, а Statista опрашивает рекрутеров, так что напрямую проценты не сравниваются. Вывод из них можно делать один — язык распространён, и учебных материалов по нему больше, чем по любому другому.
Кириллические написания в поиске встречаются постоянно: «ии на питоне», «нейросеть на питоне», «искусственный интеллект на пайтон», «питон нейросеть». Это транслитерация одного названия, отдельного языка «питон» не существует. В коде и в документации используется только латинское написание, и при поиске ошибок в интернете искать стоит именно по нему — англоязычных ответов на порядок больше.
Одна оговорка для новичков: не путайте язык с одноимённым фреймворком или библиотекой из чужой экосистемы. Если в статье написано «питон» без уточнения версии и окружения, проверьте, о чём речь, прежде чем копировать команды установки.
Границы у языка есть, и знать их полезно до того, как вы упрётесь:
Ни один из этих пунктов не отменяет выбор языка для старта. Они означают другое: не стоит считать, что путь от учебной сети до продакшена состоит только из Python-кода. Что ещё требуют от специалиста, который доводит модели до рабочего сервиса, разобрано в материале про то, кто такой программист ИИ.
Первый прикладной проект стоит выбирать так, чтобы данные для него у вас уже были, — иначе половина времени уйдёт на сбор выборки, а не на обучение. Два формата подходят почти всем.
Первый — классификатор на готовом наборе данных. Возьмите любой открытый учебный набор, соберите ту же сеть из примера выше, но с несколькими слоями, и добейтесь, чтобы точность на проверочной части перестала расти. Вы столкнётесь с разделением выборки на обучающую и проверочную, с переобучением и с нормализацией данных — тремя вещами, без которых дальше не двинуться.
Второй — чат-бот, который обращается к готовой модели по API. Здесь вы ничего не обучаете: скрипт принимает сообщение, отправляет его во внешнюю модель и возвращает ответ пользователю. Порядок работы простой — сначала прототип в консоли, потом веб-обёртка или подключение к мессенджеру, и только потом дополнительные функции вроде журналирования. Где такой прототип удобнее собирать — в чате, редакторе с агентом или онлайн-платформе — разобрано в материале о практике вайб кодинга. Ключи доступа к внешним сервисам держите в переменных окружения: попадание ключа в публичный репозиторий означает чужие расходы на вашем счёте. Один из вариантов такого доступа — подписка GLM Coding Plan от Z.ai.
Третий формат — внутренний инструмент под собственную рутину, и он же самый недооценённый. Наш дашборд Account Pulse собирает четыре источника в одну картину по клиентским проектам, и подготовка сообщения по «замёрзшему» проекту занимает 15 минут вместо двух часов. Обучения там нет вовсе: есть сбор данных, правила и обращения к готовой модели.
Учебная сеть — это упражнение, а не продукт. Она не рассчитана на большие наборы данных и сложные задачи, и попытка «дообучить» её до чего-то серьёзного обычно заканчивается ничем. Тема нейросетей растёт быстро — в одном разборе автор отмечает, что к 2025 году она набрала большие обороты и продолжает набирать, — но темп развития области не сокращает путь от первого примера до рабочей модели.
Отдельно про ИИ-помощников, которые пишут код на питоне за вас: это соседняя тема, и выбор такого сервиса разобран в отдельном материале про нейросеть для написания кода на Python, а обзор всего класса — в материале об ИИ для программирования. Здесь ограничусь одним предупреждением, которое подтверждается цифрами. По данным одного обзора со ссылкой на опрос Stack Overflow Developer Survey, только около 33% разработчиков доверяют выводу ИИ, а 46% активно ему не доверяют. Проверяйте сгенерированный код так же, как чужой, — а как именно это делать, разобрано в материале про проверку кода нейросетью.
Наш собственный прикладной проект такого рода — AI-парсер недвижимости: скрипт забирает со страницы весь видимый текст и отдаёт его модели с мастер-промптом, а обратно получает строгую схему на 60 полей. 200 карточек разобраны за сутки вместо месяца работы команды, обращения к модели стоили около 10 рублей на сотню карточек, и на одну ИИ-функцию там приходится примерно 900 строк обычной инженерии данных. Ничего похожего на обучение сети в этом проекте нет. Переносить эти цифры на свою задачу не стоит: объём текста на странице и выбранная модель у вас будут другими.
ИИ на Python — это не отдельная технология, которую подключают, а обычный код: массивы, веса и цикл обучения. Минимальный пример на NumPy показывает механику, Keras убирает рутину, а библиотеки вроде PyTorch нужны тогда, когда готовых блоков становится мало. Язык выбирают за экосистему и количество учебных материалов, а не за скорость.
Порядок действий на ближайший вечер: установите Python 3 и NumPy, запустите пример из первого раздела, измените в нём данные и посмотрите, как поменяется результат. После этого соберите ту же задачу на Keras и сравните два листинга построчно — этот шаг даёт больше понимания, чем несколько статей подряд.
Если вам интересна не только теория, но и прикладная автоматизация — боты, скрипты и мини-сервисы под свои задачи, — посмотрите практику по Python и вайбкодингу. А если хочется начать с готового прикладного примера, у нас разобрано, как собрать первое приложение с помощью ИИ.
Числовая часть материала опирается на русскоязычные публикации из ТОП-10 выдачи, и её объём намеренно мал.
Все 73 факта проверенной фактуры кластера имеют ровно один подтверждающий источник, поэтому в тексте они приведены в единственном числе — «по данным одной публикации», «в одном разборе». Ни одна цифра здесь не является согласованным мнением нескольких изданий.
Большая часть собранной фактуры к теме страницы не относилась: это подборки ИИ-сервисов, которые пишут код за разработчика, с их лимитами и тарифами. Такие материалы принадлежат соседней странице про нейросети для написания кода на Python, и переносить их сюда означало бы столкнуть две страницы лбами. Отдельно из фактуры исключены рекламные вставки: комиссия за оплату через посредника, промо сервисов-агрегаторов доступа и реклама коммуникационной платформы. Названия и домены этих сервисов в статье не упоминаются.
Код в примерах — не факт из фактуры, а рабочий образец: он проверяется запуском у читателя и приведён именно для этого. Версии библиотек в источниках не указаны, поэтому перед установкой сверяйтесь с официальной документацией NumPy, TensorFlow, Keras и PyTorch. Места, где данные требуют проверки у первоисточника, помечены прямо в тексте. Дата проверки: 10.09.2026.
Автор: Владислав Папернюк — основатель агентства «Сайт-Активатор», SEO-оптимизатор с 2008 года, к.т.н. Разбирает практику поискового продвижения в телеграм-канале.
Можно ли создать ИИ на Python самому?
Учебную нейросеть — да, за один вечер и без специального оборудования; код есть в первом разделе. Большую модель уровня известных сервисов — нет: там ограничение не в языке, а в объёме данных и вычислений. Практический ориентир: если задача решается обычным алгоритмом, нейросеть для неё избыточна.
Как выглядит код искусственного интеллекта на самом деле?
Как работа с массивами: умножение матриц, вычитание, цикл. Разбор построчно — в первом разделе. Чего в разделе нет: в промышленных проектах основную часть кода занимает не сама модель, а подготовка данных, и по объёму она обычно больше всего остального вместе взятого.
Почему ИИ пишут именно на Python?
Из-за экосистемы: библиотеки машинного обучения выходят под него в первую очередь, а тяжёлые вычисления выполняет код на других языках под капотом. Подробнее — в разделе про границы языка. Добавлю практическое: на старте важнее количество учебных материалов, чем скорость исполнения, и здесь у языка перевес.
С какой библиотеки начинать новичку?
С NumPy: она нужна для понимания механики, и без неё готовые библиотеки остаются чёрным ящиком. Сравнение — в разделе про выбор. Частая ошибка: ставить TensorFlow и PyTorch сразу вместе, ещё не написав ни одной сети, — потом трудно понять, какая ошибка от какой библиотеки.
Чем Keras отличается от TensorFlow?
Keras — удобный интерфейс поверх TensorFlow: он описывает слои и обучение короткими вызовами. Пример на нём — в третьем разделе. Граничный случай: когда нужно вмешаться в шаг обучения, интерфейса Keras перестаёт хватать, и приходится спускаться на уровень ниже.
Почему мой код с примером из интернета не запускается?
Самая частая причина — пример написан под вторую версию языка. В одном разборе прямо указано, что на Python 3 команду xrange нужно заменить на range. Проверьте также версии библиотек: методы в них переименовываются между релизами, и сообщение об ошибке обычно называет проблемный вызов прямо.
Нужен ли мощный компьютер для нейросети?
Для учебных примеров — нет, хватит любого рабочего ноутбука. Ограничение появляется на больших моделях, и упирается оно в объём видеопамяти, а не в язык. Практический совет: пока сеть учится за секунды, про оборудование можно не думать; как только счёт пошёл на часы, дешевле арендовать вычисления, чем покупать их.
«Питон» и Python — это одно и то же?
Да, «питон» и «пайтон» — транслитерация одного названия. Об этом есть отдельный подраздел. Практическая деталь: ошибки и сообщения ищите по латинскому написанию и оригинальному тексту ошибки — так вы попадёте на официальные обсуждения, а не на пересказы.
Как понять, что нейросеть обучилась, а не запомнила данные?
Разделите выборку: обучайте на одной части, проверяйте на другой, которую сеть не видела. Если на проверочной части точность заметно хуже, сеть запомнила примеры. Об этом — в разделе про веса и ошибку. Дополнение: на очень маленькой выборке различить это невозможно в принципе, поэтому четырёх строк данных для выводов мало.
Может ли нейросеть написать код нейросети за меня?
Может, и это отдельная тема — выбор такого ассистента разобран в соседнем материале. Здесь важнее другое: сгенерированный код надо уметь прочитать, иначе вы не отличите работающую сеть от той, что выдаёт случайные числа. Начните с ручного примера, а помощника подключайте после.
Что делать после первой сети?
Взять готовый набор данных и довести классификатор до состояния, когда точность на проверочной части перестаёт расти. Варианты проектов — в последнем разделе. Чего там нет: заведите привычку фиксировать каждый эксперимент — какие параметры меняли и что получилось, иначе через неделю вы не вспомните, какая версия работала.