Generative AI is gaining a lot of public attention at present, with talk around products such as GPT4, ChatGPT, DALL-E2, Bard, and many other AI technologies. Many customers have been asking for more information on AWS’s generative AI solutions. The aim of this post is to address those needs.
This post provides an overview of generative AI with a real customer use case, provides a concise description and outlines its benefits, references an easy-to-follow demo of AWS DeepComposer for creating new musical compositions, and outlines how to get started using Amazon SageMaker JumpStart for deploying GPT2, Stable Diffusion 2.0, and other generative AI models.
Generative AI overview
Generative AI is a specific field of artificial intelligence that focuses on generating new material. It’s one of the most exciting fields in the AI world, with the potential to transform existing businesses and allow completely new business ideas to come to market. You can use generative techniques for:
- Creating new works of art using a model such as Stable Diffusion 2.0
- Writing a best-selling book using a model such as GPT2, Bloom, or Flan-T5-XL
- Composing your next symphony using the Transformers technique in AWS DeepComposer
AWS DeepComposer is an educational tool that helps you understand the key concepts associated with machine learning (ML) through the language of musical composition. To learn more, refer to Generate a jazz rock track using Generative Artificial Intelligence.
Stable Diffusion, GPT2, Bloom, and Flan-T5-XL are all ML models. They are simply mathematical algorithms that need to be trained to identify patterns within data. After the patterns are learned, they’re deployed onto endpoints, ready for a process known as inference. New data that the model hasn’t seen is fed into the inference model, and new creative material is produced.
For example, with image generation models such as Stable Diffusion, we can create stunning illustrations using a few words. With text generation models such as GPT2, Bloom, and Flan-T5-XL, we can generate new literary articles, and potentially books, from a simple human sentence.
Autodesk is an AWS customer using Amazon SageMaker to help their product designers sort through thousands of iterations of visual designs for various use cases and use ML to help choose the optimal design. Specifically, they have worked with Edera Safety to help develop a spinal cord protector that protects riders from accidents while participating in sporting events, such as mountain biking. For more information, check out the video AWS Machine Learning Enables Design Optimization.
To learn more about what AWS customers are doing with generative AI and fashion, refer to Virtual fashion styling with generative AI using Amazon SageMaker.
Now that we understand what generative AI is all about, let’s jump into a JumpStart demonstration to learn how to generate new text or images with AI.
Prerequisites
Amazon SageMaker Studio is the integrated development environment (IDE) within SageMaker that provides us with all the ML features that we need in a single pane of glass. Before we can run JumpStart, we need to set up Studio. You can skip this step if you already have your own version of Studio running.
The first thing we need to do before we can use any AWS services is to make sure we have signed up for and created an AWS account. Next is to create an administrative user and a group. For instructions on both steps, refer to Set Up Amazon SageMaker Prerequisites.
The next step is to create a SageMaker domain. A domain sets up all the storage and allows you to add users to access SageMaker. For more information, refer to Onboard to Amazon SageMaker Domain. This demo is created in the AWS Region us-east-1
.
Finally, you launch Studio. For this post, we recommend launching a user profile app. For instructions, refer to Launch Amazon SageMaker Studio.
Choose a JumpStart solution
Now we come to the exciting part. You should now be logged in to Studio, and see a page similar to the following screenshot.
In the navigation pane, under SageMaker JumpStart, choose Models, notebooks, solutions.
You’re presented with a range of solutions, foundation models, and other artifacts that can help you get started with a specific model or a specific business problem or use case.
If you want to experiment in a particular area, you can use the search function. Or you can simply browse the artifacts to find the relevant model or business solution for your needs.
For example, if you’re interested in fraud detection solutions, enter fraud detection into the search bar.
If you’re interested in text generation solutions, enter text generation into the search bar. A good place to start if you want to explore a range of text generation models is to select the Intro to JS – Text Generation notebook.
Let’s dive into a specific demonstration of the GPT-2 model.
JumpStart GPT-2 model demo
GPT 2 is a language model that helps generate human-like text based on a given prompt. We can use this type of transformer model to create new sentences and help us automate writing. This can be used for content creation such as blogs, social media posts, and books.
The GPT 2 model is part of the Generative Pre-Trained Transformer family that was the predecessor to GPT 3. At the time of writing, GPT 3 is used as the foundation for the OpenAI ChatGPT application.
To start exploring the GPT-2 model demo in JumpStart, complete the following steps:
- On JumpStart, search for and choose GPT 2.
- In the Deploy Model section, expand Deployment Configuration.
- For SageMaker hosting instance, choose your instance (for this post, we use ml.c5.2xlarge).
Different machine types have different price points attached. At the time of writing, the ml.c5.2xlarge that we selected incurs under $0.50 per hour. For the most up-to-date pricing, refer to Amazon SageMaker Pricing.
- For Endpoint name, enter demo-hf-textgeneration-gpt2.
- Choose Deploy.
Wait for the ML endpoint to deploy (up to 15 minutes).
- When the endpoint is deployed, choose Open Notebook.
You’ll see a page similar to the following screenshot.
The document we’re using to showcase our demonstration is a Jupyter notebook, which encompasses all the necessary Python code. Note that the code in this screenshot maybe be slightly different to the code you have, because AWS is constantly updating these notebooks and making sure they are secure, are free of defects, and provide the best customer experience.
- Click into the first cell and choose Ctrl+Enter to run the code block.
An asterisk (*) appears to the left of the code block and then turns into a number. The asterisk indicates that the code is running and is complete when the number appears.
- In the next code block, enter some sample text, then press Ctrl+Enter.
- Choose Ctrl+Enter in the third code block to run it.
After about 30-60 seconds, you will see your inference results.
For the input text “Once upon a time there were 18 sandwiches,
” we get the following generated text:
For the input text “And for the final time Peter said to Mary,
” we get the following generated text:
You can experiment with running this third code block multiple times, and you will notice that the model makes different predictions each time.
To tailor the output using some of the advanced features, scroll down to experiment in the fourth code block.
To learn more about text generation models, refer to Run text generation with Bloom and GPT models on Amazon SageMaker JumpStart.
Clean up resources
Before we move on, don’t forget to delete your endpoint when you’re finished. On the previous tab, under Delete Endpoint, choose Delete.
If you have accidentally closed this notebook, you can also delete your endpoint via the SageMaker console. Under Inference in the navigation pane, choose Endpoints.
Select the endpoint you used and on the Actions menu, choose Delete.
Now that we understand how to use our first JumpStart solution, let’s look at using a Stable Diffusion model.
JumpStart Stable Diffusion model demo
We can use the Stable Diffusion 2 model to generate images from a simple line of text. This can be used to generate content for things like social media posts, promotional material, album covers, or anything that requires creative artwork.
- Return to JumpStart, then search for and choose Stable Diffusion 2.
- In the Deploy Model section, expand Deployment Configuration.
- For SageMaker hosting instance, choose your instance (for this post, we use ml.g5.2xlarge).
- For Endpoint name, enter
demo-stabilityai-stable-diffusion-v2
. - Choose Deploy.
Because this is a larger model, it can take up to 25 minutes to deploy. When it’s ready, the endpoint status shows as In Service.
- Choose Open Notebook to open a Jupyter notebook with Python code.
- Run the first and second code blocks.
- In the third code block, change the text prompt, then run the cell.
Wait about 30–60 seconds for your image to appear. The following image is based on our example text.
Again, you can play with the advanced features in the next code block. The picture it creates is different every time.
Clean up resources
Again, don’t forget to delete your endpoint. This time, we’re using ml.g5.2xlarge, so it incurs slightly higher charges than before. At the time of writing, it was just over $1 per hour.
Finally, let’s move to AWS DeepComposer.
AWS DeepComposer
AWS DeepComposer is a great way to learn about generative AI. It allows you to use built-in melodies in your models to generate new forms of music. The model that you use determines on how the input melody is transformed.
If you’re used to participating in AWS DeepRacer days to help your employees learn about re-enforcement learning, consider augmenting and enhancing the day with AWS DeepComposer to learn about generative AI.
For a detailed explanation and easy-to-follow demonstration of three of the models in this post, refer to Generate a jazz rock track using Generative Artificial Intelligence.
Check out the following cool examples uploaded to SoundCloud using AWS DeepComposer.
We would love to see your experiments, so feel free to reach out via social media (@digitalcolmer) and share your learnings and experiments.
Conclusion
In this post, we talked about the definition of generative AI, illustrated by an AWS customer story. We then stepped you through how to get started with Studio and JumpStart, and showed you how to get started with GPT 2 and Stable Diffusion models. We wrapped up with a brief overview of AWS DeepComposer.
To explore JumpStart more, try using your own data to fine-tune an existing model. For more information, refer to Incremental training with Amazon SageMaker JumpStart. For information about fine-tuning Stable Diffusion models, refer to Fine-tune text-to-image Stable Diffusion models with Amazon SageMaker JumpStart.
To learn more about Stable Diffusion models, refer to Generate images from text with the stable diffusion model on Amazon SageMaker JumpStart.
We didn’t cover any information on the Flan-T5-XL model, so to learn more, refer to the following GitHub repo. The Amazon SageMaker Examples repo also includes a range of available notebooks on GitHub for the various SageMaker products, including JumpStart, covering a range of different use cases.
To learn more about AWS ML via a range of free digital assets, check out our AWS Machine Learning Ramp-Up Guide. You can also try our free ML Learning Plan to build on your current knowledge or have a clear starting point. To take an instructor-led course, we highly recommend the following courses:
- Practical Data Science with Amazon SageMaker
- The Machine Learning Pipeline on AWS
- Amazon SageMaker Studio for Data Scientists
It is truly an exciting time in the AI/ML space. AWS is here to support your ML journey, so please connect with us on social media. We look forward to seeing all your learning, experiments, and fun with the various ML services over the coming months and relish the opportunity to be your instructor on your ML journey.
About the Author
Paul Colmer is a Senior Technical Trainer at Amazon Web Services specializing in machine learning and generative AI. His passion is helping customers, partners, and employees develop and grow through compelling storytelling, shared experiences, and knowledge transfer. With over 25 years in the IT industry, he specializes in agile cultural practices and machine learning solutions. Paul is a Fellow of the London College of Music and Fellow of the British Computer Society.