



import argparse
import json

from tqdm import tqdm
def 							UpperCAmelCase__		(				)->Union[str, Any]:
      _lowerCAmelCase 			=  argparse.ArgumentParser()

      # Required parameters
      parser.add_argument(
          '''--src_path'''     ,				type=__A     ,				default='''biencoder-nq-dev.json'''     ,				help='''Path to raw DPR training data'''     ,				)
      parser.add_argument(
          '''--evaluation_set'''     ,				type=__A     ,				help='''where to store parsed evaluation_set file'''     ,				)
      parser.add_argument(
          '''--gold_data_path'''     ,				type=__A     ,				help='''where to store parsed gold_data_path file'''     ,				)
      _lowerCAmelCase 			=  parser.parse_args()

      with open(args.src_path     ,				'''r'''				) as src_file, open(args.evaluation_set     ,				'''w'''				) as eval_file, open(
          args.gold_data_path     ,				'''w'''				) as gold_file:
            _lowerCAmelCase 			=  json.load(__A				)
            for dpr_record in tqdm(__A				):
                  _lowerCAmelCase 			=  dpr_record['''question''']
                  _lowerCAmelCase 			=  [context['''title'''] for context in dpr_record['''positive_ctxs''']]
                  eval_file.write(question + '''\n'''				)
                  gold_file.write('''\t'''.join(__A				) + '''\n'''				)


if __name__ == "__main__":
    main()




import argparse

import torch

from ...utils import logging
from . import AlbertConfig, AlbertForPreTraining, load_tf_weights_in_albert


logging.set_verbosity_info()
def 							UpperCAmelCase__		(				_SCREAMING_SNAKE_CASE   :	Optional[Any]     ,				_SCREAMING_SNAKE_CASE   :	List[Any]     ,				_SCREAMING_SNAKE_CASE   :	List[Any]				)->Dict:
      # Initialise PyTorch model
      _lowerCAmelCase 			=  AlbertConfig.from_json_file(_SCREAMING_SNAKE_CASE				)
      print(f'''Building PyTorch model from configuration: {config}'''				)
      _lowerCAmelCase 			=  AlbertForPreTraining(_SCREAMING_SNAKE_CASE				)

      # Load weights from tf checkpoint
      load_tf_weights_in_albert(_SCREAMING_SNAKE_CASE     ,				_SCREAMING_SNAKE_CASE     ,				_SCREAMING_SNAKE_CASE				)

      # Save pytorch-model
      print(f'''Save PyTorch model to {pytorch_dump_path}'''				)
      torch.save(model.state_dict()     ,				_SCREAMING_SNAKE_CASE				)


if __name__ == "__main__":
    UpperCAmelCase_									=							argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        "--tf_checkpoint_path", default=None, type=str, required=True, help="Path to the TensorFlow checkpoint path."
    )
    parser.add_argument(
        "--albert_config_file",
        default=None,
        type=str,
        required=True,
        help=(
            "The config json file corresponding to the pre-trained ALBERT model. \n"
            "This specifies the model architecture."
        ),
    )
    parser.add_argument(
        "--pytorch_dump_path", default=None, type=str, required=True, help="Path to the output PyTorch model."
    )
    UpperCAmelCase_									=							parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.albert_config_file, args.pytorch_dump_path)