Here is a checklist of questions and prompts to ask when implementing an AIS. While there is no strictly correct answer, a good rule of thumb is that we should be okay with publishing our answers publicly.
Again, this checklist is best completed as a group exercise and with extensive inputs from users and people who might interact with the proposed AIS.
Section 1 - Understanding the Context
- What is the ultimate aim of the application?
- What are the pros and cons of an AIS versus other solutions?
- How is the AIS supposed to be used?
- What is the current system that the AIS will be replacing?
- Who will interact with the AIS?
- Create a few user personas - the technophobe, the newbie etc. - and think about how they might react to the AIS across the short-term and long-term.
- Think of ways that the AIS can be misused by unknowning or malicious actors.
- What do false positives and false negatives mean for different users? Under what circumstances might one be worse than the other?
- Try listing out some examples of fair and unfair predictions. Why are they fair/unfair?
- What are the relevant protected traits in this problem?
- Which fairness metrics should we prioritize?
Section 2 - Preparing the Data
- What is our population?
- How does our dataset distribution differ from our population distribution?
- Are we measuring the features/labels the same way for different groups?
- How are our annotated labels different from the ideal labels?
Section 3 - Training the Model
- How do our input features relate to our protected traits?
- Do we use the same model or different models for different inputs?
- If we are importing a pre-trained model or external data, what are possible conflicts between these imports and our current context?
Section 4 - Evaluating the Model
- How does our test distribution differ from our population distribution?
- What can we say about the fairness of our final model?
- When we detect some unfairness with our metrics - is the disparity justified?
Section 5 - Deploying the Solution
- How do we detect errors from the AIS after deployment?
- What are alternative solutions in case of failure?
- How can we allow users to gracefully opt out of the AIS?