Hidden Technical Debt in Machine Learning Systems Abstract (2015, Google)
- 빠른 성과는 손쉽게, 공짜로 얻는 것이 위험하다
- 기술 부채 Framework 사용, 실제 ML 시스템의 유지보수 비용이 막대하게 발생
- ML에서의 특별한 위험 요소 탐색 (경계 침식, 얽힘, 숨은 피드백 루프 등 다양한 패턴)

기술 부채는 미래의 개선을 가능하게 하고 오류를 줄이며 유지 보수성을 개선하지 않으면 발생하는 손해에 대한 부채를 의미한다.
예를 들자면, 한 모델의 출력이 다른 모델의 입력으로 사용되며 다른 시스템의 영향을 줄 수 있다는 것임

glue code를 사용, 이는 시스템을 경직되게 만듦모델을 가져와서 사용하는 경우 내부 작동 방식을 이해하기 어렵기 때문에 디버깅이 많이 어려운 문제 발생
Example
1) x₁, ... , xₙ 을 사용하는 모델이 있는 경우 → 입력 분포 값의 변경이 일어나면 모든 특징의 중요성, 가중치의 변경이 일어나게 된다
2) xₙ₊₁을 추가하더라도 유사한 변화, Feature xⱼ 를 삭제하는 것도 유사한 변화를 일으킬 수 있음
이 처럼 입력은 언제든 변하며, 그 입력에 따라 뒤에 값들은 영향을 받는다
예를 들면 CV Task에서 객체의 다른 특징들을 각각의 모델이 맡아 담당하게 하는 것
mₐ 모델을 활용하여 A의 문제를 해결하다가 A'의 문제를 해결하고 싶을 때 mₐ', A''의 문제를 해결하고 싶을때 mₐ'' 등 서로 모델들 간의 의존성이 발생
Example
A라는 뉴스 추천 모델
이 모델의 결과를 광고 회사 B가 추적해서 광고 타겟팅에 무단 사용
A는 추천을 B의 광고 타겟팅 뉴스만 나오는 편향성이 발생
A를 수정 및 개선 하니 B는 광고 타겟팅 뉴스가 안나오는 현상 발생
Example
A라는 상품 추천 모델, B의 사용자 관심사 분류 모델의 출력을 데이터로 사용
B 모델의 출력이 변경되면 A의 입력 데이터도 자연스럽게 같이 변함
그럼 A는 상품을 잘 추천하다가 갑자기 B의 데이터 변경으로 인해 출력의 오류 발생
Example
논문에서의 예시는 회사가 새로운 제품 번호 체계로 전환 시
이전 제품은 구번호와 신번호 모두를 가지고, 1년 후 구번호를 삭제 시킬 시
모델은 신번호 뿐만 아니라 구번호에도 의존하기 때문에 문제 발생
Example
넷플릭스 사용자 추천 시스템
넷플릭스가 사용자 A를 추천하고, 영화를 보고 좋아요를 누른 경우 데이터를 다시 모델 학습에 사용
모델은 비슷한 영화를 더 자주 추천
밴딧 알고리즘?
새로운 선택지를 가끔 시도해보면서, 좋은 결과를 주는 선택을 주로 사용하여 피드백 루프로 인한 편향을 줄이는 것
Example
웹페이지에서 제품 선택 시스템과 리뷰 선택 시스템의 상호작용
주식 시장 예측 모델 간의 상호 작용
한 회사의 예측 모델 개선이 다른 회사의 매매에 영향을 주거나, 한 시스템의 변경이 사용자 행동을 변화시켜 다른 시스템에 영향을 미치는 경우
논문에서 나왔듯이 Knight Capital의 시스템은 여러 분기를 통해 실험을 하고 개선을 진행하고 있었는데, 너무 많은 분기가 생기다 보니 45분 만에 $456, 한화로 약 66만 5천원이 발생
Example : 쇼핑몰 추천 시스템
특징 A (구매 이력) : 9월 14 ~ 17일 동안 로그 시스템의 오류 발생, 사용 X
특징 B (검색 기록) : 10월 7일 이전에는 이 기능 없었음, 새로운 데이터만 사용
특징 C (상품 조회수) : 11월 1일부터 로그 형식 변경, 이전/이후 데이터 처리 방식 달라야 함
특징 D (실시간 재고) : 실제 서비스에서는 직접 사용 불가, 예상 재고나 일일 재고 사용
Airflow, MLflow와 같은 도구를 사용한다면 프로세스 추적이 가능하다.가장 중요한 통찰 : 부채는! 엔지니어와 연구자가 모두 인식해야 한다.