{"id":13689841,"url":"https://github.com/modernmt/modernmt","last_synced_at":"2026-01-28T01:58:01.815Z","repository":{"id":34266891,"uuid":"38152816","full_name":"modernmt/modernmt","owner":"modernmt","description":"Neural Adaptive Machine Translation that adapts to context and learns from corrections.","archived":false,"fork":false,"pushed_at":"2022-07-07T21:02:43.000Z","size":62724,"stargazers_count":342,"open_issues_count":68,"forks_count":71,"subscribers_count":51,"default_branch":"master","last_synced_at":"2024-11-12T15:43:12.657Z","etag":null,"topics":["machine-learning","machine-translation","mmt","mt","neural","neural-machine-translation","neural-network","translation"],"latest_commit_sha":null,"homepage":"http://www.modernmt.eu/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modernmt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-27T08:18:38.000Z","updated_at":"2024-10-31T09:33:38.000Z","dependencies_parsed_at":"2022-09-09T17:12:22.658Z","dependency_job_id":null,"html_url":"https://github.com/modernmt/modernmt","commit_stats":null,"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernmt%2Fmodernmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernmt%2Fmodernmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernmt%2Fmodernmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernmt%2Fmodernmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modernmt","download_url":"https://codeload.github.com/modernmt/modernmt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251998414,"owners_count":21677980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","machine-translation","mmt","mt","neural","neural-machine-translation","neural-network","translation"],"created_at":"2024-08-02T16:00:28.329Z","updated_at":"2026-01-28T01:58:01.787Z","avatar_url":"https://github.com/modernmt.png","language":"Java","readme":"\u003cdiv\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/1674891/43786026-f2043344-9a67-11e8-8434-27c324c37214.png\" width=\"60%\"\u003e\u003c/img\u003e\n\u003ch1\u003eSimple. Adaptive. Neural.\u003c/h1\u003e\n\u003cbr\u003e\n\u003cdiv/\u003e\n\nWe think that artificial intelligence is going to be the next big thing in our nearby future. It will bring humanity to a new era of access and organization of information.\nLanguage translation is probably the most complex of the human tasks for a machine to learn but it is also the one with the greatest potential to make the world a single family.\n\nWith this project we want to give our contribution to the evolution of machine translation toward singularity.\nWe want to consolidate the current state of the art into a single easy to use product, evolve it and keeping it an open to integrate the greatest opportunities in machine intelligence like deep learning.\n\nTo achieve our goals we need a better MT technology that is able to extract more from data, adapt to context and be easy to deploy. We know that the challenge is big, but the reward is potentially so big that we think it is worth trying hard.\n\n## About ModernMT\nModernMT is a context-aware, incremental and distributed general purpose Neural Machine Translation technology based on **Fairseq Transformer model**. ModernMT is:\n- Easy to use and scale with respect to domains, data, and users.\n- Trained by pooling all available projects/customers data and translation memories in one folder.\n- Queried by providing the sentence to be translated and optionally some context text.\n\nModernMT goal is to deliver the quality of multiple custom engines by adapting on the fly to the provided context.\n\nYou can find more information on: http://www.modernmt.eu/\n\n## Your first translation with ModernMT\n\n### Installation\n\nRead [INSTALL.md](INSTALL.md)\n\nThe distribution includes a small dataset (folder `examples/data/train`) to train and test translations from \nEnglish to Italian. \n\n### Create an engine\n\nWe will now demonstrate how easy it is to train your first engine with ModernMT. *Please notice* however that the provided training set is tiny and exclusively intended for this demo. If you wish to train a proper engine please follow the instructions provided in this guide: [Create an engine from scratch](https://github.com/ModernMT/MMT/wiki/Create-an-engine-from-scratch).\n\nCreating an engine in ModernMT is this simple:\n```bash\n$ ./mmt create en it examples/data/train/ --train-steps 10000\n```\n\nThis command will start a fast training process that will last approximately 20 minutes; **not enough to achieve good translation performance**, but enough to demonstrate its functioning. Please consider that a real training will require much more time and parallel data.\n\n### Start the engine\n\n```bash\n$ ./mmt start\n\nStarting engine \"default\"...OK\nLoading models...OK\n\nEngine \"default\" started successfully\n\nYou can try the API with:\n\tcurl \"http://localhost:8045/translate?q=world\u0026source=en\u0026target=it\u0026context=computer\" | python -mjson.tool\n\n```\nYou can check the status of the engine with the `status` command like this:\n\n```bash\n$ ./mmt status\n\n[Engine: \"default\"]\n    REST API:   running - 8045/translate\n    Cluster:    running - port 5016\n    Binary log: running - localhost:9092\n    Database:   running - localhost:9042\n```\n\nand finally, you can stop a running engine with the `stop` command.\n\n### Start translating\n\nLet's now use the command-line tool `mmt` to query the engine with the sentence *This is an example*:\n```\n$ ./mmt translate \"this is an example\"\nad esempio, è un esempio\n```\n\nWhy this translation? An engine trained with so little data, and for so little time is not able to output nothing more than gibberish. Follow these instructions to create a proper engine: [Create an engine from scratch](https://github.com/ModernMT/MMT/wiki/Create-an-engine-from-scratch)\n\n*Note:* You can query ModernMT directly via REST API, to learn more on how to do it, visit the [Translate API](https://github.com/modernmt/modernmt/wiki/API-Translate) page in this project Wiki.\n\n\n### How to import a TMX file\n\nImporting a TMX file is very simple and fast. We will use again the command-line tool `mmt`:\n```\n$ ./mmt memory import -x  /path/to/example.tmx\nImporting example... [========================================] 100.0% 00:35\nIMPORT SUCCESS\n```\n\n## Evaluating quality\n\nHow is your engine performing compared to the commercial state-of-the-art technologies?\nShould I use Google Translate or ModernMT given this data? \n\nEvaluate helps you answer these questions.\n\nDuring engine training, ModernMT has automatically removed a subset of sentences corresponding to 1% of the training set (or up to 1200 lines at most).\nWith `evaluate` command, these sentences are used to compute the BLEU Score and Matecat Post-Editing Score against the ModernMT and Google Translate engines.\n\nWith your engine running, just type:\n\n```bash\n./mmt evaluate --gt-key YOUR_GOOGLE_TRANSLATE_API_KEY\n```\n\nThe typical output will be like the following:\n\n```\n============== EVALUATION ==============\n\nTesting on 980 lines:\n\n(1/5) Translating with ModernMT...                               DONE in 1m 27s\n(2/5) Translating with Google Translate...                       DONE in 1m 3s\n(3/5) Preparing data for scoring...                              DONE in 0s\n(4/5) Scoring with Matecat Post-Editing Score...                 DONE in 3s\n(5/5) Scoring with BLEU Score...                                 DONE in 0s\n\n=============== RESULTS ================\n\nMatecat Post-Editing Score:\n  ModernMT            : 57.2 (Winner)\n  Google Translate    : 53.9\n\nBLEU Score:\n  ModernMT            : 35.4 (Winner)\n  Google Translate    : 33.1\n\nTranslation Speed:\n  Google Translate    : 0.07s per sentence\n  ModernMT            : 0.09s per sentence\n```\n\nIf you want to test on a different test-set just type:\n```bash\n./mmt evaluate --gt-key YOUR_GT_API_KEY --path path/to/your/test-set\n```\n\n*Notes:* To run `evaluate` you need a Google Translate API key and an internet connection for Google Translate API and the Matecat Post-Editing Score API.\n\n## What's next?\n\n#### Create an engine from scratch\nFollowing this README you have learned the basic usage of ModernMT. You are now ready to create your engine with your own data; you can find more info in the Wiki [Create an engine from scratch](https://github.com/modernmt/modernmt/wiki/Create-an-engine-from-scratch)\n\n#### See API Documentation\nModernMT comes with built-in REST API that allows the user to control every single feature of the tool via a simple and powerful interface. You can find the [API Documentation](https://github.com/modernmt/modernmt/wiki/API-Documentation) in the [ModernMT Wiki](https://github.com/modernmt/modernmt/wiki).\n\n#### Run ModernMT cluster\nYou can setup a cluster of ModernMT nodes in order to load balancing translation requests.\nYou can learn more on the Wiki page [ModernMT Cluster](https://github.com/modernmt/modernmt/wiki/MMT-Cluster).\n\n#### Use advanced configurations\nIf you need to customize the properties and behaviour of your engines, you can specify advanced settings in their configuration files. \nYou can learn how on the Wiki page [Advanced Configurations](https://github.com/modernmt/modernmt/wiki/Advanced-Configurations)\n\n# ModernMT Enterprise Edition\n\n**ModernMT is free and Open Source**, and it welcomes contributions and donations. ModernMT is sponsored by its funding members (Translated, FBK, UEDIN and TAUS) and the European Commission.\n\n**ModernMT Enterprise Edition** is our cloud solution for professional translators and enterprises. It is proprietary, and it includes an improved adaptation algorithm, \"crafted\" with months of optimization and fine-tuning of the system. Moreover, our Enterprise Edition comes with top-quality baseline models trained on billions of high-quality training data.\n\nIn a nutshell **ModernMT Enterprise Edition** offers:\n- Higher quality. A top-notch adaptation algorithm refined with our inner knowledge of the tool.\n- Designed for intensive datacenter usage. 4x cheaper per MB of text translated.\n- Pre-trained generic and custom models in 60 language pairs on multiple billion words of premium data.\n- Support for cluster of servers for higher throughput, load balancing and high availability. \n- Support for 71 files formats without format loss (Office, Adobe, Localization, etc).\n- Enterprise Customer Support via Video Conference Call, Phone and Email on business hours (CET) and optionally 24x7.\n- Custom developments billed per hour of work.\n\nFor any information please email us at info@modernmt.eu\n","funding_links":[],"categories":["Frameworks 🖼","人工智能"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodernmt%2Fmodernmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodernmt%2Fmodernmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodernmt%2Fmodernmt/lists"}