A set of scripts to machine translate the subset of (synthetic) Conceptual Captions used in [BLIP](https://github.com/salesforce/BLIP#pre-training-datasets-download). The conda `environment.yml` file allows you to recreate the environment we used via `conda env create -f environment.yml` (creates env named `translate`). | |
## Step 0: Download data | |
```bash | |
wget https://storage.googleapis.com/sfr-vision-language-research/BLIP/datasets/ccs_synthetic_filtered_large.json -P data | |
``` | |
## Step 1: Swedish captions | |
Convert to tabular and save data to `.feather`. File is saved as `data/ccs_synthetic.feather` | |
```hash | |
python 01_ccs_to_df.py | |
``` | |
Now translate captions from English -> Swedish. Will take about ~26 hours to translate 12.5 million captions with an RTX 3090. | |
```bash | |
python 01_translate_sv.py | |
``` | |
### Step 2: Multilingual captions | |
We separate the original file into `n=150000` observations sized chunks for each language we are translating to. Run `02_multilingual_shard.py` to create a separate data file with 150k obs for each target language. Resulting files will be in `data_multi/` folder. The purpose of this script is also to merge target language metadata from `data/fine_tune_languages.csv` into the data files. This way the data files contain URL:s and languages codes for calling the correct language pair model and tokenizer names from `OPUS-MT` (via the `Helsinki-NLP` model repository on Huggingface). | |
The list of language pairs and links to models were manually assembled. [This leaderboard](https://opus.nlpl.eu/leaderboard/) may help in getting an overview of further available pairs. | |
```bash | |
python 02_multilingual_shard.py | |
``` | |
Clean up and remove the chunks that did not have a target language (file names ending with `nan`) | |
```bash | |
find data_multi | grep nan.feather | xargs rm -f | |
``` | |
Run the multilingual translation script for every data file. Use the bash script `02_translate_multi.sh`. Results will be stored in `data_translated/`. | |
```bash | |
bash 02_translate_multi.sh | |
``` | |
### Step 3 (optional): Merge to single big file | |
Merge everything to the same file as the Swedish captions. | |
```bash | |
python 03_merge_sv_multi.py | |
``` | |