ACML-AIMLP Workshop
Phase 1 | Collect a bunch of parallel corpora ![]() |
|
Phase 2 | Train an NMT algorithm (Usually, sequence-to-sequence) ![]() |
|
Phase 3 | Profit! |
Multilingual? 1 | ![]() |
Multi-head self attention? 2 | ![]() |
Unsupervised? 3 | ![]() |
master
branch updatesLet’s put the “science part” aside, and talk about the “engineering part” of ML systems for today
- This talk is NOT about machine translation algorithms
- This talk is NOT about BLEU, or related metrics
- This talk is NOT about Papago or Naver
- This talk aims to pinpoint the subtle areas in our machine learning systems
So I’ve come up with my own, highly irresponsible, sloppy test to rate the quality of a software team. The great part about it is that it takes about 3 minutes. With all the time you save, you can go to medical school. – Joel Spolsky
![]() |
![]() |
---|---|
Instead of writing a program that solves the problem, we (machine learning scientists) write a program that learns to solve the problem, from examples. 7 – Chris Olah | Software 2.0 is written in neural network weights. No human is involved in writing this code. 8 – Andrej Karpathy |
The biggest difference in machine learning: Data is involved!
Have you read the papers below? If not, they’re highly recommended!
However if you don’t have much time to spare… let’s try the following list. 😜
So I’ve come up with my own, highly irresponsible, sloppy test to rate the quality of a machine learning team. The great part about it is that it takes about 3 minutes. With all the time you save, you can take a MOOC. – Lucy Park
There are tools for code version control (ex: Git)
Before | After |
---|---|
![]() |
![]() “My name is Linus, and I am your God.” – Linus Torvalds |
But are there tools for data version control?
Before | After |
---|---|
enko-corpus-2017-10-11/ enko-corpus-2017-10-31/ enko-corpus-2017-11-15/ … |
? |
But at the least, datasets should be versioned or named using an agreed-upon rule
Better yet, let the product manager, instead of the engineer, create the test set
Important because this leads us to hints to debug, or improve algorithms
Example in MT:
Tokenization | → | Train MT model | → | Infer on test set | → | Evaluate |
What a sloppy test! But it’s short and simple, and just might give us ideas to improve our system.
And also special thanks to the following colleagues for reviewing and providing valuable comments:
- Sungjoo Ha
- Sung Kim
- Hyunjoong Kim
- Donghyun Kwak
- Chanju Jung
- Jaesong Lee
- Zaemyung Kim
- Hyunchang Cho
- Junseok Kim
- Joongwhi Shin
Yes, it’s definitely not an easy thing…
Some discussions here → ICML 2017 reproducibility workshop
Johnson et al., Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation, Nov 2016.↩
Vaswani et al., Attention Is All You Need, Jun 2017.↩
Artetxe et al., Unsupervised neural machine translation, Oct 2017.↩
Cunningham, The WyCash Portfolio Management System, 1992.↩
Sculley et al., Hidden Technical Debt in Machine Learning Systems, 2015.↩
M. Fowler. Refactoring: improving the design of existing code. Pearson Education India, 1999.↩
How Does Your Phone Know This Is A Dog?, Sep 2015.↩
Karpathy, Software 2.0, 2017.↩
Andrew Ng, Artificial Intelligence is the New Electricity (video), Feb 2017.↩
http://blog.mpacula.com/2011/02/17/unit-testing-statistical-software/, Feb 2011.↩
Lee et al., Interactive Beam Search for Visualizing Neural Machine Translation, EMNLP, 2017.↩