Большие языковые модели (LLM) стали таким же рабочим инструментом программиста, как редактор кода, Git или терминал. Они объясняют ошибки, пишут черновики функций и тестов, помогают разобраться в чужом коде, а через API становятся частью ваших собственных приложений. В этой теме разберёмся, что такое LLM, где её место среди других понятий AI и как устроен курс.
От AI к LLM: вложенные понятия
Термины AI, машинное обучение и нейросети часто путают, хотя они вложены друг в друга, как матрёшка:
| Понятие | Что это | Пример |
|---|---|---|
| Искусственный интеллект (AI) | вся область программ, решающих «человеческие» задачи | шахматная программа, навигатор |
| Машинное обучение (ML) | часть AI: правила выводятся из примеров, а не пишутся вручную | спам-фильтр |
| Нейронные сети | часть ML: модели из связанных «нейронов» с настраиваемыми числами — весами | распознавание лиц |
| Генеративный AI | нейросети, создающие новый контент: текст, картинки, звук, код | генератор изображений |
| Большая языковая модель (LLM) | генеративная нейросеть, обученная на огромном объёме текста и кода | чат-ассистенты, автодополнение |
Разницу между обычным программированием и машинным обучением хорошо видно на спам-фильтре. В классическом подходе правило пишет программист:
# классический подход: правило придумывает человек
def is_spam(subject):
text = subject.lower()
return "win money" in text or "free prize" in text
print(is_spam("WIN MONEY now!")) # → True
print(is_spam("W1N M0NEY now!")) # → False — правило легко обойтиВ машинном обучении вы даёте программе тысячи писем с пометкой «спам / не спам», и она сама находит закономерности. LLM — та же идея в гигантском масштабе: модель обучили на огромном корпусе текстов и кода решать одну задачу — предсказывать следующий фрагмент текста. Чтобы хорошо продолжать код, нужно уловить синтаксис, типичные паттерны и смысл имён, поэтому из простой задачи вырастают впечатляющие способности.
💡 Аналогия: LLM — очень продвинутое автодополнение, как подсказки клавиатуры в телефоне, только обученное на триллионах слов и способное продолжать целые страницы текста и кода.
Два способа использовать AI разработчику
На этом делении построен весь курс:
- AI как инструмент в работе. Вы общаетесь с ассистентом в чате, редакторе или терминале. Модель помогает писать, понимать и проверять код, но решение принимаете вы.
- AI как компонент вашего приложения. Ваш код отправляет запрос к модели через API и использует ответ: классифицирует обращения, отвечает по документации, извлекает данные из текста.
Первый способ делает вас быстрее, второй позволяет создавать новые функции продукта. Посмотрим на четыре примера.
Пример 1: объяснение ошибки в чате
Самый частый сценарий — вставить код и текст ошибки в чат-ассистент:
Почему этот код падает и как его исправить?
user = {"name": "Aysel"}
print(user["email"])
KeyError: 'email'KeyError возникает, потому что в словаре user нет ключа "email".
Варианты исправления:
1. user.get("email") — вернёт None вместо исключения.
2. user.get("email", "not set") — вернёт значение по умолчанию.
3. Проверить заранее: if "email" in user: ...Модель не запускала код: она узнала знакомый паттерн и сгенерировала типичное объяснение. Для редких и запутанных ошибок такое объяснение нужно проверять.
Пример 2: автодополнение в редакторе
AI-ассистент в IDE (GitHub Copilot, Cursor и аналоги) видит открытый файл и предлагает продолжение прямо в коде серым «призрачным» текстом. Вы пишете сигнатуру и комментарий, а ассистент предлагает тело функции, которое принимается клавишей Tab:
def average_price(products):
# средняя цена товаров; для пустого списка вернуть 0
if not products: # ← предложение
return 0 # ← ассистента
return sum(p["price"] for p in products) / len(products)
print(average_price([{"price": 10}, {"price": 20}])) # → 15.0
print(average_price([])) # → 0Модель делает ровно то, чему её учили, — продолжает текст: имя функции и комментарий подсказывают самое вероятное продолжение. Код выглядит правильным, но проверять его вам: что будет, если у товара нет ключа "price"?
Пример 3: вызов API в 10 строк
Та же модель доступна из вашего кода. Минимальный запрос через официальный Python SDK одного из провайдеров (у других SDK устроены похоже):
from anthropic import Anthropic
client = Anthropic() # ключ берётся из переменной окружения ANTHROPIC_API_KEY
response = client.messages.create(
model="claude-opus-5-5", # пример; актуальные имена моделей — в документации
max_tokens=1024,
messages=[{"role": "user", "content": "Explain Python list comprehensions in two sentences."}],
)
for block in response.content:
if block.type == "text":
print(block.text)A list comprehension is a compact way to build a new list by applying an
expression to each item of an iterable, optionally filtering items with a
condition. For example, [x * 2 for x in range(5) if x % 2 == 0] returns [0, 4, 8].Ответ приходит списком блоков, поэтому мы печатаем только текстовые. По сути это обычный HTTP-запрос: текст на входе — текст на выходе. Ключи, параметры и обработку ошибок разберём в разделе об API.
⚠️ Ответ в вашем запуске будет немного другим: модель генерирует текст заново при каждом запросе. Почему — разберём в теме о temperature.
Пример 4: чат-бот по документации
Модель не видела внутренних документов вашей компании, поэтому бот сначала находит подходящий фрагмент и вставляет его в запрос:
Отвечай только по документации ниже. Если ответа нет, ответь «Не знаю».
<docs>
Заявка на отпуск подаётся в HR-портале не позже чем за 14 дней.
Больничный подтверждается справкой в течение 3 рабочих дней.
</docs>
Вопрос: За сколько дней нужно подать заявку на отпуск?Заявку на отпуск нужно подать в HR-портале не позже чем за 14 дней.Этот подход называется RAG (Retrieval-Augmented Generation — генерация с опорой на найденные данные). Ключевая мысль: модель не «знает» ваших правил — она формулирует ответ по тексту, который вы ей передали.
Чем LLM не является
Самое опасное заблуждение — считать, что модель понимает и знает как человек или хранит факты, как база данных.
- Это не база данных. В модели нет таблицы фактов: знания «размазаны» по миллиардам весов, а ответ каждый раз генерируется заново. Поэтому модель может уверенно назвать несуществующую функцию.
- Это не человек. Модель не помнит вас между чатами и не учится на ваших исправлениях.
- Это не поисковик. Без веб-поиска модель знает мир только до даты окончания обучения.
Верная модель мышления: LLM — мощный генератор правдоподобного текста и кода, а ваша задача — дать ему контекст и проверить результат.
Что вы изучите в курсе
- Основа: как работают LLM и как формулировать промпты.
- AI как инструмент: Copilot, Cursor, Claude Code; объяснение кода, отладка, тесты, рефакторинг и ревью с AI.
- AI как компонент: API моделей, JSON-ответы, tool calling, чат-боты, RAG, агенты и MCP.
- Качество и безопасность: evals, защита от prompt injection, контроль стоимости и финальный проект.
Типичные ошибки
Доверять ответу без проверки. Код от модели — черновик быстрого, но невнимательного коллеги. Запустите его, прочитайте и прогоните тесты.
Спрашивать о свежих фактах как у поисковика. Версии, даты релизов и цены модель может «помнить» устаревшими или выдумать. Проверяйте в официальных источниках, например командой pip index versions requests.
Считать, что модель помнит прошлый разговор. Новый чат начинается с чистого листа: вчерашние объяснения нужно повторить.
Вставлять секреты в чат. Пароли, ключи и персональные данные уходят на сервер провайдера. Заменяйте их заглушками:
Неверно:
Почему не подключается база? Мой .env:
DB_PASSWORD=S3cr3t-2026
Верно:
Почему не подключается база? Мой .env (пароль скрыт):
DB_PASSWORD=***Итог
- AI → машинное обучение → нейросети → генеративный AI → LLM: каждое понятие — часть предыдущего.
- LLM обучена предсказывать следующий фрагмент текста и благодаря масштабу умеет писать и объяснять код.
- Разработчик использует AI как инструмент в работе и как компонент своего приложения через API.
- Типичные сценарии: объяснение ошибок, автодополнение, вызов модели из кода, ответы по документации.
- LLM — не база данных, не человек и не поисковик: проверка результата остаётся за вами.
- Секреты и персональные данные в чат не вставляются.
Практика
- Попросите чат-ассистент объяснить ошибку из своего проекта (или
KeyErrorиз примера) и сверьте ответ с официальной документацией языка. - Спросите модель о последней версии любимой библиотеки и проверьте ответ на PyPI или npm. Запишите, совпал ли результат.
- Попросите ассистента написать
average_priceиз примера, придумайте три входных значения, на которых функция может сломаться, и проверьте их запуском. - Составьте список из пяти задач вашей учёбы или работы и для каждой решите: AI как инструмент, AI как компонент приложения или обычный код без AI. Учтите, где важны точность и повторяемость.