A Learning Story: Love, Scala & Artificial Intelligence
summary
Implements a denoising autoencoder that encodes Scala Meta ASTs into a latent vector using Tree LSTMs and decodes with stacked LSTMs, trained in a PyTorch pipeline. Pipeline: Scala source → Scala Meta AST → JSON token lists → token embeddings → tree-to-vector encoding → sequence decoding; data is sharded into many JSON files for scale. Test-case reconstructions show low cross-entropy loss and some generated code compiles; production-scale training and Scala-native bindings remain future work.
AI-written summary · about
chapters (16)
- 0:00Learning journey intro
- 1:17Disclaimers & context
- 2:21Legacy code struggles
- 4:40Scala macros & contribution
- 5:49Neural networks understand code
- 7:35Autoencoders for code
- 13:03Scala source code analysis
- 15:58Vanilla RNNs limitations
- 18:13LSTMs solve vanishing gradients
- 22:13Tree LSTMs for code
- 24:47Data prep for neural nets
- 29:23Encoding source code
- 32:40Decoding sparse code
- 33:23Autoencoder architecture
- 34:54Results & future work
- 36:41Acknowledgments
related talks
54mWhy Netflix ❤'s Scala for Machine Learning
39mMachine Learning with Scala on Spark
40mScala and Spark in the New Deep Learning Era
39mDive into Deep Learning with Scala
23mRethinking scalable machine learning with Spark ecosystem
35mJVM based DeepLearing on IoT data with Apache Spark
45mDeep Learning and NLP with Spark
32mMachine Learning Infrastructure at Stripe: Bridging from Python JVM
