ML 기능 관리 : 실용적인 진화 가이드
머신 러닝의 세계에서 우리는 모델 아키텍처, 훈련 파이프 라인 및 하이퍼 매개 변수 튜닝에 집착하지만 종종 우리의 기능이 수명주기 전체에 걸쳐 사는 방법과 호흡하는 근본적인 측면을 간과합니다. 각 예측 후 사라진 메모리 계산에서 몇 달 후 정확한 기능 값을 재현 해야하는 도전에 이르기까지 기능을 처리하는 방식은 ML 시스템의 신뢰성과 확장 성을 만들거나 깨뜨릴 수 있습니다.
누가 이것을 읽어야합니다
- ML 엔지니어는 기능 관리 접근 방식을 평가합니다
- 훈련-서빙 왜곡 문제를 경험하는 데이터 과학자들은 문제가 있습니다
- 기술 리드는 ML 운영을 확장 할 계획입니다
- 기능 상점 구현을 고려하는 팀
출발점 : 보이지 않는 접근
많은 ML 팀, 특히 초기 단계 또는 전용 ML 엔지니어가없는 팀은 제가“보이지 않는 접근 방식”이라고 부르는 것으로 시작하여 엔지니어링을 수행합니다. 기만적으로 간단합니다. 원시 데이터를 가져오고, 메모리를 변환하고, 즉시 기능을 생성합니다. 결과 데이터 세트는 기능적이지만 본질적으로 짧은 계산의 블랙 박스입니다. 각 예측 또는 훈련 실행 후 사라지기 전에 잠시만 존재하는 기능입니다.
이 접근법은 작업을 완료하는 것처럼 보이지만 흔들리는 땅에 기반을두고 있습니다. 팀이 ML 운영을 확장함에 따라 테스트에서 훌륭하게 수행 된 모델은 갑자기 생산에서 예측할 수 없을 정도로 행동합니다. 훈련 중에 완벽하게 작동하는 기능은 라이브 추론에서 다른 값을 신비하게 생성합니다. 이해 관계자들이 지난 달 특정 예측이 이루어진 이유를 물었을 때, 팀은 그 결정으로 이어진 정확한 기능 값을 재구성 할 수 없다는 것을 알게되었습니다.
기능 엔지니어링의 핵심 과제
이러한 고통 지점은 단일 팀에 고유하지 않습니다. 그들은 성장하는 모든 ML 팀이 결국 직면하는 근본적인 과제를 나타냅니다.
- 관찰 가능성
구체화 된 기능이 없으면 디버깅은 형사 임무가됩니다. 몇 달 전에 모델이 특정 예측을했는지 이해하려고 노력한다고 상상해보십시오. 그 결정의 특징이 오랫동안 사라 졌다는 것을 알기 위해서만 생각해보십시오. 특징 관찰 가능성을 통해 지속적인 모니터링을 가능하게하여 팀은 시간이 지남에 따라 기능 분포의 추세를 감지하거나 기능 배포의 트렌드를 감지 할 수 있습니다. - 시간의 정확성을 가리키십시오
훈련에 사용되는 기능이 추론 중에 생성 된 기능과 일치하지 않으면 악명 높은 훈련-서빙 비다. 이는 데이터 정확도에 관한 것이 아닙니다. 모델이 교육 중와 동일한 기능 계산을 만날 수 있도록하는 것입니다. - 재사용 가능성
다른 모델에서 동일한 기능을 반복적으로 계산하는 것이 점점 낭비됩니다. 기능 계산에 많은 계산 자원이 포함 된 경우,이 비 효율성은 불편 함이 아니라 자원의 상당한 배수입니다.
솔루션의 진화
접근 1 : 주문형 기능 생성
가장 간단한 솔루션은 많은 ML 팀이 시작되는 곳에서 시작합니다. 예측에 즉시 사용하기위한 수요에 대한 기능 생성. 원시 데이터는 변환을 통해 흐르고 추론에 사용되는 기능을 생성하며, 예측이 이미 작성된 후에야 이러한 기능은 일반적으로 파라크 파일에 저장된 기능입니다. 이 방법은 간단하지만 팀은 메모리 내 데이터에서 작성하기가 간단하기 때문에 종종 파일 파일을 선택하는 경우가 많지만 제한 사항이 있습니다. 이 접근법은 기능이 저장되므로 관찰 가능성을 부분적으로 해결하지만 나중에 이러한 기능을 분석하는 것은 도전적이됩니다. 여러 오루 파일의 데이터 쿼리에는 구체적인 도구와 저장된 파일의 신중한 구성이 필요합니다.

