A brief introduction to Training/Serving Skew
4232 단어 PythonTensorFlowtech
Training/Serving Skew
Training/Serving Skew는 모델이 훈련할 때와 추론할 때의 환경 차이로 인해 모델이 부적절한 행동을 한 것이다.Training/Serving Skew에 관한 몇 편의 글이 있는데, 여기에는 TensorFlow Data Validation 설명서에 쓴 글을 일본어로 번역하여 실었다.
이 글https://github.com/tensorflow/tfx/commit/f677d055b93d38034a11bbacaa5eccb8ea273fde#diff-09227482e877396abc5ae39296d992f69a5aa8a776af6365fe8812eb6c8d5a4a은 TFBI 문서에서 삭제됐지만, 많은 머신러닝머신의 참고 명문인 만큼 여기에 실렸다.
검측 훈련 서비스 경사
개요
트레이닝 서비스 건너뛰기 감지기는 TensorFolow Data Validation의 서브어셈블리로 실행되며 트레이닝 데이터와 실제 데이터 사이에 분포된 편차를 감지합니다.
분포 편차의 종류
각종 공식 환경의 뒷모드에서 각종 유형의 편차를 4가지 중요한 유형으로 분류한다.다음은 각 유형과 발생할 수 있는 상황의 예를 소개한다.
패턴 편차
모델의 편차는 훈련용 데이터와 실제 사용 데이터가 같은 모델을 따르지 않을 때 발생하는 것이다.모델 데이터의 성질을 논리적으로 기술하기 위해서는 데이터를 훈련할 뿐만 아니라 공식 데이터도 같은 모델을 따라야 한다.표기된 특징량은 훈련 데이터에만 나타나고 공식 데이터에는 나타나지 않으며 이 두 환경 사이에 예상되는 어떠한 차이도 모델의 환경 필드에 지정해야 한다.
훈련 데이터의 생성은 큰 블록 데이터 처리의 한 단계이고 (온라인) 공식 데이터의 생성은 보통 지연을 고려해야 하기 때문에 훈련 데이터의 생성과 공식 데이터의 생성은 서로 다른 코드를 자주 사용한다.이것은 잘못된 것이다.이 두 코드 간의 불일치는 모두 패턴 편차를 일으킬 수 있다. (개발자의 기술이든 바이너리 파일의 불일치든.)
시나리오 예
밥은 모델에 새로운 특징량을 추가하고 훈련 데이터를 추가할 계획이다.오프라인 학습 중의 각종 지표는 좋은 값을 나타냈지만 온라인상의 각종 지표는 많이 떨어졌다.몇 시간 동안의 디버깅을 한 후, 밥은 자신이 같은 특징량을 정식 환경의 코드에 추가하는 것을 잊어버린 것을 발견했다.모델은 추가적인 특징량에 높은 중요성을 부여했지만 그 특징량은 공식 환경에서 사용할 수 없기 때문에 모델은 공식 환경의 각종 지표를 악화시켜 질이 떨어지는 추측 결과를 낳았다.
특징량의 편차
특징량의 편차는 모델이 부여한 특징량의 값이 훈련할 때와 정식 환경에서 다르기 때문에 발생한다.이것은 다음과 같은 몇 가지 이유로 발생한 것이다.
시나리오 예
앨리스는 연속적으로 작동하는 기계 학습 라인을 가지고 있다.거기에 오늘 공식 환경에 투입된 데이터를 기록해 다음날 훈련 데이터로 활용했다.저장 용량을 절약하기 위해 영상 ID만 저장하고 트레이닝 데이터를 생성할 때 영상의 각 속성을 읽기로 했다.
이렇게 하는 과정에서 훈련 때와 정식 촬영 환경의 시청각 횟수 차이, 특히 새로 올라온 인기 애니메이션에서 위험도가 다르다는 점을 인지하지 못하고 이 편차를 도입했다.편차의 예는 다음과 같다.
Serving Example Training Example
------------------------- -------------------------
features { features {
feature { feature {
key "vid" key "vid"
value { int64_list { value { int64_list {
value 92392 value 92392
}} }}
} }
feature { feature {
key "views" key "views"
value { int_list { value { bytes_list {
value "<b>10</b>" value "<b>10000</b>" # skew
}} }}
} }
} }
이것은 훈련할 때의 데이터로 대폭 증가한 시청 횟수를 참고하여 발생한 특징량 편차 중의 하나이다.분포 편차
분포의 편차는 특징량의 분포와 실제 환경 데이터의 분포가 현저히 같지 않다.분포 편차가 발생하는 주요 원인 중 하나는 처음에 원료 라이브러리에 사용하고자 하지 않았던 데이터를 극복하기 위해 완전히 다른 원료 라이브러리를 사용하여 학생들이 공부하도록 하는 것이다.또 다른 이유는 공식 환경의 데이터의 일부를 훈련 데이터로 샘플링하는 기구의 결함이다.
시나리오 예
예를 들어 데이터에 나타나지 않은 슬라이드를 삽입하기 위해 편압이 발생하는 샘플링을 사용하면 상로든 하단이든 적절하게 진행되지 않는 데이터를 사용하면 훈련 데이터와 정식 환경 사이의 특징량에 큰 편차가 생길 수 있다.
득점 라운드 서비스 건너뛰기
분수환 서비스 편차의 발생을 감지하기 어려우며 일부 분수를 가진 표본 데이터가 정식 환경에 제공될 때만 발생한다.라벨은 정식 환경에 제공하는 표본 데이터에 사용할 수 있다. 라벨은 모두 점수를 매기는 표본 데이터가 아니기 때문에 정식 환경에 제공하는 라벨만 훈련에 사용할 수 있다.이것은 모델이 득점 샘플 데이터에 대한 잘못된 예측을 초래할 수 있다.왜냐? 이 데이터들이 훈련 데이터에서 점점 사라지기 때문이다.
시나리오 예
우리는 상위 10명의 광고를 제공하는 광고 시스템을 고려할 것이다.이 열 개의 광고 중 단 한 개만이 사용자가 클릭할 수 있다.10개의 제시된 표본 데이터가 다음날 훈련 데이터에 사용된다.1건은 긍정적이고, 9건은 부정적이다.한편, 정식 촬영 환경에서 그 모델은 광고 100부를 평가하는 데 사용된다.나머지 90개의 미제시 광고는 훈련 데이터에서 은근히 삭제될 것이다.이는 은밀한 피드백 순환을 일으켜 순위가 낮은 상황을 잘못 예측할 수 있다.낮은 순위의 데이터가 훈련 데이터에 나오지 않기 때문이다.
왜 주의해야 합니까?
편차는 검측이 어려워 많은 기계 학습 파이프 사이로 번지고 있기 때문이다.편차로 인한 성능 저하와 기회 손실이 끊임없이 발생하다.
지금 무엇을 지지합니까?
현재 TensorFolow Data Validation은 모드 편차, 특징량 편차, 분포 편차의 검측을 지원한다.
Reference
이 문제에 관하여(A brief introduction to Training/Serving Skew), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/asei/articles/e593da33c53ee4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)