Навигация по разделу AI

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

ЗаметкаОписание
AI AgentAI-агенты, мульти-агентные системы, архитектуры оркестрации, организация команд агентов. Фреймворки: LangChain, CrewAI, AutoGen
AI EngineeringПайплайн AI-разработки, создание спецификаций, интеграция AI в проекты. RAG, prompt engineering, MLOps
AI InstrumentsПрактические инструменты: Claude Code, Beads, Spec Kit. Вайбкодинг и настройка агентов
AI and Data ScienceData Science терминология, EDA, feature engineering, ML для разработчиков. Связь DS и AI
AI PromptsКоллекция промптов для обучения, исследования и повседневных задач

Общее

Что такое искусственный интеллект

Определение ИИ

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

ИИ — это класс подходов: от простых правил до сложных нейросетей. В фокусе ИИ всегда стоит поиск решений, требующих “разумности” — например, распознавание изображений, перевод текста, рекомендация товаров.

Различие между классическими алгоритмами и ИИ

  • Классические алгоритмы решают задачи по заранее прописанным правилам: если вход X, то сделать Y. Например, сортировка чисел или поиск элемента в списке.
  • ИИ — это системы, где поведение определяется обучением: не все правила заранее заданы. Система учится на примерах и строит внутреннюю модель, которая способна обобщать и работать с новыми, ранее не встречавшимися случаями.
  • Главное отличие: ИИ умеет находить закономерности, которые не были явно заложены разработчиком, и принимать сложные решения на основе опыта.

Пример для разработчика:

  • Алгоритм: если значение > 10 — вывести “больше десяти”.
  • ИИ (например, классификатор): “Определи, на картинке кошка или собака”, — модель обучается распознавать образы на основе обучающих данных, а не жёсткого набора правил.

Основные задачи, которые стараются решить с помощью ИИ

  • Распознавание образов (Computer Vision): определение объектов на изображениях, анализ видео, контроль качества на производстве

  • Обработка естественного языка (NLP): перевод текста, анализ тональности, чат-боты, генерация текстов

  • Рекомендательные системы: подбор товаров, фильмов, персонализация контента

  • Автоматизация решений: финансовые прогнозы, диагностика в медицине, автономное управление

  • Генерация контента: создание картинок, видео, текста на основе запросов (Midjourney, GPT)

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


Краткая история развития ИИ

Начало исследований (1950–1970)

В 1950 году Алан Тьюринг опубликовал работу “Computing Machinery and Intelligence”, предложив знаменитый тест Тьюринга. В 1956 году на Дартмутской конференции термин “искусственный интеллект” был официально введён. В этот период появились первые программы: Logic Theorist (доказательство теорем), ELIZA (имитация психотерапевта), перцептрон Розенблатта.

Зимы ИИ (1970-е, 1980-е)

Периоды резкого сокращения финансирования из-за нереализованных ожиданий. Первая зима (1974–1980) наступила после критики перцептронов Минским и Пейпертом. Вторая зима (1987–1993) последовала за крахом рынка экспертных систем и специализированного оборудования.

Бум экспертных систем (1980-е)

Системы на основе правил (if-then) для узких доменов: MYCIN (медицинская диагностика), DENDRAL (химический анализ). Коммерческий успех, но ограниченная масштабируемость и сложность поддержки баз знаний.

Глубокое обучение (2010+)

Прорыв AlexNet (2012) в распознавании изображений на ImageNet. Ключевые факторы: GPU-вычисления, большие датасеты, новые архитектуры (dropout, batch normalization). Развитие RNN/LSTM для последовательностей, появление GAN (2014).

Эра трансформеров и LLM (2017+)

Архитектура Transformer (статья “Attention Is All You Need”, 2017) изменила NLP. GPT (2018), BERT (2018), GPT-3 (2020), ChatGPT (2022), GPT-4 (2023), Claude (2023-2024). Генеративные модели: DALL-E, Midjourney, Stable Diffusion.

Подробнее: История ИИ — Stanford


Основные понятия и терминология

Классификация ИИ

Узкий (Narrow AI) vs Общий (AGI)

