Wednesday, July 18, 2018

Imperative versus Declarative

A theme in machine learning these days is "imperative versus declarative".  Tensorflow versus Pytorch instantiated this difference.  Do we draw a graph of the computation and then compile it?  Or do we just write the script?  The latter style is "imperative".

She (Sarah Bird) just now said "Just Use It" with respect to the Python ecosystem.  The "ad campaign" is going well, even if I do say so myself.

That's Google versus Facebook in terms of teeth (FANG). However with Tensorflow 1.9 we're seeing more emphasis on imperative.  The differences are less obvious by OSCON 2018, among the AI research labs.

All very geeky, right?

The tools are free so people (social engineers especially) might get in on the ground floor tooling up around those tools.

I know some readers will be concerned regarding my use of "social engineer" as somehow a role, as for many that hearkens back to a much vilified system called "centrally planned" meaning the genius of cybernetics was stifled.

Bureaucrats would try to second guess what could much better be handled by "market forces".  However, given "social media" and "programming" are already neighboring nodes in some word-oriented vector space, I don't see much hope in fighting "social engineers" as a consequent.

Lets just make sure they know about cybernetics.  As in previous ages, we need our engineers to have people skills.  We're simply too dependent on technology, while being people, to overlook this aspect of their training.

Yes, The Time Machine by H.G. Wells does merit a segue here.  Morlocks were anti-social from the Eloi point of view.  The engineering species had gone its own way (underground) on the "not humanities" side of the chasm (C. P. Snow's) and were eating the Eloi for lunch (literally).

That's the dystopian outcome we hope to avoid, and so the Eloi of today are contributing to Morlock sensitivity.

On that note, our current speaker is trans, goes by she, and speaks boldly to the issue of bias, a theme of our show.  She swears and speaks way more frankly than many in polite society (a characteristic of engineers per the movie Titanic), and has a through the roof IQ.  This is all a part of our training.  We're unphased.  Beam, Tensorflow, Spark, Apache Flink...  DL w/ Big Data is our topic.

Helping people around me jack in (to the power strip) meant losing my own link for a short period. This ancient Mac Air has been known to shut down in these circumstances, not because of its battery. Yay for not going down this time.

So Python and Go are developing their ability to talk to Apache Beam.  Beam seems to ship containers around, containing Tensorflow, serving as worker bees against big data.  We're looking at the Chicago Taxi data set.  Python is doing some preprocessing.  We're talking about a demo of parallel stuff happening in the cloud.  A lot of this stuff only works well inside the Google Cloud (she's from Google).

With all these geeks so highly trained in following codes of conduct, and thinking about their biases, a question may arise:  will they help us win wars?  Were you talking cyber-wars then?  Most of us haven't had any time for firearms stuff.

Pyspark talks to Apache Spark... the TensorFlowOnSpark demo runs slowly, given all the pickles and JSON involved.  Lets try it with Apache Arrow instead.  I understand a lot of this stuff given my own meager background in machine learning with little data.  I'm not much a cloud guy at this point.

The Go wordcount demo didn't work, but we were impressed with the command line skills, and the people skills.