1. Основы LLM и локальная Ollama: модели, промпты, параметры
Основы LLM и локальная Ollama: модели, промпты, параметры
Зачем это нужно в курсе про ИИ-агентов
ИИ-агент в контексте этого курса — это программа на Python, которая:Чтобы агент работал предсказуемо, нужно понимать базовую механику LLM, уметь собирать промпты и управлять параметрами генерации. В этой статье — фундамент, на который мы будем опираться дальше.
Что такое LLM простыми словами
LLM (Large Language Model) — это модель, которая по входному тексту предсказывает продолжение текста. Она не “знает” мир напрямую и не “думает” как человек, но умеет статистически правдоподобно продолжать текст, опираясь на обученные закономерности.Практическая модель общения с LLM:
Токены
Модель работает не с “символами” и не всегда со “словами”, а с токенами — кусочками текста (части слов, слова, знаки). Это важно, потому что:Контекстное окно
У каждой модели есть ограничение на размер контекстного окна — сколько токенов она может учитывать одновременно (история + инструкции + документы + текущий вопрос). Если контекст слишком большой, часть информации не поместится.Практические выводы:
Детерминированность и “галлюцинации”
Модель может уверенно выдавать неверные детали — это часто называют галлюцинациями. На практике снижать их помогают:Ollama: что это и как устроено
Ollama — это способ запускать LLM локально (на вашем компьютере) и обращаться к ним через CLI и HTTP API.Полезные официальные источники:
Ментальная модель Ollama
Ollama для нас — это:!Общая схема: Python отправляет промпт и параметры в Ollama, получает ответ модели
Базовые команды CLI
Набор команд может расширяться, но типовая базовая работа выглядит так:Примеры:
Если модель в названии отличается (например, вы выбрали другую), используйте её идентификатор из ollama list.
Модели: как выбирать для задач агента
Модели отличаются по нескольким практическим осям.Размер и требования к ресурсам
Чем больше модель, тем чаще она:Для агента важно подобрать баланс:
Специализация
Модели могут быть:В рамках курса мы будем выбирать модель под сценарий, а не “одну лучшую”.
Чат-модель и режим генерации
На практике встречаются два близких режима:Для агентов чаще удобнее chat-подход.
Промпты: структура и роли
Промпт — это не только “вопрос”. Это программа управления поведением модели, написанная текстом.Роли сообщений
В чат-подходе обычно используют роли:Практическое правило:
Инструкции, контекст, формат
Чтобы ответы были пригодны для программной обработки в агенте, часто нужно:Пример промпта под “структурированный” ответ:
Few-shot примеры
Если модель нестабильно следует формату, помогает few-shot:Это увеличивает длину промпта, но часто сильно повышает качество.
Параметры генерации: как управлять “случайностью”
Параметры — это “ручки”, которые влияют на стиль и стабильность. В Ollama они передаются как options (названия могут отличаться в зависимости от метода и версии, но смысл сохраняется).Температура (temperature)
Температура управляет случайностью.Практический ориентир:
Top-p (nucleus sampling)
top_p ограничивает выбор следующего токена наиболее вероятным “ядром”.Часто используют либо temperature, либо top_p как основную ручку, чтобы не усложнять отладку.
Лимит ответа (num_predict / max tokens)
Ограничивает длину генерируемого ответа.Stop-последовательности (stop)
Позволяет указать строки, при встрече которых генерация остановится.Полезно, когда:
Seed (если доступен)
Фиксация seed делает результат более воспроизводимым при одинаковых условиях. Это удобно для тестирования агента.Практика: запросы к Ollama через CLI и Python
Ниже — минимальные способы работать из кода. В следующих статьях мы начнём строить агента поверх этих вызовов.CLI: быстрые эксперименты
Для отладки промптов удобно сначала погонять их в терминале.Пример идеи рабочего процесса:
HTTP API: прямой вызов из Python
У Ollama есть локальный HTTP API (обычно наhttp://localhost:11434). Документация API есть в репозитории и на сайте Ollama.Пример вызова chat через requests:
Замечания для разработки агента:
stream: False, а потоковую генерацию подключайте позже.Python SDK (если вы предпочитаете готовую обёртку)
У Ollama есть официальная Python-библиотекаollama (проверьте актуальный способ установки в документации Ollama, так как детали могут меняться).Логика использования похожа: вы передаёте модель, сообщения и опции.
Типовые ошибки новичков и как их избегать
Слишком общие промпты
Если вы пишете “Сделай хорошо”, модель не знает критериев.Лучше:
Смешивание задач в одном запросе
Один запрос — одна понятная цель. Если нужно несколько шагов, агент может:Неуправляемая история
История чата растёт, контекст переполняется, ответы деградируют.Решения, которые мы разберём в следующих темах:
Что дальше по курсу
В следующей статье мы начнём превращать “просто запросы к LLM” в агентный цикл:И всё это — поверх локальной Ollama и Python.