Узкий ИИ (ANI) — системы, решающие конкретную задачу: распознавание лиц, игра в шахматы, генерация текста. Все современные AI-системы относятся к этой категории.

Общий ИИ (AGI) — гипотетическая система с человеческим уровнем интеллекта, способная решать любые когнитивные задачи. Не существует на данный момент.

Суперинтеллект (ASI) — гипотетический ИИ, превосходящий человеческий интеллект во всех областях.

Слабый vs Сильный ИИ

Слабый ИИ — имитирует интеллектуальное поведение без понимания. Современные LLM формально относятся сюда: они не “понимают” текст, а предсказывают вероятные продолжения.

Сильный ИИ — обладает сознанием, самосознанием и истинным пониманием. Философская концепция, связанная с проблемой сознания.

Термины машинного обучения

ТерминОпределение
МодельМатематическая функция, преобразующая входные данные в выходные. Результат обучения на данных
Обучение (Training)Процесс подбора параметров модели для минимизации ошибки на обучающих данных
Инференс (Inference)Применение обученной модели к новым данным для получения предсказаний
ДатасетНабор примеров (данных) для обучения и оценки модели
Признак (Feature)Входная переменная модели, характеристика объекта
Целевая переменная (Target)То, что модель должна предсказать
Веса (Weights)Обучаемые параметры модели
Loss functionФункция потерь, измеряющая ошибку модели
Градиентный спускАлгоритм оптимизации весов модели

Типы машинного обучения

Обучение с учителем (Supervised Learning)

Модель учится на размеченных данных — парах (вход, правильный ответ). Задачи: классификация (спам/не спам), регрессия (прогноз цены). Примеры: линейная регрессия, деревья решений, нейросети.

Вход: [признаки] → Модель → Выход: [предсказание]
                      ↑
            Сравнение с правильным ответом
                      ↓
              Коррекция весов

Обучение без учителя (Unsupervised Learning)

Модель ищет закономерности в неразмеченных данных. Задачи: кластеризация (группировка клиентов), уменьшение размерности (PCA), поиск аномалий. Примеры: k-means, DBSCAN, autoencoders.

Обучение с подкреплением (Reinforcement Learning)

Агент учится через взаимодействие со средой, получая награды/штрафы за действия. Применение: игры (AlphaGo, Atari), робототехника, управление ресурсами. Ключевые понятия: состояние, действие, награда, политика.

Self-supervised и Semi-supervised Learning

Self-supervised — модель сама создаёт задачу из неразмеченных данных (например, предсказание следующего слова в тексте). Основа современных LLM.

Semi-supervised — комбинация небольшого количества размеченных данных и большого объёма неразмеченных.

Подробнее: Data Science терминология


Основные задачи и методы ИИ

Классификация и регрессия

Классификация

Задача отнесения объекта к одному из заранее определённых классов.

Примеры задач:

  • Спам / не спам (бинарная классификация)
  • Распознавание цифр MNIST (мультиклассовая, 10 классов)
  • Диагностика заболеваний
  • Определение тональности текста (positive/negative/neutral)

Основные методы:

МетодОсобенностиКогда использовать
Логистическая регрессияЛинейный классификатор, интерпретируемыйBaseline, линейно разделимые данные
Деревья решенийНабор правил if-then, интерпретируемыйКогда важна объяснимость
Random ForestАнсамбль деревьев, устойчив к переобучениюТабличные данные, универсален
SVMМаксимизация зазора между классамиНебольшие датасеты, высокая размерность
Нейронные сетиНелинейные зависимости любой сложностиБольшие данные, изображения, текст

Регрессия

Задача предсказания непрерывной величины.

Примеры: прогноз цены недвижимости, температуры, спроса.

Методы: линейная регрессия, полиномиальная регрессия, Ridge/Lasso, Gradient Boosting (XGBoost, LightGBM), нейросети.

Кластеризация

Задача группировки объектов по схожести без заранее известных меток.

Применение:

  • Сегментация клиентов (маркетинг)
  • Группировка документов по темам
  • Поиск аномалий (объекты вне кластеров)
  • Сжатие изображений (квантизация цветов)

Методы:

