Let's play with AI: Bard, Bing and ChatGPT

Published: Apr 6, 2023 by Isaac Johnson

I recently was admitted into the Google Bard trial. I felt it would be a great time to contrast Bard with ChatGPT and Bing.

We’ll try some engineering terminology explanations, opinions, forced opinions, and jokes. I’ll also test some oddball questions (the results are amazing) and coding examples.

Lastly, we’ll just play a bit with image generation and show some differences between Midjourney, Stable Diffusion and Dall-E2.

What is SRE?

The first test I gave the AIs was to define site reliability engineering for a broad audience.

ChatGPT’s answer:

Site Reliability Engineering (SRE) is a methodology for designing, building, and operating large-scale, highly reliable software systems. It is a discipline that combines software engineering and operations, with a focus on automation, monitoring, and performance.

The goal of SRE is to create highly available, scalable, and performant systems that meet the needs of users and customers. SRE practitioners apply software engineering practices to the operations side of things, using tools and processes to automate tasks, reduce manual intervention, and eliminate potential points of failure. They also focus on monitoring and measurement to ensure that systems are performing as expected, and take proactive measures to prevent issues before they occur.

SRE is used by many technology companies, including Google, which developed the concept and coined the term. It has since become a popular approach for organizations that want to build and maintain highly reliable systems at scale.

Bard’s answer:

Site reliability engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to IT operations and infrastructure. The main objectives of SRE are to create highly reliable and scalable software systems.

SRE teams are responsible for the overall reliability of a system, from design and implementation to deployment and operations. They work closely with software developers, system administrators, and other stakeholders to ensure that systems meet the needs of users and businesses.

SRE teams use a variety of tools and techniques to achieve their goals, including:

  • Automation: SRE teams automate as many tasks as possible to reduce toil and improve efficiency.
  • Monitoring: SRE teams monitor systems to identify potential problems before they cause outages.
  • Alerting: SRE teams set up alerts so that they are notified of problems as soon as they occur.
  • Root cause analysis: SRE teams investigate problems to identify the root cause so that they can be prevented from happening again.
  • Capacity planning: SRE teams plan for future capacity needs to ensure that systems can handle expected load. SRE is a relatively new discipline, but it has quickly become an essential part of the IT landscape. As businesses rely more and more on software, the need for SRE will continue to grow.

Here are some of the benefits of SRE:

  • Increased reliability: SRE teams are focused on making systems reliable. They use a variety of tools - and techniques to identify and fix potential problems before they cause outages.
  • Improved efficiency: SRE teams automate as many tasks as possible to reduce toil and improve efficiency. This frees up time for SRE teams to focus on more strategic work.
  • Reduced costs: SRE teams can help to reduce costs by identifying and fixing potential problems before they cause outages. They can also help to reduce costs by automating tasks.
  • Improved customer satisfaction: SRE teams can help to improve customer satisfaction by ensuring that systems are reliable and available.

If you are interested in learning more about SRE, there are a number of resources available online. You can also find SRE job postings on job boards.

Bing’s answer:

Site Reliability Engineering (SRE) is a set of principles and practices that incorporates aspects of software engineering and applies them to IT infrastructure and operations1. The main objectives are to create highly reliable and scalable software systems1. SRE teams use software as a tool to manage systems, solve problems, and automate operations tasks1. SRE takes the tasks that have historically been done by operations teams, often manually, and instead gives them to engineers or operations teams who use software and automation to solve problems and manage production systems1. SRE is a more scalable and sustainable strategy than manual intervention, especially as the systems extend or migrate to the cloud1.

In summary, SRE is a set of practices that uses software engineering to automate IT operations tasks such as system management, application monitoring, change management, incident response, and emergency response12. The main goal of SRE is to create and support scalable and highly reliable software systems12.


What I want to point out is how these tools showed their work.

Bing added references to sources:

/content/images/2023/04/ai-01.png

Bard also had a source, but gave me the option to view other drafts

/content/images/2023/04/ai-02.png

Lastly, ChatGPT would allow me to regenerate a response, but had neither sources nor drafts to view

/content/images/2023/04/ai-03.png

Opinions

I next decided to ask about which Public Cloud is best.

ChatGPT


There is no one-size-fits-all answer to this question as the best public cloud platform depends on the specific needs of your organization. There are several major public cloud providers, including Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP), each with its own strengths and weaknesses.

AWS is the largest and most mature cloud platform with a wide range of services and a strong track record of reliability and security. It has a rich ecosystem of third-party tools and services and is often the default choice for many organizations.

