Design, composition and performance are critical in creating software. What are we doing when we design software? In what ways is design taking things apart? What does this have to do with Clojure, languages and libraries in general? This talk will explore the nature of design and composition and how it impacts our approach to software development practice and tools.
For decades, theoretical computer scientists, mathematicians, and statisticians working in the field of machine learning sorted through a variety of problem settings and modeling techniques. In the past decade, practitioners in the field have converged upon a few well-studied problem settings and modeling techniques. As the theoretical entities under consideration have stabilized, the associated software artifacts have matured, and production systems built from these artifacts have proliferated. Developers possess the skills to make critical improvements in these production machine learning systems.
In this talk, we'll provide a quick introduction to the well-studied problem settings and modeling techniques in machine learning, then discuss how production machine learning systems are built, and finally examine some open source software projects that may be useful when building machine learning systems. Throughout the talk we'll highlight how developers can use their expertise to build better machine learning systems.
Counter-intuitively, the effects of tuning (tweaks to a system in response to real workloads) often dominate the effects of fundamentally better technology. Well-tuned, bad systems usually outperform less mature, better systems.
In this talk, Facebook’s Keith Adams, co-founder of HHVM, the runtime which powers the largest website in the world, will cover:
The evidence base: examples where well-tuned incumbents outperformed better, but less mature designs, in both hardware and software
The tragedy: how our ignorance of this effect limits technical progress
Challenges for planning complex technical projects
One of the examples covered will be Facebook’s HipHop Virtual Machine, which was 7x slower than its performance target at the start. Today, it is 2x faster than that original goal. Yet the block-diagram level design of the system is unchanged. There have been no research breakthroughs, conceptual insights, or heroic ground-up rewrites. The 14x difference came instead from tuning: HHVM now does thousands of small things slightly better.