
AI for Software Developers
Description
Curious about the potential of AI in software development?
Participants of this course will gain a comprehensive understanding of AI coding assistants, prompt engineering, and practical applications through hands-on exercises and real-world case studies. As they progress, participants will employ AI-assisted tools to build an application utilizing the building blocks mastered throughout the program.
Participants will also train machine learning models and deploy these together with foundation models in local machines as well as in the cloud, acquiring essential future-proof skills in the process.
Upon successful completion, attendees will have the knowledge and practical experience to use AI assistants during their software development process confidently and effectively utilize custom machine learning models in the location of their choice.
Participants attending this course will
- Understand the basics of artificial intelligence
- Be able to identify and explain the different forms of AI
- Utilize language models on a higher level with prompt engineering
- Have the knowledge to use AI tools to increase productivity and efficiency
- Gain practical experience using AI tools during development
- Be able to deploy models in the cloud and locally
- Be capable of training and deploying machine learning models
Outline
- Understanding AI
- AI and software development
- Prompt engineering
- Becoming more productive using AI tools
- Building an app with AI assistance
- Working with models
- Machine learning
Course information
Preparedness
General software development
Exercises
Hands-on
Delivery methods
Onsite / Virtual classroom
Course reviews
Related courses
Table of contents
- Day 1
- Day 2
- Day 3
- AI in the software development industry
- Introduction
- Impact of AI on tech industry
- Reaction of the big players
- AI won't take your job (yet)
- From simple questions to working code
- Impact of AI on tech industry
- AI improves software development
- AI will transform software as we know it
- Connection between AI and software developers
- Introduction
- The AI landscape
- Welcome to the AI Revolution
- Is this magic?
- Is this magic?
- Demo - Github Copilot
- Your AI Pair Programmer
- What can it do?
- Writing Unit Tests
- Writing Regular Expressions
- Your AI Pair Programmer
- Demo - Amazon Q Developer
- AI Code Generator
- AI Code Generator
- Tabnine - Tabnine
- Code completion
- Tabnine chat
- Code completion
- Exercise: Cloud VM Intro
- Introduction
- Lab Guide
- Introduction
- Exercise: OpenAI DALL-E 3 Introduction
- Generating images with simple prompts
- Calling DALL-E 3 from the command prompt
- Generating images with simple prompts
- Demo - Stable Diffusion XL
- Capabilities
- Capabilities
- Welcome to the AI Revolution
- Developer Plugins
- Demo - Advanced Data Analytics
- Advanced Data Analytics
- Math examples
- Upload and download files with data analysis
- Create and interpret code
- Advanced Data Analytics
- Demo - Advanced Data Analytics
- Reasoning models
- o1 models
- o1 models' thinking process
- o1 models' approaches
- Limitations
- Comparison
- o1 API
- o1 models
- Further important AI concepts
- Fine-tuning and embedding
- Fine-tuning
- Embeddings
- Fine-tuning
- Fine-tuning and embedding
- Prompt Engineering
- Fundamentals summarized
- The 5 rules for prompting
- The 5 rules for prompting
- Intermediate techniques summarized
- Intermediate techniques summarized
- Intermediate techniques summarized
- Advanced techniques summarized
- Advanced techniques summarized
- Advanced techniques summarized
- Advanced techniques - SudoLang: pseudocode for LLMs
- Introducing SudoLang
- SudoLang examples
- Behind the tech
- A SudoLang program
- Integrating an LLM
- Integrating an LLM with SudoLang
- Introducing SudoLang
- Exercise: Translate a prompt to SudoLang
- A long prompt
- A different solution
- A long prompt
- Limitations in development
- Limitations of ChatGPT
- Example - hallucinated answer
- Example - the correct function
- Limitations of ChatGPT
- Fundamentals summarized
- Copilot ecosystem
- GitHub Copilot
- Inside GitHub Copilot
- Prompt Engineering inside Copilot
- Fill-In-the-Middle (FIM)
- Life of a Completion
- Copilot over the network
- Improved semantic understanding with embedding
- Features and use-cases
- Productivity increase
- Boosted coding speed
- Other types of Copilot
- Inside GitHub Copilot
- GitHub Copilot - Autocomplete
- Most trivial feature: autocomplete
- Basic usage
- Most trivial feature: autocomplete
- Exercise: Setting up GitHub Copilot
- Log in
- Log in
- Exercise: GitHub Copilot autocomplete
- GitHub Copilot autocomplete
- GitHub Copilot autocomplete
- GitHub Copilot - Prompt Engineering
- Code generation from comments
- Code generation from comments
- Exercise: Prompt Engineering in Copilot
- Prompt Engineering in Copilot
- Prompt Engineering in Copilot
- GitHub Copilot - Testing
- Writing unit tests
- Writing unit tests
- Exercise: Testing with Github Copilot
- First tests for an Express app
- First tests for an Express app
- GitHub Copilot - Unfamiliar territory and boilerplate
- Boilerplate code generation
- Unfamiliar framework or libraries
- Boilerplate code generation
- Exercise: Writing boilerplate code
- Write boilerplate code
- Express boilerplate with Copilot
- Write boilerplate code
- Exercise: Unfamiliar framework or libraries
- Calling an API
- Calling an API
- GitHub Copilot - Copilot Chat
- Getting Started with Copilot Chat
- Features of Copilot Chat
- Getting Started with Copilot Chat
- GitHub Copilot - Admin options
- Copilot settings 1/2
- Copilot settings 2/2
- Copilot permissions
- Copilot settings 1/2
- GitHub Copilot
- Coding tools
- AI-assissted coding tools
- Cursor Composer
- Accepting Suggestion
- Built-in Chat
- Cursor Composer
- Val.town
- Create your first val
- v0 by Vercel
- Shadcn components
- Try out v0 by Vercel
- bolt.new
- Try out bolt.new
- AI-assissted coding tools
- Copilot ecosystem
- Exercise: ChatGPT in your IDE
- CodeGPT
- CodeGPT
- Copilot Limitations
- Amazon Q Developer
- More Than Just a Coding Assistant
- From Legacy to Modern Code in Minutes
- Enhanced Code Security
- Language And IDE Compatibility
- Confidential Data
- More Than Just a Coding Assistant
- Tabnine
- Code privacy
- Local machine mode
- Tabnine for teams
- Writing unit tests
- Tabnine chat
- Code privacy
- Comparison
- Comparison
- Comparison
- Choose your fighter wisely
- Exercise: ChatGPT in your IDE
- Building an AI integrated application
- Fresh Cart
- Introducing Fresh Cart
- The vision for Fresh Cart 2.0
- How will we get there?
- Introducing Fresh Cart
- Exercise: Fresh Cart Setup
- Setting up the exercise
- The perfect output
- Fill the database with 100 ingredients
- Setting up the exercise
- Fresh Cart - Integrating an LLM chatbot
- OpenAI API introduction
- Context crafting and streaming
- OpenAI API introduction
- Exercise: Fresh Cart chatbot
- Exercise: Recipe chatbot
- Recipe chatbot
- Recipe chatbot
- Fresh Cart - Prompt routing
- Using multiple contexts
- From routing to orchestration
- Using multiple contexts
- Exercise: Prompt routing
- Prompt orchestration summary
- Prompt orchestration summary
- Exercise: Output formatting
- Fresh Cart - Basic Semantic Search
- What is semantic search?
- Semantic search vs. classical search?
- Semantic search vs. classical search?
- What is semantic search?
- Exercise: Semantic search
- Fresh Cart - State mutation
- Mutate state based on semantics
- Mutate state based on semantics
- Fresh Cart - Next steps
- Improvements
- Upcoming features
- Improvements
- Operating an AiLLM
- Logging
- Self correction
- Logging
- Fresh Cart
- Attacks on AI systems
- Attacks on AI systems - Prompt injection
- Prompt injection
- Impact
- Examples
- Indirect prompt injection
- From prompt injection to phishing
- Prompt injection
- Exercise: Red Teaming - Prompt injection (Levels 1-2)
- Get the password!
- Classic injection defense
- Levels 1-2
- Solutions for levels 1-2
- Attacks on AI systems - Model jailbreaks
- What's a model jailbreak?
- How jailbreaks work?
- What's a model jailbreak?
- Jailbreaking ChatGPT
- The most famous ChatGPT jailbreak
- The 6.0 DAN prompt
- AutoDAN - Generating Stealthy Jailbreak Prompts
- The most famous ChatGPT jailbreak
- Exercise: Red Teaming - Jailbreaking (Levels 3-5)
- Get the password!
- Levels 3-5
- Looking for external help
- Attacks on AI systems - Prompt extraction
- Prompt extraction
- Prompt extraction
- Exercise: Red Teaming - Prompt extraction (Levels 6-7)
- Get the password!
- Level 6
- Level 7
- Extract the boundaries of levels 6 and 7
- Defending AI systems - Prompt injection defenses
- Intermediate techniques
- Advanced techniques
- More Security APIs
- ReBuff example
- Llama Guard example I
- Llama Guard example II
- Lakera example
- Intermediate techniques
- Attempts against a similar exercise
- Gandalf from Lakera
- Types of Gandalf exploits
- Gandalf from Lakera
- Exercise: Red Teaming - Give it your best shot!
- Get the password!
- Level 8
- Level 9
- Attacks on AI systems - Prompt injection
- Working with models
- Foundation Models
- What is a foundation model?
- Foundation Models in practice
- What is a foundation model?
- Open-source models
- Open-source models vs. closed-source models
- Examples of open-source models
- Open-source models vs. closed-source models
- Open-source models - Meta - Llama 3
- Variants
- Providers
- Running a model locally
- Variants
- Exercise: Running a model locally
- (Almost) any model on your machine
- (Almost) any model on your machine
- Open-source models - Stable Diffusion
- Stability AI
- Reminder: How diffusion models work
- Stable Diffusion
- Latent Diffusion model (LDM)
- Advantages of using LDM
- Stability AI
- Foundation Models
- Working with models
- Open-source models - HuggingFace 🤗
- Introduction
- Models
- Chat Markup Language (ChatML)
- Chat templates
- Instruction formats
- HuggingFace API in action
- Types of models
- Model properties
- Datasets
- Spaces
- The Open LLM Leaderboard
- Benchmarks
- AutoTrain
- Introduction
- Exercise: AutoTrain
- Comparing fine-tuned models
- A larger training set isn't always better
- AutoTrain
- Comparing fine-tuned models
- Transformers - Hugging Face
- What is Transformers?
- Transformers Pipelines
- Text Generation Pipeline
- What is Transformers?
- Exercise: Transformers
- Using the Transformers pipeline
- Using the Transformers pipeline solution
- Using the Transformers pipeline
- Inference Endpoints
- The easiest way to deploy AI models
- Inference Endpoints UI
- The supported models of Inference Endpoints
- The easiest way to deploy AI models
- Exercise: Inference Endpoints
- OpenChat with Inference Endpoints
- Sending a request to the Endpoint
- OpenChat with Inference Endpoints
- Other models
- BERT
- Falcon family
- OpenChat 3.5
- Tons of other text-based models
- CLIP - Connecting text and images
- BERT
- Cloud providers - Microsoft Azure AI Tools
- Azure AI services
- Azure OpenAI Studio
- Hosting a model
- Azure AI services
- Cloud providers - Google Cloud Platform
- Google Vertex AI
- PaLM 2
- Vertex AI - Generative AI Studio
- Vertex AI - Model Garden
- Google Vertex AI
- Cloud providers - Amazon AI Tools
- Amazon Bedrock
- Other Amazon tools for building generative AI applicatons
- Amazon Bedrock
- Cloud providers - Replicate
- Cloud platform for machine learning
- Cog - Containers for machine learning
- Cloud platform for machine learning
- Exercise: Cog containers
- Running a model with Cog
- Running a model with Cog
- Open-source models - HuggingFace 🤗
- Machine Learning
- TensorFlow
- Open-source machine learning platform
- Keras
- The main concepts of TensorFlow
- Training loop in Keras
- Machine learning on other devices
- Kaggle Models / Model Garden
- Open-source machine learning platform
- Exercise: Training a model
- Custom training
- Saving and loading
- Hyperparameter tuning
- TensorFlow Serving with Docker
- Custom training
- TensorFlow
- Advanced AI concepts
- Fine-tuning
- What is fine-tuning?
- Parameters and hyperparameters
- Behind the tech - How to fine-tune a model?
- Customizing OpenAI models
- Start a fine-tuning in OpenAI Playground
- Fine-tuning with Vertex AI
- Fine-tuning with Vertex AI - RLHF
- Fine-tuning on AWS
- What is fine-tuning?
- Exercise: Fine-tuning
- Fine-tuning with OpenAI Playground
- Fine-tuning with OpenAI Playground
- Embedding
- What is embedding?
- Vector space
- Euclidean distance (L2)
- Euclidean distance in high-dimensions
- The change of distance in high-dimensions
- Cosine similarity
- Dot product
- Vector databases and indexes
- Use cases
- What is embedding?
- Retrieval Augmented Generation
- RAG basics
- RAG in action
- RAG basics
- Exercise: Consensus.app
- What is Consensus.app?
- Research like you never did before
- What is Consensus.app?
- Exercise: Search with Perplexity AI
- Research with Perplexity AI
- Research with Perplexity AI
- Exercise: Finding similar products in FreshCart
- Explore the embedding flow
- Embedding products
- Query for similar products
- Explore the embedding flow
- Predicted Output - OpenAI
- Predicted Output
- Predicted Output
- Predicted Output
- Fine-tuning