


'''simple docstring'''






import argparse
import json
import logging
import os
import sys
from unittest import skip
from unittest.mock import patch

import tensorflow as tf

from transformers.testing_utils import TestCasePlus, get_gpu_count, slow


__UpperCAmelCase    				=							[
    os.path.join(os.path.dirname(__file__), dirname)
    for dirname in [
        '''text-generation''',
        '''text-classification''',
        '''token-classification''',
        '''language-modeling''',
        '''multiple-choice''',
        '''question-answering''',
        '''summarization''',
        '''translation''',
        '''image-classification''',
    ]
]
sys.path.extend(SRC_DIRS)


if SRC_DIRS is not None:
		import run_clm
		import run_image_classification
		import run_mlm
		import run_ner
		import run_qa as run_squad
		import run_summarization
		import run_swag
		import run_text_classification
		import run_translation


logging.basicConfig(level=logging.DEBUG)

__UpperCAmelCase    				=							logging.getLogger()


def 					_snake_case   (     )						->    Dict:
							lowerCAmelCase__          =	argparse.ArgumentParser()
							parser.add_argument('''-f'''       )
							lowerCAmelCase__          =	parser.parse_args()
							return args.f


def 					_snake_case   (     A       )						->    str:
							lowerCAmelCase__          =	{}
							lowerCAmelCase__          =	os.path.join(A ,    '''all_results.json'''       )
							if os.path.exists(A       ):
														with open(A ,    '''r'''       ) as f:
																					lowerCAmelCase__          =	json.load(A       )
							else:
														raise ValueError(F"""can't find {path}"""       )
							return results


def 					_snake_case   (     )						->    Tuple:
							return bool(tf.config.list_physical_devices('''GPU'''       )       )


__UpperCAmelCase    				=							logging.StreamHandler(sys.stdout)
logger.addHandler(stream_handler)






