1,263 karma · joined March 28, 2013
Machine learning is my passion. Python + tensorflow are my tools of choice. Always happy to talk tech, so feel free to reach out if you'd like to chat.
You might want to look into https://github.com/VikParuchuri/surya as an alternative to tesseract. Yes, it's associated with a commercial company, but as you long as you aren't a company with 5M in ARR or $5M in funding it's free to use.
``` Access to XMLHttpRequest at 'https://api.doqs.dev/v1/organization' from origin 'https://app.doqs.dev' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. ```
Recent research is finally checking off a few important boxes that are required for widespread applicability:
- Minimal configuration required
Aside from tweaking the language modeling loss coefficient language model finetuning seems to "just work". ULMFiT's approach also requires minimal configuration.
- Reasonable training times
You can finetune these transformer models on a few hundred examples in 10 minutes on a single GPU.
- Beneficial with very small amounts of labeled training data
This approach consistently beats out the use of pretrained word/document embeddings at ~200 training examples. Will be posting some benchmarks on two dozen classification tasks in the near future.
There are a few remaining conditions that I think need to be met before this kind of approach sees widespread use:
- Reasonable inference times
Inference is still rather slow because of model complexity.
- Reasonable memory consumption
Transfer learning is typically well suited to personalization tasks because of limited training data requirements, but large memory footprints mean that it's hard to swap out models for different users on the fly.
See [18] here: https://github.com/fastai/fastai/blob/master/courses/dl2/imd....
Perhaps even more interesting than comparison would be modifications to ULMFit to incorporate good ideas from the AllenNLP ELMo paper.
The learned weighting of representation layers seems like a decent candidate, as does giving the model flexibility to use something other than a concatenated [mean / max / last state] representation of final LSTM output layer (as is the case in some of ELMo's task models). I'm personally curious about using an attention mechanism in conjunction with something like ELMo's gamma task parameter (regularizer) for learning a weighted combination of outputs but haven't been able to get things to function well in practice.
The dataset the ELMo model is trained might also be preferable to WIKI 103 for practical English tasks, although you lose the nice multilingual benefits you get from working with WIKI 103.
In general it seems like the format described in the ELMo paper is simply not designed to work at very low N because the weights of the (often complex) task models used in ELMo's benchmarks are learned entirely for scratch. That's not possible without a decent amount of labeled training data.
Anyhow, thought the paper was very well put together, definitely an enjoyable read. Hope yourself and Sebastian collaborate on future papers, as good things certainly came of this one!