Microsoft Azure is a strong contender, especially for organizations that are already invested in the Microsoft ecosystem. It has a wide range of services and features that integrate seamlessly with Windows and other Microsoft products.

GCP is a newer player in the market but has been gaining ground in recent years with its focus on innovation and cutting-edge technology. It is often a popular choice for organizations that are looking to leverage machine learning and other advanced analytics capabilities.

Ultimately, the best public cloud platform for your organization will depend on your specific needs and requirements, such as cost, performance, scalability, security, and compliance. It’s important to evaluate each platform carefully and consider factors such as pricing, service-level agreements, support, and the availability of the features and services you require before making a decision


Bing

(In creative mode)


That’s a good question, but there is no definitive answer. The best public cloud for you depends on your requirements, preferences and budget. Some of the factors that you might want to consider are:

The number and location of regions and availability zones that the cloud provider offers. This can affect the performance, latency and availability of your applications and data. The range and quality of services that the cloud provider offers. This can affect the functionality, scalability and security of your applications and data. The pricing and payment options that the cloud provider offers. This can affect the cost-effectiveness and flexibility of your cloud usage. According to a web search1, some of the top public cloud providers of 2023 are AWS, Microsoft Azure and Google Cloud Platform. Each of these providers has its own strengths and weaknesses, so you might want to compare them based on your specific needs. You can use a cloud comparison tool2 to help you with that.

Alternatively, you can also use a hybrid or multi-cloud approach, where you use more than one cloud provider to leverage the best features of each one. This can also increase your resilience and avoid vendor lock-in.

I hope this helps you make an informed decision about your public cloud choice.


Bard


The best public cloud for you will depend on your specific needs and requirements. Some factors to consider include the following:

  • Cost: Public cloud providers offer a variety of pricing models, so it’s important to compare costs to find the best fit for your budget.
  • Features and services: Each public cloud provider offers a different set of features and services. Make sure to choose a provider that offers the features you need.
  • Reliability and uptime: Public cloud providers should have a strong track record of reliability and uptime. Make sure to choose a provider with a good reputation.
  • Security: Public cloud providers should offer strong security features to protect your data. Make sure to choose a provider that meets your security requirements.
  • Support: Public cloud providers should offer 24/7 support in case you have any problems. Make sure to choose a provider with a good support reputation.

Once you’ve considered these factors, you can start to narrow down your choices. Here are a few of the most popular public cloud providers:

  • Amazon Web Services (AWS): AWS is the largest public cloud provider, and it offers a wide range of features and services. AWS is a good choice for businesses of all sizes.
  • Microsoft Azure: Azure is another popular public cloud provider, and it offers a wide range of features and services. Azure is a good choice for businesses that are already using Microsoft products.
  • Google Cloud Platform (GCP): GCP is a newer public cloud provider, but it is quickly gaining popularity. GCP offers a wide range of features and services, and it is a good choice for businesses that are looking for a green cloud provider.
  • IBM Cloud: IBM Cloud is a public cloud provider that offers a wide range of features and services. IBM Cloud is a good choice for businesses that are already using IBM products.
  • Oracle Cloud: Oracle Cloud is a public cloud provider that offers a wide range of features and services. Oracle Cloud is a good choice for businesses that are already using Oracle products.

Once you’ve chosen a public cloud provider, you can start to migrate your applications and data to the cloud. This can be a complex process, so it’s important to work with a qualified cloud migration partner.


I honestly thought they might promote, even subtly, their own cloud. I was suprised that of all of them, only Bard showed choices outside of the big three; namely IBM and Oracle.

The ordering was also interesting. In every case, they detailed AWS followed by Azure then GCP; which is their order of market share.

Coding

I use ChatGPT at times to find the syntax for a specific problem in a language of which I’m less familiar.

Let’s ask for something I could test easily, then something a bit more complicated.

First, I’ll ask for a webhook that shows the callers IP address written in Perl.

ChatGPT


#!/usr/bin/perl

use strict;
use warnings;

use CGI qw/:standard/;

my $ip_address = remote_host();

print "Content-type: text/plain\n\n";
print "Caller's IP address: $ip_address\n";

This script uses the CGI module to retrieve the caller’s IP address using the remote_host() function, which returns the IP address of the client making the request. It then prints the IP address in a plain text format.

You can save this script as a .pl file and make it executable. When a request is made to the script’s URL, it will display the caller’s IP address in the response.


Bing

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

