Большие языковые модели (LLM) стали таким же рабочим инструментом программиста, как редактор кода, Git или терминал. Они объясняют ошибки, пишут черновики функций и тестов, помогают разобраться в чужом коде, а через API становятся частью ваших собственных приложений. В этой теме разберёмся, что такое LLM, где её место среди других понятий AI и как устроен курс.

От AI к LLM: вложенные понятия

Термины AI, машинное обучение и нейросети часто путают, хотя они вложены друг в друга, как матрёшка:

ПонятиеЧто этоПример
Искусственный интеллект (AI)вся область программ, решающих «человеческие» задачишахматная программа, навигатор
Машинное обучение (ML)часть AI: правила выводятся из примеров, а не пишутся вручнуюспам-фильтр
Нейронные сетичасть ML: модели из связанных «нейронов» с настраиваемыми числами — весамираспознавание лиц
Генеративный AIнейросети, создающие новый контент: текст, картинки, звук, кодгенератор изображений
Большая языковая модель (LLM)генеративная нейросеть, обученная на огромном объёме текста и кодачат-ассистенты, автодополнение

Разницу между обычным программированием и машинным обучением хорошо видно на спам-фильтре. В классическом подходе правило пишет программист:

python
# классический подход: правило придумывает человек
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 разработчику

На этом делении построен весь курс:

  1. AI как инструмент в работе. Вы общаетесь с ассистентом в чате, редакторе или терминале. Модель помогает писать, понимать и проверять код, но решение принимаете вы.
  2. AI как компонент вашего приложения. Ваш код отправляет запрос к модели через API и использует ответ: классифицирует обращения, отвечает по документации, извлекает данные из текста.

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

Пример 1: объяснение ошибки в чате

Самый частый сценарий — вставить код и текст ошибки в чат-ассистент:

text
Почему этот код падает и как его исправить?

user = {"name": "Aysel"}
print(user["email"])

KeyError: 'email'
text
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:

python
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 устроены похоже):

python
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)
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: чат-бот по документации

Модель не видела внутренних документов вашей компании, поэтому бот сначала находит подходящий фрагмент и вставляет его в запрос:

text
Отвечай только по документации ниже. Если ответа нет, ответь «Не знаю».

<docs>
Заявка на отпуск подаётся в HR-портале не позже чем за 14 дней.
Больничный подтверждается справкой в течение 3 рабочих дней.
</docs>

Вопрос: За сколько дней нужно подать заявку на отпуск?
text
Заявку на отпуск нужно подать в 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.

Считать, что модель помнит прошлый разговор. Новый чат начинается с чистого листа: вчерашние объяснения нужно повторить.

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

text
Неверно:
Почему не подключается база? Мой .env:
DB_PASSWORD=S3cr3t-2026

Верно:
Почему не подключается база? Мой .env (пароль скрыт):
DB_PASSWORD=***

Итог

  • AI → машинное обучение → нейросети → генеративный AI → LLM: каждое понятие — часть предыдущего.
  • LLM обучена предсказывать следующий фрагмент текста и благодаря масштабу умеет писать и объяснять код.
  • Разработчик использует AI как инструмент в работе и как компонент своего приложения через API.
  • Типичные сценарии: объяснение ошибок, автодополнение, вызов модели из кода, ответы по документации.
  • LLM — не база данных, не человек и не поисковик: проверка результата остаётся за вами.
  • Секреты и персональные данные в чат не вставляются.

Практика

  1. Попросите чат-ассистент объяснить ошибку из своего проекта (или KeyError из примера) и сверьте ответ с официальной документацией языка.
  2. Спросите модель о последней версии любимой библиотеки и проверьте ответ на PyPI или npm. Запишите, совпал ли результат.
  3. Попросите ассистента написать average_price из примера, придумайте три входных значения, на которых функция может сломаться, и проверьте их запуском.
  4. Составьте список из пяти задач вашей учёбы или работы и для каждой решите: AI как инструмент, AI как компонент приложения или обычный код без AI. Учтите, где важны точность и повторяемость.