18+
реклама
18+
Бургер менюБургер меню

Зубков Андрей – ИИ на пальцах: как работает нейросеть и как ее использовать (страница 5)

18

— вы понимаете, что «упрощённая схема» означает неизбежные ошибки и неточности.

Теперь про отличие от программы с жёстко прописанными правилами. В обычной программе разработчик заранее описывает, что делать: «если A — сделай B, иначе сделай C». Такой подход хорошо работает там, где правила можно перечислить и они не меняются слишком: посчитать НДС, отсортировать список, проверить формат номера телефона.

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

Отсюда следуют практические различия:

— программа обычно ведёт себя одинаково и предсказуемо при одинаковом вводе, потому что правила фиксированы;

— модель может давать разные формулировки и иногда ошибаться, потому что она выбирает наиболее вероятный вариант, а не выполняет строгий алгоритм;

— чтобы улучшить программу, вы переписываете правила; чтобы улучшить модель, вы меняете данные, цель обучения или саму модель (а не добавляете ещё сто «если»).

Как понять, что вы усвоили:

— вы можете отличить задачу «где правила можно выписать» от задачи «где проще показать примеры»;

— вы понимаете, почему модель может быть полезной даже без стопроцентной точности.

Остаётся вопрос: как одна и та же модель может использоваться в разных приложениях. Здесь помогает простая мысль: модель — это «двигатель», а приложение — это «кузов и приборная панель». Двигатель один и тот же, но вокруг него можно построить разные сценарии использования.

Одна и та же языковая модель, например, умеет продолжать текст. Это базовое умение можно «упаковать» по‑разному:

— как чат: приложение добавляет историю диалога, роль «ассистента» и удобный интерфейс вопросов-ответов;

— как переводчик: приложение каждый раз подаёт модели текст и просит выдать перевод в нужном формате;

— как помощник для писем: приложение добавляет шаблоны («тема письма», «тон», «адресат») и просит модель написать черновик;

— как инструмент для резюме: приложение просит кратко пересказать длинный текст и ограничивает длину.

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

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

Шаг 1. Вы формулируете вход и желаемый выход для первой задачи.

Запрос (можно копировать):

«Ты — помощник по деловой переписке. Контекст: клиент недоволен сроками. Вставляю письмо клиента ниже. Сформулируй ответ: вежливо, без оправданий, предложи 2 варианта решения, длина до 120 слов. Письмо клиента: …»

Шаг 2. Ту же модель вы используете для резюме, но меняете упаковку задачи.

Запрос:

«Сделай краткое резюме текста ниже в 5 пунктах: решения, сроки, ответственные, риски, следующий шаг. Текст: …»

Шаг 3. Для перевода вы снова не меняете «двигатель», меняете требования.

Запрос:

«Переведи на английский, стиль нейтрально-деловой. Сохрани смысл, не добавляй фактов. Текст: …»

Шаг 4. Вы сравниваете: модель одна, но результаты разные, потому что вы каждый раз задаёте другой формат выхода и другой контекст. Если где-то ответ «плывёт», вы не переписываете программу, а уточняете вход: добавляете ограничения, пример желаемого тона или просите 2 варианта.

Что унести из этой главы:

— Модель — это шаблон, который учится на данных предсказывать результат; это упрощённая схема, поэтому ошибки возможны.

— Модель отличается от программы тем, что правила не прописаны вручную: она извлекает закономерности из примеров.

— Одна и та же модель может работать в разных приложениях: приложение задаёт контекст, формат и ограничения, а «двигатель предсказаний» остаётся тем же.

Глава 7. Обучение модели: как она «учится на примерах»

Новичок представляет обучение нейросети так: «Ей объяснили правила, и она запомнила». А потом возникает путаница. Если правила не писали вручную, то что именно происходит во время обучения? Почему нужны «тонны данных»? И почему говорят, что обучать модель дорого и долго, а пользоваться потом — быстро?

Ключевая идея простая: модель учится на примерах. Ей много раз показывают пару «вход → правильный ответ», а она подстраивается так, чтобы ошибаться всё реже.

Под «входом» здесь понимается то, что вы подаёте модели: текст, картинку, таблицу, звук — в зависимости от задачи. «Правильный ответ» — это то, что считается верным результатом для этого входа. Например, для письма это может быть следующий фрагмент текста, для картинки — подпись «кот/не кот», для таблицы — нужная категория или число. Такой подход называют обучением с учителем: есть примеры и есть правильные ответы, по которым можно проверять себя.

Как это работает по шагам.

Шаг 1: модель получает вход и выдаёт свой вариант ответа. На старте он обычно плохой, потому что модель ещё «не настроена».

Шаг 2: этот ответ сравнивают с правильным. Разница между ними — это ошибка. Ошибка не обязательно «неправильно/правильно». Чаще это степень несовпадения: насколько модель промахнулась.

Шаг 3: модель чуть-чуть меняет свои внутренние настройки (их называют весами — это числа, которые определяют, как сильно модель реагирует на разные детали входа). Изменение маленькое, чтобы не «сломать» то, что уже начало получаться.

Шаг 4: то же самое повторяют на следующем примере. И так — много раз.

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

Как понять, что вы усвоили:

— вы можете своими словами объяснить, что обучение — это повтор «предсказал → сравнил с правильным → чуть подстроился»;

— вы понимаете, что «правильный ответ» нужен, чтобы измерять ошибку и знать, куда подстраиваться.

Теперь про ресурсы и скорость. Обучение занимает много времени и вычислений по трём причинам.

Первая: примеров очень много. Чтобы модель стала устойчивой, ей нужно увидеть огромное разнообразие ситуаций: разные формулировки, стили, темы, ошибки людей, редкие случаи.

Вторая: сама модель большая — у неё много весов, которые надо подстроить. Подстройка — это вычисления, которые повторяются снова и снова.

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

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

Как понять, что вы усвоили:

— вы можете объяснить разницу между обучением (веса меняются) и использованием (веса фиксированы);

— вы понимаете, почему «дорого» — это про многократные попытки на огромном количестве примеров.

Представьте задачу: вы хотите, чтобы модель помогала писать короткие вежливые письма клиентам. Берёте набор примеров: слева — исходная ситуация, справа — хороший ответ. Например: «Клиент просит перенести встречу» → «Спасибо, давайте перенесём на…»; «Клиент недоволен задержкой» → «Извините за задержку, вот статус и сроки…». Дальше процесс идёт так.

Шаг 1: подаёте модели вход: «Клиент недоволен задержкой, просит объяснить». Модель генерирует черновик. Он может быть слишком резким, слишком длинным или не по делу.

Шаг 2: сравниваете с эталонным хорошим ответом из примера. Считается ошибка: где модель не попала в тон, структуру, обязательные элементы.

Шаг 3: модель немного подстраивает веса так, чтобы в похожих ситуациях чаще выбирать более вежливые формулировки, нужный порядок фраз, уместную длину.

Шаг 4: повторяете на тысячах похожих и непохожих ситуаций: перенос, отмена, уточнение, возврат, благодарность, напоминание. Постепенно модель начинает выдавать ответы, которые чаще совпадают с тем, что в данных считалось «правильным».

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

Что стоит унести и попробовать применить после прочтения: