//native
type Cohere = {
apiKey: string;
};
/**
* Trains and deploys a fine-tuned model.
*
*/
export async function main(
auth: Cohere,
body: {
id?: string;
name?: string;
creator_id?: string;
organization_id?: string;
settings?: {
base_model: {
name?: string;
version?: string;
base_type:
| "BASE_TYPE_UNSPECIFIED"
| "BASE_TYPE_GENERATIVE"
| "BASE_TYPE_CLASSIFICATION"
| "BASE_TYPE_RERANK"
| "BASE_TYPE_CHAT";
strategy?:
| "STRATEGY_UNSPECIFIED"
| "STRATEGY_VANILLA"
| "STRATEGY_TFEW";
};
dataset_id: string;
hyperparameters?: {
early_stopping_patience?: number;
early_stopping_threshold?: number;
train_batch_size?: number;
train_epochs?: number;
learning_rate?: number;
lora_alpha?: number;
lora_rank?: number;
lora_target_modules?:
| "LORA_TARGET_MODULES_UNSPECIFIED"
| "LORA_TARGET_MODULES_QV"
| "LORA_TARGET_MODULES_QKVO"
| "LORA_TARGET_MODULES_QKVO_FFN";
};
multi_label?: false | true;
wandb?: { project: string; api_key: string; entity?: string };
};
status?:
| "STATUS_UNSPECIFIED"
| "STATUS_FINETUNING"
| "STATUS_DEPLOYING_API"
| "STATUS_READY"
| "STATUS_FAILED"
| "STATUS_DELETED"
| "STATUS_TEMPORARILY_OFFLINE"
| "STATUS_PAUSED"
| "STATUS_QUEUED";
created_at?: string;
updated_at?: string;
completed_at?: string;
last_used?: string;
},
) {
const url = new URL(`https://api.cohere.com/v1/finetuning/finetuned-models`);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + auth.apiKey,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 428 days ago