class 		a__				(							a__  ):





							'''simple docstring'''






							@skip('''Skipping until shape inference for to_tf_dataset PR is merged.'''   )
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							List[str]:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_text_classification.py
            --model_name_or_path distilbert-base-uncased
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --train_file ./tests/fixtures/tests_samples/MRPC/train.csv
            --validation_file ./tests/fixtures/tests_samples/MRPC/dev.csv
            --do_train
            --do_eval
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
            --learning_rate=1e-4
            --max_steps=10
            --warmup_steps=2
            --seed=42
            --max_seq_length=128
            """.split()

														if is_cuda_available():
																					testargs.append('''--fp16'''   )

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_text_classification.main()
																					# Reset the mixed precision policy so we don't break other tests
																					tf.keras.mixed_precision.set_global_policy('''float32'''   )
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''eval_accuracy''']					,    0.75   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Tuple:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_clm.py
            --model_name_or_path distilgpt2
            --train_file ./tests/fixtures/sample_text.txt
            --validation_file ./tests/fixtures/sample_text.txt
            --do_train
            --do_eval
            --block_size 128
            --per_device_train_batch_size 2
            --per_device_eval_batch_size 1
            --num_train_epochs 2
            --output_dir {tmp_dir}
            --overwrite_output_dir
            """.split()

														if len(tf.config.list_physical_devices('''GPU'''   )   ) > 1:
																					# Skipping because there are not enough batches to train the model + would need a drop_last to work.
																					return

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_clm.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertLess(result['''eval_perplexity''']					,    1_00   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Union[str, Any]:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_mlm.py
            --model_name_or_path distilroberta-base
            --train_file ./tests/fixtures/sample_text.txt
            --validation_file ./tests/fixtures/sample_text.txt
            --max_seq_length 64
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --do_train
            --do_eval
            --prediction_loss_only
            --num_train_epochs=1
            --learning_rate=1e-4
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_mlm.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertLess(result['''eval_perplexity''']					,    42   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							str:
														# with so little data distributed training needs more epochs to get the score on par with 0/1 gpu
														lowerCAmelCase__          =	7 if get_gpu_count() > 1 else 2

														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_ner.py
            --model_name_or_path bert-base-uncased
            --train_file tests/fixtures/tests_samples/conll/sample.json
            --validation_file tests/fixtures/tests_samples/conll/sample.json
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --do_train
            --do_eval
            --warmup_steps=2
            --learning_rate=2e-4
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=2
            --num_train_epochs={epochs}
            --seed 7
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_ner.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''accuracy''']					,    0.75   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Tuple:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_qa.py
            --model_name_or_path bert-base-uncased
            --version_2_with_negative
            --train_file tests/fixtures/tests_samples/SQUAD/sample.json
            --validation_file tests/fixtures/tests_samples/SQUAD/sample.json
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --max_steps=10
            --warmup_steps=2
            --do_train
            --do_eval
            --learning_rate=2e-4
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_squad.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''f1''']					,    30   )
																					self.assertGreaterEqual(result['''exact''']					,    30   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							str:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_swag.py
            --model_name_or_path bert-base-uncased
            --train_file tests/fixtures/tests_samples/swag/sample.json
            --validation_file tests/fixtures/tests_samples/swag/sample.json
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --max_steps=20
            --warmup_steps=2
            --do_train
            --do_eval
            --learning_rate=2e-4
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_swag.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''val_accuracy''']					,    0.8   )







							@slow
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							str:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_summarization.py
            --model_name_or_path t5-small
            --train_file tests/fixtures/tests_samples/xsum/sample.json
            --validation_file tests/fixtures/tests_samples/xsum/sample.json
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --max_steps=50
            --warmup_steps=8
            --do_train
            --do_eval
            --learning_rate=2e-4
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_summarization.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''rouge1''']					,    10   )
																					self.assertGreaterEqual(result['''rouge2''']					,    2   )
																					self.assertGreaterEqual(result['''rougeL''']					,    7   )
																					self.assertGreaterEqual(result['''rougeLsum''']					,    7   )







							@slow
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							List[str]:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_translation.py
            --model_name_or_path Rocketknight1/student_marian_en_ro_6_1
            --source_lang en
            --target_lang ro
            --train_file tests/fixtures/tests_samples/wmt16/sample.json
            --validation_file tests/fixtures/tests_samples/wmt16/sample.json
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --warmup_steps=8
            --do_train
            --do_eval
            --learning_rate=3e-3
            --num_train_epochs 12
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
            --source_lang en_XX
            --target_lang ro_RO
        """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_translation.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''bleu''']					,    30   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Optional[int]:
														lowerCAmelCase__          =	self.get_auto_remove_tmp_dir()
														lowerCAmelCase__          =	F"""
            run_image_classification.py
            --dataset_name hf-internal-testing/cats_vs_dogs_sample
            --model_name_or_path microsoft/resnet-18
            --do_train
            --do_eval
            --learning_rate 1e-4
            --per_device_train_batch_size 2
            --per_device_eval_batch_size 1
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --dataloader_num_workers 16
            --num_train_epochs 2
            --train_val_split 0.1
            --seed 42
            --ignore_mismatched_sizes True
            """.split()

														with patch.object(lowerCamelCase_					,    '''argv'''					,    lowerCamelCase_   ):
																					run_image_classification.main()
																					lowerCAmelCase__          =	get_results(lowerCamelCase_   )
																					self.assertGreaterEqual(result['''accuracy''']					,    0.7   )



'''simple docstring'''






import json
import os
import shutil
import sys
import tempfile
import unittest
from unittest import TestCase
from unittest.mock import patch

import faiss
import numpy as np
from datasets import Dataset

from transformers import BartConfig, BartTokenizer, DPRConfig, DPRQuestionEncoderTokenizer, RagConfig
from transformers.file_utils import is_datasets_available, is_faiss_available, is_psutil_available, is_torch_available
from transformers.integrations import is_ray_available
from transformers.models.bert.tokenization_bert import VOCAB_FILES_NAMES as DPR_VOCAB_FILES_NAMES
from transformers.models.rag.retrieval_rag import CustomHFIndex, RagRetriever
from transformers.models.roberta.tokenization_roberta import VOCAB_FILES_NAMES as BART_VOCAB_FILES_NAMES
from transformers.testing_utils import require_ray


sys.path.append(os.path.join(os.getcwd()))  # noqa: E402 # noqa: E402 # isort:skip

if is_torch_available():
		from distributed_pytorch_retriever import RagPyTorchDistributedRetriever  # noqa: E402 # isort:skip
else:
		__UpperCAmelCase    				=							None

if is_ray_available():
		import ray  # noqa: E402 # isort:skip
		from distributed_ray_retriever import RagRayDistributedRetriever, RayRetriever  # noqa: E402 # isort:skip
else:
		__UpperCAmelCase    				=							None
		__UpperCAmelCase    				=							None
		__UpperCAmelCase    				=							None


def 					_snake_case   (     A       )						->    Any:
							if not (is_datasets_available() and is_faiss_available() and is_psutil_available()):
														lowerCAmelCase__          =	unittest.skip('''test requires Datasets, Faiss, psutil'''       )(A       )
							return test_case






@require_distributed_retrieval
class 		a__				(							a__  ):





							'''simple docstring'''






							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Union[str, Any]:
														lowerCAmelCase__          =	tempfile.mkdtemp()
														lowerCAmelCase__          =	8

														# DPR tok
														lowerCAmelCase__          =	[
														    '''[UNK]''',
														    '''[CLS]''',
														    '''[SEP]''',
														    '''[PAD]''',
														    '''[MASK]''',
														    '''want''',
														    '''##want''',
														    '''##ed''',
														    '''wa''',
														    '''un''',
														    '''runn''',
														    '''##ing''',
														    ''',''',
														    '''low''',
														    '''lowest''',
														]
														lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''dpr_tokenizer'''   )
														os.makedirs(lowerCamelCase_					,    exist_ok=lowerCamelCase_   )
														lowerCAmelCase__          =	os.path.join(lowerCamelCase_					,    DPR_VOCAB_FILES_NAMES['''vocab_file''']   )
														with open(self.vocab_file					,    '''w'''					,    encoding='''utf-8'''   ) as vocab_writer:
																					vocab_writer.write(''''''.join([x + '''\n''' for x in vocab_tokens]   )   )

														# BART tok
														lowerCAmelCase__          =	[
														    '''l''',
														    '''o''',
														    '''w''',
														    '''e''',
														    '''r''',
														    '''s''',
														    '''t''',
														    '''i''',
														    '''d''',
														    '''n''',
														    '''\u0120''',
														    '''\u0120l''',
														    '''\u0120n''',
														    '''\u0120lo''',
														    '''\u0120low''',
														    '''er''',
														    '''\u0120lowest''',
														    '''\u0120newer''',
														    '''\u0120wider''',
														    '''<unk>''',
														]
														lowerCAmelCase__          =	dict(zip(lowerCamelCase_					,    range(len(lowerCamelCase_   )   )   )   )
														lowerCAmelCase__          =	['''#version: 0.2''', '''\u0120 l''', '''\u0120l o''', '''\u0120lo w''', '''e r''', '''''']
														lowerCAmelCase__          =	{'''unk_token''': '''<unk>'''}

														lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''bart_tokenizer'''   )
														os.makedirs(lowerCamelCase_					,    exist_ok=lowerCamelCase_   )
														lowerCAmelCase__          =	os.path.join(lowerCamelCase_					,    BART_VOCAB_FILES_NAMES['''vocab_file''']   )
														lowerCAmelCase__          =	os.path.join(lowerCamelCase_					,    BART_VOCAB_FILES_NAMES['''merges_file''']   )
														with open(self.vocab_file					,    '''w'''					,    encoding='''utf-8'''   ) as fp:
																					fp.write(json.dumps(lowerCamelCase_   ) + '''\n'''   )
														with open(self.merges_file					,    '''w'''					,    encoding='''utf-8'''   ) as fp:
																					fp.write('''\n'''.join(lowerCamelCase_   )   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							DPRQuestionEncoderTokenizer:
														return DPRQuestionEncoderTokenizer.from_pretrained(os.path.join(self.tmpdirname					,    '''dpr_tokenizer'''   )   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							BartTokenizer:
														return BartTokenizer.from_pretrained(os.path.join(self.tmpdirname					,    '''bart_tokenizer'''   )   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Optional[int]:
														shutil.rmtree(self.tmpdirname   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Tuple:
														lowerCAmelCase__          =	Dataset.from_dict(
														    {
														        '''id''': ['''0''', '''1'''],
														        '''text''': ['''foo''', '''bar'''],
														        '''title''': ['''Foo''', '''Bar'''],
														        '''embeddings''': [np.ones(self.retrieval_vector_size   ), 2 * np.ones(self.retrieval_vector_size   )],
														    }   )
														dataset.add_faiss_index('''embeddings'''					,    string_factory='''Flat'''					,    metric_type=faiss.METRIC_INNER_PRODUCT   )
														return dataset







							def   __SCREAMING_SNAKE_CASE							(		self					,    lowerCamelCase_					,    lowerCamelCase_=1_23_45   )       ->							RagPyTorchDistributedRetriever:
														lowerCAmelCase__          =	self.get_dummy_dataset()
														lowerCAmelCase__          =	RagConfig(
														    retrieval_vector_size=self.retrieval_vector_size					,    question_encoder=DPRConfig().to_dict()					,    generator=BartConfig().to_dict()					,    )
														with patch('''transformers.models.rag.retrieval_rag.load_dataset'''   ) as mock_load_dataset:
																					lowerCAmelCase__          =	dataset
																					lowerCAmelCase__          =	RagPyTorchDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    )
																					if init_retrieval:
																												retriever.init_retrieval(lowerCamelCase_   )
														return retriever







							def   __SCREAMING_SNAKE_CASE							(		self					,    lowerCamelCase_   )       ->							RagRayDistributedRetriever:
														# Have to run in local mode because sys.path modifications at top of
														# file are not propogated to remote workers.
														# https://stackoverflow.com/questions/54338013/parallel-import-a-python-file-from-sibling-folder
														ray.init(local_mode=lowerCamelCase_   )
														lowerCAmelCase__          =	RagConfig(
														    retrieval_vector_size=self.retrieval_vector_size					,    question_encoder=DPRConfig().to_dict()					,    generator=BartConfig().to_dict()					,    )
														lowerCAmelCase__          =	ray.remote(lowerCamelCase_   )
														lowerCAmelCase__          =	[remote_cls.remote() for _ in range(1   )]
														with patch('''transformers.models.rag.retrieval_rag.load_dataset'''   ) as mock_load_dataset:
																					lowerCAmelCase__          =	self.get_dummy_dataset()
																					lowerCAmelCase__          =	RagRayDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    retrieval_workers=lowerCamelCase_					,    )
																					if init_retrieval:
																												retriever.init_retrieval()
														return retriever







							def   __SCREAMING_SNAKE_CASE							(		self					,    lowerCamelCase_					,    lowerCamelCase_					,    lowerCamelCase_=1_23_45   )       ->							Union[str, Any]:
														lowerCAmelCase__          =	self.get_dummy_dataset()
														lowerCAmelCase__          =	RagConfig(
														    retrieval_vector_size=self.retrieval_vector_size					,    question_encoder=DPRConfig().to_dict()					,    generator=BartConfig().to_dict()					,    index_name='''custom'''					,    )
														if from_disk:
																					lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''dataset'''   )
																					lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''index.faiss'''   )
																					dataset.get_index('''embeddings'''   ).save(os.path.join(self.tmpdirname					,    '''index.faiss'''   )   )
																					dataset.drop_index('''embeddings'''   )
																					dataset.save_to_disk(os.path.join(self.tmpdirname					,    '''dataset'''   )   )
																					del dataset
																					lowerCAmelCase__          =	RagPyTorchDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    )
														else:
																					lowerCAmelCase__          =	RagPyTorchDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    index=CustomHFIndex(config.retrieval_vector_size					,    lowerCamelCase_   )					,    )
														if init_retrieval:
																					retriever.init_retrieval(lowerCamelCase_   )
														return retriever







							def   __SCREAMING_SNAKE_CASE							(		self					,    lowerCamelCase_					,    lowerCamelCase_   )       ->							Union[str, Any]:
														# Have to run in local mode because sys.path modifications at top of
														# file are not propogated to remote workers.
														# https://stackoverflow.com/questions/54338013/parallel-import-a-python-file-from-sibling-folder
														ray.init(local_mode=lowerCamelCase_   )
														lowerCAmelCase__          =	self.get_dummy_dataset()
														lowerCAmelCase__          =	RagConfig(
														    retrieval_vector_size=self.retrieval_vector_size					,    question_encoder=DPRConfig().to_dict()					,    generator=BartConfig().to_dict()					,    index_name='''custom'''					,    )
														lowerCAmelCase__          =	ray.remote(lowerCamelCase_   )
														lowerCAmelCase__          =	[remote_cls.remote() for _ in range(1   )]
														if from_disk:
																					lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''dataset'''   )
																					lowerCAmelCase__          =	os.path.join(self.tmpdirname					,    '''index.faiss'''   )
																					dataset.get_index('''embeddings'''   ).save(os.path.join(self.tmpdirname					,    '''index.faiss'''   )   )
																					dataset.drop_index('''embeddings'''   )
																					dataset.save_to_disk(os.path.join(self.tmpdirname					,    '''dataset'''   )   )
																					del dataset
																					lowerCAmelCase__          =	RagRayDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    retrieval_workers=lowerCamelCase_					,    index=CustomHFIndex.load_from_disk(
																					        vector_size=config.retrieval_vector_size					,    dataset_path=config.passages_path					,    index_path=config.index_path					,    )					,    )
														else:
																					lowerCAmelCase__          =	RagRayDistributedRetriever(
																					    lowerCamelCase_					,    question_encoder_tokenizer=self.get_dpr_tokenizer()					,    generator_tokenizer=self.get_bart_tokenizer()					,    retrieval_workers=lowerCamelCase_					,    index=CustomHFIndex(config.retrieval_vector_size					,    lowerCamelCase_   )					,    )
														if init_retrieval:
																					retriever.init_retrieval()
														return retriever







							def   __SCREAMING_SNAKE_CASE							(		self					,    lowerCamelCase_					,    lowerCamelCase_					,    lowerCamelCase_   )       ->							None:
														lowerCAmelCase__   ,					lowerCAmelCase__   ,					lowerCAmelCase__          =	retriever.retrieve(lowerCamelCase_					,    n_docs=lowerCamelCase_   )
														self.assertEqual(retrieved_doc_embeds.shape					,    (2, n_docs, self.retrieval_vector_size)   )
														self.assertEqual(len(lowerCamelCase_   )					,    2   )
														self.assertEqual(sorted(doc_dicts[0]   )					,    ['''embeddings''', '''id''', '''text''', '''title''']   )
														self.assertEqual(len(doc_dicts[0]['''id''']   )					,    lowerCamelCase_   )
														self.assertEqual(doc_dicts[0]['''id'''][0]					,    '''1'''   )  # max inner product is reached with second doc
														self.assertEqual(doc_dicts[1]['''id'''][0]					,    '''0'''   )  # max inner product is reached with first doc
														self.assertListEqual(doc_ids.tolist()					,    [[1], [0]]   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Optional[Any]:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )

														self.distributed_retriever_check(
														    self.get_dummy_pytorch_distributed_retriever(init_retrieval=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_   )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Any:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )

														self.distributed_retriever_check(
														    self.get_dummy_custom_hf_index_pytorch_retriever(init_retrieval=lowerCamelCase_					,    from_disk=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_					,    )







							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							Dict:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )

														self.distributed_retriever_check(
														    self.get_dummy_custom_hf_index_pytorch_retriever(init_retrieval=lowerCamelCase_					,    from_disk=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_					,    )







							@require_ray
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							List[Any]:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )

														self.distributed_retriever_check(
														    self.get_dummy_ray_distributed_retriever(init_retrieval=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_   )
														ray.shutdown()







							@require_ray
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							int:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )
														with self.assertRaises(lowerCamelCase_   ):
																					self.distributed_retriever_check(
																					    self.get_dummy_custom_hf_index_ray_retriever(init_retrieval=lowerCamelCase_					,    from_disk=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_					,    )
														ray.shutdown()







							@require_ray
							def   __SCREAMING_SNAKE_CASE							(		self   )       ->							List[str]:
														lowerCAmelCase__          =	1
														lowerCAmelCase__          =	np.array(
														    [np.ones(self.retrieval_vector_size   ), -np.ones(self.retrieval_vector_size   )]					,    dtype=np.floataa   )

														self.distributed_retriever_check(
														    self.get_dummy_custom_hf_index_ray_retriever(init_retrieval=lowerCamelCase_					,    from_disk=lowerCamelCase_   )					,    lowerCamelCase_					,    lowerCamelCase_   )
														ray.shutdown()