МетодПринципОсобенности
K-meansМинимизация расстояния до центроидовТребует задать K, чувствителен к выбросам
DBSCANПлотностная кластеризацияНаходит кластеры произвольной формы
HierarchicalДендрограмма (дерево слияний)Визуализация иерархии кластеров
GMMСмесь гауссовых распределенийМягкая кластеризация (вероятности)
from sklearn.cluster import KMeans
 
kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(X)

Глубокое обучение

Нейронная сеть: структура

Входной слой → Скрытые слои → Выходной слой
    (X)           (Hidden)         (Y)
     │               │               │
   [x1]──┐      ┌───[h1]───┐      [y1]
   [x2]──┼──────┼───[h2]───┼──────[y2]
   [x3]──┘      └───[h3]───┘

Компоненты:

  • Нейрон — линейная комбинация входов + функция активации
  • Слой — набор нейронов
  • Веса — обучаемые параметры связей
  • Функции активации: ReLU, Sigmoid, Tanh, Softmax

Типы нейросетей

АрхитектураПрименениеОсобенности
MLP (Multilayer Perceptron)Табличные данныеПолносвязные слои
CNN (Convolutional)Изображения, видеоСвёрточные слои, пулинг
RNN/LSTM/GRUПоследовательности, временные рядыПамять о предыдущих состояниях
TransformerNLP, генерацияМеханизм внимания (attention)
GANГенерация изображенийГенератор + дискриминатор
DiffusionГенерация (Stable Diffusion)Постепенное удаление шума

Процесс обучения

  1. Forward pass — прогон данных через сеть, получение предсказания
  2. Loss calculation — вычисление ошибки (MSE, Cross-Entropy)
  3. Backward pass — вычисление градиентов (backpropagation)
  4. Weight update — обновление весов (SGD, Adam)

Ссылки: PyTorch Tutorials, TensorFlow Guide

RAG (Retrieval-Augmented Generation)

Что такое RAG

RAG — архитектурный паттерн, дополняющий LLM внешними знаниями через поиск релевантных документов. Решает проблемы:

  • Галлюцинации — модель отвечает на основе реальных документов
  • Актуальность — данные обновляются без переобучения модели
  • Приватность — корпоративные данные не попадают в модель

Архитектура RAG

┌──────────────┐
│    Query     │
└──────┬───────┘
       │
       ▼
┌──────────────┐    ┌──────────────┐
│   Embedding  │───►│  Vector DB   │
│    Model     │    │  (Поиск)     │
└──────────────┘    └──────┬───────┘
                           │
                    Релевантные документы
                           │
       ┌───────────────────┘
       ▼
┌──────────────────────────────────┐
│  Prompt = Query + Documents      │
└──────────────┬───────────────────┘
               │
               ▼
         ┌──────────┐
         │   LLM    │
         └────┬─────┘
              │
              ▼
         ┌──────────┐
         │  Answer  │
         └──────────┘

Компоненты RAG-системы

КомпонентИнструменты
ChunkingLangChain splitters, semantic chunking
EmbeddingsOpenAI ada-002, Cohere, sentence-transformers
Vector DBPinecone, Weaviate, Chroma, Milvus, pgvector
RetrieverLangChain, LlamaIndex
RerankerCohere Rerank, BGE Reranker

Пример RAG с LangChain

from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
 
# Создание vectorstore
vectorstore = Chroma.from_documents(docs, OpenAIEmbeddings())
 
# RAG-цепочка
qa_chain = RetrievalQA.from_chain_type(
    llm=OpenAI(),
    retriever=vectorstore.as_retriever()
)
 
answer = qa_chain.run("What is the company policy on remote work?")

Подробнее: RAG в AI Engineering, LangChain RAG Tutorial


Работа с данными

Датасеты

Структура датасета

Датасет — структурированный набор данных для обучения и оценки моделей.

┌─────────────────────────────────────────────┐
│              Dataset (N samples)            │
├──────────────────────────┬──────────────────┤
│     Features (X)         │   Target (y)     │
├──────────────────────────┼──────────────────┤
│ [x1, x2, x3, ..., xn]    │       y1         │
│ [x1, x2, x3, ..., xn]    │       y2         │
│          ...             │       ...        │
└──────────────────────────┴──────────────────┘

