Настройка Weights & Biases (W&B) для отслеживания экспериментов

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Настройка Weights & Biases (W&B) для отслеживания экспериментов
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Настройка Weights & Biases для трекинга экспериментов

W&B (Weights & Biases) — наиболее популярный коммерческий трекер экспериментов. Сильные стороны: визуализация обучения в реальном времени, Sweeps (гиперпараметрический поиск), Artifacts (версионирование данных и моделей), Reports (документация экспериментов).

Базовая настройка

pip install wandb
wandb login  # или WANDB_API_KEY env variable
import wandb

# Инициализация run
run = wandb.init(
    project="fraud-detection",
    name="lgbm-experiment-42",
    config={
        "learning_rate": 0.05,
        "n_estimators": 500,
        "max_depth": 6,
        "dataset": "v2.3",
    },
    tags=["lgbm", "production-candidate"],
    notes="Testing new feature engineering"
)

# Логирование метрик
for epoch in range(config.epochs):
    train_loss, val_loss = train_step(epoch)
    wandb.log({"train/loss": train_loss, "val/loss": val_loss, "epoch": epoch})

# Логирование артефактов
artifact = wandb.Artifact("fraud-model", type="model")
artifact.add_file("model.pkl")
run.log_artifact(artifact)

wandb.finish()

W&B Sweeps для гиперпараметрического поиска

sweep_config = {
    "method": "bayes",  # bayes / random / grid
    "metric": {"name": "val/f1", "goal": "maximize"},
    "parameters": {
        "learning_rate": {"distribution": "log_uniform_values", "min": 1e-4, "max": 1e-1},
        "n_estimators": {"values": [100, 200, 500, 1000]},
        "max_depth": {"min": 3, "max": 10},
        "num_leaves": {"min": 20, "max": 100},
    }
}

sweep_id = wandb.sweep(sweep_config, project="fraud-detection")

def train_sweep():
    with wandb.init() as run:
        config = run.config
        model = LGBMClassifier(**config)
        model.fit(X_train, y_train)
        f1 = f1_score(y_test, model.predict(X_test))
        wandb.log({"val/f1": f1})

wandb.agent(sweep_id, function=train_sweep, count=50)

W&B Tables для анализа данных

# Логирование примеров с предсказаниями
table = wandb.Table(columns=["text", "true_label", "predicted", "confidence", "is_correct"])
for text, true, pred, conf in test_samples[:100]:
    table.add_data(text, true, pred, conf, true == pred)
wandb.log({"predictions": table})

W&B хранит все версии таблиц — можно сравнивать предсказания разных моделей на одних данных.

Self-hosted W&B Server

# Для on-premise деплоя
docker run -d --name wandb-server \
  -p 8080:8080 \
  -v wandb-data:/vol \
  -e LICENSE=xxx \
  wandb/local:latest