The MMT API already offers many features which are used for translation memory management, such as: distinction between various domains within one language pair or importing / deleting new entries.
Would it be possible to equip MMT with fuzzy matching and to use MMT as a TM provider?
Hello @mehmedes ,
Thanks for using MMT and for contacting us!
As you noticed, our neural engines do use internal techniques that are similar to translation memory services, because they store and retrieve (and, if necessary, delete) segments uploaded by users.
However, being our project focused on machine translation, our data structures and processing activities do not allow us to offer a “real” TM server in the short term.
Our goal in storing the uploaded content is to offer adaptivity through on-the-fly tuning of our neural models.
Uploaded contents are tokenized and cleaned before they are stored, so you can’t expect to retrieve the same content you have submitted at the beginning.
Furthermore the choice of storing user data might be reconsidered in future MMT versions if we find better solutions to offer adaptivity.
For the same reasons we do not provide all the data and metadata managing tools that you would expect from a TM server.
This is also the reason why we have not exposed yet any API to retrieve uploaded contents: we can not guarantee that it will be supported in the long term.
However, in case of updates on this topic I'll make sure to contact you and let you know :)
Thank you again for your support!
Have a nice day,
Andrea
If the translation server would (optionally) return the set of pairs used to tune the model, it would certainly be interesting, at least to study more precisely what was done, and have some idea on the way to improve.
Ok, if the need is to have a better way to "debug" the adaptation process, would it be acceptable to have such information in the node.log file? This way you would be able to analyze the process after an API call or even better an evaluation process.
Does is sound reasonable for your purposes?
Yes, it would be an interesting feature ! Providing it on the reply itself would be a first step in the sens of the current request. It could also be used to add information for the requester service, like alternative vocab possibilities on some sentence parts.
Hi @EtienneAb3d
starting from commit https://github.com/ModernMT/MMT/commit/87c56db3e748a96e729f5cadfdbb075c01b2c1f8 in master branch, it is possible to print a verbose logging including, for every neural decoder translation, the source and target sentences plus the suggestions used to tune the model.
In order to activate verbose logging start mmt with verbosity level to 3:
./mmt start -v 3
If you want to quickly look at the translations in the log file you can use this grep command:
grep -Pzo '(?s)Translation received from neural decoder:\s(\s+\N+\s)+' runtime/default/logs/node.log
It works !!
I will study it more precisely afterwards, but in few tests, I'm a bit puzzled by what is logged. Need to do some tests in volume...
Good to hear that!
I'm closing the issue but if you need more info, we're here to help!
Most helpful comment
Hi @EtienneAb3d
starting from commit https://github.com/ModernMT/MMT/commit/87c56db3e748a96e729f5cadfdbb075c01b2c1f8 in master branch, it is possible to print a verbose logging including, for every neural decoder translation, the source and target sentences plus the suggestions used to tune the model.
In order to activate verbose logging start
mmtwith verbosity level to 3:If you want to quickly look at the translations in the log file you can use this grep command: