def get_data_loader(
        self,
        dataset: Dataset,
        per_device_batch_size: int,
        rng: jax.Array,
        shuffle: bool = False,
        drop_last: bool = False,
        verbose: bool = False,
    ) -> HuggingFaceDataLoader:
        """
        Build a :class:`~fortuna.data.loader.huggingface_loaders.HuggingFaceDataLoader` object from a
        tokenized dataset.

        Parameters
        ----------
        dataset: Dataset
            A tokenizeed dataset (see :meth:`.HuggingFaceClassificationDatasetABC.get_tokenized_datasets`).
        per_device_batch_size: bool
            Batch size for each device.
        rng: jax.Array
            Random number generator.
        shuffle: bool
            if True, shuffle the data so that each batch is a ranom sample from the dataset.
        drop_last: bool
            if True, the last batch (which potentially is smaller then the default batch size) is dropped.
        verbose: bool
            Whether to show a progress bar while iterating over the dataloader or not.

        Returns
        -------
        HuggingFaceDataLoader
            The dataloader
        """
        iterable = IterableData.from_callable(
            lambda *args, **kwargs: self._get_data_loader(
                dataset,
                batch_size=per_device_batch_size * jax.local_device_count(),
                shuffle=shuffle,
                drop_last=drop_last,
                rng=rng,
                verbose=verbose,
            )
        )
        return HuggingFaceDataLoader(
            iterable=iterable,
            num_inputs=len(dataset),
            num_unique_labels=self.num_unique_labels,
        )

        Build a :class:`~fortuna.data.loader.huggingface_loaders.HuggingFaceDataLoader` object from a
        tokenized dataset.

        Parameters
        ----------
        dataset: Dataset
            A tokenizeed dataset (see :meth:`.HuggingFaceClassificationDatasetABC.get_tokenized_datasets`).
        per_device_batch_size: bool
            Batch size for each device.
        rng: jax.Array
            Random number generator.
        shuffle: bool
            if True, shuffle the data so that each batch is a ranom sample from the dataset.
        drop_last: bool
            if True, the last batch (which potentially is smaller then the default batch size) is dropped.
        verbose: bool
            Whether to show a progress bar while iterating over the dataloader or not.

        Returns
        -------
        HuggingFaceDataLoader
            The dataloader
        
fortuna/data/dataset/huggingface_datasets.py