WGU D501 Machine Learning DevOps | Project 2 | 2026/2027 Updated
WGU D501
Machine Learning DevOps
Project 2 - Building and Serving an ML Model with FastAPI
Census Classifier | Slice Metrics | Model Card | FastAPI | Pytest | Flake8 | HTTP Evidence
2026/2027 Updated - Current Udacity Workspace Submission Workflow
Current-version note
This resource follows the refreshed CD16209 starter and submission contract. The normal route runs entirely in the Udacity
Workspace with Python 3.13. Heroku, DVC, hosted CI/CD, a public GitHub repository, remote model storage, and a public API
URL are not required for the current default submission path.
1
, WGU D501 Machine Learning DevOps | Project 2 | 2026/2027 Updated
1. Project Scope and Verified Current Requirements
The project trains a binary classifier on the UCI Adult/Census income data, evaluates model quality overall and across categorical
slices, serializes the complete inference state, and exposes real predictions through a FastAPI service. The current assessment
also requires local automated quality validation and portable evidence that reviewers can reproduce from the submitted project
root.
Area Current requirement
Bundled data/census.csv; preserve feature names including hyphens
Dataset
and target salary
Python Preinstalled Workspace Python 3.13 ml environment
Learner-selected classifier; starter model functions are intentionally
Model
incomplete
Core metrics Precision, recall, F1 on held-out data
At least one categorical feature; metrics for every distinct evaluation
Slice metrics
value plus sample count
Artifacts Saved classifier and all fitted preprocessing required for inference
Documentation Completed model_card.md and README inference/artifact mapping
API FastAPI app with GET / and separate inference POST route
Tests At least 3 model-related tests and at least 3 API tests
Quality gate python scripts/check.py -> pytest then flake8, exit status zero
HTTP evidence request.py must call the running Uvicorn server, not only TestClient
Submission Workspace default; GitHub or ZIP optional alternatives
Critical 2026 change
The current submission contract explicitly says no particular Git history, protected branch, hosted CI/CD, or public endpoint is
required. Do not build a new resource around legacy Heroku screenshots or GitHub Actions unless an active course screen
specifically asks for them.
2
WGU D501
Machine Learning DevOps
Project 2 - Building and Serving an ML Model with FastAPI
Census Classifier | Slice Metrics | Model Card | FastAPI | Pytest | Flake8 | HTTP Evidence
2026/2027 Updated - Current Udacity Workspace Submission Workflow
Current-version note
This resource follows the refreshed CD16209 starter and submission contract. The normal route runs entirely in the Udacity
Workspace with Python 3.13. Heroku, DVC, hosted CI/CD, a public GitHub repository, remote model storage, and a public API
URL are not required for the current default submission path.
1
, WGU D501 Machine Learning DevOps | Project 2 | 2026/2027 Updated
1. Project Scope and Verified Current Requirements
The project trains a binary classifier on the UCI Adult/Census income data, evaluates model quality overall and across categorical
slices, serializes the complete inference state, and exposes real predictions through a FastAPI service. The current assessment
also requires local automated quality validation and portable evidence that reviewers can reproduce from the submitted project
root.
Area Current requirement
Bundled data/census.csv; preserve feature names including hyphens
Dataset
and target salary
Python Preinstalled Workspace Python 3.13 ml environment
Learner-selected classifier; starter model functions are intentionally
Model
incomplete
Core metrics Precision, recall, F1 on held-out data
At least one categorical feature; metrics for every distinct evaluation
Slice metrics
value plus sample count
Artifacts Saved classifier and all fitted preprocessing required for inference
Documentation Completed model_card.md and README inference/artifact mapping
API FastAPI app with GET / and separate inference POST route
Tests At least 3 model-related tests and at least 3 API tests
Quality gate python scripts/check.py -> pytest then flake8, exit status zero
HTTP evidence request.py must call the running Uvicorn server, not only TestClient
Submission Workspace default; GitHub or ZIP optional alternatives
Critical 2026 change
The current submission contract explicitly says no particular Git history, protected branch, hosted CI/CD, or public endpoint is
required. Do not build a new resource around legacy Heroku screenshots or GitHub Actions unless an active course screen
specifically asks for them.
2