꼭 -100을 써야할까?
Hugging Face의
- BertForTokenClassification
- TFBertForTokenClassification
등은 내부적으로 보통:
ignore_index=-100
즉 label이 -100이면 loss 계산에서 제외
- -100 외에도 다른 숫자를 사용할 수 있지만, 그러기 위해서는 loss 함수도 같이 수정해 줘야 한다. (혹은 직접 마스킹)
- 단 다른 숫자를 사용할 때 다른 라벨 ID와 충돌하면 안 된다. (그래서 보통 음수를 사용)
TensorFlow에서는...
ignore_index 옵션이 없는 경우가 많아서
active_loss = labels != -100
같이 직접 mask를 만들어 처리한다 (loss를 계산하기 전에 배제).
이런 경우에는 직접 배제하기 때문에 ignore_index 설정이 필요 없다.