sussman-on-ai.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. title: A conversation with Sussman on AI and asynchronous programming
  2. date: 2015-10-14 14:00
  3. author: Christine Lemmer-Webber
  4. tags: sicp, foss, sussman, scheme, ai, federation, fsf
  5. slug: sussman-on-ai
  6. ---
  7. <p class="centered">
  8. <a href="https://en.wikipedia.org/wiki/Gerald_Jay_Sussman">
  9. <img src="/etc/images/blog/Jerry_Sussman.jpg" alt="Sussman!" /></a>
  10. </p>
  11. <p>
  12. A couple weeks ago I made it to the FSF's 30th anniversary party.
  13. It was a blast in many ways, and a good generator of many fond
  14. memories, but I won't go into depth of them here. One particularly
  15. exciting thing that happened for me though was I got to meet
  16. <a href="http://groups.csail.mit.edu/mac/users/gjs/">Gerald Sussman</a>
  17. (of <a href="https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs">SICP</a>!)
  18. The conversation has greatly impacted me, and I've been spinning it
  19. over and over again in my mind over the last few weeks... so I
  20. wanted to capture as much of it here while I still could. There are
  21. things Sussman said that I think are significant... especially in
  22. the ways he thinks contemporary AI is going about things wrong, and
  23. a better path forward. So here's an attempt to write it all down...
  24. forgive me that I didn't have a real tape recorder, so I've written
  25. some of this in a conversational style as I remember it, but of
  26. course these are not the precise things said. Anyway!
  27. </p>
  28. <p>
  29. I wasn't sure initially if the person I was looking at was Gerald
  30. Sussman or not, but then I noticed that he was wearing the same
  31. "Nerd Pride" labeled pocket protector I had seen him wear in
  32. <a href="https://www.youtube.com/watch?v=fAY0_pesZ6s">a lecture I had
  33. watched recently</a>. When I first introduced myself, I said, are
  34. you Sussman? (His first reply was something like to look astonished
  35. and say, "am I known?") I explained that I've been reading the <i>Structure and
  36. Interpretation of Computer Programs</i> and that I'm a big fan of
  37. his work. He grinned and said, "Good, I hope you're enjoying it...
  38. and the jokes! There's a lot of jokes in there. Are you reading
  39. the footnotes? I spent a lot of time on those footnotes!" (And this
  40. point my friend David Thompson joined me, and they both chuckled
  41. about some joke about object oriented programmers in some footnote I
  42. either hadn't gotten to or simply hadn't gotten.)
  43. </p>
  44. <p>
  45. He also started to talk enthusiastically about his other book, the
  46. <a href="http://mitpress.mit.edu/sites/default/files/titles/content/sicm/book.html">Structure and Interpretation of Classical Mechanics</a>,
  47. in which classical engineering problems and electrical circuits are
  48. simply modeled as computer programs. He expressed something similar
  49. to what he had said in the forementioned talk, that conventional
  50. mathematical notation is unhelpful, and that we ought to be able to
  51. express things more clearly as programs. I agreed that I find
  52. conventional mathematical notation unhelpful; when I try to read papers
  53. there are concepts I easily understand as code but I can't parse the
  54. symbolic math of. "There's too much operator overloading", I said,
  55. "and that makes it hard for me to understand in which way a symbol
  56. is being used, and papers never seem to clarify." Sussman replied,
  57. "And it's not only the operator overloading! What's that 'x' doing
  58. there! That's why we put 'let' in Scheme!" Do you still get to
  59. write much code or Scheme these days, I asked? "Yes, I write
  60. tens of thousands of lines of Scheme per year!" he replied.
  61. </p>
  62. <p>
  63. I mentioned that I work on distributed systems and federation,
  64. and that I had seen that he was working on something that was called
  65. the <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/">propagator model</a>,
  66. which I understood was some way of going about asynchronous
  67. programming, and maybe was an alternative to the actor model? "Yes,
  68. you should read the paper!" Sussman replied. "Did you read the
  69. paper? It's fun! Or it should be. If you're not having fun
  70. reading it, then we wrote it wrong!" (Here is
  71. <a href="http://hdl.handle.net/1721.1/44215">the paper</a>,
  72. as well as the <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/">documentation/report</a>
  73. on the <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/propagator.tar">software</a>...
  74. see for yourself!) I explained that I was interested in code that
  75. can span multiple processes or machines, are there any restrictions
  76. on that in the propagator model? "No, why would there be? Your
  77. brain, it's just a bunch of hunks of independent grey stuff sending
  78. signals to each other."
  79. </p>
  80. <p>
  81. At some point Sussman expressed how he thought AI was on the wrong
  82. track. He explained that he thought most AI directions were not
  83. interesting to him, because they were about building up a solid AI
  84. foundation, then the AI system runs as a sort of black box. "I'm
  85. not interested in that. I want software that's accountable."
  86. Accountable? "Yes, I want something that can express its symbolic
  87. reasoning. I want to it to tell me why it did the thing it did,
  88. what it thought was going to happen, and then what happened
  89. instead." He then said something that took me a long time to
  90. process, and at first I mistook for being very science-fiction'y,
  91. along the lines of, "If an AI driven car drives off the side of the
  92. road, I want to know why it did that. I <i>could</i> take the
  93. software developer to court, but I would much rather take the AI to
  94. court." (I know, that definitely sounds like out-there science
  95. fiction, bear with me... keeping that frame of mind is useful for
  96. the rest of this.)
  97. </p>
  98. <p>
  99. "Oh! This is very interesting to me, I've been talking with some
  100. friends about how AI systems and generative software may play in
  101. with software freedom, and if our traditional methods of considering
  102. free software still applied in that form," I said. I mentioned a
  103. friend of a friend who is working on software that is generated via
  104. genetic programming, and how he makes claims that eventually that
  105. you won't be looking at code anymore, that it'll be generating this
  106. black box of stuff that's running all our computers.
  107. </p>
  108. <p>
  109. Sussman seemed to disagree with that view of things. "Software
  110. freedom is a requirement for the system I'm talking about!" I liked
  111. hearing this, but didn't understand fully what he meant... was he
  112. talking about the foundations on top of which the AI software ran?
  113. </p>
  114. <p>
  115. Anyway, this all sounded interesting, but it also sounded very
  116. abstract. Is there any way this could be made more concrete? So I
  117. asked him, if he had a student who was totally convinced by this
  118. argument, that wanted to start working on this, where would you
  119. recommend he start his research? "Read the propagators paper!"
  120. Sussman said.
  121. </p>
  122. <p>
  123. OH! Prior to this moment, I thought we were having two separate
  124. conversations, one about asynchronous programming, and one about AI
  125. research. Suddenly it was clear... Sussman saw these as interlinked,
  126. and that's what the propagator system is all about!
  127. </p>
  128. <p>
  129. One of the other people who were then standing in the circle said,
  130. "Wait a minute, I saw that lecture you gave recently, the one called
  131. '<a href="https://www.youtube.com/watch?v=O3tVctB_VSU">We Don't
  132. Really Know How to Compute!</a>', and you talked about the illusion
  133. of seeing the triangle when there wasn't the triangle" (watch the
  134. video) "and what do you mean, that you can get to that point, and it
  135. <i>won't</i> be a black box? How could it not be a black box?"
  136. </p>
  137. <p>
  138. "How am I talking to you right now?" Sussman asked. Sussman seemed
  139. to be talking about the shared symbolic values being held in the
  140. conversation, and at this point I started to understand. "Sure,
  141. when you're running the program, that whole thing is a black box.
  142. So is your brain. But you can explain to me the reasoning of why
  143. you did something. At that point, being able to inspect the
  144. symbolic reasoning of the system is all you have." And, Sussman
  145. explained, the propagator model carries its symbolic reasoning along
  146. with it.
  147. </p>
  148. <p>
  149. A more contrived relation to this in real life that I've been
  150. thinking about: if a child knocks over a vase, you might be angry at
  151. them, and they might have done the wrong thing. But why did they do
  152. it? If a child can explain to you that they knew you were afraid of
  153. insects, and swung at a fly going by, that can help you debug that
  154. social circumstance so you and the child can work together towards
  155. better behavior in the future.
  156. </p>
  157. <p>
  158. So now, hearing the above, you might start to wonder if everything
  159. Sussman is talking about means needing a big complicated suite of
  160. natural language processing tools, etc. Well, after this
  161. conversation, I got very interested in the propagator model, and to
  162. me at least, it's starting to make a lot of sense... or at least
  163. seems to. Cells' values are propagated from the results of other
  164. cells, but they also carry the metadata of how they achieved that
  165. result.
  166. </p>
  167. <p>
  168. I recommend that you read the materials yourself if this is starting
  169. to catch your interest.
  170. (A repeat: here is <a href="http://hdl.handle.net/1721.1/44215">the paper</a>,
  171. as well as the <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/">documentation/report</a>
  172. on the <a href="http://groups.csail.mit.edu/mac/users/gjs/propagators/propagator.tar">software</a>...
  173. see for yourself!). But I will highlight one part that may help
  174. drive the above points more clearly.
  175. </p>
  176. <p>
  177. The best way to catch up on this is to
  178. <a href="https://www.youtube.com/watch?v=O3tVctB_VSU">watch the video
  179. of Sussman talking about this</a> while
  180. <a href="http://mcdonnell.mit.edu/sussman_slides.pdf">keeping the slides handy</a>.
  181. The whole thing is worth watching, but about halfway through he
  182. starts talking about propagators, and then he gets to an example of
  183. where you're trying to measure the height of a building by a variety
  184. of factors, and you have these relationships set up where as
  185. information is filled in my a cell's dependencies, that cell merges
  186. what it already knows about the cell with what it just learned. In
  187. that way, you might use multiple measurements to "narrow down" the
  188. information. Again, watch the video, but the key part that comes
  189. out of the demonstration is this:
  190. </p>
  191. <pre>
  192. (content fall-time)
  193. =&gt; #(contingent #(interval 3.0255 3.0322)
  194. (shadow super))
  195. </pre>
  196. <p>
  197. What's so special about this? Well, the fall-time has been updated
  198. to a more narrow interval... but that last part (shadow and super)
  199. are the symbols of the other cells which propagated the information
  200. of this updated state. Pretty cool! And no fancy natural language
  201. parsing involved.
  202. </p>
  203. <p>
  204. There's certainly more to be extrapolated from that, and more to
  205. explore (the Truth Maintenance Systems are particularly something
  206. interesting to me). But here were some interesting takeaways from
  207. that conversation, things I've been thinking over since:
  208. </p>
  209. <ul>
  210. <li>
  211. AI should be "accountable", in the sense that it should be able to
  212. express its symbolic reasoning, and be held up to whether or not
  213. its assumptions held up to that.
  214. </li>
  215. <li>
  216. Look more into the propagators model... it's like asynchronous
  217. programming meets functional programming meets neural nets meets a
  218. bunch of other interesting AI ideas that have been, like so many
  219. things, dropped on the floor for the last few decades from the AI
  220. winter, and which people are only now realizing they should be
  221. looking at again.
  222. </li>
  223. <li>
  224. On that note, there's so much computing history to look at, so
  225. many people are focused on looking at what the "new hotness" is in
  226. web development or deployment or whatever. But sometimes looking
  227. backwards can help us better look forwards. There are ideas in
  228. SICP that people are acting as if they just discovered today.
  229. (That said, the early expressions of these ideas are not always the
  230. best, and so the past should be a source of inspiration, but we
  231. should be careful not to get stuck there.)
  232. </li>
  233. <li>
  234. Traditional mathematical notation and electrical engineering diagrams
  235. might not convey clearly their meaning, and maybe we can do better.
  236. <a href="http://mitpress.mit.edu/sites/default/files/titles/content/sicm/book.html">SICM</a>
  237. seems to be an entire exploration of this idea.
  238. </li>
  239. <li>
  240. Free software advocates have long known that if you can't inspect
  241. a system, you're held prisoner by it. Yet this applies not just
  242. to the layers that programmers currently code on, but also into
  243. new and more abstract frontiers. A black box that you can't ask
  244. to explain itself is a dangerous and probably poorly operating
  245. device or system.
  246. </li>
  247. <li>
  248. And for a fluffier conclusion: "If you didn't have fun, we were
  249. doing it wrong." There's fun to be had in all these things, and
  250. don't lose sight of that.
  251. </li>
  252. </ul>