LLMs —> The Next Compiler
Back in the late 1970s, I was very interested in computers. With my parents living in a small town in Ontario, I did not have access to the large mainframes to work with as Bill Gates and others in that era did as there was no university nearby that had one of these machines.
Personal computer kits were available at the time, but they were very expensive, and I did not have the skills or tools needed to build a computer. Steve Wozniak developed a powerful architecture (at the time) around the 6502 processor that made it possible for more people to harness the potential these machines offered.
It was the combination of Steve Wozniak’s architecture and Steve Job’s taking this foundation and turning it into a fully realized product that changed the world for people such as myself. Jobs put Wozniak’s brilliant design into a form that made it easy for anyone interested in computers to buy and use the machines without needing any hardware experience at all.
This enabled my parents to buy an apple ][+ (later a //e) for our house, giving me the opportunity to learn how to write software for the machine. I created several applications, which lead to my being hired by a startup called Compu-Train teaching people how to write code and doing other consulting work. I wrote a bulletin board system with some of my friends that ended up being featured on TV and in the news at the time.
The process of taking a new technology being paired combined with a delivery system that takes a complex technology requiring a high degree of expertise to operate and makes it accessible to millions of other people who do not possess the deep expertise is known as Amplification. It is an amazing aspect of human culture in which we build systems and tools that bring powerful new capabilities that augment our abilities to do more, think faster and understand our world better.
Steve Jobs spoke about this during an interview he did while at Next before his now historic move to re-join apple (interview is fascinating, well worth checking out as it was as next was failing and before the opportunity with apple arose… The Steve Jobs 95 Interview unabridged — YouTube -32 minute mark).
“Very few people could build ‘computers’….There were less than 100 people who did the mac, and yet apple shipped well over 10 million of them… That’s a pretty large amplification — a million to one… We were in the right place and the right time to change the course of that vector a little bit and whats interesting is if you change the course of a vector near its origin by the time it gets a few miles out its way different.”
The amplification associated with the personal computer was taking a formerly complex and expensive technology and packaging it in a way that made it possible for people without the skills required to build a computer to acquire the computing capability. This involved combining the microprocessor, storage (floppy disks), display, memory and embedding a framework for accessing these capabilities through programming language directly into the machine: applesoft basic, DOS 3.3 and assembler. All this was provided at an insanely low cost for the time of about $3000.00.
This amplification effect has been repeated several times since the advent of personal computers, each time with the reach and rate of amplification increasing. The internet, the world wide web, the mp3, the iphone, the cloud all being examples.
The seemingly rapid rise of Large Language Models and generative AI is the latest of these, and it is happening on a scale and rate that is astonishing. (many technology shifts appear rapid, but in fact there are many years of innovations occurring before they hit an inflection point — another post will explore this)..
While the usual amplification effects associated with prior iterations of technological acceleration of cost reduction, packaging and removal of barriers to entry apply, there is one major difference that is driving the rate of change in this case.
The absolute revolutionary factor that is already compounding the acceleration of large language models is their ability to reduce a major barrier to adoption associated with prior technologies: the need to learn programming.
When my parents brought home the apple ][+ and later the apple //e, the only thing it did when you turned it on was show you a flashing cursor.
There were a few applications such as visicalc which really put the machine on the map but at the start, there wasn’t a lot of software available for these machines — if you wanted the thing to do something useful, you had to write code for it.
The need to write code has been a requirement of every single technological innovation since computing first started with Ada Lovelace envisioning the potential of machines to execute complex calculations. Assembly language emerged as the primary means to communicate with early computing systems. Programmers had to painstakingly write code in assembler specific to each machine architecture, which was then converted to machine code for execution. This required a deep and specific understanding of hardware to be able to write the instructions for the machine.
As computers became more advanced, higher-level programming languages were developed, such as FORTRAN, COBOL, Lisp and later C and C++. In order to write Blastcad and the work I did on the AMINE 3d mine modelling project in the late 1980s and early 1990s I had to learn a combination of LISP and C.
These languages allowed programmers to write code in a more human-readable format, abstracting away the complexities of the underlying hardware. This shift dramatically improved productivity and enabled the creation of more complex software systems. But the requirement to learn how to write code to fully take advantage of the technology has persisted and has been the case for every major platform amplification since.
The internet required network level programming to use. The world wide web, the web browser and HTML expanded the audience and reach of the internet, but you needed to write HTML code, and later PHP, Active Server Pages, and eventually Javascript to really take advantage of it. Industrylink, created by Kuhn and Associates in 1996 was the first industry specific search engine. I had to learn how to write my first active server page application using a database (IndustryLink (archive.org) ) and a strange mashup of HTML and server side markup langauge.
The iphone — incredibly powerful mobile capabilities, but it was the app store that really made it take off — which you needed to understand objectiveC at the time to create apps with.
The advent of the cloud and cloud platforms has made capabilities reserved for only the largest enterprises available to anyone with a credit card.
The coding requirement barrier though has not only persisted it has increased with the sheer number of different platforms and languages, but the requirement for coding has also become a lot more complex over time.
The LLM Revolution is poised to change this and change it fast.
By training these models on vast amounts of text data, LLMs have developed an unprecedented ability to understand natural language and generate code in response to human-readable instructions. This breakthrough has made it possible for non-technical staff to contribute to software development without having to learn a programming language.
It is now possible to generate functional code from specific prompts — in English or any language to any programming language, effectively making large language models the next generation of compiler.
The potential impact of the capability of LLMs to make anyone a programmer on large enterprises is immense. By enabling non-technical employees to write code in their native language, LLMs are set to revolutionize the software development process. This newfound capability accelerates digital transformation by broadening the pool of potential contributors to software projects. It also fosters a culture of innovation by empowering employees to develop and implement their own ideas.
Moreover, LLMs reduce reliance on specialized software developers, allowing them to focus on more complex tasks. This shift has the potential to bridge the gap between technical and non-technical staff, improving collaboration and communication across the organization.
My sense is that the integration of LLM for Natural Language Question ‘Compilers’ will occur first in AI platforms and databases. Query languages are a more constrained domain than general programming languages. There is tremendous value to integrating LLMs specifically trained to interpret questions into query statements. I anticipate platforms like Databricks being the first to deliver these types of capabilities.
Graph database leader Neo4j is in fact already demonstrating this capability (Generating Cypher Queries With ChatGPT 4 on Any Graph Schema | by Tomaz Bratanic | Neo4j Developer Blog | May, 2023 | Medium ).
If Neo4j were to take this further, and train a natural language to cypher ‘compiler’ that was capable of taking a question in any language and transform it into a cypher statement, it would make the power of graph available to anyone without the need to learn how to write cypher code.
Imagine an executive being able to ask questions in any language and get results back in a specified form- graph for exploration, tabular for spreadsheets, charts for visualization, or full text for use in reports.
Graph models are also ‘white board friendly’ in that the way the model is drawn with relationships between entities on white board accurately represents the actual data model. This is a unique characteristic that is quite different from other forms of data modelling paradigms. It is also amenable to auto-generation of model from a description, or better, by simply giving the LLM the actual drawing captured from a whiteboard. (Create Neo4j Database Model With ChatGPT — Graph Database & Analytics )
This would be an incredible step change in capability, enabling anyone in the enterprise to be able to create an utilize their own models of the organizations data.
Take for example an executive of a large medical manufacturing company specializing in infection control products being able to generate charts and reports simply by describing what they are looking for “Generate a chart that shows me third quarter results for the infection control hand sanitizer products in the nursing home market segment in Canada by region.“
With very little training, a large language model can automatically translate an English language question into a query.
As an example, I have used this to turn questions into cypher, a special query language used for graph databases.
Experts are still needed to bring together the data foundation, setup the training data, build out the code required to run the model training and fine tuning and processes to keep it up to date, but once that is done and in place, ANYONE in the enterprise then has access to the full power of this new paradigm.
People working in the programming domain are clearly concerned about this impacting their jobs. The fact is though as with any of the previous amplifications, it is the REACH of the technical capability that is extended. While everyone will be able to write prompts to generate code using their natural language of choice (English in my case), those who currently write code will now have tools that will augment their existing capabilities.
Coding at a deeper level is a mindset: an ability to break down complex problems into models and patterns that form a solution. Training in the domain of computer science and data science will actually become more important to ensure those who are building enterprise code to solve their specific business and engineering challenges have accurate data and accurately trained generators to transform their natural language prompts into code correctly.
I have been through this now enough times to know resisting this sort of major disruption is not useful. I loved the Apple //e — I still have it. The IBM PC and DOS though came to dominate the market and it became the standard business machine. Had I refused to adopt it, my career would have ended in the mid 1980s. The same applies to all the subsequent disruptions since then.
Over the years as disruptions occur and technology changes, I have learned C, C++, LISP (my favorite language), Java, C#, .net, Javascript, Typescript, Python, SQL, Cypher, Olap Cubes, Hadoop, Spark, Databricks…
LLMs and Code Copilots are just another new augmentation that allows me to imagine and bring to life more powerful systems.
Existing programmers and data scientists augmented by AI code co-pilots will be able to solve much more complex problems faster than is currently possible. I am already finding this. I am adept at graph databases, SQL, analytics, and integration/api development. I am not great at user interfaces. The things I am already good at in terms of creating models of physical systems, I find AI very useful for accelerating the path to finding the optimal approach.
Using AI code co-pilots, I can now build basic user interfaces to test out ideas before I take them to a person who has more skill and design sensibility than I do for refinement.
AI Augmentation will benefit entrepreneurs tremendously as it will be possible to create MVPs (minimum viable products) much more quickly than before.
AI Augmentation will also benefit enterprises by allowing business people to leverage data to derive insight in amazing new ways, engineers to solve increasingly complex challenges by generating code for solutions to problems that require deep domain specific knowledge.
This will be accomplished by taking all enterprise knowledge stored in documents and files and data from all enterprise systems and using these to fine tune commercial models or train enterprise specific custom LLM models. These models can then be used to create co-pilots for the organization that make access to procedures, expertise, code generation, engineering solutions — the imagination is the limit.
Linking these models into various business analytics utilities such as PowerBI then means virtually everyone in an enterprise can become a programmer.
All they need to do is ask the question…and they can do it in any language…
References:
- Use ChatGTP To Query your Neo4j Database: Use ChatGPT to Query Your Neo4j Database | by Tomaz Bratanic | Towards Data Science
- Microsoft has released Guidance — an LLM Prompt control language https://github.com/microsoft/guidance/
- Create Neo4j Database Model with ChatGPT: Create Neo4j Database Model With ChatGPT — Graph Database & Analytics
- How Tableau GPT and Tableau Pulse are reimagining the data experience: How Tableau GPT and Tableau Pulse are reimagining the data experience
- Databricks AI Functions: Introducing AI Functions: Integrating Large Language Models with Databricks SQL — The Databricks Blog
- Generating Cypher Queries with ChatGPT4 on Any Graph Schema — will we still need to learn query languages in the future?: Generating Cypher Queries With ChatGPT 4 on Any Graph Schema | by Tomaz Bratanic | Neo4j Developer Blog | May, 2023 | Medium
- Peter Diamandis — No Human Coders in 5 year? No Human Coders in 5 Years? (diamandis.com)
– “Very few people could engineer ‘personal computers’ but they could give them to more people who could build an automated factory to build them factory to build them and then they could give them to even more people who could use them. The amplification factor was very large. With the macintosh as an example, there were less than 100 people who did the mac, and yet apple shipped well over 10 million of them… That’s a pretty large amplification — a million to one. And its not often in your life that you get that opportunity to amplify your values a hundred to one/ a million to one. That’s really what we were doing — we tried to say computation and how it relates to people is really in its infancy here and we were in the right place and the right time to change the course of that vector a little bit and whats interesting is if you change the course of a vector near its origin by the time it gets a few miles out its way different. We were very cognizant of this fact really from almost the beginning at apple. We for some incredibly lucky reason fortunate enough to be at the right place at the right time to do this. The contributions that we tried to make embodied values that were not only of technical excellence and innovation which I think we certainly did our share of, but innovation in a more humanistic way. “…..
Steve Jobs