Detailed Course Outline
Course Introduction
- Orient to the main worshop topics, schedule and prerequisites.
- Learn why prompt engineering is core to interacting with Large Languange Models (LLMs).
- Discuss how prompt engineering can be used to develop many classes of LLM-based applications.
- Learn about NVIDIA LLM NIM, used to deploy the Llama 3.1 LLM used in the workshop.
Introduction to Prompting
- Get familiar with the workshop environment.
- Create and view responses from your first prompts using the OpenAI API, and LangChain.
- Learn how to stream LLM responses, and send LLMs prompts in batches, comparing differences in performance.
- Begin practicing the process of iterative prompt development.
- Create and use your first prompt templates.
- Do a mini project where to perform a combination of analysis and generative tasks on a batch of inputs.
LangChain Expression Language (LCEL), Runnables, and Chains
- Learn about LangChain runnables, and the ability to compose them into chains using LangChain Expression Language (LCEL).
- Write custom functions and convert them into runnables that can be included in LangChain chains.
- Compose multiple LCEL chains into a single larger application chain.
- Exploit opportunities for parallel work by composing parallel LCEL chains.
- Do a mini project where to perform a combination of analysis and generative tasks on a batch of inputs using LCEL and parallel execution.
Prompting With Messages
- Learn about two of the core chat message types, human and AI messages, and how to use them explictly in application code.
- Provide chat models with instructive examples by way of a technique called few-shot prompting.
- Work explicitly with the system message, which will allow you to define an overarching persona and role for your chat models.
- Use chain-of-thought prompting to augment your LLMs ability to perform tasks requiring complex reasoning.
- Manage messages to retain conversation history and enable chatbot functionality.
- Do a mini-project where you build a simple yet flexible chatbot application capable of assuming a variety of roles.
Structured Output
- Explore some basic methods for using LLMs to generate structured data in batch for downstream use.
- Generate structured output through a combination of Pydantic classes and LangChain's `JsonOutputParser`.
- Learn how to extract data and tag it as you specify out of long form text.
- Do a mini-project where you use structured data generation techniques to perform data extraction and document tagging on an unstructured text document.
Tool Use and Agents
- Create LLM-external functionality called tools, and make your LLM aware of their availability for use.
- Create an agent capable of reasoning about when tool use is appropriate, and integrating the result of tool use into its responses.
- Do a mini-project where you create an LLM agent capable of utilizing external API calls to augment its responses with real-time data.
Final Review
- Review key learnings and answer questions.
- Earn a certificate of competency for the workshop.
- Complete the workshop survey.
- Get recommendations for the next steps to take in your learning journey.