Table of Contents

Class FineTuningConfiguration<T, TInput, TOutput>

Namespace
AiDotNet.Models.Options
Assembly
AiDotNet.dll

Configuration for fine-tuning during model building.

public class FineTuningConfiguration<T, TInput, TOutput>

Type Parameters

T

The numeric data type used for calculations.

TInput

The input data type for the model.

TOutput

The output data type for the model.

Inheritance
FineTuningConfiguration<T, TInput, TOutput>
Inherited Members

Remarks

This configuration controls whether fine-tuning is enabled and which method/implementation is used. When enabled and no custom implementation is provided, a default fine-tuning method is created based on the configured options.

For Beginners: This is the fine-tuning "on/off switch" and settings bundle. You can leave it alone to skip fine-tuning, or configure it to apply preference learning, RLHF, or other alignment techniques after initial training.

Properties

AutoSplitForValidation

Gets or sets whether to auto-split training data for validation.

public bool AutoSplitForValidation { get; set; }

Property Value

bool

Enabled

Gets or sets whether fine-tuning is enabled.

public bool Enabled { get; set; }

Property Value

bool

Remarks

When false, fine-tuning is skipped during model building.

Implementation

Gets or sets an optional custom fine-tuning implementation.

public IFineTuning<T, TInput, TOutput>? Implementation { get; set; }

Property Value

IFineTuning<T, TInput, TOutput>

Remarks

When provided, this implementation is used instead of the default.

Options

Gets or sets the fine-tuning options.

public FineTuningOptions<T> Options { get; set; }

Property Value

FineTuningOptions<T>

TrainingData

Gets or sets the training data for fine-tuning.

public FineTuningData<T, TInput, TOutput>? TrainingData { get; set; }

Property Value

FineTuningData<T, TInput, TOutput>

Remarks

This data is used during the fine-tuning phase in BuildAsync. Different fine-tuning methods require different data:

  • SFTRequires Inputs and Outputs
  • DPO/SimPORequires Inputs, ChosenOutputs, RejectedOutputs
  • RLHF/GRPORequires Inputs and Rewards (or a reward function)

ValidationData

Gets or sets optional validation data for fine-tuning.

public FineTuningData<T, TInput, TOutput>? ValidationData { get; set; }

Property Value

FineTuningData<T, TInput, TOutput>

Remarks

If not provided and validation is needed, a portion of TrainingData will be split off.

ValidationSplitRatio

Gets or sets the ratio of data to use for validation if ValidationData is not provided.

public double ValidationSplitRatio { get; set; }

Property Value

double

Methods

ForDPO(FineTuningData<T, TInput, TOutput>)

Creates a minimal configuration for DPO with default options.

public static FineTuningConfiguration<T, TInput, TOutput> ForDPO(FineTuningData<T, TInput, TOutput> trainingData)

Parameters

trainingData FineTuningData<T, TInput, TOutput>

The preference training data.

Returns

FineTuningConfiguration<T, TInput, TOutput>

A configured FineTuningConfiguration for DPO.

ForGRPO(FineTuningData<T, TInput, TOutput>)

Creates a minimal configuration for GRPO with default options.

public static FineTuningConfiguration<T, TInput, TOutput> ForGRPO(FineTuningData<T, TInput, TOutput> trainingData)

Parameters

trainingData FineTuningData<T, TInput, TOutput>

The RL training data with rewards.

Returns

FineTuningConfiguration<T, TInput, TOutput>

A configured FineTuningConfiguration for GRPO.

ForORPO(FineTuningData<T, TInput, TOutput>)

Creates a minimal configuration for ORPO with default options.

public static FineTuningConfiguration<T, TInput, TOutput> ForORPO(FineTuningData<T, TInput, TOutput> trainingData)

Parameters

trainingData FineTuningData<T, TInput, TOutput>

The combined SFT + preference data.

Returns

FineTuningConfiguration<T, TInput, TOutput>

A configured FineTuningConfiguration for ORPO.

ForSFT(FineTuningData<T, TInput, TOutput>)

Creates a minimal configuration for SFT with default options.

public static FineTuningConfiguration<T, TInput, TOutput> ForSFT(FineTuningData<T, TInput, TOutput> trainingData)

Parameters

trainingData FineTuningData<T, TInput, TOutput>

The supervised training data.

Returns

FineTuningConfiguration<T, TInput, TOutput>

A configured FineTuningConfiguration for SFT.

ForSimPO(FineTuningData<T, TInput, TOutput>)

Creates a minimal configuration for SimPO with default options.

public static FineTuningConfiguration<T, TInput, TOutput> ForSimPO(FineTuningData<T, TInput, TOutput> trainingData)

Parameters

trainingData FineTuningData<T, TInput, TOutput>

The preference training data.

Returns

FineTuningConfiguration<T, TInput, TOutput>

A configured FineTuningConfiguration for SimPO.