362 lines
14 KiB
TypeScript
362 lines
14 KiB
TypeScript
|
import * as Core from "../../../core.js";
|
||
|
import { APIResource } from "../../../resource.js";
|
||
|
import * as JobsAPI from "./jobs.js";
|
||
|
import * as CheckpointsAPI from "./checkpoints.js";
|
||
|
import { CursorPage, type CursorPageParams } from "../../../pagination.js";
|
||
|
export declare class Jobs extends APIResource {
|
||
|
checkpoints: CheckpointsAPI.Checkpoints;
|
||
|
/**
|
||
|
* Creates a fine-tuning job which begins the process of creating a new model from
|
||
|
* a given dataset.
|
||
|
*
|
||
|
* Response includes details of the enqueued job including job status and the name
|
||
|
* of the fine-tuned models once complete.
|
||
|
*
|
||
|
* [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
|
||
|
*/
|
||
|
create(body: JobCreateParams, options?: Core.RequestOptions): Core.APIPromise<FineTuningJob>;
|
||
|
/**
|
||
|
* Get info about a fine-tuning job.
|
||
|
*
|
||
|
* [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
|
||
|
*/
|
||
|
retrieve(fineTuningJobId: string, options?: Core.RequestOptions): Core.APIPromise<FineTuningJob>;
|
||
|
/**
|
||
|
* List your organization's fine-tuning jobs
|
||
|
*/
|
||
|
list(query?: JobListParams, options?: Core.RequestOptions): Core.PagePromise<FineTuningJobsPage, FineTuningJob>;
|
||
|
list(options?: Core.RequestOptions): Core.PagePromise<FineTuningJobsPage, FineTuningJob>;
|
||
|
/**
|
||
|
* Immediately cancel a fine-tune job.
|
||
|
*/
|
||
|
cancel(fineTuningJobId: string, options?: Core.RequestOptions): Core.APIPromise<FineTuningJob>;
|
||
|
/**
|
||
|
* Get status updates for a fine-tuning job.
|
||
|
*/
|
||
|
listEvents(fineTuningJobId: string, query?: JobListEventsParams, options?: Core.RequestOptions): Core.PagePromise<FineTuningJobEventsPage, FineTuningJobEvent>;
|
||
|
listEvents(fineTuningJobId: string, options?: Core.RequestOptions): Core.PagePromise<FineTuningJobEventsPage, FineTuningJobEvent>;
|
||
|
}
|
||
|
export declare class FineTuningJobsPage extends CursorPage<FineTuningJob> {
|
||
|
}
|
||
|
export declare class FineTuningJobEventsPage extends CursorPage<FineTuningJobEvent> {
|
||
|
}
|
||
|
/**
|
||
|
* The `fine_tuning.job` object represents a fine-tuning job that has been created
|
||
|
* through the API.
|
||
|
*/
|
||
|
export interface FineTuningJob {
|
||
|
/**
|
||
|
* The object identifier, which can be referenced in the API endpoints.
|
||
|
*/
|
||
|
id: string;
|
||
|
/**
|
||
|
* The Unix timestamp (in seconds) for when the fine-tuning job was created.
|
||
|
*/
|
||
|
created_at: number;
|
||
|
/**
|
||
|
* For fine-tuning jobs that have `failed`, this will contain more information on
|
||
|
* the cause of the failure.
|
||
|
*/
|
||
|
error: FineTuningJob.Error | null;
|
||
|
/**
|
||
|
* The name of the fine-tuned model that is being created. The value will be null
|
||
|
* if the fine-tuning job is still running.
|
||
|
*/
|
||
|
fine_tuned_model: string | null;
|
||
|
/**
|
||
|
* The Unix timestamp (in seconds) for when the fine-tuning job was finished. The
|
||
|
* value will be null if the fine-tuning job is still running.
|
||
|
*/
|
||
|
finished_at: number | null;
|
||
|
/**
|
||
|
* The hyperparameters used for the fine-tuning job. See the
|
||
|
* [fine-tuning guide](https://platform.openai.com/docs/guides/fine-tuning) for
|
||
|
* more details.
|
||
|
*/
|
||
|
hyperparameters: FineTuningJob.Hyperparameters;
|
||
|
/**
|
||
|
* The base model that is being fine-tuned.
|
||
|
*/
|
||
|
model: string;
|
||
|
/**
|
||
|
* The object type, which is always "fine_tuning.job".
|
||
|
*/
|
||
|
object: 'fine_tuning.job';
|
||
|
/**
|
||
|
* The organization that owns the fine-tuning job.
|
||
|
*/
|
||
|
organization_id: string;
|
||
|
/**
|
||
|
* The compiled results file ID(s) for the fine-tuning job. You can retrieve the
|
||
|
* results with the
|
||
|
* [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents).
|
||
|
*/
|
||
|
result_files: Array<string>;
|
||
|
/**
|
||
|
* The seed used for the fine-tuning job.
|
||
|
*/
|
||
|
seed: number;
|
||
|
/**
|
||
|
* The current status of the fine-tuning job, which can be either
|
||
|
* `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`.
|
||
|
*/
|
||
|
status: 'validating_files' | 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled';
|
||
|
/**
|
||
|
* The total number of billable tokens processed by this fine-tuning job. The value
|
||
|
* will be null if the fine-tuning job is still running.
|
||
|
*/
|
||
|
trained_tokens: number | null;
|
||
|
/**
|
||
|
* The file ID used for training. You can retrieve the training data with the
|
||
|
* [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents).
|
||
|
*/
|
||
|
training_file: string;
|
||
|
/**
|
||
|
* The file ID used for validation. You can retrieve the validation results with
|
||
|
* the
|
||
|
* [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents).
|
||
|
*/
|
||
|
validation_file: string | null;
|
||
|
/**
|
||
|
* The Unix timestamp (in seconds) for when the fine-tuning job is estimated to
|
||
|
* finish. The value will be null if the fine-tuning job is not running.
|
||
|
*/
|
||
|
estimated_finish?: number | null;
|
||
|
/**
|
||
|
* A list of integrations to enable for this fine-tuning job.
|
||
|
*/
|
||
|
integrations?: Array<FineTuningJobWandbIntegrationObject> | null;
|
||
|
}
|
||
|
export declare namespace FineTuningJob {
|
||
|
/**
|
||
|
* For fine-tuning jobs that have `failed`, this will contain more information on
|
||
|
* the cause of the failure.
|
||
|
*/
|
||
|
interface Error {
|
||
|
/**
|
||
|
* A machine-readable error code.
|
||
|
*/
|
||
|
code: string;
|
||
|
/**
|
||
|
* A human-readable error message.
|
||
|
*/
|
||
|
message: string;
|
||
|
/**
|
||
|
* The parameter that was invalid, usually `training_file` or `validation_file`.
|
||
|
* This field will be null if the failure was not parameter-specific.
|
||
|
*/
|
||
|
param: string | null;
|
||
|
}
|
||
|
/**
|
||
|
* The hyperparameters used for the fine-tuning job. See the
|
||
|
* [fine-tuning guide](https://platform.openai.com/docs/guides/fine-tuning) for
|
||
|
* more details.
|
||
|
*/
|
||
|
interface Hyperparameters {
|
||
|
/**
|
||
|
* The number of epochs to train the model for. An epoch refers to one full cycle
|
||
|
* through the training dataset. "auto" decides the optimal number of epochs based
|
||
|
* on the size of the dataset. If setting the number manually, we support any
|
||
|
* number between 1 and 50 epochs.
|
||
|
*/
|
||
|
n_epochs: 'auto' | number;
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* Fine-tuning job event object
|
||
|
*/
|
||
|
export interface FineTuningJobEvent {
|
||
|
id: string;
|
||
|
created_at: number;
|
||
|
level: 'info' | 'warn' | 'error';
|
||
|
message: string;
|
||
|
object: 'fine_tuning.job.event';
|
||
|
}
|
||
|
export type FineTuningJobIntegration = FineTuningJobWandbIntegrationObject;
|
||
|
/**
|
||
|
* The settings for your integration with Weights and Biases. This payload
|
||
|
* specifies the project that metrics will be sent to. Optionally, you can set an
|
||
|
* explicit display name for your run, add tags to your run, and set a default
|
||
|
* entity (team, username, etc) to be associated with your run.
|
||
|
*/
|
||
|
export interface FineTuningJobWandbIntegration {
|
||
|
/**
|
||
|
* The name of the project that the new run will be created under.
|
||
|
*/
|
||
|
project: string;
|
||
|
/**
|
||
|
* The entity to use for the run. This allows you to set the team or username of
|
||
|
* the WandB user that you would like associated with the run. If not set, the
|
||
|
* default entity for the registered WandB API key is used.
|
||
|
*/
|
||
|
entity?: string | null;
|
||
|
/**
|
||
|
* A display name to set for the run. If not set, we will use the Job ID as the
|
||
|
* name.
|
||
|
*/
|
||
|
name?: string | null;
|
||
|
/**
|
||
|
* A list of tags to be attached to the newly created run. These tags are passed
|
||
|
* through directly to WandB. Some default tags are generated by OpenAI:
|
||
|
* "openai/finetune", "openai/{base-model}", "openai/{ftjob-abcdef}".
|
||
|
*/
|
||
|
tags?: Array<string>;
|
||
|
}
|
||
|
export interface FineTuningJobWandbIntegrationObject {
|
||
|
/**
|
||
|
* The type of the integration being enabled for the fine-tuning job
|
||
|
*/
|
||
|
type: 'wandb';
|
||
|
/**
|
||
|
* The settings for your integration with Weights and Biases. This payload
|
||
|
* specifies the project that metrics will be sent to. Optionally, you can set an
|
||
|
* explicit display name for your run, add tags to your run, and set a default
|
||
|
* entity (team, username, etc) to be associated with your run.
|
||
|
*/
|
||
|
wandb: FineTuningJobWandbIntegration;
|
||
|
}
|
||
|
export interface JobCreateParams {
|
||
|
/**
|
||
|
* The name of the model to fine-tune. You can select one of the
|
||
|
* [supported models](https://platform.openai.com/docs/guides/fine-tuning/what-models-can-be-fine-tuned).
|
||
|
*/
|
||
|
model: (string & {}) | 'babbage-002' | 'davinci-002' | 'gpt-3.5-turbo';
|
||
|
/**
|
||
|
* The ID of an uploaded file that contains training data.
|
||
|
*
|
||
|
* See [upload file](https://platform.openai.com/docs/api-reference/files/create)
|
||
|
* 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`.
|
||
|
*
|
||
|
* See the [fine-tuning guide](https://platform.openai.com/docs/guides/fine-tuning)
|
||
|
* for more details.
|
||
|
*/
|
||
|
training_file: string;
|
||
|
/**
|
||
|
* The hyperparameters used for the fine-tuning job.
|
||
|
*/
|
||
|
hyperparameters?: JobCreateParams.Hyperparameters;
|
||
|
/**
|
||
|
* A list of integrations to enable for your fine-tuning job.
|
||
|
*/
|
||
|
integrations?: Array<JobCreateParams.Integration> | null;
|
||
|
/**
|
||
|
* 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.
|
||
|
*/
|
||
|
seed?: number | null;
|
||
|
/**
|
||
|
* A string of up to 18 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-3.5-turbo:openai:custom-model-name:7p4lURel`.
|
||
|
*/
|
||
|
suffix?: string | null;
|
||
|
/**
|
||
|
* 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](https://platform.openai.com/docs/guides/fine-tuning)
|
||
|
* for more details.
|
||
|
*/
|
||
|
validation_file?: string | null;
|
||
|
}
|
||
|
export declare namespace JobCreateParams {
|
||
|
/**
|
||
|
* The hyperparameters used for the fine-tuning job.
|
||
|
*/
|
||
|
interface Hyperparameters {
|
||
|
/**
|
||
|
* Number of examples in each batch. A larger batch size means that model
|
||
|
* parameters are updated less frequently, but with lower variance.
|
||
|
*/
|
||
|
batch_size?: 'auto' | number;
|
||
|
/**
|
||
|
* Scaling factor for the learning rate. A smaller learning rate may be useful to
|
||
|
* avoid overfitting.
|
||
|
*/
|
||
|
learning_rate_multiplier?: 'auto' | number;
|
||
|
/**
|
||
|
* The number of epochs to train the model for. An epoch refers to one full cycle
|
||
|
* through the training dataset.
|
||
|
*/
|
||
|
n_epochs?: 'auto' | number;
|
||
|
}
|
||
|
interface Integration {
|
||
|
/**
|
||
|
* The type of integration to enable. Currently, only "wandb" (Weights and Biases)
|
||
|
* is supported.
|
||
|
*/
|
||
|
type: 'wandb';
|
||
|
/**
|
||
|
* The settings for your integration with Weights and Biases. This payload
|
||
|
* specifies the project that metrics will be sent to. Optionally, you can set an
|
||
|
* explicit display name for your run, add tags to your run, and set a default
|
||
|
* entity (team, username, etc) to be associated with your run.
|
||
|
*/
|
||
|
wandb: Integration.Wandb;
|
||
|
}
|
||
|
namespace Integration {
|
||
|
/**
|
||
|
* The settings for your integration with Weights and Biases. This payload
|
||
|
* specifies the project that metrics will be sent to. Optionally, you can set an
|
||
|
* explicit display name for your run, add tags to your run, and set a default
|
||
|
* entity (team, username, etc) to be associated with your run.
|
||
|
*/
|
||
|
interface Wandb {
|
||
|
/**
|
||
|
* The name of the project that the new run will be created under.
|
||
|
*/
|
||
|
project: string;
|
||
|
/**
|
||
|
* The entity to use for the run. This allows you to set the team or username of
|
||
|
* the WandB user that you would like associated with the run. If not set, the
|
||
|
* default entity for the registered WandB API key is used.
|
||
|
*/
|
||
|
entity?: string | null;
|
||
|
/**
|
||
|
* A display name to set for the run. If not set, we will use the Job ID as the
|
||
|
* name.
|
||
|
*/
|
||
|
name?: string | null;
|
||
|
/**
|
||
|
* A list of tags to be attached to the newly created run. These tags are passed
|
||
|
* through directly to WandB. Some default tags are generated by OpenAI:
|
||
|
* "openai/finetune", "openai/{base-model}", "openai/{ftjob-abcdef}".
|
||
|
*/
|
||
|
tags?: Array<string>;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
export interface JobListParams extends CursorPageParams {
|
||
|
}
|
||
|
export interface JobListEventsParams extends CursorPageParams {
|
||
|
}
|
||
|
export declare namespace Jobs {
|
||
|
export import FineTuningJob = JobsAPI.FineTuningJob;
|
||
|
export import FineTuningJobEvent = JobsAPI.FineTuningJobEvent;
|
||
|
export import FineTuningJobIntegration = JobsAPI.FineTuningJobIntegration;
|
||
|
export import FineTuningJobWandbIntegration = JobsAPI.FineTuningJobWandbIntegration;
|
||
|
export import FineTuningJobWandbIntegrationObject = JobsAPI.FineTuningJobWandbIntegrationObject;
|
||
|
export import FineTuningJobsPage = JobsAPI.FineTuningJobsPage;
|
||
|
export import FineTuningJobEventsPage = JobsAPI.FineTuningJobEventsPage;
|
||
|
export import JobCreateParams = JobsAPI.JobCreateParams;
|
||
|
export import JobListParams = JobsAPI.JobListParams;
|
||
|
export import JobListEventsParams = JobsAPI.JobListEventsParams;
|
||
|
export import Checkpoints = CheckpointsAPI.Checkpoints;
|
||
|
export import FineTuningJobCheckpoint = CheckpointsAPI.FineTuningJobCheckpoint;
|
||
|
export import FineTuningJobCheckpointsPage = CheckpointsAPI.FineTuningJobCheckpointsPage;
|
||
|
export import CheckpointListParams = CheckpointsAPI.CheckpointListParams;
|
||
|
}
|
||
|
//# sourceMappingURL=jobs.d.ts.map
|