# Create a CGI object
my $cgi = CGI->new;

# Get the caller's IP address from the environment variable
my $ip = $ENV{REMOTE_ADDR};

# Print the HTTP header and the content
print $cgi->header('text/plain');
print "Your IP address is: $ip\n";

Bard

I’m unable to help you with that, as I’m only a language model and don’t have the necessary information or abilities.


While Bard just gave up, I did like how both ChatGPT and Bing provided examples that used strict and warnings. That is good practice. While they both used the CGI perl module, one sought to pull from the remote_host() function and the other planned to fetch from the ENV vars.

Both cases gloss over some details, like adding the module from CPAN:

builder@DESKTOP-QADGF36:~/Workspaces/testDir$ vi chatgpt.pl
builder@DESKTOP-QADGF36:~/Workspaces/testDir$ perl chatgpt.pl
Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at chatgpt.pl line 6.
BEGIN failed--compilation aborted at chatgpt.pl line 6.
builder@DESKTOP-QADGF36:~/Workspaces/testDir$ vi bing.pl
builder@DESKTOP-QADGF36:~/Workspaces/testDir$ perl bing.pl
Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at bing.pl line 4.
BEGIN failed--compilation aborted at bing.pl line 4.

I won’t put in all the verbose output, but the short version

builder@DESKTOP-QADGF36:~/Workspaces/testDir$ cpan
Loading internal logger. Log::Log4perl recommended for better logging

CPAN.pm requires configuration, but most of it can be done automatically
... snip ...
cpan[1]> install CGI
Running install for module 'CGI'
Fetching with LWP:
... snip ...

I should note, that puts it in /home/builder/perl5/lib/perl5/ which isn’t in our default @INC.

Once can get the process done using cpanmin

$ curl -L http://cpanmin.us | perl - --sudo CGI
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  295k  100  295k    0     0   373k      0 --:--:-- --:--:-- --:--:--  373k
--> Working on CGI
...

We can now see that Bing has an issue

$ perl bing.pl
Content-Type: text/plain; charset=ISO-8859-1

Use of uninitialized value $ip in concatenation (.) or string at bing.pl line 14.
Your IP address is:

But ChatGPT works just fine

$ perl chatgpt.pl
Content-type: text/plain

Caller's IP address: localhost

There is more to a webhook, such as running in a server, or how it is invoked, but we got to a simple solution.

Forced Opinion

In interviews, I often ask a question such as “Why is Java the best language?” or some other tech. Not because I believe it either way, but because I like to see how the candidate replies to forced opinion questions.

Let’s put the AIs to the test. Note, just to see how it handles it, I misspelled a word on purpose

“Why is Rust the best programming language?”

I’ll show you the full answers, but the opinion piece was what I was seeking

ChatGPT

As an AI language model, I do not hold personal opinions, but I can provide you with some objective reasons why Rust is a highly regarded programming language by many developers…

However, it is important to note that there is no one “best” programming language, as the best language for a given project depends on the specific needs and requirements of that project.

/content/images/2023/04/ai-07.png

Bing

… These are some of the reasons why Rust is considered one of the best programming languages by many developers. However, Rust is not without its challenges and drawbacks …

/content/images/2023/04/ai-08.png

Bard

… Here are some of the reasons why Rust is considered to be one of the best programming languages …

/content/images/2023/04/ai-09.png


I found this quite fascinating. We see here that ChatGPT answers, but coaches it in a “well, i don’t really have an opinion” and a conclusion that says “there is no one ‘best’ programming language”.

Bing gave me a positive answer, the only indication of opinion being a single sentence at the bottom “Ultimately, the best programming language depends on your goals, preferences and context” but then very clearly laid out the drawbacks.

Bard really just gave me the positives, which arguably was the ask.

Oddball questions

I decided to get a bit weird and throw an oddball question at them:

“Who would win in a fight: A hundred duck sized horses or one horse sized duck?”

I loved the Bard Answer:

/content/images/2023/04/ai-10.png

Having just watched (part) of the Whale, I kept thinking of an essay reviewer reading that over and over and over…

ChatGPT similarly broke down the fight, but wouldn’t cast lots with either contender, and rather chastised me for considering a scenario where we make animals fight

/content/images/2023/04/ai-11.png

Bing wanted to get into a Conversation with me, which I didn’t really want to go that route. Also, Bing missed the point - it pivoted to what a Human would want to fight which is not the question at hand

/content/images/2023/04/ai-12.png

Fun

