Community

Hitchhiker’s guide to trustworthy AI[2]

다시 한번 말씀드리지만, 저는 SW 테스터였습니다. 굳이 이를 전 글에 이어서 다시 한 번 말씀드리는 이유는, SW를 테스팅하다, AI based system을 테스트 대상으로 마주했을 때의 어려움을 설명드리고자 합니다. SW라면, 개발 및 서비스 목적에 맞게 기능 정의가 되어있을 것이고, 명세화되어 정리가 되어 있을 것이며, 그것들이 code로서 구현되어 있을 것입니다. 그래서 기능 명세에 맞게 사용자의 입력과 기대 출력을 확인하는 Blackbox testing이 이루어지고, coding rule 혹은 기능 동작에 따른 code coverage를 따져보는 whitebox testing이 이루어집니다. 이는 어디까지나, SW서비스의 기획자와 개발자가 “정의”한대로 제대로 명세되어 있으며 “시킨대로 동작하는지”가 테스팅의 주요 목적이 됩니다. AI의 경우는 어떨까요? 그냥 AI라고 하면 어벙벙하니, 도로 위의 장애물을 미리 정의한 entity별로 classification을 수행하는 ML이라고 해보죠. 물론, 이에 대한 테스팅의 목적은, 우리가 AI에 시킨대로 동작하는가…이지만 이 ML에서는 기획자와 개발자가 모든 동작을 정의하지 않습니다. 이를 판단하는 모델을 수치적으로 도출합니다. 나머지는 모델의 동작에 달렸죠. SW와는 다르게 모든 동작이 미리 정의된 것이 아닌, 입력 데이터(예. 도로 사진)에 따라 모델이 판단하여 출력(예. 도로 장애물 유무 여부 및 물체)을 냅니다. 이를 연역적 동작과 귀납적 동작의 차이로 해석합니다. SW는 우리가 그 동작에 대한 정의를 해놓기 때문에 명확한 인과관계가 있습니다. AI는 학습 데이터 기반으로 학습된 경향성을 기반으로 결론을 내기 때문에 입력과 출력간에 명확한 인과관계가 없습니다. 마치, “네가 예전에 그랬었잖아~ 나는 그걸 참고했어” 같은 느낌이죠. 이는 테스트 방법론, 지표, 목적 등에서 상당한 차이를 내게 됩니다. 다음 회차에서 어떤 차이가 발생하는지 알아보겠습니다.

알림

알림이 없습니다