라벨링된 데이터 저장을 위한 10가지 모범 사례
라벨링된 데이터 저장을 위한 10가지 모범 사례
방금 큰 아이디어가 떠올랐습니다. 많은 책을 읽으면서 화자의 어조에 라벨을 붙이고 정치적 성향을 파악하는 분류기가 있으면 재미있을 것 같다고 생각했습니다. 이 예측을 위해 머신 러닝을 사용할 수 있도록 문제를 어떻게 세분화할 수 있을까요? 우리는 이것을 사용했습니다. 퓨 설문조사 민주당과 공화당 유권자들이 신뢰하는 신문에 대한 응답을 사용했습니다.
프로덕션 준비 머신 러닝 모델 구축을 생각하기 전에 데이터 파이프라인에 대해 생각해야 합니다. 데이터 파이프라인은 머신러닝 모델이 실행되는 기반이며, 강력한 기반이 없으면 모델의 성공적인 성능을 기대할 수 없습니다. Skim AI의 전문가들이 라벨링된 데이터를 저장하는 10가지 모범 사례를 정리하여 성공을 위한 기반을 마련했습니다.1. 문제 정의: 머신 러닝에 적합한 문제인가요?
머신러닝 모델을 문제 해결에 적용하려면 컴퓨터가 정의할 수 있어야 합니다:
- 이러한 단어 집합이 텍스트의 한 범주 또는 다른 범주에 더 가까운 패턴에 맞나요?
- 기계가 패턴을 추출하기에 충분한 대표 데이터가 있는 데이터베이스가 있나요?
이 예시에서는 민주당 성향의 연설과 공화당 성향의 연설이라는 두 가지 결과가 있습니다. 민주당과 공화당을 구성하는 많은 그룹이 있고 무소속과 다양한 성향이 있기 때문에 문제는 이보다 훨씬 더 복잡합니다. 하지만 이 예에서는 이 두 가지 변형으로 단순화해 보겠습니다.
2. 각 결과에 대해 최소 5,000개의 데이터 포인트를 수집합니다.
최소 수집 5,000개의 데이터 포인트 를 사용하여 분류하려는 각 정보 범주에 대해 데이터베이스에 저장하세요. 이 예에서는 기사, 연설, 책 또는 쇼 대본에서 레이블이 지정된 데이터 포인트를 저장하고 있습니다. 이진 분류기를 구축하고자 하므로 민주적 글 샘플 5,000개와 공화적 글 샘플 5,000개, 총 10,000개의 샘플이 필요합니다. 결과당 5,000점이 권장되는 최소값이지만 데이터가 많을수록 정확도가 향상되므로 망설이지 마세요.
3. 문장 수준에서 데이터를 저장합니다.
우리의 경우, 전체 기사를 민주당 또는 공화당으로 분류하는 것이 목표이지만, 각 리소스를 전체 기사 수준이 아닌 문장 수준으로 저장하여 향후에 대비하고 싶을 것입니다. 이렇게 하면 특정 키워드나 엔티티(사람, 장소, 조직)를 둘러싼 단락이나 분석과 같이 보다 구체적인 엔티티를 분류하려는 경우 향후에 더 적은 정리 작업으로 데이터를 사용할 수 있습니다.
일반적으로 모든 ML 프로젝트에 소요되는 시간 중 50~65%는 데이터를 정리하고 ML 알고리즘이 읽을 수 있는 형식으로 변환하는 데 사용됩니다. 대부분의 분류기는 문장과 전체 문서 수준에서 모두 작동합니다.
문장 및 단락 수준 분류를 위한 실용적인 구현 팁입니다:
- 분류는 한 문장, 한 단락 또는 단일 문서(문서)로 시작해야 합니다.
- 비표준 요구 사항(몇 단어 또는 몇 문장)은 어떤 클러스터가 중요한지 예측하기 위해 두 번째 ML 모델을 만들어야 하는 매우 어려운 문제를 추가합니다.
- 분류 문제를 최대한 단순화하여 시작하고, 시간이 지남에 따라 더 많은 데이터를 사용할 수 있게 되면 복잡성을 더하세요.
4. 잘 정의된 카테고리로 데이터를 분류하고 레이블을 지정합니다.
이것은 방법론에 관한 이야기입니다. 가능한 한 많은 순수한 신호를 얻는 것이 중요합니다. 즉, 노이즈와 미묘한 차이가 있는 리소스와 정보를 제거해야 합니다. 예를 들어, 중도파 소스의 레이블이 지정된 데이터를 저장하는 경우 명확한 신호가 덜 포함되며, 공화당 또는 민주당 데이터 세트에 중도파 소스의 데이터(기사)를 추가하면 공화당/민주당 발언 분류기의 정확도와 유용성이 떨어질 수 있습니다.
이 예에서는 사람들의 정치적 신념이 단순한 정당 노선보다 훨씬 더 복잡하기 때문에 특히 어렵습니다. 또한 다양한 작가, 연사 및 신문은 공식적인 당론과 다른 의견을 가지고 있을 것입니다. 예를 들어 이 예에서는 억제해야 할 소음이 많을 수 있습니다:
- 논문은 특정 이슈에 대해 보수적 또는 진보적으로 기울어지는 정도에 따라 달라집니다.
- 같은 출판사의 다른 기자들 사이에서도 특정 이슈에 대해 특정 기자들은 서로 다른 견해를 가질 수 있습니다.
- 주주 또는 소유주는 자신에게 중요한 특정 이슈에 대해 독단적인 입장을 표명하고 편집팀에 특정 방식으로 이슈를 다루도록 지시할 수 있습니다.
가능한 모든 변수를 설명하기 위한 방법론을 정의하는 데 몇 시간을 소비할 수도 있습니다. 가능한 한 많은 데이터를 수집하고 저장하는 것이 좋습니다. 문장 수준에서 깨끗한 데이터를 찾고 작성자, 게시글 및 캡처할 수 있는 기타 모든 필드를 추적할 수 있는 필드를 만드세요.
5. 모든 대표 데이터를 저장합니다.
충분한 데이터에 액세스할 수 있나요? 저희의 경우, 이러한 출판물의 오래된 기사에 액세스하여 각 분류 범주에 대한 기사 데이터 세트와 충분한 데이터 포인트를 수집하는 것은 비교적 쉽습니다.
그렇지 않은 경우 Amazon Mechanical Turk를 사용하여 데이터에 레이블을 지정하거나, 방법론에 교육이 필요한 경우 인도나 마케도니아의 인력을 교육하고 월 $1,000달러를 지불하여 데이터 세트를 구축하는 방법을 고려할 수 있습니다.
6. 백그라운드 데이터를 저장합니다.
분류하려는 대상과 밀접한 관련이 있는 라벨이 붙은 데이터를 저장하면 더 많은 어휘, 사람, 장소, 주제를 포함하는 보다 강력한 모델을 구축할 수 있으며, 이는 구축하는 모든 모델에 도움이 될 것입니다. 분류 모델을 새로운 어휘, 주제, 실체에 노출시키고 단어들 사이의 고유한 관계를 이해함으로써 도움이 될 수 있습니다. 이렇게 하면 모델이 처음에 시작한 데이터 이외의 데이터를 더 잘 처리할 수 있게 됩니다.
하원의원과 상원의원이 쓴 책, 트윗, 인터뷰 녹취록, 케이블 뉴스 쇼의 녹취록, 하원에서의 대화 녹취록, 특정 의원이 작성하거나 후원한 법안 및 법률을 얻고 싶을 수도 있습니다.
머신 러닝의 핵심은 모든 변수를 직접 테스트할 필요 없이 ML이 작동하기에 충분한 데이터를 확보하고 문제를 잘 정의하기만 하면 된다는 점입니다.
7. 레이블이 지정된 데이터의 원시 텍스트를 저장합니다(중복성 연습).
안전을 위해 항상 라벨을 붙인 데이터의 원시 텍스트를 저장하세요. 예를 들어, 문서 내에 라벨을 붙이려는 데이터를 대표하는 문장이 있는 경우 해당 문장의 원시 텍스트와 라벨을 저장해야 합니다. 이 데이터를 중복으로만 저장하는 경우에도 이 조치를 취하세요. 머신 러닝 엔지니어나 데이터 과학자가 고마워할 것입니다.
8. 데이터를 처음부터 끝까지 매핑합니다(인덱스 값).
인덱스 값을 사용하여 레이블이 지정된 데이터를 참조하는 경우, 해당 데이터를 매핑하고 매핑을 잘 이해하세요. 예를 들어, 기사의 문장이나 단락을 저장하는 경우, 해당 문장이나 단락이 시작되는 위치에 대한 데이터베이스 값이 데이터를 저장하는 소스의 값과 일치하는지 확인하세요. 안전을 위해 첫 문장, 시작 및 끝 값, 마지막 문장부터 테스트하세요.
9. 데이터 백업하기.
이는 설명이 필요 없을 것입니다. 데이터를 정기적으로 백업하세요.
10. 미래를 위해 생각하고 구축하세요.
라벨이 붙은 데이터를 충분히 수집하는 데는 몇 년이 걸리는 경우도 있습니다. 특정 영역의 문제를 해결하고 싶다면 해결하고자 하는 문제와 관련된 레이블이 지정되지 않은 데이터와 레이블이 지정된 데이터를 최대한 많이 수집하고 도메인별 데이터를 수집하세요.
시작할 준비가 되셨나요? 저희의 머신 러닝에 관한 다른 글.