Как работают большие языковые модели, что такое контекст, и как ими пользоваться эффективно.

Почти любую задачу можно либо существенно упростить, либо полностью выполнить с помощью нейросетей.
Написание документации, договоров, ответ клиенту, написание кода, создание чек-листа для тестирования, а ещё изучение языка, подбор диеты, объяснение правил дорожного движения и тысячи других вещей.
Для начала мне потребуется объяснить, как работает нейросеть. Чтобы эффективно использовать любой инструмент, важно хотя бы на самом верхнем уровне понимать, как он работает. Нейросеть — это НЕ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. Она не умеет думать. Это важно. Большая Языковая Модель всего-навсего предсказывает следующий токен для вашего ввода. Предсказание токена основывается на информации, которая ранее была «изучена» нейросетью.

И вот тут кроется ключевой момент: у нейросети нет памяти. Точнее, нет такой памяти, как у человека. Каждое ваше новое сообщение в чате с нейросетью — это не пополнение существующего диалога, а совершенно новый запрос. Когда вы отправляете новое сообщение, вы отправляете всю историю чата целиком — от первого вашего «привет» до последнего вопроса. Нейросеть не помнит, что вы говорили с ней минуту назад. Она просто получает весь текст, который вы ей передаете, и на его основе предсказывает следующий токен. Поэтому каждый запрос к нейросети можно сравнить с общением с новым незнакомцем, а чтобы держать его в курсе, вы передаете ему всю историю общения с предыдущим «собеседником». Это и есть контекстное окно или контекст.
Понимание того, что есть контекст, — ключевое в работе нейросетей. Грамотный промпт, правильно предоставленный и ограниченный контекст — залог успеха.
Ниже я собрал свой список инструментов, подходов и практик, которые позволяют делать это эффективно. Все они сводятся к тому, чтобы держать максимально чистый и лаконичный контекст.
Помни: каждое новое сообщение — это новый запрос. Нейросеть «читает» всю историю чата. Чтобы получать точные ответы, придерживайся правила: одна задача — один чат. Забудь про вежливость. Нейросеть не оценит твои манеры, а лишние слова засоряют контекст. Формулируй запрос чётко и по делу.
Ты: Напиши 5 вариантов заголовков для статьи о цифровом маркетинге.
Нейросеть: ответ
Ты: Расскажи про основные достопримечательности Рима
Нейросеть: ответ
Это загружает ненужные данные в контекст, и достопримечательности Рима могут оказаться с привкусом маркетинга. И вот так тоже не делай:
Ты: Ты опытный тестировщик с опытом работы в … Твоя задача — анализировать скриншоты и писать тест-кейсы. Вот тебе скриншот
Нейросеть: Тест-кейс
Ты: Еще скриншот
Нейросеть: тест-кейс
Ты: вот тут косяк, поправь
Нейросеть: правит
ещё 100 скриншотов и правок
Ты перегрузишь память нейросети старыми данными, и каждая ошибка, которую ты исправишь, будет отравлять контекст и влиять на финальный результат. Чем больше контекст — тем дольше будет генерироваться ответ, ну а самое главное — это будет стоить дорого. Если первое сообщение в этом чате обойдется в 0.0001$, то последнее такое же маленькое сообщение будет стоить уже 10$, а при этом результат работы будет хуже.
Чат 1
Ты: Напиши 5 вариантов заголовков для статьи о цифровом маркетинге.
Нейросеть: ответ
Чат 2
Ты: Расскажи про основные достопримечательности Рима
Нейросеть: ответ
Тут всё просто. Но что делать, если тебе нужно, чтобы у нейросети был какой-то общий контекст, не погружать же её каждый раз в задачу с нуля? Второй случай рассмотрим более детально ниже.
В зависимости от интерфейса, в котором ты работаешь, можно создать свою собственную модель или что-то типа личности. У ChatGPT это GPT’s, у Claude — проекты, у OpenWebUI — папки или кастомные модели. По сути, ты просто задаёшь базовый промпт, который будет отправляться первым в каждом сообщении.
Модель делает не то, что ты хотел? Отвечает невалидной информацией на твои запросы? Ошибается раз за разом?
Не продолжай общение в этом чате. Остановись.
Возможно, то, чего ты хочешь, нельзя сделать, либо что-то в твоем вводе ведёт модель не туда. Попробуй понять, что не так, и начни новый чат с исправленным промптом. Всё ещё получается фигня? Возможно, то, чего ты хочешь, нельзя сделать вообще. Спроси у модели (в отдельном чате) можно ли сделать то, что ты хочешь / что она тебе предлагает. Сходи погугли. Но не пытайся спорить с моделью. Если хочешь изменить поведение — измени его в первом сообщении. Если хочешь указать свежую документацию — укажи в первом сообщении. Потому что каждый неверный ответ нейросети останется в контексте и будет его отравлять.
Если ты руководитель — тебе будет проще. Чем лучше ты умеешь формулировать свои мысли, тем проще тебе будет, но стоит помнить, что нейросеть — это программа, а у программы есть один очень важный недостаток: она сделает ровно то, что написано, а не то, что ты хотел. Всегда объясняй задачу максимально чётко, не давай модели вольностей. Если ты понимаешь, что может быть выбрано несколько вариантов развития, или твою задачу можно реализовать разными способами, — укажи тот способ, который тебе нужен. Не знаешь, какой способ тебе нужен?
Попроси модель рассказать тебе лучшие подходы / практики / решения для твоей задачи. Задавай наводящие вопросы и пойми. И только потом попроси её сделать то, что тебе нужно. А чтобы не писать задание самому — попроси модель написать промпт для исполнения нужной тебе задачи.
Нейросеть пиздит. Нещадно. Безбожно. Пиздит так, что ты никогда не поймёшь, что тебя обманули. Она будет спорить с тобой и доказывать тебе, что небо зелёное. Развивай свою экспертность, проверяй те вопросы, в которых ты сомневаешься. Никогда не принимай и не используй ответ нейросети без дополнительных проверок в той сфере, в которой ты не разбираешься. Нейросеть — это помощник, а не заменитель.
Если твоя задача комплексная — например, ты хочешь, чтобы нейросеть проанализировала какой-либо документ и ответила тебе на вопросы по нему, — задай сразу все вопросы. Если ты хочешь написать или отредактировать кусок кода — заранее напиши ТЗ и только потом отдавай его на исполнение.
Вы: сделай табличное представление данных
LLM: Готово
Вы: а теперь фильтрацию по статусу
LLM: Готово
Вы: и поиск добавь
LLM: Готово
Вы: и вот сортировку хочу по дате
LLM: Готово
Вы: и по имени тоже сортировку добавь
LLM: Готово
Во-первых, это будет стоить дорого — в реальных сценариях каждое такое сообщение может стоить по доллару, — а во-вторых, ухудшит результаты из-за раздутия контекста. Те же результаты можно получить быстрее, качественнее и дешевле.
Вы: Сделай табличное представление данных с фильтрацией по статусу, пагинацией и с возможностью сортировать по дате или имени.
LLM: Готово
Учи английский язык, узнавай подробности диеты, спрашивай, как починить тостер. Не становись зависимым от неё, но автоматизируй и упрощай жизнь там, где это возможно. В новом мире уметь и использовать нейросети так же важно и нужно, как уметь и использовать смартфон.