Class FineTuningConfiguration<T, TInput, TOutput>
Configuration for fine-tuning during model building.
public class FineTuningConfiguration<T, TInput, TOutput>
Type Parameters
TThe numeric data type used for calculations.
TInputThe input data type for the model.
TOutputThe 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
Enabled
Gets or sets whether fine-tuning is enabled.
public bool Enabled { get; set; }
Property Value
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
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
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
trainingDataFineTuningData<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
trainingDataFineTuningData<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
trainingDataFineTuningData<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
trainingDataFineTuningData<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
trainingDataFineTuningData<T, TInput, TOutput>The preference training data.
Returns
- FineTuningConfiguration<T, TInput, TOutput>
A configured FineTuningConfiguration for SimPO.