https://github.com/jeffheaton/app_generative_ai
T81-559: Applications of Generative Artificial Intelligence
https://github.com/jeffheaton/app_generative_ai
Last synced: 2 months ago
JSON representation
T81-559: Applications of Generative Artificial Intelligence
- Host: GitHub
- URL: https://github.com/jeffheaton/app_generative_ai
- Owner: jeffheaton
- License: apache-2.0
- Created: 2024-01-07T13:57:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-20T00:53:57.000Z (5 months ago)
- Last Synced: 2025-03-28T22:12:14.538Z (2 months ago)
- Language: Jupyter Notebook
- Size: 7.41 MB
- Stars: 137
- Watchers: 8
- Forks: 51
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: citations.bib
Awesome Lists containing this project
README
# T81 559:Applications of Generative Artificial Intelligence
[Washington University in St. Louis](http://www.wustl.edu)
Instructor: [Jeff Heaton](https://sites.wustl.edu/jeffheaton/)
- Section 1. Spring 2025, Wednesday, 6:00 PM, Location: January Hall / 10
# Course Description
This course covers the dynamic world of Generative Artificial Intelligence providing hands-on practical applications of Large Language Models (LLMs) and advanced text-to-image networks. Using Python as the primary tool, students will interact with OpenAI's models for both text and images. The course begins with a solid foundation in generative AI principles, moving swiftly into the utilization of LangChain for model-agnostic access and the management of prompts, indexes, chains, and agents. A significant focus is placed on the integration of the Retrieval-Augmented Generation (RAG) model with graph databases, unlocking new possibilities in AI applications.
As the course progresses, students will delve into sophisticated image generation and augmentation techniques, including LORA (LOw-Rank Adaptation), and learn the art of fine-tuning generative neural networks for specific needs. The final part of the course is dedicated to mastering prompt engineering, a critical skill for optimizing the efficiency and creativity of AI outputs. Ideal for students, researchers, and professionals in computer science or related fields, this course offers a transformative learning experience where technology meets creativity, paving the way for innovative applications in the realm of Generative AI.
Note: This course will require the purchase of up to $100 in OpenAI API credits to complete the course.
# Objectives
1. Learn how Generative AI fits into the landscape of deep learning and predictive AI.
2. Be able to create ChatBots, Agents, and other LLM-based automation assistants.
3. Understand how to make use of image generative AI programatically.# Syllabus
This [syllabus](https://data.heatonresearch.com/wustl/syllabus/jheaton-t81-559-spring-2025-syllabus.pdf) presents the expected class schedule, due dates, and reading assignments. Download current syllabus.
| Module | Content |
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Module 1](t81_559_class_01_1_overview.ipynb)
**Meet on 01/15/2025** | **Module 1: Introduction to Generative AI**
- 1.1: Course Overview
- 1.2: Generative AI Overview
- 1.3: Introduction to OpenAI
- 1.4: Introduction to LangChain
- 1.5: Prompt Engineering
- **We will meet on campus this week! (first meeting)**
| [Module 2](t81_559_class_02_1_dev.ipynb)
Week of 1/22/2025 | **Module 2: Prompt Based Development**
- 2.1: Prompting for Code Generation
- 2.2: Handling Revision Prompts
- 2.3: Using a LLM to Help Debug
- 2.4: Tracking Prompts in Software Development
- 2.5: Limits of LLM Code Generation
- [Module 1 Program](./assignments/assignment_yourname_t81_559_class1.ipynb) due: 1/23/2025
- Icebreaker due: 1/23/2025
| [Module 3](t81_559_class_03_1_llm.ipynb)
Week of 1/29/2025 | **Module 3: Introduction to Large Language Models**
- 3.1: Foundation Models
- 3.2: Text Generation
- 3.3: Text Summarization
- 3.4: Text Classification
- 3.5 LLM Writes a Book
- [Module 2 Program](./assignments/assignment_yourname_t81_559_class2.ipynb) due: 1/30/2025
| [Module 4](t81_559_class_04_1_langchain_chat.ipynb)
Week of 2/5/2025 | **Module 4: LangChain: Chat and Memory**
- 4.1: LangChain Conversations
- 4.2: Conversation Buffer Window Memory
- 4.3: Conversation Token Buffer Memory
- 4.4: Conversation Summary Memory
- 4.5: Persisting Langchain Memory
- [Module 3: Program](./assignments/assignment_yourname_t81_559_class3.ipynb) due: 2/6/2025
| [Module 5](t81_559_class_05_1_langchain_data.ipynb)
**Meet on 2/12/2025** | **Module 5: LangChain: Data Extraction**
- 5.1: Structured Output Parser
- 5.2: Other Parsers (CSV, JSON, Pandas, Datetime)
- 5.3: Pydantic parser
- 5.4: Custom Output Parser
- 5.5: Output-Fixing Parser
- [Module 4 Program](./assignments/assignment_yourname_t81_559_class4.ipynb) due: 2/13/2025
| [Module 6](t81_559_class_06_1_rag.ipynb)
Week of 2/19/2025 | **Module 6: Retrieval-Augmented Generation (RAG)**
- 6.1 Introduction to RAG
- 6.2 Introduction to ChromaDB
- 6.3 Understanding Embeddings
- 6.4 Q&A Over Documents
- 6.5 Embedding Databases
- [Module 5 Program](./assignments/assignment_yourname_t81_559_class5.ipynb) due: 2/20/2025
| [Module 7](t81_559_class_07_1_agents.ipynb)
Week of 2/26/2025 | **Module 7: LangChain: Agents**
- 7.1: Introduction to LangChain Agents
- 7.2: Understanding LangChain Agent Tools
- 7.3: LangChain Retrival and Search Tools
- 7.4: Constructing LangChain Agents
- 7.5: Custom Agents
- [Module 6 Program](./assignments/assignment_yourname_t81_559_class6.ipynb) due: 2/27/2025
| [Module 8](t81_559_class_08_1_kaggle_intro.ipynb)
**Meet on 3/5/2025** | **Module 8: Kaggle Assignment**
- 8.1: Introduction to Kaggle
- 8.2: Kaggle Notebooks
- 8.3: Small Large Language Models
- 8.4: Accessing Small LLM from Kaggle
- 8.5: Current Semester's Kaggle
- [Module 7 Program](./assignments/assignment_yourname_t81_559_class7.ipynb) due: 3/6/2025
- **We will meet on campus this week! (third meeting)**
| [Module 9](t81_559_class_09_1_image_genai.ipynb)
Week of 3/19/2025 | **Module 9: MultiModal and Text to Image**
- 9.1: Introduction to MultiModal and Text to Image
- 9.2: Generating Images with DALL·E
- 9.3: Editing Existing Images with DALL·E
- 9.4: MultiModal Models
- 9.5: Illustrated Book
- [Module 8 Program](./assignments/assignment_yourname_t81_559_class8.ipynb) due: 3/20/2025
| [Module 10](t81_559_class_10_1_streamlit.ipynb)
Week of 3/26/2025 | **Module 10: Introduction to StreamLit**
- 10.1: Running StreamLit in Google Colab
- 10.2: StreamLit Introduction
- 10.3: Understanding Streamlit State
- 10.4: Creating a Chat Application
- 10.5: More Advanced Chat Application
- [Module 9 Program](./assignments/assignment_yourname_t81_559_class9.ipynb) due: 3/27/2025
| [Module 11](t81_559_class_11_1_finetune.ipynb)
Week of 4/2/2025 | **Module 11: Fine Tuning**
- 11.1: When is fine tuning necessary
- 11.2: Preparing a dataset for fine tuning
- 11.3: OepnAI Fine Tuning
- 11.4: Application of Fine Tuning
- 11.5: Evaluating Fine Tuning and Optimization
- [Module 10 Program](./assignments/assignment_yourname_t81_559_class10.ipynb) due: 4/3/2025
| [Module 12](t81_559_class_12_1_prompt_engineering.ipynb)
Week of 4/9/2025 | **Module 12: Prompt Engineering**
- 12.1 Intro to Prompt Engineering
- 12.2 Few Shot and Chain of Thought
- 12.3: Persona and Role Patterns
- 12.4: Question, Refinement and Verification Patterns
- 12.5: Content Creation and Structured Prompt Patterns
| [Module 13](t81_559_class_13_1_speech_models.ipynb)
Week of 4/16/2025 | **Module 13: Speech Processing**
- 13.1: Voice-Based ChatBots
- 13.2: OpenAI Speech Generation
- 13.3: OpenAI Speech Recognition
- 13.4: A Voice-Based ChatBot
- 13.5: Future Directions in GenAI
- Kaggle Assignment due: 4/17/2025 (approx 4-6PM, due to Kaggle GMT timezone)
| Week 14
**Meet on 4/23/2025** | **Week 14: Kaggle Presentations**
- Top Kaggle teams will present
- **We will meet on campus this week! (fourth meeting)**
- Final project due: 4/23/2025