def _create_model_cache_key(model_name: str, device: str, model_properties: dict = None) -> str:
    """creates a key to store the loaded model by in the cache

    Args:
        model_name (str): _description_
        model_properties (dict): _description_
        device (str): _description_

    Returns:
        str: _description_
    """
    # Changing the format of model cache key will also need to change eject_model api

    if model_properties is None:
        model_properties = dict()

    model_cache_key = (model_name + "||" +
                       model_properties.get('name', '') + "||" +
                       str(model_properties.get('dimensions', '')) + "||" +
                       model_properties.get('type', '') + "||" +
                       str(model_properties.get('tokens', '')) + "||" +
                       device)

    return model_cache_key
creates a key to store the loaded model by in the cache

    Args:
        model_name (str): _description_
        model_properties (dict): _description_
        device (str): _description_

    Returns:
        str: _description_
    
src/marqo/inference/native_inference/load_model.py