Upgrade to Pro — share decks privately, control downloads, hide ads and more …

실험을 잘한다는 것은 무엇일까?

kakao
PRO
December 08, 2022

실험을 잘한다는 것은 무엇일까?

#Experiment #Problemsolving #ML

Machine Learning, AI 기술을 이용해 실서비스 문제를 해결하는 과정에는 많은 실험이 필요합니다.

실험 결과가 안 좋을 때 다음 실험 방향을 어떻게 잡아야 할까 막막할 때도 있고,
여러 번의 실험을 통해 가망이 없다고 판단한 기술이 오랫동안 묻혀 있다가 빛을 발하게 되는 일도 있습니다.

이번 발표에서는 ‘실험을 잘한다는 것은 무엇일까?’에 대해 제 나름대로 고민해본 내용을 공유해 드립니다.
결론을 말씀드리면, ‘실험에는 승부수가 있어야 한다.’라는 것입니다.

발표자 : nick.kim
카카오 추천팀 닉입니다. 실용적인 Machine Learning Application을 만드는 것에 관심이 많습니다.

kakao
PRO

December 08, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. 실험을 잘한다는 것은 무엇일까? 김성진 Nick.Kim 카카오 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. if(kakao)2022
  2. - Machine Learning 기술을 활용하여 비지니스 문제를 해결하는 과정에는 많은

    실험이 필요합니다. - 많은 실험해보면서, 많은 실패도 경험하게 되는데요. - 이번 발표에서는, 제가 실험하면서 시행 착오 겪었던 것들, 중요하다고 생각한 것에 대해 공유드릴게요. 오늘 이야기
  3. 상황 나는 서비스(혹은 사업) 부서에 AI 기술(예. 개인화 추천 기술)을

    제공하고 있다.
  4. 솔루션 탐색 나는 서비스(혹은 사업) 부서에 AI 기술(예. 개인화 추천

    기술)을 제공하고 있다. 몇몇 논문을 통해 성능이 좋다고 입증된 솔루션A(예. 개인화 추천 알고리즘)를 알게 된다. 얼른 구현해서 서비스 환경에서 실험한다.
  5. 첫 실험 결과 나는 서비스(혹은 사업) 부서에 AI 기술(예. 개인화

    추천 기술)을 제공하고 있다. 몇몇 논문을 통해 성능이 좋다고 입증된 솔루션A(예. 개인화 추천 알고리즘)를 알게 된다. 얼른 구현해서 서비스 환경에서 실험한다. 성능이 애매하다. 😥
  6. 솔루션A 실험 실험 결과 애매함

  7. “성능이 애매하다”: 기존 솔루션 대비 성능이 비슷하거나 떨어진다. 예를 들면,

    실험 결과가 아래와 같은 경우를 ‘성능이 애매해다.’고 할 수 있습니다. (’성능’은 높을 수록 좋은 값이라고 가정.) AB 테스트 결과 기존 솔루션 성능( 10.0 ) vs. 솔루션A 성능( 9.0 )
  8. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 실험

    결과가 애매하면, 보통 2개의 선택지가 있습니다.
  9. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. ‘포기’하는

    시나리오
  10. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 다른

    솔루션을 찾는다. 다른 솔루션을 찾아야 합니다.
  11. 다른 솔루션은 어떤 기준으로 찾아야 할까요? 솔루션A도 잘 될거라 생각해서

    실험한건데, 성능이 안 좋았어요. 다른 솔루션은 어떤 기준으로 찾아야 할까요? 그리고, 솔루션A 실험 결과로부터 어떤 교훈을 얻을 수 있을까요? (참고) 솔루션A의 AB 테스트 결과 기존 솔루션 성능( 10.0 ) vs. 솔루션A 성능( 9.0 )
  12. 다른 솔루션은 어떤 기준으로 찾아야 할까요? 솔루션A도 잘 될거라 생각해서

    실험한건데, 성능이 안 좋았어요. 다른 솔루션은 어떤 기준으로 찾아야 할까요? 그리고, 솔루션A 실험 결과로부터 어떤 교훈을 얻을 수 있을까요? (참고) 솔루션A의 AB 테스트 결과 기존 솔루션 성능( 10.0 ) vs. 솔루션A 성능( 9.0 ) -> 실험 결과를 어떻게 남겨야 다음 실험에 도움이 될 수 있을까요?
  13. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 사실,

    솔루션A는 ‘내’가 포기한거죠. 다른 솔루션을 찾는다. 다른 누군가가 솔루션A를 실험한다.
  14. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 이

    과정이 반복되는 경우도 있습니다. 다른 솔루션을 찾는다. 다른 누군가가 솔루션A를 실험한다. 새로운 도전자 등장 & 실패 반복
  15. 엑스칼리버…

  16. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. ‘보완’하는

    시나리오 다른 솔루션을 찾는다. 엑스칼리버 루트
  17. 보완을 하긴 해야하는데… -> 어디서부터 보완해서 실험하는게 좋을까요? -> 보완하면

    좋을 부분이 너무 많은데, 우선순위 판단은 어떻게 할 수 있을까요?
  18. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 다른

    솔루션을 찾는다. 엑스칼리버 루트 실험 & 실패 반복 보통, ‘보완 -> 실험 -> 실패’ 과정을 반복하게 됩니다.
  19. ‘보완 -> 실험 -> 실패’ 과정을 반복하는건 자연스러운 상황인데요. 한

    번에 성공하는 실험은 거의 없기 때문에, 이런 과정을 반복하는건 자연스러운 상황 입니다. 하지만, 그렇다고해서 이 과정을 끝없이 반복할 수도 없는데요. 중요한건, 마무리 조건을 판단하는 것이라 생각합니다. ‘마무리 조건’은, 이 보완 실험을 언제까지 혹은 어디까지 진행해보고 진척이 없으면 마무리 하겠다는 기준 입니다. -> 마무리 조건을 어떻게 세우는게 좋을까요?
  20. 솔루션A 실험 실험 결과 애매함 솔루션A를 포기한다. 솔루션A를 보완한다. 다른

    솔루션을 찾는다. 엑스칼리버 루트 실험 & 실패 반복 마무리 조건에 해당할 경우
  21. 시행착오 과정에서 했던 고민들을 정리해보면 Q1. 실험 결과를 어떻게 남겨야

    다음 실험에 도움이 될 수 있을까? Q2. 보완 실험은 어디서부터 진행하는게 좋을까? (보완하면 좋을 점이 너무 많아 보인다.) Q3. 마무리 조건을 어떻게 세우는게 좋을까?
  22. 실험을 잘한다는건 뭘까요?

  23. 실험에는 승부수가 있어야 합니다. 승부수: 이 실험이 성공할거라고 생각하는 이유

  24. 승부수가 있는 실험 vs. 없는 실험 [ 승부수가 없는 실험

    가설 ] - 솔루션A가 최근 논문들을 통해 성능이 좋다고 입증되었다. 솔루션A는 기존 솔루션보다 성능이 좋을 것이다. [ 승부수가 있는 실험 가설 ] - 솔루션A는 적은 데이터로 효율적으로 학습할 수 있는 장점이 있다. 기존 솔루션은 데이터가 적은 환경에서 성능이 떨어지는 이슈가 있는데, 이 환경에서는 솔루션A가 효과적일 것이다.
  25. Key Feature Environment 문제 해결의 핵심이 되는 특징 문제 환경

  26. 승부수가 있으면, 실험 결과 분석이 쉬워집니다. 1. 승부수가 되는 Key

    Feature 구현을 제대로 했는지 확인합니다. 2. Key Feature가 실제로 문제 해결에 도움이 되는지 확인합니다. -> 이전 실험 결과가 다음 실험에 도움이 됩니다.
  27. 승부수가 있으면, 실험 사이클을 짧게 가져갈 수 있습니다. 어떤 부분을

    중요하게 구현해야 하는지 정확하게 알고 있기 때문입니다.
  28. 앞서 했던 질문들에 답해볼까요? Q1. 실험 결과를 어떻게 남겨야 다음

    실험에 도움이 될 수 있을까? Q2. 보완 실험은 어디서부터 진행하는게 좋을까? (보완하면 좋을 점이 너무 많아 보인다.) Q3. 마무리 조건을 어떻게 세우는게 좋을까?
  29. 앞서 했던 질문들에 답해볼까요? Q1. 실험 결과를 어떻게 남겨야 다음

    실험에 도움이 될 수 있을까? Q2. 보완 실험은 어디서부터 진행하는게 좋을까? (보완하면 좋을 점이 너무 많아 보인다.) Q3. 마무리 조건을 어떻게 세우는게 좋을까? -> Key Feature 에 기반해서 판단하면 됩니다.
  30. 승부수를 잘 세우려면? 1. 내가 풀려는 문제(+ 환경)를 이해해야 합니다.

    2. 기존 솔루션에 대해 이해해야 합니다. 3. 내가 구현하려는 솔루션에 대해서도 깊이 있게 이해해야합니다.
  31. 이야기를 끝내며 실험에는 승부수가 있어야 합니다. 실험에는 엔지니어링적인 요소가 성능에

    큰 영향을 미칩니다. (예. 파이프라인 결함) 실험 결과가 나빴을 때 알고리즘의 이슈인지, 엔지니어링 이슈인지 명확하게 파악해야 합니다. 단순한 솔루션이 파이프라인 디 버깅에 용이하기에, Key Feature를 구현해낼 수 있는 단순한 솔루션부터 접근하는 것이 좋습니다. 실험 실패 원인이 솔루션이 아닌, 환경에 있는 경우도 있습니다. 실험이 실패했을때 Key Feature가 잘 동작할 수 있는 환경이 었는지에 대해서도 검토해보면 좋습니다. 실험 과정에서 많은 실패를 경험하게 됩니다. 시행착오를 겪을때마다 교훈을 하나씩 얻어가다 보면 결국에는 좋은 결과를 만들 어낼 수 있었던 것 같습니다.
  32. (부록) 엑스칼리버 루트 다음 전개는?

  33. 영원한 떡밥

  34. E.O.D 카카오 추천팀이 더 궁금하시다면 https:/ /github.com/kakao/recoteam