1
1
from __future__ import annotations
2
2
3
+ import json
3
4
from typing import TYPE_CHECKING
4
5
from argparse import ArgumentParser
5
6
@@ -30,6 +31,12 @@ def register(subparser: _SubParsersAction[ArgumentParser]) -> None:
30
31
help = "The training file to fine-tune the model on." ,
31
32
required = True ,
32
33
)
34
+ sub .add_argument (
35
+ "-H" ,
36
+ "--hyperparameters" ,
37
+ help = "JSON string of hyperparameters to use for fine-tuning." ,
38
+ type = str ,
39
+ )
33
40
sub .add_argument (
34
41
"-s" ,
35
42
"--suffix" ,
@@ -106,6 +113,7 @@ def register(subparser: _SubParsersAction[ArgumentParser]) -> None:
106
113
class CLIFineTuningJobsCreateArgs (BaseModel ):
107
114
model : str
108
115
training_file : str
116
+ hyperparameters : NotGivenOr [str ] = NOT_GIVEN
109
117
suffix : NotGivenOr [str ] = NOT_GIVEN
110
118
validation_file : NotGivenOr [str ] = NOT_GIVEN
111
119
@@ -128,14 +136,16 @@ class CLIFineTuningJobsListEventsArgs(BaseModel):
128
136
class CLIFineTuningJobs :
129
137
@staticmethod
130
138
def create (args : CLIFineTuningJobsCreateArgs ) -> None :
139
+ hyperparameters = json .loads (args .hyperparameters ) if args .hyperparameters is not NOT_GIVEN else NOT_GIVEN
131
140
fine_tuning_job : FineTuningJob = get_client ().fine_tuning .jobs .create (
132
141
model = args .model ,
133
142
training_file = args .training_file ,
143
+ hyperparameters = hyperparameters ,
134
144
suffix = args .suffix ,
135
145
validation_file = args .validation_file ,
136
146
)
137
147
print_model (fine_tuning_job )
138
-
148
+
139
149
@staticmethod
140
150
def retrieve (args : CLIFineTuningJobsRetrieveArgs ) -> None :
141
151
fine_tuning_job : FineTuningJob = get_client ().fine_tuning .jobs .retrieve (
0 commit comments