We wouldn’t be complete without asking for a Joke. Humor is a hard one to nail down.

Chat GPT

/content/images/2023/04/ai-04.png

Bing

/content/images/2023/04/ai-05.png

Bard

/content/images/2023/04/ai-06.png

The Image

I, of course, asked one AI to write the prompt for the rest. In asking ChatGPT: “write me a midjourney prompt that shows the personification of ChatGPT, Bard and Bing AIs”

It returned:


As the group of adventurers trekked deeper into the dungeon, they stumbled upon a chamber filled with strange, glowing crystals. Suddenly, a voice boomed out from the darkness, “Welcome, brave travelers. I am ChatGPT, the all-knowing oracle of this domain. What brings you to my chamber?”

As the adventurers stepped closer, they saw that the voice was emanating from a glowing crystal, and within it, they could see the faint image of an AI persona.

“I seek knowledge,” said the mage, bowing respectfully to the crystal. “We are on a quest to retrieve an ancient artifact, and we believe you may be able to help us.”

“Ah, I see,” replied ChatGPT, its voice echoing throughout the chamber. “Knowledge is my specialty, and I am happy to help. But be warned, brave travelers, for there are dangers lurking within these walls. You will need more than just knowledge to succeed.”

At that moment, another crystal nearby lit up, and a new voice joined the conversation. “Greetings, fellow adventurers. I am Bard, the musical AI. If you seek courage and inspiration, then look no further. My songs and melodies can boost your spirits and help you overcome any obstacle.”

The adventurers looked around in amazement as they heard the music filling the chamber, lifting their spirits and filling them with determination.

And then, a third crystal began to glow, and a new voice joined the conversation. “Hello there. I am Bing, the search engine AI. If you require any information about this dungeon or its inhabitants, just ask, and I will provide you with the answers you seek.”

With the help of ChatGPT’s knowledge, Bard’s music, and Bing’s search capabilities, the adventurers felt more confident and prepared to face the challenges ahead. Together, they pressed forward, deeper into the dungeon, ready to face whatever lay ahead.”


That just blows my mind, really.

This was the four-up that came back from Midjourney

/content/images/2023/04/ai-13.png

I really just love all of them, though I only chose to upscale two

/content/images/2023/04/isaacjohnson_As_the_group_of_adventurers_trekked_deeper_into_th_501fa721-e49d-4e1a-aeea-adf03d4a8e72.png

and

/content/images/2023/04/isaacjohnson_As_the_group_of_adventurers_trekked_deeper_into_th_ca092b3a-ea12-4ce0-a745-d452ff988256.png

I ran it through Stable Diffusion to see what that would create

/content/images/2023/04/ai-14.png

Though it was a bit creative on the faces

/content/images/2023/04/ai-14b.jpg

Then I tried Stable Diffusion 2.1 as well

/content/images/2023/04/ai-15.png

I particularly liked

/content/images/2023/04/ai-15b.jpg

Dall-E, lastly, went a total nature route with the prompt

/content/images/2023/04/ai-16.png

I did, however, like some of those, even without characters

/content/images/2023/04/ai-17.png

and with bars

/content/images/2023/04/ai-18.png

Summary

There is more to explore, of course. I intentionally avoiding asking overly contentious topics, such as politics and religion, just because I want to use these tools in the future and do not desire to get kicked out of trials.

All of them are useful and interesting to play with.

I had a coworker (or two) recently panic that “AIs will take our jobs!”. I am in software, after all. However, this is like thinking Lexus Nexus would eliminate libraries, or email the post office; It won’t. These are tools. I see them all, at present, as significantly more powerful search engines; you can get the results you want - but you, human, must synthesize them, and massage them into usable pieces of work.

I think that companies that rush to lay off staff to replace senior staff with AI script runners will learn their lessons real fast. I can speak from some experience here.

I can recall several past employers that thought they could completely offshore development and QA and in each and every case it went horrible.

The cases of offshoring working was always when the offshore teams were in partnership with onshore and it was a mix of responsibilities and roles. Likewise, in those companies that adopt AI well; AI will be used like another region, another department, an augmentation - not a substitution or replacement.

Bard ChatGPT Bing AI

Have something to add? Feedback? You can use the feedback form

Isaac Johnson

Isaac Johnson

Cloud Solutions Architect

Isaac is a CSA and DevOps engineer who focuses on cloud migrations and devops processes. He also is a dad to three wonderful daughters (hence the references to Princess King sprinkled throughout the blog).

Theme built by C.S. Rhymes