접근 2 : 피처 테이블 구체화
팀이 발전함에 따라 많은 사람들이 본격적인 기능 저장소의 대안으로 온라인에서 일반적으로 논의되는 것으로 전환됩니다 : 기능 테이블 구체화. 이 접근 방식은 기존 데이터웨어 하우스 인프라를 활용하여 기능이 필요하기 전에 기능을 변환하고 저장합니다. 확립 된 ETL 파이프 라인을 통해 기능이 일관되게 계산 된 다음 교육 및 추론에 사용되는 중앙 저장소로 생각하십시오. 이 솔루션은 시점의 정확성과 관찰 가능성을 우아하게 다루고 있습니다. 기능은 항상 검사에 사용할 수 있으며 지속적으로 생성됩니다. 그러나 기능 진화를 다룰 때의 한계를 보여줍니다. 모델 생태계가 커지면서 새로운 기능을 추가하거나 기존 기능을 수정하거나 다양한 버전을 관리하는 것이 점점 복잡해집니다. 특히 데이터베이스 스키마 진화에 의해 부과 된 제약으로 인해 점점 복잡해집니다.

접근 3 : 기능 저장소
스펙트럼의 맨 끝에는 기능 저장소 (일반적으로 포괄적 인 ML 플랫폼의 일부가 있습니다. 이 솔루션은 기능 버전, 효율적인 온라인/오프라인 서빙 및 더 넓은 ML 워크 플로와의 원활한 통합과 같은 전체 패키지를 제공합니다. 그들은 우리의 핵심 도전을 포괄적으로 해결하기 위해 기름칠 된 기계와 동일합니다. 기능은 버전 제어, 쉽게 관찰 가능하며 본질적으로 모델 전체에서 재사용 할 수 있습니다. 그러나이 힘은 기술 복잡성, 자원 요구 사항 및 전용 ML 엔지니어링 전문 지식의 필요와 같은 상당한 비용으로 발생합니다.

올바른 선택
트렌드 ML 블로그 게시물이 제안 할 수있는 것과는 달리 모든 팀에 기능 저장소가 필요하지는 않습니다. 내 경험상 피처 테이블 구체화는 종종 스위트 스팟을 제공합니다. 특히 조직에 이미 강력한 ETL 인프라가있을 때. 핵심은 특정 요구를 이해하는 것입니다. 기능을 공유하고 자주 수정하는 여러 모델을 관리하는 경우 기능 저장소가 투자 할 가치가 있습니다. 그러나 모델 상호 의존성이 제한된 팀 또는 여전히 ML 관행을 확립하는 팀의 경우 간단한 솔루션은 종종 더 나은 투자 수익을 제공합니다. 물론, 당신 ~할 수 있었다 주문형 기능 생성을 고수하십시오-오전 2시에 레이스 조건을 디버깅하는 것이 좋은 시간에 대한 아이디어라면.
결정은 궁극적으로 팀의 성숙도, 자원 가용성 및 특정 사용 사례로 이어집니다. 기능 상점은 강력한 도구이지만 정교한 솔루션과 마찬가지로 인적 자본과 인프라에 대한 상당한 투자가 필요합니다. 때로는 피처 테이블 구체화의 실용적인 경로는 한계에도 불구하고 기능과 복잡성의 최상의 균형을 제공합니다.
기억하십시오 : ML 기능 관리의 성공은 가장 정교한 솔루션을 선택하는 것이 아니라 팀의 요구와 기능에 적합한 것을 찾는 것이 아닙니다. 핵심은 정직하게 귀하의 요구를 평가하고, 한계를 이해하며, 팀이 신뢰할 수 있고 관찰 가능하며 관리 가능한 ML 시스템을 구축 할 수있는 경로를 선택하는 것입니다.
출처 참조
Post Comment