View Source ExOpenAI.Components.CreateFineTuningJobRequest (ex_openai.ex v2.0.0-beta2)

Module for representing the OpenAI schema CreateFineTuningJobRequest.

Fields

  • :hyperparameters - optional - {:%{}, [], [{{:optional, [], [:batch_size]}, {:|, [], [:auto, {:integer, [], []}]}}, {{:optional, [], [:learning_rate_multiplier]}, {:|, [], [:auto, {:number, [], []}]}}, {{:optional, [], [:n_epochs]}, {:|, [], [:auto, {:integer, [], []}]}}]}
    The hyperparameters used for the fine-tuning job. This value is now deprecated in favor of method, and should be passed in under the method parameter.

  • :integrations - optional - [{:%{}, [], [{{:required, [], [:type]}, :wandb}, {{:required, [], [:wandb]}, {:%{}, [], [{{:optional, [], [:entity]}, {:|, [], [{{:., [], [{:__aliases__, [alias: false], [:String]}, :t]}, [], []}, nil]}}, {{:optional, [], [:name]}, {:|, [], [{{:., [], [{:__aliases__, [alias: false], [:String]}, :t]}, [], []}, nil]}}, {{:required, [], [:project]}, {{:., [], [{:__aliases__, [alias: false], [:String]}, :t]}, [], []}}, {{:optional, [], [:tags]}, {:list, [], [{{:., [], [{:__aliases__, [alias: false], [:String]}, :t]}, [], []}]}}]}}]}] | nil
    A list of integrations to enable for your fine-tuning job.

  • :metadata - optional - ExOpenAI.Components.Metadata.t()

  • :method - optional - ExOpenAI.Components.FineTuneMethod.t()

  • :model - required - String.t() | :"babbage-002" | :"davinci-002" | :"gpt-3.5-turbo" | :"gpt-4o-mini"
    The name of the model to fine-tune. You can select one of the supported models.

  • :seed - optional - integer() | nil
    The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. If a seed is not specified, one will be generated for you.
    Constraints: minimum: 0, maximum: 2147483647

  • :suffix - optional - String.t() | nil
    A string of up to 64 characters that will be added to your fine-tuned model name.

For example, a suffix of "custom-model-name" would produce a model name like ft:gpt-4o-mini:openai:custom-model-name:7p4lURel.
Default: nil
Constraints: minLength: 1, maxLength: 64

  • :training_file - required - String.t()
    The ID of an uploaded file that contains training data.

See upload file for how to upload a file.

Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose fine-tune.

The contents of the file should differ depending on if the model uses the chat, completions format, or if the fine-tuning method uses the preference format.

See the fine-tuning guide for more details.

  • :validation_file - optional - String.t() | nil
    The ID of an uploaded file that contains validation data.

If you provide this file, the data is used to generate validation metrics periodically during fine-tuning. These metrics can be viewed in the fine-tuning results file. The same data should not be present in both train and validation files.

Your dataset must be formatted as a JSONL file. You must upload your file with the purpose fine-tune.

See the fine-tuning guide for more details.

Summary

Types

@type t() :: %ExOpenAI.Components.CreateFineTuningJobRequest{
  hyperparameters:
    %{
      optional(:batch_size) => :auto | integer(),
      optional(:learning_rate_multiplier) => :auto | number(),
      optional(:n_epochs) => :auto | integer()
    }
    | nil,
  integrations:
    [
      %{
        type: :wandb,
        wandb: %{
          optional(:entity) => String.t() | nil,
          optional(:name) => String.t() | nil,
          :project => String.t(),
          optional(:tags) => [String.t()]
        }
      }
    ]
    | nil,
  metadata: ExOpenAI.Components.Metadata.t() | nil,
  method: ExOpenAI.Components.FineTuneMethod.t() | nil,
  model:
    String.t()
    | ((:"babbage-002" | :"davinci-002") | :"gpt-3.5-turbo")
    | :"gpt-4o-mini",
  seed: integer() | nil,
  suffix: String.t() | nil,
  training_file: String.t(),
  validation_file: String.t() | nil
}