simple3

AI 는 엄청난 발전을 하고 있고, 뛰어난 많은 개발자들에 의해 정형화, 일반화된 모델 및 라이브러리가 존재합니다.

그러나 AI 를 정확하고 명확하게 사용하기 위해서는 질문과 정답에 대한 많은 샘플 데이터가 필요합니다. 그렇게 했을 때 샘플만의 데이터를 가지고 테스트를 어떻게 성공할 수 있는지에 대한 설명을 합니다.

1장은 기본적인 AI 모델 기법에 대해서 나옵니다. 은닉층, 포레스트, 앙상블 등 기초적인 부분의 일반적인 내용이 그림과 같이 잘 설명되어있습니다! 회사에 QA 팀이 있어, 테스트 방법론에 관심이 있어 AI 의 자동 테스트 기법이라 판단해서 서평을 신청한 건데, 책 자체가 자신이 만든 AI 개발건에 대한 테스트 방법론에 대한 이야기였습니다.

테스트 기법의 이름은 메타모픽, 뉴런 커버리지, 최대 안전 반경, 커버리지 이렇게 4개의 기법에 대해 설명을 하고 있습니다. 개발자는 TDD 라는 개념이 있어, 테스트 주도 개발에 대해서 접근을 하려고 하는데, AI 의 경우는 학습이 완료된 모델에 대한 테스트 코드를 작성하는 방법에 대해 이야기 하고 있어 매우 재미있게 보았습니다. 실제로 저도 테스트 코드를 개발을 하면서 진행하기보다, 배포 전에 유니 테스트가 가능한 개발건이었는지를 검토하는 단계에서 테스트 코드를 작성하고 있습니다.

그래서 메타모픽의 경우, 학습된 모델에 대해서 각도를 회전시키면서 변경하여 처리하는 것을 이야기합니다. 해당 부분까지가 4장까지 이야기인데, 대부분의 테스트 코드는 DNN 을 기준으로 작업이 되어있습니다.

– 책을 다 읽고나서 9월 15일 추가내용입니다.– AI 개발은 데이터가 매우 중요하다는 생각을 합니다.

AI 모델을 효과적으로 테스트하기 위해서는 풍부한 샘플 데이터가 필요하고, 이 데이터는 모델을 학습시키는 데 사용된 데이터와 다를 수 있어야 합니다.
모델이 학습한 데이터에 대해서는 이미 잘 수행할 것으로 예상되기 때문에, 따라서 테스트 데이터는 다양한 시나리오와 엣지 케이스를 포함하고 있어야 한다는 생각은 자주했는데, 이 책은 그러한 부분에 자세한 설명이 있는 거 같습니다.

책에는 테스트 방법론에 대해서 나왔는데, AI 모델의 개발과 테스트는 반복적인 과정에 대해, 새로운 모델 버전을 개발하고 테스트할 때마다 모델의 버전 관리 내용이 있었으면 더 좋지 않았을까 아쉬운 점이 있습니다.
이를 통해 어떤 모델 버전이 어떤 수정 사항을 포함하고 있는지 추적할 수 있으며, 문제가 발생했을 때 특정 버전으로 롤백할 수 있습니다.

완성된 모델이 잘 만들었는지가 아닌, 테스트 주도 개발(TDD)에 대한 내용도 있었으면 좋지 않았을까 싶은데, AI 에 적용하긴 아직 먼 미래같습니다.
테스트 환경 구성 자체가 실업무가 아닌, 초심자 기준인 것도 조금 아쉬웠습니다.

마지막으로 자동화 테스트에 대한 부분이라든가 실업무에 도입되기에는 이론적인 부분이 많아보입니다!