Is there anything that makes training a translation task easy?

I have thousands of side-by-side translations for two computer languages (lower level to higher level), and I would like to train a model that is able to do translations on new data with higher accuracy.

Got any suggestions on what to do? I don't think I want to fine tune a ChatGPT-style model since I think the task is more structured than that. Also, I consider myself technically competent but probably would fail at designing my own model and pipeline.

2 points · 4 comments · view on lemmy.world

4 Comments

larlyssa@lemmy.world · 3 pts · 3y (3 replies)

Try looking into OpenNMT, I used it for a similar task.

https://opennmt.net

hok@lemmy.dbzer0.com · 2 pts · 3y (2 replies)

Thanks, the quickstart guide was straightforward to follow. Do you have any suggestions on how to do word splitting with code, if any? For example, on a test run, I found that the model was not able to synthesize unique constants correctly even though this test run consisted only of obvious "a to b" relationships.

larlyssa@lemmy.world · 3 pts · 3y (1 reply)

If you’re working with a well known language, then you can probably use NLTK to tokenize your words. Word2vec is also helpful if you want a word embedding approach. https://github.com/nltk/nltk

hok@lemmy.dbzer0.com · 4 pts · 3y

Thanks for the tips. After doing a bunch of searching, I found that what I needed was BPE, or byte-pair encoding. This allows the token set to contain sub-word sequences, which lets the tokenizer represent a unique constant like 0x0373 as ['__sow', '0x', '03', '73', '__eow'].