def METHOD_NAME(args):
    batch_size = args.batch_size
    max_len = args.max_len
    train_ds, dev_ds = load_dataset("iwslt15", splits=("train", "dev"))
    src_vocab = Vocab.load_vocabulary(**train_ds.vocab_info["en"])
    tgt_vocab = Vocab.load_vocabulary(**train_ds.vocab_info["vi"])
    bos_id = src_vocab[src_vocab.bos_token]
    eos_id = src_vocab[src_vocab.eos_token]
    pad_id = eos_id
    def convert_example(example):
        source = example["en"].split()[:max_len]
        target = example["vi"].split()[:max_len]
        source = src_vocab.to_indices(source)
        target = tgt_vocab.to_indices(target)
        return source, target
    key = lambda x, data_source: len(data_source[x][0])
    # Truncate and convert example to ids
    train_ds = train_ds.map(convert_example, lazy=False)
    dev_ds = dev_ds.map(convert_example, lazy=False)
    train_batch_sampler = (
        SamplerHelper(train_ds).shuffle().sort(key=key, buffer_size=batch_size * 20).batch(batch_size=batch_size)
    )
    dev_batch_sampler = SamplerHelper(dev_ds).sort(key=key, buffer_size=batch_size * 20).batch(batch_size=batch_size)
    train_loader = paddle.io.DataLoader(
        train_ds,
        batch_sampler=train_batch_sampler,
        collate_fn=partial(prepare_train_input, bos_id=bos_id, eos_id=eos_id, pad_id=pad_id),
    )
    dev_loader = paddle.io.DataLoader(
        dev_ds,
        batch_sampler=dev_batch_sampler,
        collate_fn=partial(prepare_train_input, bos_id=bos_id, eos_id=eos_id, pad_id=pad_id),
    )
    return train_loader, dev_loader, len(src_vocab), len(tgt_vocab), pad_id