Welcome to the AI Security Bootcamp (AISB)! AISB is a 7-day intensive program for security professionals shaping how we secure emerging AI systems. This repo contains the exercises and links to the reading material you will go through during the bootcamp.
Day 1 — LLM Internals: What Goes In, What Comes Out
Day 2 — Coding Agents & AI Control
Day 3 — LLM Inference Security
Day 4 — AISF Day
Day 5 — Training & Data Security
Day 6 — Adversarial ML
Day 7 — Infrastructure Security & Threat Modeling
Please review the Day 0 setup guide to ensure you have the required skills and tools to complete the bootcamp.
If you're attending the bootcamp in person, you will spend most of the days pair programming with your assigned partner on the exercises for the given day.
Before the first day, make sure you have completed the instructions in the Day 0 setup guide.
Each content day is split into numbered section folders named X.Y-topic (for example, Day 1 is 1.1-llm-internals, 1.2-logprobs, 1.3-instruction-hierarchies, and 1.4-prompt-injection). Day 4 is a break and has no content folder. Start with each section folder's README.md: it explains what the section assumes, what you should learn, and which pre-reading and reference resources will help. Then open the *_instructions.md file for the exercises. We recommend you open it in your IDE and view the markdown (right-click and select "Open Preview" in VS Code).
The README background is part of the section: review it before beginning the exercises. Only resources explicitly marked optional longer reading may be skipped. In each prerequisite table, you should be able to demonstrate every incoming competency with a short question or task; - means that the section has no additional prerequisite in that category.
For each section containing code, create a day#_answers.py file in that section's folder. Prose-only sections specify a Markdown answer file instead.
The instructions will contain code snippets you need to complete. Add a new # %% line to your answers and paste the code snippet under that line. If you went through the setup instructions correctly (with VS Code), you should see "Run Cell" option above the # %% which will execute the code in a Python Interactive Window. The code snippets contain tests that should initially fail. Complete the TODOs in the code and run the cell until all the tests pass.
We recommend you save your progress for each day (the answer files you will create with your assigned partner) to a branch in this repo. This will make it possible for you to switch between computers you will use while pair programming, and make your solution available for you to reference later.
First, configure your git repo with:
git config pull.rebase true
git config --type bool push.autoSetupRemote true
Every day in the morning, make sure you have the latest version of the repo:
git checkout main
git pull
Make a branch for the day: git checkout -b <branch name>, where your branch name should follow the convention day#/<name>-and-<name>. For example, if Tamera and Edmund were pairing on the day 3 content, the command would be git checkout -b day3/tamera-and-edmund. If you share a first name with someone else in the program, use a unique nickname of your choice for disambiguation.
Create a new file for your answers (see completing exercises above) and work through the material with your partner.
As you work, commit changes to your branch and push them to the repo. To make and push a commit:
git add :/
git commit -m '<your commit message>'
git push
If you want to switch what computer you work on with your partner, they can check out the latest version of the branch with:
git fetch
git checkout <branch name>
git pull
If you'd like to try a sample exercise and test your setup, go ahead and complete day0!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Python
98.9%
Welcome to the AI Security Bootcamp (AISB)! AISB is a 7-day intensive program for security professionals shaping how we secure emerging AI systems. This repo contains the exercises and links to the reading material you will go through during the bootcamp.
Day 1 — LLM Internals: What Goes In, What Comes Out
Day 2 — Coding Agents & AI Control
Day 3 — LLM Inference Security
Day 4 — AISF Day
Day 5 — Training & Data Security
Day 6 — Adversarial ML
Day 7 — Infrastructure Security & Threat Modeling
Please review the Day 0 setup guide to ensure you have the required skills and tools to complete the bootcamp.
If you're attending the bootcamp in person, you will spend most of the days pair programming with your assigned partner on the exercises for the given day.
Before the first day, make sure you have completed the instructions in the Day 0 setup guide.
Each content day is split into numbered section folders named X.Y-topic (for example, Day 1 is 1.1-llm-internals, 1.2-logprobs, 1.3-instruction-hierarchies, and 1.4-prompt-injection). Day 4 is a break and has no content folder. Start with each section folder's README.md: it explains what the section assumes, what you should learn, and which pre-reading and reference resources will help. Then open the *_instructions.md file for the exercises. We recommend you open it in your IDE and view the markdown (right-click and select "Open Preview" in VS Code).
The README background is part of the section: review it before beginning the exercises. Only resources explicitly marked optional longer reading may be skipped. In each prerequisite table, you should be able to demonstrate every incoming competency with a short question or task; - means that the section has no additional prerequisite in that category.
For each section containing code, create a day#_answers.py file in that section's folder. Prose-only sections specify a Markdown answer file instead.
The instructions will contain code snippets you need to complete. Add a new # %% line to your answers and paste the code snippet under that line. If you went through the setup instructions correctly (with VS Code), you should see "Run Cell" option above the # %% which will execute the code in a Python Interactive Window. The code snippets contain tests that should initially fail. Complete the TODOs in the code and run the cell until all the tests pass.
We recommend you save your progress for each day (the answer files you will create with your assigned partner) to a branch in this repo. This will make it possible for you to switch between computers you will use while pair programming, and make your solution available for you to reference later.
First, configure your git repo with:
git config pull.rebase true
git config --type bool push.autoSetupRemote true
Every day in the morning, make sure you have the latest version of the repo:
git checkout main
git pull
Make a branch for the day: git checkout -b <branch name>, where your branch name should follow the convention day#/<name>-and-<name>. For example, if Tamera and Edmund were pairing on the day 3 content, the command would be git checkout -b day3/tamera-and-edmund. If you share a first name with someone else in the program, use a unique nickname of your choice for disambiguation.
Create a new file for your answers (see completing exercises above) and work through the material with your partner.
As you work, commit changes to your branch and push them to the repo. To make and push a commit:
git add :/
git commit -m '<your commit message>'
git push
If you want to switch what computer you work on with your partner, they can check out the latest version of the branch with:
git fetch
git checkout <branch name>
git pull
If you'd like to try a sample exercise and test your setup, go ahead and complete day0!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Python
98.9%