저희는 지난 몇 달 동안 일곱 개의 개별 시퀀스 분류기를 하나의 다중 헤드 모델, 말하자면 저희의 최고 모델로 통합하는 작업을 진행했습니다. 이제 가중치가 공개되었으므로, 어떤 부분이 효과가 있었고 무엇이 우리를 놀라게 했는지 공유하고자 합니다.
설정: mmBERT-small 인코더와 일곱 개의 태스크 헤드를 공유합니다. 바이너리 주입(BCE), 문서 클래스(7개 방식), 도구 유형(14개 방식), 도구 작업(6개 방식), 도구 데이터 흐름 태그(3× BCE, 다중 레이블), 의도 라우팅(5개 방식), 그리고 위협 유형(7개 방식)을 사용합니다. 주의가 필요했던 부분: 저희의 학습 행은 일부 태스크에 대한 레이블만 포함하므로, 누락된 태스크는 손실 계산에서 완전히 마스킹됩니다. 결국 저희는 누락된 태스크의 기울기(gradient)가 정확히 0인지 확인하는 자체 테스트를 작성했고, 이를 통해 두 가지 미묘한 버그를 잡아낼 수 있었습니다. 유사한 마스킹 작업을 하는 분들께 이 방법을 추천합니다. 약 5천 개의 합성/실제 다중 태스크 행이 헤드들이 공동으로 학습하도록 돕습니다. 테스트 세트는 100% 실제 데이터를 사용합니다.
각 헤드별 홀드아웃 결과: 주입 F1 0.962, 문서 0.980, 도구 유형 0.957, 도구 작업 0.945, 도구 태그 0.958, 라우팅 0.916, 위협 0.952.
양자화(Quantization): 통합 모델과 전용 단일 태스크 변형 모두 양자화된 엣지 빌드(ONNX INT8 + INT4 임베딩, 크기 96 MB)로 배포됩니다. 저장소에는 측정된 패리티 벤치마크가 포함되어 있으며, 최악의 헤드는 FP32 대비 0.012를 손실합니다.
일곱 개의 전용 모델과 비교할 가치가 있었을까요? 저희는 두 가지 변형 모두 출시했으므로 직접 판단하실 수 있습니다. 전용 모델들이 대부분의 태스크에서 미세하게 더 높은 점수를 기록하지만, 통합 모델은 최대 일곱 번까지의 패스 대신 하나의 인코더 패스를 수행합니다.
저희의 약점: 라우팅(0.916)입니다. 의도 클래스들은 의미론적으로 중첩됩니다(