@@ -284,64 +284,67 @@ def apply_metadata_heuristic(metadata: Metadata, model_card: Optional[dict] = No
284
284
########################
285
285
if model_card is not None :
286
286
287
- def use_model_card_metadata (metadata : Any | None , key_name : str ):
288
- if key_name in model_card and metadata is None :
289
- metadata = model_card .get (key_name )
287
+ def use_model_card_metadata (metadata_key : str , model_card_key : str ):
288
+ if model_card_key in model_card and getattr ( metadata , metadata_key , None ) is None :
289
+ setattr ( metadata , metadata_key , model_card .get (model_card_key ) )
290
290
291
- def use_array_model_card_metadata (metadata : Any | None , key_name : str ):
291
+ def use_array_model_card_metadata (metadata_key : str , model_card_key : str ):
292
292
# Note: Will append rather than replace if already exist
293
- tags_value = model_card .get (key_name , None )
293
+ tags_value = model_card .get (model_card_key , None )
294
294
if tags_value is None :
295
295
return
296
296
297
- if metadata is None :
298
- metadata = []
297
+ current_value = getattr (metadata , metadata_key , None )
298
+ if current_value is None :
299
+ current_value = []
299
300
300
301
if isinstance (tags_value , str ):
301
- metadata .append (tags_value )
302
+ current_value .append (tags_value )
302
303
elif isinstance (tags_value , list ):
303
- metadata .extend (tags_value )
304
+ current_value .extend (tags_value )
305
+
306
+ setattr (metadata , metadata_key , current_value )
304
307
305
308
# LLAMA.cpp's direct internal convention
306
309
# (Definitely not part of hugging face formal/informal standard)
307
310
#########################################
308
- use_model_card_metadata (metadata . name , "name" )
309
- use_model_card_metadata (metadata . author , "author" )
310
- use_model_card_metadata (metadata . version , "version" )
311
- use_model_card_metadata (metadata . organization , "organization" )
312
- use_model_card_metadata (metadata . description , "description" )
313
- use_model_card_metadata (metadata . finetune , "finetune" )
314
- use_model_card_metadata (metadata . basename , "basename" )
315
- use_model_card_metadata (metadata . size_label , "size_label" )
316
- use_model_card_metadata (metadata . source_url , "url" )
317
- use_model_card_metadata (metadata . source_doi , "doi" )
318
- use_model_card_metadata (metadata . source_uuid , "uuid" )
319
- use_model_card_metadata (metadata . source_repo_url , "repo_url" )
311
+ use_model_card_metadata (" name" , "name" )
312
+ use_model_card_metadata (" author" , "author" )
313
+ use_model_card_metadata (" version" , "version" )
314
+ use_model_card_metadata (" organization" , "organization" )
315
+ use_model_card_metadata (" description" , "description" )
316
+ use_model_card_metadata (" finetune" , "finetune" )
317
+ use_model_card_metadata (" basename" , "basename" )
318
+ use_model_card_metadata (" size_label" , "size_label" )
319
+ use_model_card_metadata (" source_url" , "url" )
320
+ use_model_card_metadata (" source_doi" , "doi" )
321
+ use_model_card_metadata (" source_uuid" , "uuid" )
322
+ use_model_card_metadata (" source_repo_url" , "repo_url" )
320
323
321
324
# LLAMA.cpp's huggingface style convention
322
325
# (Definitely not part of hugging face formal/informal standard... but with model_ appended to match their style)
323
326
###########################################
324
- use_model_card_metadata (metadata . name , "model_name" )
325
- use_model_card_metadata (metadata . author , "model_author" )
326
- use_model_card_metadata (metadata . version , "model_version" )
327
- use_model_card_metadata (metadata . organization , "model_organization" )
328
- use_model_card_metadata (metadata . description , "model_description" )
329
- use_model_card_metadata (metadata . finetune , "model_finetune" )
330
- use_model_card_metadata (metadata . basename , "model_basename" )
331
- use_model_card_metadata (metadata . size_label , "model_size_label" )
332
- use_model_card_metadata (metadata . source_url , "model_url" )
333
- use_model_card_metadata (metadata . source_doi , "model_doi" )
334
- use_model_card_metadata (metadata . source_uuid , "model_uuid" )
335
- use_model_card_metadata (metadata . source_repo_url , "model_repo_url" )
327
+ use_model_card_metadata (" name" , "model_name" )
328
+ use_model_card_metadata (" author" , "model_author" )
329
+ use_model_card_metadata (" version" , "model_version" )
330
+ use_model_card_metadata (" organization" , "model_organization" )
331
+ use_model_card_metadata (" description" , "model_description" )
332
+ use_model_card_metadata (" finetune" , "model_finetune" )
333
+ use_model_card_metadata (" basename" , "model_basename" )
334
+ use_model_card_metadata (" size_label" , "model_size_label" )
335
+ use_model_card_metadata (" source_url" , "model_url" )
336
+ use_model_card_metadata (" source_doi" , "model_doi" )
337
+ use_model_card_metadata (" source_uuid" , "model_uuid" )
338
+ use_model_card_metadata (" source_repo_url" , "model_repo_url" )
336
339
337
340
# Hugging Face Direct Convention
338
341
#################################
339
342
340
343
# Not part of huggingface model card standard but notice some model creator using it
341
344
# such as TheBloke in 'TheBloke/Mistral-7B-Instruct-v0.2-GGUF'
342
- use_model_card_metadata (metadata . name , "model_name" )
343
- use_model_card_metadata (metadata . author , "model_creator" )
344
- use_model_card_metadata (metadata . basename , "model_type" )
345
+ use_model_card_metadata (" name" , "model_name" )
346
+ use_model_card_metadata (" author" , "model_creator" )
347
+ use_model_card_metadata (" basename" , "model_type" )
345
348
346
349
if "base_model" in model_card :
347
350
# This represents the parent models that this is based on
@@ -373,18 +376,18 @@ def use_array_model_card_metadata(metadata: Any | None, key_name: str):
373
376
base_model ["repo_url" ] = f"https://huggingface.co/{ org_component } /{ model_full_name_component } "
374
377
metadata .base_models .append (base_model )
375
378
376
- use_model_card_metadata (metadata . license , "license" )
377
- use_model_card_metadata (metadata . license_name , "license_name" )
378
- use_model_card_metadata (metadata . license_link , "license_link" )
379
+ use_model_card_metadata (" license" , "license" )
380
+ use_model_card_metadata (" license_name" , "license_name" )
381
+ use_model_card_metadata (" license_link" , "license_link" )
379
382
380
- use_array_model_card_metadata (metadata . tags , "tags" )
381
- use_array_model_card_metadata (metadata . tags , "pipeline_tag" )
383
+ use_array_model_card_metadata (" tags" , "tags" )
384
+ use_array_model_card_metadata (" tags" , "pipeline_tag" )
382
385
383
- use_array_model_card_metadata (metadata . languages , "languages" )
384
- use_array_model_card_metadata (metadata . languages , "language" )
386
+ use_array_model_card_metadata (" languages" , "languages" )
387
+ use_array_model_card_metadata (" languages" , "language" )
385
388
386
- use_array_model_card_metadata (metadata . datasets , "datasets" )
387
- use_array_model_card_metadata (metadata . datasets , "dataset" )
389
+ use_array_model_card_metadata (" datasets" , "datasets" )
390
+ use_array_model_card_metadata (" datasets" , "dataset" )
388
391
389
392
# Hugging Face Parameter Heuristics
390
393
####################################
0 commit comments