74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
from unsloth.registry.registry import ModelInfo, ModelMeta, QuantType, _register_models
|
|
|
|
_IS_PHI_4_REGISTERED = False
|
|
_IS_PHI_4_INSTRUCT_REGISTERED = False
|
|
|
|
|
|
class PhiModelInfo(ModelInfo):
|
|
@classmethod
|
|
def construct_model_name(cls, base_name, version, size, quant_type, instruct_tag):
|
|
key = f"{base_name}-{version}"
|
|
return super().construct_model_name(
|
|
base_name, version, size, quant_type, instruct_tag, key
|
|
)
|
|
|
|
|
|
# Phi Model Meta
|
|
PhiMeta4 = ModelMeta(
|
|
org = "microsoft",
|
|
base_name = "phi",
|
|
instruct_tags = [None],
|
|
model_version = "4",
|
|
model_sizes = ["1"], # Assuming only one size
|
|
model_info_cls = PhiModelInfo,
|
|
is_multimodal = False,
|
|
quant_types = [QuantType.NONE, QuantType.BNB, QuantType.UNSLOTH],
|
|
)
|
|
|
|
# Phi Instruct Model Meta
|
|
PhiInstructMeta4 = ModelMeta(
|
|
org = "microsoft",
|
|
base_name = "phi",
|
|
instruct_tags = ["mini-instruct"],
|
|
model_version = "4",
|
|
model_sizes = ["1"], # Assuming only one size
|
|
model_info_cls = PhiModelInfo,
|
|
is_multimodal = False,
|
|
quant_types = [QuantType.NONE, QuantType.BNB, QuantType.UNSLOTH, QuantType.GGUF],
|
|
)
|
|
|
|
|
|
def register_phi_4_models(include_original_model: bool = False):
|
|
global _IS_PHI_4_REGISTERED
|
|
if _IS_PHI_4_REGISTERED:
|
|
return
|
|
_register_models(PhiMeta4, include_original_model = include_original_model)
|
|
_IS_PHI_4_REGISTERED = True
|
|
|
|
|
|
def register_phi_4_instruct_models(include_original_model: bool = False):
|
|
global _IS_PHI_4_INSTRUCT_REGISTERED
|
|
if _IS_PHI_4_INSTRUCT_REGISTERED:
|
|
return
|
|
_register_models(PhiInstructMeta4, include_original_model = include_original_model)
|
|
_IS_PHI_4_INSTRUCT_REGISTERED = True
|
|
|
|
|
|
def register_phi_models(include_original_model: bool = False):
|
|
register_phi_4_models(include_original_model = include_original_model)
|
|
register_phi_4_instruct_models(include_original_model = include_original_model)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
from unsloth.registry.registry import MODEL_REGISTRY, _check_model_info
|
|
|
|
MODEL_REGISTRY.clear()
|
|
|
|
register_phi_models(include_original_model = True)
|
|
|
|
for model_id, model_info in MODEL_REGISTRY.items():
|
|
model_info = _check_model_info(model_id)
|
|
if model_info is None:
|
|
print(f"\u2718 {model_id}")
|
|
else:
|
|
print(f"\u2713 {model_id}")
|