Clojure MXNet April Update
Spring is bringing some beautiful new things to the Clojure MXNet. Here are some highlights for the month of April.
Shipped
We’ve merged 10 PRs over the last month. Many of them focus on core improvements to documentation and usability which is very important.
The MXNet project is also preparing a new release 1.4.1
, so keep on the lookout for that to hit in the near future.
Clojure MXNet Made Simple Article Series
Arthur Caillau added another post to his fantastic series - MXNet made simple: Pretrained Models for image classification - Inception and VGG
Cool Stuff in Development
New APIs
Great progress was made on the new version of the API for the Clojure NDArray and Symbol APIs by Kedar Bellare. We now have an experimental new version of the apis that are generated more directly from the C code so that we can have more control over the output.
For example the new version of the generated api for NDArray looks like:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
as opposed to:
1 2 3 4 5 6 7 8 |
|
So much nicer!!!
BERT (State of the Art for NLP)
We also have some really exciting examples for BERT in a PR that will be merged soon. If you are not familiar with BERT, this blog post is a good overview. Basically, it’s the state of the art in NLP right now. With the help of exported models from GluonNLP, we can do both inference and fine tuning of BERT models in MXNet with Clojure! This is an excellent example of cross fertilization across the GluonNLP, Scala, and Clojure MXNet projects.
There are two examples.
1) BERT question and answer inference based off of a fine tuned model of the SQuAD Dataset in GluonNLP which is then exported. It allows one to actually do some natural language question and answering like:
1 2 3 4 5 6 7 |
|
2) The second example is using the exported BERT base model and then fine tuning it in Clojure to do a task with sentence pair classification to see if two sentences are equivalent or not.
The nice thing about this is that we were able to convert the existing tutorial in GluonNLP over to a Clojure Jupyter notebook with the lein-jupyter
plugin. I didn’t realize that there is a nifty save-as
command in Jupyter that can generate a markdown file, which makes for very handy documentation. Take a peek at the tutorial here. It might make its way into a blog post on its own in the next week or two.
Upcoming Events
I’ll be speaking about Clojure MXNet at the next Scicloj Event on May 15th at 10PM UTC. Please join us and get involved in making Clojure a great place for Data Science.
I’m also really excited to attend ICLR in a couple weeks. It is a huge conference that I’m sure will melt my mind with the latest research in Deep Learning. If anyone else is planning to attend, please say hi :)
Get Involved
As always, we welcome involvement in the true Apache tradition. If you have questions or want to say hi, head on over the the closest #mxnet room on your preferred server. We are on Clojurian’s slack and Zulip
Cat Picture of the Month
To close out, let’s take a lesson from my cats and don’t forget the importance of naps.
Have a great rest of April!