It’s safe to say that artificial intelligence and machine learning have made their mainstream debut. Just look at the tremendous popularity of OpenAI’s ChatGPT, and the recent announcements of Google Bard and Microsoft’s AI-powered Bing. While AI has quietly become integrated into more and more fields, its applications were not something the average person discussed until recently.
This is just the beginning.
As big data continues to grow in importance, software developers will need to equip themselves with the right skills and knowledge to transform data into actionable business solutions and strategies.
By understanding how AI works and what it can be used for, developers can harness big data to go above and beyond what traditional software development alone can provide. AI techniques — such as natural language processing (NLP), computer vision, and deep learning — can be used to discover patterns, uncover trends, automate processes, and simplify complex tasks.
I’ve seen many great points being made about the positive impact that these technologies will have on productivity and business. Still, I’m also keenly aware of the speculation and anxiety that has been bubbling up in response to the perceived threat that AI poses to entire professions.
First, I want to dispel these anxieties by talking about one of the most interesting applications of artificial intelligence: generative AI. I’ll go over what generative AI is and how it works.
Secondly, we’ll take a deeper look at the technology behind Google Bard, Microsoft Bing, and ChatGPT to see what makes them unique.
Lastly, I’d like to emphasize the opportunity that adopting AI technology represents for software developers who want to expand their skill sets. Developers that adopt AI technology early on will be indispensable because they will accomplish more in less time than a traditional developer. I’ll cover a few ways that you can integrate AI into your workflow today to get ahead of professional setbacks in the future.
Let’s get started.
Generative AI relies on machine learning (ML), a subset of artificial intelligence that enables machines to learn from data without needing explicit programming. Machine learning allows generative AI like DALL•E 2 to learn from data automatically, and generate predictions based on the patterns it observes.
The three most important components of machine learning that you should be aware of are supervised learning, artificial neural networks (ANN), and deep learning. Let’s go over these concepts and how they’re related.
A technique with two phases: training and prediction.
In the training phase, algorithms designed to identify patterns are fed labeled example content. This process is repeated over and over until the algorithm learns how to recognize those patterns. DALL•E 2 was trained on images (content) and their text descriptions (labels), allowing it to recognize objects and their relationships.
If DALL•E 2 is trained on incorrectly labeled data, it will have trouble executing the next phase: prediction.
In the prediction phase, the algorithm is asked to classify unlabeled data. In the case of DALL•E 2, that means predicting what an image looks like from a text description.
Artificial neural networks are an approach to machine learning that uses a layered system of interconnected nodes to perform pattern recognition. You can think of these nodes as neurons. Like neurons, these nodes form connections to other nodes that can be stronger or weaker, depending on various factors. These connections can be reinforced by providing the system with more data in the form of labeled content. By continuing to feed the ANN data, it can observe more subtle distinctions and form new connections in its network.
A class of machine learning algorithms based on artificial neural networks. These algorithms are well-suited to applications like speech recognition, image recognition, visual art processing, and natural language processing. Deep learning is essential for generative AI, as it allows the AI to recognize patterns and make predictions about unseen data.
Start learning today
Machine learning is the future for the next generation of software professionals. This course serves as a guide to machine learning for software engineers. You’ll be introduced to three of the most relevant components of the AI/ML discipline; supervised learning, neural networks, and deep learning. You’ll grasp the differences between traditional programming and machine learning by hands-on development in supervised learning before building out complex distributed applications with neural networks. You’ll go even further by layering networks to create deep learning systems. You’ll work with complex real-world datasets to explore machine behavior from scratch at each phase. By the end of this course, you’ll have a working knowledge of modern machine learning techniques. Using software engineering, you’ll be prepared to build complex neural networks and wrangle real-world data challenges.
If you’d like to learn more about these topics, check out The Fundamentals of Machine Learning for Software Engineers by the Pragmatic Programmers. Having a better understanding of machine learning fundamentals will make it much easier to stay abreast of current trends in artificial intelligence.
Large language models are the most successful example of transformer models, a type of deep learning neural network that learns context by tracking relationships between data elements.
Google Bard, Microsoft Bing, and ChatGPT are all examples of large language models, but what makes each unique?
ChatGPT (Chat Generative Pre-trained Transformer) is a chatbot built on top of the GPT-3 family of large language models. Generative pre-trained transformers work by training on a massive volume of text data (over 45 terabytes) to generate human-like responses. Transformers are often used in natural language processing because they’re designed to process sequential input data (like natural language).
In addition, ChatGPT uses both supervised and reinforcement learning techniques in its training.
Reinforcement learning is a type of machine learning where the system learns by trial and error. For example, if ChatGPT labels a data element correctly, it is given positive feedback. Incorrect answers incur negative feedback.
Unfortunately, ChatGPT does suffer from a few limitations. Most notably, it is susceptible to artificial hallucination, which is when a model returns incorrect answers that deviate from the expected output for its training data. This can be problematic because ChatGPT is designed to generate responses that sound like natural conversation, meaning its responses can sound confident even if they are incorrect.
“AI will fundamentally change every software category, starting with the largest category of all search.” Satya Nadella — Chairman and CEO, Microsoft
Now, while ChatGPT can generate an answer to a question, it is, first and foremost, optimized for returning conversational responses and not validating those responses for truth. ChatGPT is not designed to be used like a search engine and does not search the web for answers to generate its responses.
The current version of Bing runs on ChatGPT 3.5 and comes with an AI chatbot that can synthesize search results into its response. While it’s a fun little sneak peek at what search engines will look like in the near future, Bing will still be susceptible to the same limitations as ChatGPT until they finish developing their next-gen search engine.
Microsoft is collaborating with OpenAI to integrate AI into the next-gen Bing search engine using the Prometheus Model. This new, proprietary large language model is expected to be much more advanced than ChatGPT. More importantly, the Prometheus Model will be optimized for search.
Bard is a conversational AI chatbot built on the LaMDA (Language Model for Dialogue Applications) family of language models.
Bard is not available to the public at this time, but we know a few things about its capabilities. Bard will operate similarly to other AI chatbots, such as ChatGPT, and can mimic human-like dialogue.
We can safely assume that Bard will be optimized to work with the Google search engine, as it is expected to draw on information from the internet in real time. This sets Bard apart from ChatGPT and other language models that do not have access to the internet.
At our core, software developers are all creative problem solvers. The ability to write code, while necessary, is not our greatest asset. Rather, it is our ability to be plunged into new situations and create novel solutions for novel problems. Bringing creativity, initiative, and critical thinking to the table when a problem needs solving is something humans naturally excel at.
This skill is, for now, one that computers struggle to replicate.
Humans are unparalleled in our ability to think abstractly, recognize patterns, and synthesize disparate pieces of information into truly unique ideas. We should give more credit to the complex cognitive processes that occur within the human brain because they enable us to invent, improve, and inspire others to do the same.
While it’s exciting to behold the capabilities of deep learning in action, it’s a mistake to get ahead of ourselves and assume that these models possess the same capacity for imagination and innovation as the human mind.
AI also can’t truly understand what it is they’re producing. Neural networks must be taught to recognize context, objects, and relationships. Intent and meaning are data attributes that humans must supply.
That’s why it’s advantageous to start learning how to utilize AI and ML technology now rather than later.
Generative AI is a fantastic tool with the potential to break the limits of what can be achieved through traditional software development. Rather than resigning software developers to eventual obsoletion, I anticipate that AI/ML will bring even more people into tech because it will make software development easier and more efficient.
GitHub Copilot is just one example of AI being used to reduce the amount of time spent writing repetitive code, with many more on the horizon. By embracing AI, we can focus on solving more challenging problems that require deeper insight and creativity.
To learn more about machine learning, check out the following course:
This course teaches you how to code basic machine learning models. The content is designed for beginners with general knowledge of machine learning, including common algorithms such as linear regression, logistic regression, SVM, KNN, decision trees, and more. If you need a refresher, we have summarized key concepts from machine learning, and there are overviews of specific algorithms dispersed throughout the course.
“A good human plus a machine is the best combination.” Gary Kasparov — Former World Chess Champion
Anxiety over disruptive technology isn’t new. In fact, the fear that entire professions and trades will be automated away echoes the same sentiments that people expressed during the Industrial Revolution of the 1700s-1800s when humanity started transitioning from hand production methods to mechanization.
I believe that our adoption of AI-powered technology will bring about the same abundance and growth of opportunities that were created by the innovations of the Industrial Revolution. That’s why it is in the best interests of every software developer to invest the time and effort it takes to understand artificial intelligence.
Early adopters of AI-powered tools will quickly develop a major competitive advantage over others in the job market, especially as more and more jobs rely on AI and ML technology. There will be greater demand for machine learning engineers, AI developers, and software engineers with AI experience.
Even if you don’t want to be a machine learning engineer, leveraging AI-powered tools will become an invaluable skill for accelerating your productivity.
AI-driven software development is here to stay. Software developers who embrace the potential of AI and ML will reap considerable rewards in terms of productivity, creativity, and job security. As this technology continues to evolve, it will become increasingly important for software developers to sharpen their skills, stay on top of the latest developments, and remain ever-curious about learning new things.
So, are you ready for the future of AI-driven software development?
Happy learning!
Free Resources