def _updated_arguments(base_kwargs: Dict[str, Any], current_kwargs: Dict[str, Any]) -> Dict[str, Any]:
    """Helper function to determine the arguments the user has given through the `update_config` method.

    It does so by obtaining the difference between the `current_kwargs` and the `base_kwargs`
    (the one used by default in the model).

    The arguments can contain nested dicts (which are unhashable). Nested dicts (only one level of depth) are first
    transformed to tuples of their items to check for differences in the values, and then transformed back.
    Instantiated classes and type objects (a class not instantiated for example) are transformed to their name.

    Args:
        base_kwargs: default arguments.
        current_kwargs: arguments registered in the model after training.

    Returns:
        user_kwargs: User provided kwargs.
    """

    base_kwargs_ = _prepare_dict_for_comparison(base_kwargs)
    current_kwargs_ = _prepare_dict_for_comparison(current_kwargs)

    set1 = set(base_kwargs_.items())
    set2 = set(current_kwargs_.items())
    user_kwargs = dict(set2.difference(set1))

    return _prepare_dict_for_return(user_kwargs)
Helper function to determine the arguments the user has given through the `update_config` method.

    It does so by obtaining the difference between the `current_kwargs` and the `base_kwargs`
    (the one used by default in the model).

    The arguments can contain nested dicts (which are unhashable). Nested dicts (only one level of depth) are first
    transformed to tuples of their items to check for differences in the values, and then transformed back.
    Instantiated classes and type objects (a class not instantiated for example) are transformed to their name.

    Args:
        base_kwargs: default arguments.
        current_kwargs: arguments registered in the model after training.

    Returns:
        user_kwargs: User provided kwargs.
    
argilla-v1/src/argilla_v1/client/feedback/integrations/huggingface/model_card/model_card.py