A training framework where two models or components iteratively improve each other by learning from their complementary strengths.