Training

LoRA Training Module

Handles training of domain-specific LoRA adapters.

class ual_adapter.training.trainer.TextDataset(texts: List[str], tokenizer: PreTrainedTokenizer, max_length: int = 512)[source]

Bases: Dataset

Simple text dataset for training.

__init__(texts: List[str], tokenizer: PreTrainedTokenizer, max_length: int = 512)[source]

Initialize text dataset.

Parameters:
  • texts – List of training texts

  • tokenizer – Tokenizer to use

  • max_length – Maximum sequence length

class ual_adapter.training.trainer.LoRATrainer(base_model: PreTrainedModel, tokenizer: PreTrainedTokenizer, device: str = 'auto')[source]

Bases: object

Trainer for LoRA adapters with domain specialization.

__init__(base_model: PreTrainedModel, tokenizer: PreTrainedTokenizer, device: str = 'auto')[source]

Initialize LoRA trainer.

Parameters:
  • base_model – Base model to fine-tune

  • tokenizer – Tokenizer for the model

  • device – Device to train on

train_adapter(adapter_name: str, training_texts: List[str], validation_texts: List[str] | None = None, rank: int = 16, alpha: float = 16.0, dropout: float = 0.1, target_modules: List[str] | None = None, learning_rate: float = 0.0001, num_epochs: int = 3, batch_size: int = 8, warmup_steps: int = 100, logging_steps: int = 10, save_steps: int = 500, output_dir: str | None = None, use_huggingface_trainer: bool = True, **kwargs) Dict[str, Any][source]

Train a LoRA adapter on domain-specific data.

Parameters:
  • adapter_name – Name for the adapter

  • training_texts – List of training texts

  • validation_texts – Optional validation texts

  • rank – LoRA rank

  • alpha – LoRA alpha parameter

  • dropout – LoRA dropout

  • target_modules – Target modules for LoRA

  • learning_rate – Learning rate

  • num_epochs – Number of training epochs

  • batch_size – Batch size

  • warmup_steps – Number of warmup steps

  • logging_steps – Log every N steps

  • save_steps – Save checkpoint every N steps

  • output_dir – Directory to save checkpoints

  • use_huggingface_trainer – Whether to use HF Trainer

  • **kwargs – Additional training arguments

Returns:

Dictionary with training results

compute_perplexity(model: Module, texts: List[str], batch_size: int = 8) float[source]

Compute perplexity on a set of texts.

Parameters:
  • model – Model to evaluate

  • texts – Texts to compute perplexity on

  • batch_size – Batch size for evaluation

Returns:

Perplexity value

LoRATrainer Class

class ual_adapter.training.trainer.LoRATrainer(base_model: PreTrainedModel, tokenizer: PreTrainedTokenizer, device: str = 'auto')[source]

Trainer for LoRA adapters with domain specialization.

__init__(base_model: PreTrainedModel, tokenizer: PreTrainedTokenizer, device: str = 'auto')[source]

Initialize LoRA trainer.

Parameters:
  • base_model – Base model to fine-tune

  • tokenizer – Tokenizer for the model

  • device – Device to train on

train_adapter(adapter_name: str, training_texts: List[str], validation_texts: List[str] | None = None, rank: int = 16, alpha: float = 16.0, dropout: float = 0.1, target_modules: List[str] | None = None, learning_rate: float = 0.0001, num_epochs: int = 3, batch_size: int = 8, warmup_steps: int = 100, logging_steps: int = 10, save_steps: int = 500, output_dir: str | None = None, use_huggingface_trainer: bool = True, **kwargs) Dict[str, Any][source]

Train a LoRA adapter on domain-specific data.

Parameters:
  • adapter_name – Name for the adapter

  • training_texts – List of training texts

  • validation_texts – Optional validation texts

  • rank – LoRA rank

  • alpha – LoRA alpha parameter

  • dropout – LoRA dropout

  • target_modules – Target modules for LoRA

  • learning_rate – Learning rate

  • num_epochs – Number of training epochs

  • batch_size – Batch size

  • warmup_steps – Number of warmup steps

  • logging_steps – Log every N steps

  • save_steps – Save checkpoint every N steps

  • output_dir – Directory to save checkpoints

  • use_huggingface_trainer – Whether to use HF Trainer

  • **kwargs – Additional training arguments

Returns:

Dictionary with training results

compute_perplexity(model: Module, texts: List[str], batch_size: int = 8) float[source]

Compute perplexity on a set of texts.

Parameters:
  • model – Model to evaluate

  • texts – Texts to compute perplexity on

  • batch_size – Batch size for evaluation

Returns:

Perplexity value