Предобработка данных

ЭтапДействия
ОчисткаУдаление дубликатов, исправление ошибок, фильтрация выбросов
ПропускиУдаление строк, заполнение средним/медианой/модой, KNN imputer
НормализацияMin-Max scaling (0-1), Z-score (mean=0, std=1)
КодированиеOne-Hot для категорий, Label encoding для ordinal
from sklearn.preprocessing import StandardScaler
from sklearn.impute import SimpleImputer
 
# Заполнение пропусков
imputer = SimpleImputer(strategy='median')
X_filled = imputer.fit_transform(X)
 
# Нормализация
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_filled)

Разделение данных

Dataset (100%)
    ├── Training set (60-80%) — обучение модели
    ├── Validation set (10-20%) — подбор гиперпараметров
    └── Test set (10-20%) — финальная оценка
from sklearn.model_selection import train_test_split
 
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5)

Feature Engineering

Создание и отбор признаков — часто важнее выбора модели.

Техники создания признаков

ТехникаПример
АгрегацииСреднее, медиана, сумма по группам
ВременныеДень недели, час, квартал из datetime
ВзаимодействияПроизведения признаков (x1 * x2)
Полиномиальныеx², x³, sqrt(x)
ТекстовыеTF-IDF, word embeddings, длина текста

Отбор признаков (Feature Selection)

  • Filter methods — корреляция, chi-square, mutual information
  • Wrapper methods — рекурсивное удаление (RFE)
  • Embedded methods — L1 регуляризация, feature importance из деревьев
from sklearn.feature_selection import SelectKBest, f_classif
 
selector = SelectKBest(f_classif, k=10)
X_selected = selector.fit_transform(X, y)

Подробнее: Feature Engineering в DS


Инструменты для программиста

Языки программирования

Python — стандарт AI/ML

Python доминирует в AI/ML благодаря:

  • Богатая экосистема библиотек (NumPy, Pandas, scikit-learn, PyTorch)
  • Простой синтаксис для быстрого прототипирования
  • Интеграция с C/C++ для производительности
  • Jupyter notebooks для интерактивной разработки

Основные пакеты

ПакетНазначение
NumPyМногомерные массивы, линейная алгебра, быстрые вычисления
PandasТабличные данные (DataFrame), анализ, трансформации
Matplotlib / SeabornВизуализация данных
JupyterИнтерактивные notebook’и
import numpy as np
import pandas as pd
 
# NumPy: векторизованные операции
arr = np.array([1, 2, 3, 4])
print(arr * 2)  # [2, 4, 6, 8]
 
# Pandas: работа с таблицами
df = pd.read_csv('data.csv')
df.groupby('category').mean()

ML/AI-библиотеки

scikit-learn

Универсальная библиотека для классического ML. Единый API для всех алгоритмов.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
 
model = RandomForestClassifier(n_estimators=100)
scores = cross_val_score(model, X, y, cv=5)
model.fit(X_train, y_train)
predictions = model.predict(X_test)

Включает: классификацию, регрессию, кластеризацию, preprocessing, метрики.

Документация: scikit-learn.org

PyTorch

Фреймворк глубокого обучения от Meta. Динамические графы вычислений, pythonic API.

import torch
import torch.nn as nn
 
class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)
 
    def forward(self, x):
        x = torch.relu(self.fc1(x))
        return self.fc2(x)
 
model = SimpleNet()
optimizer = torch.optim.Adam(model.parameters())

Документация: pytorch.org

TensorFlow / Keras

Фреймворк от Google. Production-ready, TensorFlow Serving, TFLite для мобильных.

import tensorflow as tf
from tensorflow import keras
 
model = keras.Sequential([
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])
 
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(X_train, y_train, epochs=10)

Документация: tensorflow.org

HuggingFace Transformers

Библиотека готовых моделей (BERT, GPT, T5) и инструментов для NLP.

from transformers import pipeline
 
# Zero-shot классификация
classifier = pipeline("zero-shot-classification")
result = classifier(
    "I love this product!",
    candidate_labels=["positive", "negative"]
)
 
