code: def read_tsv_sentence_pair(
      filename,
      rename_columns,
      delimiter="\t",
      skiprows=None,
      header=0,
      proxies=None,
      max_samples=None,
  ):
      """Reads a tab separated value file. Tries to download the data if filename is not found"""
  
      # get remote dataset if needed
      if not (os.path.exists(filename)):
          logger.info(
              f" Couldn't find {filename} locally. Trying to download ..."
          )
          _download_extract_downstream_data(filename, proxies=proxies)
  
      # TODO quote_char was causing trouble for the asnq dataset so it has been removed - see if there's a better solution
      df = pd.read_csv(
          filename,
          sep=delimiter,
          encoding="utf-8",
          dtype=str,
          skiprows=skiprows,
          header=header,
      )
      if max_samples:
          df = df.sample(max_samples)
  
      # let's rename our target columns to the default names FARM expects:
      # "text": contains the text
      # "text_classification_label": contains a label for text classification
      columns = ["text"] + ["text_b"] + list(rename_columns.keys())
      df = df[columns]
      for source_column, label_name in rename_columns.items():
          df[label_name] = df[source_column].fillna("")
          df.drop(columns=[source_column], inplace=True)
      # convert df to one dict per row
      raw_dict = df.to_dict(orient="records")
      return raw_dict
  
imports: import hashlib
  import json
  import logging
  import os
  import random
  import tarfile
  import tempfile
  import string
  import uuid
  from contextlib import ExitStack
  from itertools import islice
  from pathlib import Path
  import pandas
  from requests import get
  from tqdm import tqdm
  from typing import List
  from farm.file_utils import http_get
  from farm.modeling.tokenization import tokenize_with_metadata
label_desc: Use image node_id 2 for calling a global function with example usage: read_tsv_sentence_pair(filename, rename_columns, delimiter, skiprows, header, proxies, max_samples) and returns: raw_dict