9 ms·
Paradigms of A.I. Programming: Case Studies in Common Lisp (1991)
- ducktective 3y agoI've been keeping my eye on the so called "GOFAI" for a long time but with recent advances in ANN methods (DL, LLM), does it even make sense to further pursue the former? Personally, those "old" methods in the 80s make a lot more sense to me than recent statistical methods.
- Muller20 3y agoDepends on your application. AFAIK they are still used in games because they are easier to control and people want to play against simple AI agents.
- danwee 3y ago> Personally, those "old" methods in the 80s make a lot more sense to me than recent statistical methods. Same for me. > I've been keeping my eye on the so called "GOFAI" for a long time but with recent advances in ANN methods (DL, LLM), does it even make sense to further pursue the former? I think it still matters. Plenty of examples in the tech industry where "old" tech/paradigms became the new "hype". They say it's all a cycle.
- kqr 3y agoThe company I work for makes a killing on applying a 1980s-era ML technique to a really tough modern business problem -- the resulting product is probably the best in the world at what it's doing. Old techniques have several things going for them, with one of the more important ones for us being explainability. A random person off the street could hypothetically, with an hour or two of training, diagnose problems just by looking at the structure of the model. That's very helpful for adapting to market needs. Generality is another big plus. Since the model encodes intuitive ideas there's a lot of room for using it in innovative ways. Older techniques also tend to produce better results with less data, because big data wasn't as much of a thing back then. Unless you have a crazy amount of resources, I think it's far better to be bleeding edge in as few things as possible. Solving a new business problem? Perhaps don't spend too much time on also solving all the childhood diseases of a new technology.
- npsomaratna 3y agoCost is also important. LLMs are expensive to run. I think that going forward, we'll see a mix of "normal" programming, LLMs, and simpler machine learning techniques all combined together, because of economic reasons.
- kqr 3y agoHm. I'm not sure about cost. I haven't done any sort of analysis but I would guess with 75 % certainty that the techniques we use need more watts per byte of data than modern techniques. Modern techniques are very efficient in terms of their operation -- it's just that they achieve performance by needing to do so much operation!
- bmitc 3y agoI was assuming they were referring to the data collection, storage, and processing and model training.
- i_don_t_know 3y agoWhat 1980s-era ML technique are you using and why is it better suited for your application than something modern? Is it „just“ the ability to explain solutions, or is there something else like guarantees for XYZ?
- kqr 3y agoThe core part of it is doing dimensionality reduction with shallow neural networks, but essentially all user-facing functionality we get by controlling the training methods and hooking into the neural network and querying it all sorts of ways. We switched from more modern techniques primarily because they needed too much data to work well, but the other things I mentioned are the benefits we noted along the way. I don't know if that answers your question.
- kazinator 3y agoYou can run it in an air-gapped embedded system with (by today's standards) low RAM, and a slow CPU. Being able to trace how an answer is derived is also worth something.
- jstx1 3y agoIf it's for work or for building something useful, the book is a waste of time. If it's for your personal interest, you can read and learn anything you want. Personally I avoid books like this one (similar to how I avoid very esoteric languages) because I want to spend my time on things are interesting and useful instead of only interesting.
- deleted 3y ago[deleted]
- hiepph 3y agoWith modern and trendy music, should we listen to old and classical music. Should we forget the history? I think not. My favourite genres are Jazz and classical. Sorry if you don't get the metaphor, but it's like so.
- jstx1 3y agoThe metaphor only works if you assume that software has only aesthetic utility.
- cyberbanjo 3y agoJazz is a contemporary pop music, so this doesn't even make sense
- dimatura 3y agoThis book is a good intro to Lisp itself, which is worth knowing in any case- and symbolic AI is probably one of the best domains for it! As for GOFAI in the age of DL/LLM, yes, you should know it, for a couple of reasons. A lot of these techniques aren't really considered "AI" anymore, they're just regular CS algorithms everybody should know: graph search, backtracking, optimization, parsing, etc. The other is that a lot of newer DL/LLM is actually going back to these old problems, but bringing all the new techniques to deal with limitations of the classical algorithms.
- oumua_don17 3y agoBut what is GOFAI? https://en.wikipedia.org/wiki/GOFAI https://en.wikipedia.org/wiki/GOFAI
- bionhoward 3y agoit all loops around, pretty soon we’ll all be back to good old fashioned philosophy
- abecedarius 3y agoThink of this as a "learn to program better" book, even if you don't care about GOFAI. It has a lot of very nice code, and commentary without blather. I've said this about as long as I knew of it, so this isn't just revisionism.
- blihp 3y agoIt depends on what you were expecting from GOFAI. The future state is likely to be a combination of approaches where each makes sense rather than a single one. We're still in the honeymoon phase with deep learning and disillusionment with its ultimate limitations is likely still to come.
- jefffoster 3y agoThis is an absolutely fantastic book! Read it to learn how to program, learn a bit about AI as an added benefit.
- lukego 3y agoThis might be my favorite programming book of all time. It's the book that got me hooked on Common Lisp (from Scheme) too. Focusing less on the elegance of the language definition and more on writing elegant programs. (English isn't as elegantly defined as Lojban and but that didn't hold back Tolkien.)
- mr_luc 3y agoMe too! I came looking for this sort of meta-comment. I've re-read the paper book a few times now. What makes it my favorite is how clear Norvig's writing is. It's easy to follow (both when reading it in English, and when following its execution if you're a programmer), and it introduces important ideas so effortlessly that, years later, it will give you a chuckle. Anyone interested in clearly communicating about technical topics, and with a knowledge of Lisp's nature and some idea of what programming in 1991 looked like, might be tickled to read Chapter 1; even its first few paragraphs are refreshing.
- 7thaccount 3y agoLojban is elegant from I guess a logical/mathematical point of view, but I don't think from a human point of view. Iirc "in the land of invented languages", the author pointed out many issues with the language in that even it's biggest fans can't really speak it fluently...so what's the point? Esperanto is probably a better bar here, which I just started reading the Hobbit in lol. I will say that Lojbahn is super cool though. The attitudinals are particularly interesting.
- codr7 3y agoI think everyone would be better off surveying the AI classics before diving head first into ML. It's the nuclear option for problem solving; and sometimes you can get away with simpler approaches that are easier to implement, reason about and debug.
- medo-bear 3y ago> I think everyone would be better off surveying the AI classics before diving head first into ML this is untrue. ml algorithms have nothing to do with gofai algorithms. if there is something one "would be better off surveying before diving head first into ML" it would be mathematical analysis, statistics, and probability
- jstx1 3y agoThere's nothing intrinsically nuclear about ML and it includes a bunch of simple approaches too. The advice to spend your limited time and attention on outdated approaches seems counterproductive. The things in this book aren't just old - they ended up being a dead end in research. So if it's 2023 and you have 20 hours to learn something new, you can do much better than this book.
- djtango 3y agoI don't deny that AI from the lisp days is out of favour today but I recall Neural Networks sat in a niche corner of maths mostly dormant for quite a while too... I'm not an expert in either but am confident that progress is non linear. Are there any ideas that you think are definitely bad (or even possibly good) from the lisp days?
- brabel 3y agoTry using neural networks on a computer from 30 years ago, or even 10 years ago, and you'll quickly realize why they were not feasible for almost any problem when this book was written.
- 3y ago
- pelasaco 3y agoI think will be interesting to follow this book but with Clojure instead of Common Lisp. Great book from a totally different Era
- dimatura 3y agoThis book is fantastic, it was a great intro to both lisp and (GOF)AI in undergrad. My print copy was pricey - I'm glad to see it available for free!
- bighoki2885000 3y ago[dead]
- hcks 3y agoIt’s always quite ironic to see hipsters today praise GOFAI systems and belittle the deep learning ´hype’, given that they were massively overhyped at the time and delivered next to nothing outside of some niches. Even funnier to see how someone is always quick to explain that ´NN are not real AI’ when GOFAI was literally all about parsing, basic logic and search trees.
- discreteevent 3y agoAlso, Mark Watson has a number of free books on GOFAI in different programming languages (including Lisp) here: https://markwatson.com/#books https://markwatson.com/#books Mark Watson on HN: https://news.ycombinator.com/user?id=mark_l_watson https://news.ycombinator.com/user?id=mark_l_watson Edit: I should have said that you can also pay for his books: https://leanpub.com/u/markwatson https://leanpub.com/u/markwatson
- mark_l_watson 3y agoThanks for mentioning my books! I wrote my first Common Lisp book about the same time Peter wrote his book and I met him at the first Lisp Users meetup in San Diego. His Python short Python programs and notebooks are also fantastic. Off topic, but: I wonder if the new Python++ language Mojo that sits on top of MLIR will end up as the top AI language. Maybe?
- pjmlp 3y agoIn a certain twisted way, Python is Lisp's revenge for the AI Winter.
- rahimnathwani 3y agoMark's Langchain book is awesome - it covers not only how to use the main langchain features, but the motivation behind each of them.
- kagevf 3y ago> GOFAI “Good Old-Fashioned AI” I had to look it up . . .
- perihelions 3y agoMACSYMA has been open-sourced since this book was published as Maxima, https://maxima.sourceforge.io/documentation.html https://maxima.sourceforge.io/documentation.html https://en.wikipedia.org/wiki/Maxima_(software) https://en.wikipedia.org/wiki/Maxima_(software)
- pfdietz 3y agoMacsyma/Maxima's programming style is very archaic though, reflecting that it is from an era before Common Lisp and lexical binding.
- jsmorph 3y agoThe section [0] on pattern matching [1] was an important inspiration for some pattern matching that's running in large-scale production today [2]. [0] https://norvig.github.io/paip-lisp/#/chapter5?id=_52-pattern-matching https://norvig.github.io/paip-lisp/#/chapter5?id=_52-pattern... [1] https://github.com/norvig/paip-lisp/blob/main/lisp/patmatch.lisp https://github.com/norvig/paip-lisp/blob/main/lisp/patmatch.... [2] https://github.com/Comcast/sheens#pattern-matching https://github.com/Comcast/sheens#pattern-matching
- ssrc 3y ago* This book, PAIP, by Peter Norvig * SICP, by Abelson and Sussman * Lisp (3rd ed), by Winston and Horn * The Art of Prolog, by Sterling and Shapiro It's like the same book written by different authors, and all of them are good.
- jimmaswell 3y agoEveryone says SICP is this profound thing but I just couldn't get into it or LISP at all. Am I really missing out on anything after a good CS education and practical experience?
- ssrc 3y agoI mean, I don't like shellfish and people tell me it's my loss, but as long as I have a balanced diet why should I care?
- mebassett 3y agoI love SICP and am one of those fanboys who say everyone should read it. Though, really, a lot of what it covers is much more common knowledge now than it was when I first read it. High-order functions and functions-as-first-class-citizens (ch1) are ubiquitous and most programmers I know are comfortable with them (which wasn't the case in the early 2000s, at least in my circle). Lists, maps, pairs, and symbolic structures are covered in ch2, but most people are comfortable thinking in such terms now. Ch3 covers handling state, and I think there are good ideas in that chapter that still haven't been broadly disseminated. But where the book really shines is the last 2 chapters - I haven't seen much of those ideas (virtual register machine and writing a compiler for it) covered elsewhere. It's still a great way to get exposed to some fundamentals of computing from a pure software environment. But I think you could be quite a capable programmer without ever doing that.
- zerr 3y agoTry original SICP video lectures.
- vinodkd 3y agoJust read it like a novel. Ignore the exercises. What struck me that it took 8 or 9 chapters until they even presented a loop, and it was none the worse for doing that. Actually helped my imperative lizard brain evolve. Yes, its a book that uses lisp, but its not a lisp book. Its about programming techniques, i felt. Of all the books that are usually recommended to be read and nobody actually does, this is the one that i actually read and liked.
- narag 3y agoI bought this book in paper time ago, put it aside (I bought half a dozen at the same time) and when I finally got to read it, I found out that I had brought the wrong version. Too late to return it... A question: is any of the currently hot software written also in Lisp? I mean the LLMs, SD, etc.
- vzcx 3y agoIf you are interested in machine learning, check out Gabor Melis's library: https://github.com/melisgl/mgl https://github.com/melisgl/mgl. It's not an area I'm super familiar with, so I can't speak to it's feature set, but I believe he used it to win a machine learning competition some years ago. I don't think anyone's written a transformer or diffusion model with it, could be a fun challenge.
- necroforest 3y agono
- treeblah 3y agoGrammarly posted an article a couple years ago about using Common Lisp: https://www.grammarly.com/blog/engineering/running-lisp-in-production/ https://www.grammarly.com/blog/engineering/running-lisp-in-p...
- schemescape 3y agoAs someone learning Common Lisp for fun and planning to use it in the web, I’m a little disturbed by the “we manually force garbage collection periodically” part of that article. I haven’t fully digested the commentary, so maybe I’m more concerned than necessary…
- vindarel 3y ago> more concerned than necessary. I would say so, specially when you plan to use it for web dev (welcome!). Shinmera has released a game in CL heavily depending on CLOS (object system), and he says the GC is barely a matter. https://raw.githubusercontent.com/Shinmera/talks/master/els2023-kandria/paper.pdf https://raw.githubusercontent.com/Shinmera/talks/master/els2... https://kandria.com/ https://kandria.com/ (https://github.com/Shirakumo/kandria https://github.com/Shirakumo/kandria) https://reader.tymoon.eu/article/413 https://reader.tymoon.eu/article/413
- lincpa 3y ago[dead]
- schemescape 3y agoDoes anyone have any other free Common Lisp book recommendations? I decided to give CL a try after reading about REPL-driven development, especially CL’s interactive condition/debugging experience. I’m almost done going through Practical Common Lisp. It’s been a fun experience so far! Edit: thanks, everyone!
- kgwgk 3y agohttp://www.paulgraham.com/onlisp.html http://www.paulgraham.com/onlisp.html https://www.lurklurk.org/onlisp/onlisp.html https://www.lurklurk.org/onlisp/onlisp.html
- schemescape 3y agoThanks! Embarrassingly, On Lisp slipped my mind, even though I already had the PDF on my computer.
- atemerev 3y agohttps://leanpub.com/lovinglisp https://leanpub.com/lovinglisp -- this one is great, and the first thing I recommend https://lispcookbook.github.io/cl-cookbook/ https://lispcookbook.github.io/cl-cookbook/ -- also great and up to date https://awesome-cl.com/ https://awesome-cl.com/ -- for anything else.
- schemescape 3y agoWow, I had not run across awesome-cl.com yet, but it’s just what I needed! One aspect of being new to the language is that I don’t know which libraries are commonly used.
- tmtvl 3y agoCLiki (the Common Lisp wiki) has a list of books, some of which are freely available: https://www.cliki.net/Lisp%20books https://www.cliki.net/Lisp%20books
- 3y ago