# Генерация текста
generator = pipeline("text-generation", model="gpt2")
text = generator("The future of AI is", max_length=50)

Документация: huggingface.co

OpenAI API / Anthropic API

Доступ к мощным LLM через API.

from anthropic import Anthropic
 
client = Anthropic()
message = client.messages.create(
    model="claude-3-sonnet-20240229",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain RAG in simple terms"}]
)

LLM-фреймворки

LangChain

Фреймворк для построения приложений на базе LLM: цепочки, агенты, RAG.

from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
 
prompt = PromptTemplate(
    input_variables=["topic"],
    template="Write a short article about {topic}"
)
 
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt)
result = chain.run(topic="machine learning")

Документация: python.langchain.com

LlamaIndex

Фреймворк для RAG и работы с данными в контексте LLM.

from llama_index import VectorStoreIndex, SimpleDirectoryReader
 
documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)
 
query_engine = index.as_query_engine()
response = query_engine.query("What is the main topic?")

Документация: llamaindex.ai


Практика и применение в программировании

Интеграция AI и LLM в проекты

Уровни интеграции

УровеньОписаниеИнструменты
APIВызовы LLM из кодаOpenAI API, Anthropic API
IDEAutocomplete, code generationGitHub Copilot, Cursor, Tabnine
CLIАвтономные агентыClaude Code, Codex
CI/CDАвтоматизация в пайплайнахCode review bots, test generation

Типовые сценарии интеграции

Генерация текста:

# Генерация описания продукта
def generate_description(product_name, features):
    prompt = f"Write a product description for {product_name} with features: {features}"
    return llm.generate(prompt)

Классификация:

# Классификация тикетов поддержки
def classify_ticket(text):
    return llm.classify(
        text,
        categories=["bug", "feature_request", "question", "billing"]
    )

Извлечение данных:

# Извлечение структурированных данных из текста
def extract_entities(text):
    prompt = f"Extract name, email, phone from: {text}. Return JSON."
    return json.loads(llm.generate(prompt))

AI-инструменты в IDE

ИнструментОсобенности
GitHub CopilotAutocomplete, chat, inline suggestions
CursorAI-first IDE, агентные возможности
TabnineOn-premise опция, приватность
CodeiumБесплатный, поддержка многих IDE

Разработка ML-проекта

Этапы ML-проекта

1. Problem Definition
   └── Бизнес-цель → ML-задача → Метрики успеха

2. Data Collection
   └── Источники → Сбор → Хранение

3. EDA & Preprocessing
   └── Анализ → Очистка → Feature Engineering

4. Modeling
   └── Baseline → Эксперименты → Выбор модели

5. Evaluation
   └── Валидация → Тестирование → Error analysis

6. Deployment
   └── Serving → Мониторинг → Обновление

Чек-лист ML-проекта

## Problem Definition
- [ ] Бизнес-задача сформулирована
- [ ] ML-подход обоснован (не over-engineering)
- [ ] Success metrics определены
- [ ] Baseline установлен
 
## Data
- [ ] Данные собраны и доступны
- [ ] EDA проведён
- [ ] Качество данных проверено
- [ ] Train/val/test split выполнен
 
## Modeling
- [ ] Baseline модель обучена
- [ ] Эксперименты задокументированы
- [ ] Лучшая модель выбрана
- [ ] Гиперпараметры оптимизированы
 
## Evaluation
- [ ] Метрики на test set рассчитаны
- [ ] Error analysis проведён
- [ ] Bias/fairness проверены
 
## Deployment
- [ ] Модель сериализована
- [ ] API/serving настроены
- [ ] Мониторинг подключён
- [ ] Документация написана

Подробнее: AI Engineering Pipeline


Подробности обучения моделей

Процесс обучения

Train / Validation / Test Split

┌─────────────────────────────────────────────────────┐
│                  Full Dataset                       │
├────────────────────┬──────────┬─────────────────────┤
│    Training (70%)  │Val (15%) │    Test (15%)       │
│    Обучение модели │ Tuning   │  Финальная оценка   │
└────────────────────┴──────────┴─────────────────────┘

Cross-validation — более надёжная оценка на небольших датасетах:

from sklearn.model_selection import cross_val_score
 
scores = cross_val_score(model, X, y, cv=5)
print(f"Mean: {scores.mean():.3f} ± {scores.std():.3f}")

Overfitting vs Underfitting

ПроблемаПризнакиРешения
OverfittingTrain accuracy >> Test accuracyРегуляризация, dropout, больше данных, ранняя остановка
UnderfittingTrain accuracy низкаяБолее сложная модель, больше признаков, меньше регуляризации
Accuracy
    │
    │    ──────── Training
    │   /
    │  /    ────── Validation
    │ /   /
    │/   /
    ├──────────────────────► Model Complexity
    │
   Underfitting  ◄──── Sweet Spot ────►  Overfitting

Метрики качества

Для классификации:

МетрикаФормулаКогда важна
Accuracy(TP+TN) / TotalСбалансированные классы
PrecisionTP / (TP+FP)Цена false positive высока (спам)
RecallTP / (TP+FN)Цена false negative высока (болезни)
F12 * P*R / (P+R)Баланс precision/recall
ROC-AUCArea under ROCОбщее качество, разные пороги
from sklearn.metrics import classification_report, roc_auc_score
 
print(classification_report(y_test, y_pred))
auc = roc_auc_score(y_test, y_pred_proba)

Confusion Matrix:

                 Predicted
              │  Pos  │  Neg  │
         ─────┼───────┼───────┤
Actual Pos    │  TP   │  FN   │
         ─────┼───────┼───────┤
Actual Neg    │  FP   │  TN   │

Настройка моделей

Параметры vs Гиперпараметры

ТипОпределениеПримеры
ПараметрыОбучаются из данныхВеса нейросети, коэффициенты регрессии
ГиперпараметрыЗадаются до обученияLearning rate, число слоёв, max_depth

Поиск гиперпараметров

Grid Search — перебор всех комбинаций:

from sklearn.model_selection import GridSearchCV
 
param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [5, 10, 15],
    'min_samples_split': [2, 5, 10]
}
 
grid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
grid.fit(X_train, y_train)
print(grid.best_params_)

Random Search — случайная выборка параметров (эффективнее при большом пространстве):

from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
 
param_dist = {
    'n_estimators': randint(50, 500),
    'max_depth': randint(3, 20)
}
 
search = RandomizedSearchCV(model, param_dist, n_iter=50, cv=5)

Bayesian Optimization — умный поиск на основе предыдущих результатов:

# Optuna
import optuna
 
def objective(trial):
    n_estimators = trial.suggest_int('n_estimators', 50, 500)
    max_depth = trial.suggest_int('max_depth', 3, 20)
    model = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth)
    return cross_val_score(model, X, y, cv=5).mean()
 
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)

Ссылки: Optuna, Weights & Biases


Этические и правовые аспекты

Риски и ограничения ИИ

РискОписаниеМитигация
ГаллюцинацииLLM генерируют правдоподобную, но ложную информациюRAG, fact-checking, ограничение домена
BiasМодели воспроизводят предубеждения из данныхАудит данных, fairness metrics, diverse datasets
PrivacyУтечка персональных данныхDifferential privacy, data anonymization
SecurityPrompt injection, adversarial attacksInput validation, guardrails
ReliabilityНепредсказуемое поведениеТестирование, мониторинг, fallbacks

Галлюцинации LLM

LLM предсказывают вероятные продолжения, а не проверяют факты. Они могут:

  • Придумывать несуществующие цитаты и ссылки
  • Уверенно давать неправильные ответы
  • Смешивать факты из разных контекстов

Снижение галлюцинаций:

  • Использование RAG с проверенными источниками
  • Запрос на цитирование источников
  • Ограничение задач конкретным доменом
  • Температура = 0 для детерминированных ответов

Приватность и безопасность

Проблемы:

  • Модели могут запоминать данные из обучения (membership inference)
  • Prompt injection — внедрение вредоносных инструкций
  • Jailbreaking — обход ограничений модели

Практики:

  • Не передавать чувствительные данные в публичные API
  • Использовать on-premise или private cloud решения
  • Валидировать и санитизировать входные данные
  • Применять content filtering на выходе

