Mozilla published Firefox add-on Firefox Translations 0.4 (previously developed under the name Bergamot Translate) with the realization of the self-sufficient machine translation system working on the browser side without appeal to the external Services. To transfer from one language to another, the Bergamot-Translator , developed within the Bergamot initiative, developers from Mozilla with researchers of several universities Great Britain, Estonia and the Czech Republic with the financial support of the European Union. The code extends under the MPL-2.0 license.
The engine is written in the C ++ language and the intermediate binary representation of Webassembly is compiled using the EMSCripten compiler. The engine is a strapping over the machine translation framework marian , in which the recurrent neural network is used ( RNN ) and language models based on Transformers . GPU can be used to speed up learning and transfer. Marian is used to ensure the work of the Microsoft Translator translation service and develops mainly from Microsoft engineers in conjunction with researchers from Edinburgh and Poznan University.
In Firefox Translations, support for translation from Estonian and Spanish languages is implemented into English and vice versa, as well as from English to German. Translation performance is 500-600 words per minute. There is support for prioritizing the translation of the text apparently in the browser window. The new version provides the ability to automatically download files with models when you first try to translate. Files with models occupy approximately 15 MB for each language. Automatic loading leads to a small delay before the start of the first translation, but radically reduces the size of the superior addition (3.6 MB instead of 124 MB).
In the new version, it is also significantly accelerated by loading models in memory – if 10-30 seconds were required to load the model, now the models are loaded almost instantly. If the transfer of the page takes more than 3 seconds in the interface, an indication of the progress of the operation is provided. The translation is carried out sequentially from top to bottom, starting with a visible area. The translated parts are shown as ready, and not translated remains in the source language.