1
- from hashlib import md5
1
+ import hashlib
2
+ import json
2
3
from typing import Optional , cast
3
- from dataclasses import dataclass , field
4
+ from dataclasses import dataclass , field , asdict
4
5
5
6
DEFAULT_WEIGHT : float = 0.8
6
7
@@ -188,7 +189,7 @@ class ModelConfiguration:
188
189
189
190
@property
190
191
def _hash (self ) -> str :
191
- return md5 (json .dumps (dataclasses . asdict (self ), sort_keys = True ).encode ()).hexdigest ()
192
+ return hashlib . md5 (json .dumps (asdict (self ), sort_keys = True ).encode ()).hexdigest ()
192
193
193
194
def add_lora_setting (self , setting : ModelLoraSetting ) -> None :
194
195
self .settings .add_lora_setting (setting )
@@ -205,38 +206,38 @@ def validate(self) -> bool:
205
206
return valid
206
207
207
208
@staticmethod
208
- def from_config (model_name : str , settings : ModelSettings | dict | None ):
209
- model_config : ModelSettings | None = None
209
+ def from_settings (model_name : str , settings : ModelSettings | dict | None ):
210
+ model_settings : ModelSettings | None = None
210
211
if settings is None :
211
- model_config = ModelSettings ()
212
+ model_settings = ModelSettings ()
212
213
elif isinstance (settings , ModelSettings ):
213
- model_config = settings
214
+ model_settings = settings
214
215
elif isinstance (settings , dict ):
215
- model_config = ModelSettings (lora_settings = ModelLoraSetting .parse_settings (settings ))
216
+ model_settings = ModelSettings (lora_settings = ModelLoraSetting .parse_settings (settings ))
216
217
217
- if model_config is None :
218
+ if model_settings is None :
218
219
raise ValueError ("Invalid config type for ModelConfiguration" )
219
220
220
- return ModelConfiguration (model_name = model_name , settings = model_config )
221
+ return ModelConfiguration (model_name = model_name , settings = model_settings )
221
222
222
223
@staticmethod
223
224
def from_lora_names_and_weights (model_name : str , lora_names : list [str ], lora_weights : Optional [list [float | int ]] = None ) -> "ModelConfiguration" :
224
225
weights : list [float ] = [float (weight ) for weight in (lora_weights or [])]
225
226
lora_settings = ModelLoraSetting .from_names_and_weights (lora_names , lora_weights = weights )
226
- model_config = ModelSettings (lora_settings = lora_settings )
227
+ model_settings = ModelSettings (lora_settings = lora_settings )
227
228
del weights , lora_settings
228
- return ModelConfiguration .from_config (model_name = model_name , settings = model_config )
229
+ return ModelConfiguration .from_settings (model_name = model_name , settings = model_settings )
229
230
230
231
def set_model_name (self , model_name : str ) -> "ModelConfiguration" :
231
232
self .model_name = model_name
232
233
return self
233
234
234
- def set_config (self , config : ModelSettings ) -> "ModelConfiguration" :
235
- self .config = config
235
+ def set_settings (self , settings : ModelSettings ) -> "ModelConfiguration" :
236
+ self .settings = settings
236
237
return self
237
238
238
239
def update_lora_setting (self , lora_settings : list [ModelLoraSetting ] | str | list [str ] | dict [str , dict ]) -> "ModelConfiguration" :
239
- self .config .lora_settings = ModelLoraSetting .parse_settings (lora_settings )
240
+ self .settings .lora_settings = ModelLoraSetting .parse_settings (lora_settings )
240
241
return self
241
242
242
243
@@ -251,9 +252,7 @@ def update_lora_setting(self, lora_settings: list[ModelLoraSetting] | str | list
251
252
)
252
253
logger .info (f"Model Name: { config .model_name } " )
253
254
logger .info (f"LoRA Settings: { config .settings .lora_settings } " )
254
- import dataclasses
255
- import json
256
- logger .debug (json .dumps (dataclasses .asdict (config ), indent = 4 ))
255
+ logger .debug (json .dumps (asdict (config ), indent = 4 ))
257
256
logger .debug ("hash: {0}" .format (config ._hash ))
258
257
config .model_name = "changed"
259
258
logger .debug ("hash: {0}" .format (config ._hash ))
@@ -263,10 +262,10 @@ def update_lora_setting(self, lora_settings: list[ModelLoraSetting] | str | list
263
262
)
264
263
logger .debug ("hash: {0}" .format (config ._hash ))
265
264
config .settings .lora_settings .append (ModelLoraSetting (name = "lora_D" , weight = 0.75 ))
266
- logger .debug (json .dumps (dataclasses . asdict (config ), indent = 4 ))
265
+ logger .debug (json .dumps (asdict (config ), indent = 4 ))
267
266
logger .debug ("hash: {0}" .format (config ._hash ))
268
267
config .add_lora ("lora_E" )
269
- logger .debug (json .dumps (dataclasses . asdict (config ), indent = 4 ))
268
+ logger .debug (json .dumps (asdict (config ), indent = 4 ))
270
269
logger .debug ("hash: {0}" .format (config ._hash ))
271
270
valid = config .validate ()
272
271
logger .debug ("Config validation result: {0}" .format (valid ))
0 commit comments