A 1.5 credit graduate class about the nuts and bolts of LLMs.
The repository root is a GitHub Pages site, configured in _config.yml and
published at https://jphall663.github.io/GWU_LLM/. Its landing page links the
available lecture materials and the course outline.
# macOS (requires Homebrew)
brew install uv
# Ubuntu
curl -LsSf https://astral.sh/uv/install.sh | shLearn more about uv.
uv python install 3.13
uv python pin 3.13
uv venv
source .venv/bin/activate
python --versionInstall the locked project dependencies from the repository root:
uv sync --lockedJupyterLab is optional. To run the course notebooks in Visual Studio Code:
- Install Microsoft's Python extension and Jupyter extension.
- Open the repository root as the VS Code folder and run
uv sync --lockedfrom its integrated terminal if the environment is not already installed. - Open an
.ipynbfile. In the notebook's upper-right Select Kernel menu, choose Select Another Kernel..., then Python Environments, then the project interpreter:.venv/bin/pythonon macOS/Linux or.venv\Scripts\python.exeon Windows. - Run the notebook from its first cell to its last. The notebooks load the
repository-root
.envthemselves when an API key is required.
If the project interpreter is not listed, reload the VS Code window and select it by path. See the official guides to Jupyter notebooks in VS Code and kernel selection.
Individual lectures may have additional setup notes. Lecture 1 now combines the next-token MLP example with transformer concepts, a plain-language summary, canonical references, and the Promontory AI GWU practicum guest lecture; its setup notes also cover optional NVIDIA GPU acceleration. See lecture 1.
Lecture 2 covers prompting and prompt development with a GW Beamer deck, a direct-OpenAI-API notebook that compares zero-shot and few-shot routing prompts, and an example bounded goal prompt for a course-grounded chat assistant. See lecture 2.
Lecture 3 covers model APIs, structured outputs, and typed decisions with a GW Beamer deck and a direct-OpenAI-API notebook. The example inspects request and response metadata, compares operating settings, streams output, validates Pydantic-backed structured data, routes a typed complaint-triage decision, and evaluates it against labeled cases. See lecture 3.
Lecture 4 covers context engineering, memory, and state with a GW Beamer deck and a direct-OpenAI-API notebook. The example separates conversation history, persistent customer memory, case state, and current-call context; measures exact input tokens; enforces a teaching budget; compares history strategies and context quality; persists synthetic, customer-isolated JSON memory; and tests application invariants. See lecture 4.
Lecture 5 covers retrieval-augmented generation (RAG) and knowledge pipelines, with a GW Beamer deck and a direct-OpenAI-API notebook that demonstrates attributed ingestion, subcategory-based semantic chunking, lexical and embedding retrieval, hybrid ranking, reranking, and cited answers. See lecture 5.
Lecture 6 covers tool use and agentic workflows, with bounded agent loops opening the orchestration and oversight section, followed by agent permissions and identity guidance. It includes a GW Beamer deck and two direct-OpenAI-API notebooks: a fixed versus bounded-agent Text2SQL comparison over synthetic SQLite sales data, and tool discovery, selection, and invocation through a separate local MCP calculator server. The shared lockfile includes the MCP v1 SDK; see lecture 6 for startup and execution commands.
Lecture 7 covers AI test, evaluation, verification, and validation (TEVV), with
a GW Beamer deck and three executable examples for benchmarks, embeddings, and
a 2-D embedding view; LLM-as-a-judge validation; and bounded red teaming. The
examples use the direct OpenAI API. Add OPENAI_API_KEY to an ignored
repository-root .env file, then run uv sync --locked; see lecture 7
for commands.
The lockfile is cross-platform: standard TensorFlow is installed on macOS and
the and-cuda extra is installed on Linux for compatible NVIDIA environments.