Home Knowledge Base Hyperparameter Tuning

Hyperparameter Tuning

Key Hyperparameters for LLMs

Learning Rate

SettingTypical Range
Pretraining1e-4 to 3e-4
Full fine-tuning1e-5 to 5e-5
LoRA1e-4 to 3e-4
LoRA rank8, 16, 32, 64

Training

HyperparameterConsiderations
Batch sizeLarger = more stable, memory permitting
Warmup steps1-5% of total steps
Weight decay0.01 to 0.1
Max sequence lengthTask-dependent
Epochs1-5 for fine-tuning

Tuning Strategies

Grid Search Try all combinations:

learning_rates = [1e-5, 5e-5, 1e-4]
batch_sizes = [8, 16, 32]

for lr in learning_rates:
    for bs in batch_sizes:
        result = train_and_eval(lr=lr, batch_size=bs)

Exhaustive but expensive.

Random Search Sample randomly from distributions:

import random

lr = 10 ** random.uniform(-5, -3)  # Log-uniform
bs = random.choice([8, 16, 32, 64])

More efficient than grid search for most problems.

Bayesian Optimization Use past results to guide search:

from optuna import create_study

def objective(trial):
    lr = trial.suggest_float("lr", 1e-5, 1e-3, log=True)
    bs = trial.suggest_int("batch_size", 8, 64, step=8)
    return train_and_eval(lr=lr, batch_size=bs)

study = create_study(direction="minimize")
study.optimize(objective, n_trials=20)

Tools for HP Sweeps

ToolTypeFeatures
OptunaPython libraryBayesian optimization
Ray TuneDistributedScales to clusters
W&B SweepsCommercialGreat visualization
HydraConfigConfig management

Weights & Biases Sweep

# sweep.yaml
method: bayes
metric:
  name: val_loss
  goal: minimize
parameters:
  learning_rate:
    min: 0.00001
    max: 0.001
  batch_size:
    values: [8, 16, 32]
wandb sweep sweep.yaml
wandb agent <sweep_id>

Best Practices

Start Simple 1. Use published hyperparameters as baseline 2. Tune one hyperparameter at a time 3. Focus on learning rate first

Resource Allocation

Common Mistakes

hyperparametertuningsweep

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.