MistralClient.API.FineTuning (mistralex_ai v0.1.0)
View SourceFine-tuning API for creating and managing fine-tuning jobs.
This module provides functions to:
- Create fine-tuning jobs
- List fine-tuning jobs with filtering
- Get fine-tuning job details
- Start, cancel fine-tuning jobs
- Archive/unarchive fine-tuned models
- Update fine-tuned models
Examples
# Create a fine-tuning job
config = MistralClient.Config.new(api_key: "your-api-key")
hyperparameters = %MistralClient.Models.CompletionTrainingParameters{
learning_rate: 0.0001,
training_steps: 1000
}
request = %MistralClient.Models.FineTuningJobRequest{
model: "open-mistral-7b",
hyperparameters: hyperparameters,
training_files: [%MistralClient.Models.TrainingFile{file_id: "file-123"}]
}
{:ok, job} = MistralClient.API.FineTuning.create_job(config, request)
# List jobs with filtering
{:ok, jobs} = MistralClient.API.FineTuning.list_jobs(config, %{
status: "RUNNING",
model: "open-mistral-7b"
})
# Get job details
{:ok, job} = MistralClient.API.FineTuning.get_job(config, "job-123")
# Start a job
{:ok, job} = MistralClient.API.FineTuning.start_job(config, "job-123")
# Cancel a job
{:ok, job} = MistralClient.API.FineTuning.cancel_job(config, "job-123")
Summary
Functions
Archives a fine-tuned model.
Cancels a fine-tuning job.
Creates a new fine-tuning job.
Gets details of a specific fine-tuning job.
Lists fine-tuning jobs with optional filtering.
Starts a validated fine-tuning job.
Unarchives a fine-tuned model.
Updates a fine-tuned model.
Types
Functions
@spec archive_model(MistralClient.Config.t(), String.t()) :: {:ok, map()} | {:error, term()}
Archives a fine-tuned model.
Parameters
config
- Client configurationmodel_id
- The ID of the model to archive
Examples
{:ok, model} = MistralClient.API.FineTuning.archive_model(config, "ft:open-mistral-7b:my-model:xxx")
@spec cancel_job(MistralClient.Config.t(), String.t()) :: {:ok, MistralClient.Models.FineTuningJobResponse.t()} | {:error, term()}
Cancels a fine-tuning job.
Parameters
config
- Client configurationjob_id
- The ID of the job to cancel
Examples
{:ok, job} = MistralClient.API.FineTuning.cancel_job(config, "job-123")
@spec create_job( MistralClient.Config.t(), MistralClient.Models.FineTuningJobRequest.t() ) :: {:ok, MistralClient.Models.FineTuningJobResponse.t()} | {:error, term()}
Creates a new fine-tuning job.
Parameters
config
- Client configurationrequest
- Fine-tuning job request parameters
Request Parameters
model
(required) - The name of the model to fine-tunehyperparameters
(required) - Training hyperparameterstraining_files
- List of training file IDsvalidation_files
- List of validation file IDssuffix
- String to add to fine-tuned model nameintegrations
- List of integrations (e.g., Weights & Biases)auto_start
- Whether to automatically start the jobinvalid_sample_skip_percentage
- Percentage of invalid samples to skipjob_type
- Type of fine-tuning jobrepositories
- List of GitHub repositoriesclassifier_targets
- Classifier targets (for classifier jobs)
Examples
hyperparameters = %CompletionTrainingParameters{
learning_rate: 0.0001,
training_steps: 1000,
weight_decay: 0.01
}
request = %FineTuningJobRequest{
model: "open-mistral-7b",
hyperparameters: hyperparameters,
training_files: [%TrainingFile{file_id: "file-123"}],
suffix: "my-model"
}
{:ok, job} = MistralClient.API.FineTuning.create_job(config, request)
@spec get_job(MistralClient.Config.t(), String.t()) :: {:ok, MistralClient.Models.FineTuningJobResponse.t()} | {:error, term()}
Gets details of a specific fine-tuning job.
Parameters
config
- Client configurationjob_id
- The ID of the job to retrieve
Examples
{:ok, job} = MistralClient.API.FineTuning.get_job(config, "job-123")
@spec list_jobs(MistralClient.Config.t(), map()) :: {:ok, MistralClient.Models.FineTuningJobsResponse.t()} | {:error, term()}
Lists fine-tuning jobs with optional filtering.
Parameters
config
- Client configurationoptions
- Filtering and pagination options
Options
page
- Page number (default: 0)page_size
- Number of items per page (default: 100)model
- Filter by model namecreated_after
- Filter by creation date (DateTime)created_before
- Filter by creation date (DateTime)created_by_me
- Show only jobs created by the caller (default: false)status
- Filter by job statuswandb_project
- Filter by Weights & Biases projectwandb_name
- Filter by Weights & Biases run namesuffix
- Filter by model suffix
Examples
# List all jobs
{:ok, jobs} = MistralClient.API.FineTuning.list_jobs(config)
# List running jobs for a specific model
{:ok, jobs} = MistralClient.API.FineTuning.list_jobs(config, %{
status: :running,
model: "open-mistral-7b",
page_size: 50
})
@spec start_job(MistralClient.Config.t(), String.t()) :: {:ok, MistralClient.Models.FineTuningJobResponse.t()} | {:error, term()}
Starts a validated fine-tuning job.
Parameters
config
- Client configurationjob_id
- The ID of the job to start
Examples
{:ok, job} = MistralClient.API.FineTuning.start_job(config, "job-123")
@spec unarchive_model(MistralClient.Config.t(), String.t()) :: {:ok, map()} | {:error, term()}
Unarchives a fine-tuned model.
Parameters
config
- Client configurationmodel_id
- The ID of the model to unarchive
Examples
{:ok, model} = MistralClient.API.FineTuning.unarchive_model(config, "ft:open-mistral-7b:my-model:xxx")
@spec update_model(MistralClient.Config.t(), String.t(), map()) :: {:ok, map()} | {:error, term()}
Updates a fine-tuned model.
Parameters
config
- Client configurationmodel_id
- The ID of the model to updateupdates
- Map of fields to update
Examples
{:ok, model} = MistralClient.API.FineTuning.update_model(config, "ft:open-mistral-7b:my-model:xxx", %{
name: "Updated Model Name"
})