
Полная версия
ИИ на пальцах: как работает нейросеть и как ее использовать
Разнообразие — это насколько данные покрывают разные случаи, а не только «средний» вариант. Если модель училась на фотографиях товаров только при хорошем освещении, она начнёт ошибаться на снимках из квартиры вечером. Если распознавание речи училось в основном на одном акценте, оно будет хуже понимать другой. Если рекомендации обучались на поведении узкой группы людей, они будут навязывать её вкусы всем остальным.
Из качества и разнообразия вытекают две типичные проблемы: ошибки и предвзятость.
Ошибки появляются там, где данных не хватило или они «грязные». Модель не понимает редкий случай, путает похожие вещи, уверенно продолжает текст не туда. Это не «плохой характер ИИ», а следствие того, что в данных не было достаточного числа похожих примеров или правильных ответов.
Предвзятость — это устойчивый перекос в сторону одной группы, стиля или точки зрения. Она возникает, когда в данных одна сторона представлена сильнее, чем другая, или когда разметка делалась людьми с одним взглядом. В быту это видно так: модель чаще предлагает «типичные» варианты и хуже справляется с тем, что встречалось реже. Важно понимать: предвзятость может появиться даже без злого умысла — просто из-за перекоса в том, что собирали и что считали «нормой».
Как понять, что вы усвоили:
— Если модель систематически ошибается в одном типе случаев, ищите «дыру» в данных: там мало примеров или они плохие.
— Если ответы перекошены в одну сторону, скорее всего, перекошены были и данные.
Представьте простой сценарий. Вам нужно настроить ИИ-помощника для поддержки клиентов: он должен читать входящее сообщение и предлагать черновик ответа. Вы собираете данные: прошлые письма клиентов (текст) и ответы операторов (тоже текст).
Дальше вы решаете, будет ли разметка. Если вы хотите, чтобы система сначала определяла тему обращения, вы добавляете метки: «доставка», «оплата», «возврат», «техподдержка». Это размеченные данные: у каждого письма есть ярлык. Если меток нет, вы можете начать с неразмеченного подхода: сгруппировать письма по похожести и посмотреть, какие темы получаются естественно.
Потом вы проверяете качество: убираете письма с персональными данными, удаляете дубли, исправляете явные ошибки в метках (например, «возврат» помечен как «оплата»). И отдельно проверяете разнообразие: есть ли письма короткие и длинные, спокойные и раздражённые, с опечатками, с разными формулировками одной проблемы, из разных каналов (почта, чат).
Если вы обучите помощника только на «идеальных» письмах без эмоций и без опечаток, он станет теряться на реальных сообщениях. Если в данных почти нет случаев «сложного возврата», модель будет уверенно отвечать шаблоном и ошибаться именно там, где важна точность.
Что унести из этой главы:
— ИИ учится на данных и повторяет их свойства: сильные стороны и слабые места.
— Данные бывают разными (текст, картинки, звук, числа, действия), и это определяет, чему модель вообще может научиться.
— Размеченные данные — с «правильными ответами», неразмеченные — без них; качество и разнообразие данных напрямую влияют на ошибки и перекосы в ответах.
Глава 5. Как ИИ «видит» информацию
Обычно путаница начинается в момент, когда вы слышите фразу «модель обучилась на данных». Кажется, что ИИ «смотрит» на текст как человек, «видит» картинку как человек и «понимает» ваши действия в приложении как человек.
А потом вы сталкиваетесь с неожиданным: два почти одинаковых сообщения дают разные ответы, картинка с очевидным котом распознаётся странно, рекомендации в сервисе выглядят неуместно. Возникает вопрос: что именно ИИ получает на вход и почему он так реагирует?
Ключевая мысль простая: ИИ не видит мир напрямую — он работает с признаками, то есть с числами, которые описывают объект, текст или действие в удобном для модели виде. Признак — это измеримая «деталь», которую можно записать числом: длина текста, наличие слова, цвет пикселя, время клика, категория товара.
Модель не «читает» и не «смотрит» как человек; она получает набор чисел и учится находить в них закономерности.
Как понять, что вы усвоили:
— Вы можете закончить фразу: «Признаки — это числа, которые…»
— Вы понимаете, что один и тот же объект можно описать разными наборами признаков.
Чтобы превратить реальный объект в признаки, всегда происходит один и тот же переход: «вход → кодирование → числа». Кодирование — это способ перевода информации в числовой вид.
Дальше модель уже не различает, откуда пришли числа: из текста, изображения или истории кликов. Для неё это просто набор значений, по которым она делает вывод.
У признаков есть три важных свойства, которые влияют на результат.
Первое — что именно вы решили измерять. Если вы описываете текст только его длиной, вы теряете смысл. Если изображение описываете только средним цветом, вы теряете форму. Признаки — это выбор того, какие детали «разрешено» видеть модели.
Второе — насколько признаки похожи на задачу. Для разных задач полезны разные описания. Если вы хотите отличать «спам» от «не спама», важны слова, ссылки, повторяемость. Если хотите предсказывать «понравится ли фильм», важны жанры, актёры, история просмотров. Один и тот же набор признаков может быть отличным для одной цели и бесполезным для другой.
Третье — качество и устойчивость признаков. Хороший признак стабилен: он измеряется одинаково сегодня и завтра и не ломается от мелочей. Плохой признак случайный или «шумный»: он меняется из‑за деталей, которые не должны влиять на ответ (например, лишние пробелы, формат даты, случайная опечатка), и модель начинает учиться на ерунде.
Как понять, что вы усвоили:
— Вы можете назвать три свойства: «что измеряем», «насколько связано с задачей», «насколько устойчиво».
— Вы понимаете, что признаки — это не “истина”, а выбранный способ описания.
Теперь примеры, чтобы стало видно, как это выглядит в разных типах данных.
В тексте признаки могут быть очень простыми: количество слов, наличие конкретных слов («скидка», «срочно»), язык текста, наличие ссылок, доля заглавных букв. Могут быть и более смысловыми: какие темы встречаются, какие слова стоят рядом, какой тон (нейтральный/эмоциональный).
Но в любом случае текст сначала превращают в числа. Даже если вы общаетесь с чат‑моделью, внутри она работает не с «буквами», а с токенами — кусочками текста, которым соответствуют числовые коды. Дальше модель опирается на вероятности: какие продолжения чаще встречались в похожих числовых контекстах.
В изображениях признаки начинаются с пикселей: каждый пиксель — это числа, которые задают яркость и цвет. Но «кот» как идея не лежит в пикселях готовым. Поэтому полезными оказываются признаки, которые отражают формы и структуры: края, контуры, текстуры, сочетания линий, расположение объектов.
Чем ближе признаки к тому, что нужно распознать (например, «есть ли круглая морда и уши»), тем легче модели учиться. Если же оставить только грубые числа вроде «средний цвет картинки», модель будет уверенно ошибаться: средний цвет у кота и у дивана может совпасть.
В пользовательских действиях признаки — это следы поведения, которые можно измерить: что вы открывали, что искали, на что нажимали, сколько времени смотрели, что добавляли в корзину, в какое время суток активны, с какого устройства заходите. Часто добавляют признаки контекста: город (в грубом виде), язык интерфейса, тип подписки, категория товара.
На основе таких чисел системы рекомендаций пытаются угадать, что вам будет полезно дальше.
Как понять, что вы усвоили:
— Вы можете привести по 2–3 примера признаков для текста, изображения и действий.
— Вы видите, что «признак» — это не обязательно “умная” штука; иногда это простые счётчики и отметки.
Самая неприятная часть — когда признаки выбраны плохо. Тогда модель может выдавать ответы, которые выглядят «странно», хотя формально она делает всё правильно: она честно опирается на те числа, которые ей дали.
Плохой выбор признаков приводит к трём типичным проблемам.
Первая — модель учится на совпадениях, а не на смысле. Например, если в обучающих данных «срочные письма» были короткими, а «несрочные» — длинными, и вы дали модели только длину текста, она начнёт считать короткие письма срочными. Смысл письма при этом вообще не учитывается, и результат будет раздражающе неверным.
Вторая — модель цепляется за «подсказки», которые случайно оказались рядом с правильным ответом. Допустим, на фото с собаками был зелёный газон, а на фото с кошками — домашний интерьер. Если признаки слишком грубо описывают фон, модель может начать «распознавать» не животных, а фон. Тогда собака на диване внезапно станет «кошкой», потому что числа больше похожи на «домашнюю сцену».
Третья — модель становится чувствительной к мелочам. Если признаки устроены так, что лишний пробел, другая раскладка, другой формат даты сильно меняют числовое представление, ответы будут «прыгать». Вам будет казаться, что ИИ непредсказуем, хотя на самом деле вы каждый раз подаёте на вход заметно разные числа.
Один цельный сценарий, который можно повторять в жизни, — проверка «на какие признаки я надеюсь» перед запросом к чат‑модели.
Представьте, вы хотите, чтобы ИИ помог составить письмо клиенту, который недоволен задержкой. Вы пишете: «Составь ответ клиенту про задержку». Часто получается либо слишком сухо, либо слишком оправдательно, либо без конкретики.
Почему так? Потому что по вашему короткому тексту модель видит мало полезных чисел: нет признаков про тон, нет признаков про контекст, нет признаков про ограничения.
Действия по шагам:
Шаг 1. Добавьте признаки контекста (что произошло и какие факты важны).
Пример запроса:
«Составь письмо клиенту. Ситуация: заказ №123, задержка 3 дня из‑за сбоя на складе, новая дата доставки — 15 июня. Клиент уже писал один раз.»
Шаг 2. Добавьте признаки цели и тона (каким должен быть результат).
«Цель: сохранить доверие и предложить компенсацию. Тон: спокойный, уважительный, без оправданий.»
Шаг 3. Добавьте признаки формата (как ответ должен выглядеть).
«Формат: 6–8 предложений, сначала извинение, затем факт, затем план, затем компенсация, затем контакт для уточнений.»
Шаг 4. Добавьте ограничения (что нельзя делать).
«Не упоминать внутренние процессы компании, не обвинять клиента, не обещать невозможного.»
После этого ответы обычно становятся заметно полезнее не потому, что модель «стала умнее», а потому что вы дали ей больше правильных числовых сигналов: про задачу, про стиль, про структуру. Вы как бы помогли модели «увидеть» то, что для вас важно.
Как понять, что вы усвоили:
— Вы можете объяснить, какие «признаки» добавились в запросе: факты, цель, тон, формат, ограничения.
— Вы понимаете, почему короткий запрос даёт расплывчатый результат: мало информации для кодирования в числа.
Запомнить стоит следующее. ИИ работает с признаками — числовым описанием входа, а не с «пониманием» как у человека. Для текста, изображений и действий признаки выглядят по‑разному, но логика одна: сначала перевод в числа, потом поиск закономерностей.
Если признаки бедные или случайные, ответы будут странными: модель начнёт опираться на длину, фон или мелочи вместо смысла. Попробуйте в своих запросах добавлять признаки контекста, цели, формата и ограничений — это простой способ сделать результат стабильнее и полезнее.
Глава 6. Модель: упрощенная схема реальности
Обычно новичок представляет ИИ как «умную программу», которая где-то внутри хранит правильные ответы. Из‑за этого возникают три частых вопроса. Первый: почему модель иногда ошибается в очевидных вещах, если «она же должна знать»? Второй: чем это отличается от обычной программы, где всё заранее прописано? И третий, практический: как так получается, что одну и ту же модель используют и в чате, и в переводчике, и в помощнике для писем — это разные ИИ или один?
Ключевой принцип такой: модель — это упрощённая схема реальности, то есть шаблон, который по примерам из данных учится предсказывать результат. «Упрощённая» означает, что модель не хранит мир целиком и не понимает его как человек. Она выделяет повторяющиеся закономерности из того, что видела, и использует их, чтобы угадать наиболее подходящий ответ для нового случая.
Как это работает на уровне идеи. У модели есть вход и выход. На вход вы даёте описание ситуации: текст письма, набор признаков товара или фразу на другом языке. На выходе модель выдаёт предсказание: следующее слово, метку «спам/не спам», вероятный перевод, рекомендацию товара и так далее.
Чтобы научиться, модели нужны данные — примеры из прошлого. В данных есть то, что подаётся на вход, и то, что считается правильным результатом. Во время обучения модель много раз сравнивает свои ответы с правильными и подстраивает свои внутренние настройки так, чтобы ошибаться реже.
Эти настройки можно представить как «ручки», которые подкручиваются, пока ответы в среднем не станут лучше. Важно: модель не запоминает один-единственный правильный ответ на каждую ситуацию. Она учится общему шаблону: какие входы обычно ведут к каким выходам.
Как понять, что вы усвоили:
— вы можете сказать фразу «модель не знает, она предсказывает по примерам» и объяснить её на бытовом примере;
— вы понимаете, что «упрощённая схема» означает неизбежные ошибки и неточности.
Теперь про отличие от программы с жёстко прописанными правилами. В обычной программе разработчик заранее описывает, что делать: «если A — сделай B, иначе сделай C». Такой подход хорошо работает там, где правила можно перечислить и они не меняются слишком: посчитать НДС, отсортировать список, проверить формат номера телефона.
Модель устроена иначе: вместо списка правил она получает примеры и сама «выводит» правила в виде настроек. Поэтому модель полезна там, где правила трудно выписать вручную. Например, можно попытаться написать строгие правила для «вежливого тона письма» или для «похоже ли это сообщение на спам», но быстро выяснится, что исключений слишком много. Модель же учится на большом количестве примеров и начинает ловить тонкие признаки, которые сложно формализовать.
Отсюда следуют практические различия:
— программа обычно ведёт себя одинаково и предсказуемо при одинаковом вводе, потому что правила фиксированы;
— модель может давать разные формулировки и иногда ошибаться, потому что она выбирает наиболее вероятный вариант, а не выполняет строгий алгоритм;
— чтобы улучшить программу, вы переписываете правила; чтобы улучшить модель, вы меняете данные, цель обучения или саму модель (а не добавляете ещё сто «если»).
Как понять, что вы усвоили:
— вы можете отличить задачу «где правила можно выписать» от задачи «где проще показать примеры»;
— вы понимаете, почему модель может быть полезной даже без стопроцентной точности.
Остаётся вопрос: как одна и та же модель может использоваться в разных приложениях. Здесь помогает простая мысль: модель — это «двигатель», а приложение — это «кузов и приборная панель». Двигатель один и тот же, но вокруг него можно построить разные сценарии использования.
Одна и та же языковая модель, например, умеет продолжать текст. Это базовое умение можно «упаковать» по‑разному:
— как чат: приложение добавляет историю диалога, роль «ассистента» и удобный интерфейс вопросов-ответов;
— как переводчик: приложение каждый раз подаёт модели текст и просит выдать перевод в нужном формате;
— как помощник для писем: приложение добавляет шаблоны («тема письма», «тон», «адресат») и просит модель написать черновик;
— как инструмент для резюме: приложение просит кратко пересказать длинный текст и ограничивает длину.
В каждом случае модель внутри делает похожую вещь — предсказывает следующий фрагмент текста. Но приложение задаёт контекст, ограничения и формат. Поэтому иногда кажется, что «это разные ИИ», хотя на деле это один и тот же базовый шаблон, применённый к разным задачам.
Один цельный сценарий. Представьте, что у вас есть одна языковая модель, а вам нужно решить три задачи на работе: ответить клиенту, сделать краткое резюме встречи и подготовить вариант перевода абзаца.
Шаг 1. Вы формулируете вход и желаемый выход для первой задачи.
Запрос (можно копировать):
«Ты — помощник по деловой переписке. Контекст: клиент недоволен сроками. Вставляю письмо клиента ниже. Сформулируй ответ: вежливо, без оправданий, предложи 2 варианта решения, длина до 120 слов. Письмо клиента: …»
Шаг 2. Ту же модель вы используете для резюме, но меняете упаковку задачи.
Запрос:
«Сделай краткое резюме текста ниже в 5 пунктах: решения, сроки, ответственные, риски, следующий шаг. Текст: …»
Шаг 3. Для перевода вы снова не меняете «двигатель», меняете требования.
Запрос:
«Переведи на английский, стиль нейтрально-деловой. Сохрани смысл, не добавляй фактов. Текст: …»
Шаг 4. Вы сравниваете: модель одна, но результаты разные, потому что вы каждый раз задаёте другой формат выхода и другой контекст. Если где-то ответ «плывёт», вы не переписываете программу, а уточняете вход: добавляете ограничения, пример желаемого тона или просите 2 варианта.
Что унести из этой главы:
— Модель — это шаблон, который учится на данных предсказывать результат; это упрощённая схема, поэтому ошибки возможны.
— Модель отличается от программы тем, что правила не прописаны вручную: она извлекает закономерности из примеров.
— Одна и та же модель может работать в разных приложениях: приложение задаёт контекст, формат и ограничения, а «двигатель предсказаний» остаётся тем же.
Глава 7. Обучение модели: как она «учится на примерах»
Новичок представляет обучение нейросети так: «Ей объяснили правила, и она запомнила». А потом возникает путаница. Если правила не писали вручную, то что именно происходит во время обучения? Почему нужны «тонны данных»? И почему говорят, что обучать модель дорого и долго, а пользоваться потом — быстро?
Ключевая идея простая: модель учится на примерах. Ей много раз показывают пару «вход → правильный ответ», а она подстраивается так, чтобы ошибаться всё реже.
Под «входом» здесь понимается то, что вы подаёте модели: текст, картинку, таблицу, звук — в зависимости от задачи. «Правильный ответ» — это то, что считается верным результатом для этого входа. Например, для письма это может быть следующий фрагмент текста, для картинки — подпись «кот/не кот», для таблицы — нужная категория или число. Такой подход называют обучением с учителем: есть примеры и есть правильные ответы, по которым можно проверять себя.
Как это работает по шагам.
Шаг 1: модель получает вход и выдаёт свой вариант ответа. На старте он обычно плохой, потому что модель ещё «не настроена».
Шаг 2: этот ответ сравнивают с правильным. Разница между ними — это ошибка. Ошибка не обязательно «неправильно/правильно». Чаще это степень несовпадения: насколько модель промахнулась.
Шаг 3: модель чуть-чуть меняет свои внутренние настройки (их называют весами — это числа, которые определяют, как сильно модель реагирует на разные детали входа). Изменение маленькое, чтобы не «сломать» то, что уже начало получаться.
Шаг 4: то же самое повторяют на следующем примере. И так — много раз.
Важно понимать логику: модель не запоминает каждый пример как в тетрадке «вопрос–ответ». Она ищет такие внутренние настройки, при которых в среднем по множеству примеров ошибка становится меньше. Поэтому качество растёт постепенно: не потому что модель «поняла смысл», а потому что она стала лучше угадывать правильный ответ по похожим входам, опираясь на то, что встречалось в данных.
Как понять, что вы усвоили:
— вы можете своими словами объяснить, что обучение — это повтор «предсказал → сравнил с правильным → чуть подстроился»;
— вы понимаете, что «правильный ответ» нужен, чтобы измерять ошибку и знать, куда подстраиваться.
Теперь про ресурсы и скорость. Обучение занимает много времени и вычислений по трём причинам.
Первая: примеров очень много. Чтобы модель стала устойчивой, ей нужно увидеть огромное разнообразие ситуаций: разные формулировки, стили, темы, ошибки людей, редкие случаи.
Вторая: сама модель большая — у неё много весов, которые надо подстроить. Подстройка — это вычисления, которые повторяются снова и снова.
Третья: обучение — это не один проход. Обычно данные «прокручивают» много раз, потому что с первого раза модель не находит хорошие настройки.
А использование модели после обучения — это другой режим, его называют инференс: вы дали вход, модель выдала ответ. В этот момент веса уже не меняются. Модель просто применяет то, что «настроила» раньше. Это похоже на разницу между тренировкой и выступлением: тренировка — долгие повторения с исправлениями, выступление — один прогон по готовым навыкам. Поэтому обучать дорого (много повторов и пересчётов), а отвечать на запросы — относительно быстро (один расчёт без подстройки).
Как понять, что вы усвоили:
— вы можете объяснить разницу между обучением (веса меняются) и использованием (веса фиксированы);
— вы понимаете, почему «дорого» — это про многократные попытки на огромном количестве примеров.
Представьте задачу: вы хотите, чтобы модель помогала писать короткие вежливые письма клиентам. Берёте набор примеров: слева — исходная ситуация, справа — хороший ответ. Например: «Клиент просит перенести встречу» → «Спасибо, давайте перенесём на…»; «Клиент недоволен задержкой» → «Извините за задержку, вот статус и сроки…». Дальше процесс идёт так.
Шаг 1: подаёте модели вход: «Клиент недоволен задержкой, просит объяснить». Модель генерирует черновик. Он может быть слишком резким, слишком длинным или не по делу.
Шаг 2: сравниваете с эталонным хорошим ответом из примера. Считается ошибка: где модель не попала в тон, структуру, обязательные элементы.
Шаг 3: модель немного подстраивает веса так, чтобы в похожих ситуациях чаще выбирать более вежливые формулировки, нужный порядок фраз, уместную длину.
Шаг 4: повторяете на тысячах похожих и непохожих ситуаций: перенос, отмена, уточнение, возврат, благодарность, напоминание. Постепенно модель начинает выдавать ответы, которые чаще совпадают с тем, что в данных считалось «правильным».
После этого, когда вы в реальной работе пишете: «Составь вежливый ответ клиенту: задержка доставки на 2 дня, предложи компенсацию 5%», модель уже не учится. Она просто быстро применяет настроенные веса и выдаёт вариант письма, похожий по стилю и структуре на те, что «видела» во время обучения.
Что стоит унести и попробовать применить после прочтения:
— думайте об обучении как о многократном цикле «вход → ответ → ошибка → небольшая подстройка», который повторяется на огромном числе примеров;
— помните разницу режимов: обучать долго и дорого, потому что веса постоянно меняют; использовать быстро, потому что веса уже зафиксированы.
Глава 8. Как нейросеть «понимает», что ошиблась
Вы пробуете ИИ-сервис: он распознаёт спам, прогнозирует продажи или пишет текст. Иногда результат «не тот». Возникает естественный вопрос: как модель вообще понимает, что ошиблась, если у неё нет человеческого здравого смысла? И ещё один: почему разработчики не делают так, чтобы ошибок не было совсем — разве это не цель?
Ключевой принцип простой: ошибка модели — это разница между тем, что модель выдала, и тем, какой ответ считается правильным по заранее заданному правилу. У модели нет внутреннего чувства «я неправ». Есть только сравнение с эталоном (правильной меткой, известным числом или ожидаемыми свойствами результата) и численная оценка, насколько она промахнулась.
Как это работает на практике, зависит от типа задачи.
В классификации модель выбирает класс из набора вариантов: «спам/не спам», «кошка/собака», «одобрить/отклонить». Ошибка здесь обычно бинарная: угадала или нет. Но важна не только финальная метка, а уверенность.
Модель может сказать: «спам с вероятностью 0,51» или «спам с вероятностью 0,99». В обоих случаях класс один и тот же, но качество ощущается разным: во втором модель гораздо увереннее. Поэтому разработчики смотрят и на долю правильных ответов, и на то, насколько уверенно модель ошибается.
Как понять, что вы усвоили: в классификации «ошибка» — это несоответствие выбранного класса эталонной метке, а не «плохое объяснение» модели.

