code: def define_buckets(max_seq_len: int, step=10) -> List[int]:
      
      buckets = [bucket_len for bucket_len in range(step, max_seq_len + step, step)]
      buckets[-1] = max_seq_len
      return buckets
docs: Returns a list of integers defining bucket boundaries.
      Bucket boundaries are created according to the following policy:
      We generate buckets with a step size of step until the final bucket fits max_seq_len.
      We then limit that bucket to max_seq_len (difference between semi-final and final bucket may be less than step).
  
      :param max_seq_len: Maximum bucket size.
      :param step: Distance between buckets.
      :return: List of bucket sizes.