Этическая ответственность разработчика

## Чек-лист этичного AI
 
- [ ] Прозрачность: пользователь знает, что взаимодействует с AI
- [ ] Объяснимость: можно объяснить решения модели
- [ ] Fairness: проверен bias по защищённым группам
- [ ] Privacy: данные пользователей защищены
- [ ] Safety: предусмотрены safeguards от вредного использования
- [ ] Accountability: есть ответственные за систему люди

Регулирование AI

РегионРегулирование
EUAI Act — классификация по уровню риска, требования к high-risk AI
USExecutive Order on AI, секторальное регулирование
ChinaРегулирование алгоритмов рекомендаций, генеративного AI

Ссылки: EU AI Act, NIST AI RMF


Продвинутые темы

GAN (Generative Adversarial Networks)

Архитектура из двух сетей: Generator создаёт изображения, Discriminator отличает реальные от сгенерированных. Соревнование улучшает обе сети.

┌────────────┐    Fake image    ┌────────────────┐
│ Generator  │─────────────────►│ Discriminator  │──► Real/Fake
└────────────┘                  └────────────────┘
      ▲                                 │
      │         Feedback                │
      └─────────────────────────────────┘

Применение: генерация лиц (StyleGAN), image-to-image (pix2pix), super resolution.

Проблемы: mode collapse, нестабильность обучения.

Reinforcement Learning (RL)

Агент учится через взаимодействие со средой, получая награды за действия.

┌───────────┐  action   ┌─────────────┐
│   Agent   │──────────►│ Environment │
└───────────┘           └─────────────┘
      ▲                       │
      │    state, reward      │
      └───────────────────────┘

Ключевые понятия:

  • Policy — стратегия выбора действий
  • Value function — ожидаемая награда
  • Q-learning — оценка качества пар (состояние, действие)

Применение: игры (AlphaGo, Atari), робототехника, оптимизация ресурсов, RLHF для LLM.

Self-supervised Learning

Модель создаёт задачу из неразмеченных данных. Основа современных LLM и foundation models.

Примеры задач:

  • Masked Language Modeling (BERT) — предсказание скрытых слов
  • Next Token Prediction (GPT) — предсказание следующего токена
  • Contrastive Learning (CLIP) — сопоставление изображений и текста

AutoML и MLOps

AutoML

Автоматизация выбора модели, feature engineering, hyperparameter tuning.

ИнструментОсобенности
AutoGluonЛучший для табличных данных, stacking
H2O AutoMLEnterprise, интерпретируемость
Google AutoMLCloud-based, images/text/tables
TPOTГенетические алгоритмы

MLOps

DevOps-практики для ML: версионирование, CI/CD, мониторинг моделей.

┌────────────────────────────────────────────────────────────┐
│                      MLOps Pipeline                        │
├────────────┬────────────┬────────────┬────────────────────┤
│ Data       │ Training   │ Deployment │ Monitoring         │
│ Versioning │ Tracking   │ Serving    │ Drift Detection    │
├────────────┼────────────┼────────────┼────────────────────┤
│ DVC        │ MLflow     │ Seldon     │ Evidently          │
│ Delta Lake │ W&B        │ BentoML    │ Prometheus         │
└────────────┴────────────┴────────────┴────────────────────┘

Ссылки: MLflow, DVC, Weights & Biases


Как закрепить материал и прокачаться в практике

Микропроекты с LLM

ПроектСложностьЧему учит
Чат-бот с RAGСредняяLangChain, embeddings, vector DB
Классификатор тикетовНизкаяPrompt engineering, API интеграция
Summarizer документовНизкаяChunking, prompt design
Code reviewerСредняяАгенты, tool use

Классические ML-задачи

ДатасетЗадачаЧто практикуется
IrisКлассификацияBaseline, метрики
TitanicКлассификацияFeature engineering, EDA
MNISTКлассификацияНейросети, CNN
Boston HousingРегрессияPreprocessing, регрессоры
IMDB ReviewsNLPText classification

Ресурсы для обучения

Курсы:

Соревнования:

  • Kaggle — соревнования и датасеты
  • DrivenData — социально значимые задачи

Чтение: