LINE은 유해 오픈챗 노출 방지를 위해 이름과 설명 글 기반의 모니터링 모델을 개발하여 자동 검수 범위 확대를 목표로 함
기존 모델의 한계를 극복하기 위해 데이터 정제 과정에서 징계 수위 및 사유에 대한 복잡한 라벨링 규칙을 적용함
Granite Guardian 3.1 2B 모델을 선정하고, LoRA 기법을 적용하여 오픈챗 데이터에 맞춘 멀티태스크 학습(Multitask Learning)을 효율적으로 수행함
정밀도(Precision)와 재현율(Recall)의 조화 평균인 F1 점수를 주요 지표로 삼아 성능을 평가하고, 임곗값(Threshold) 조정으로 운영 요구사항 충족
본문에서는 동일한 오픈챗 이름과 설명에도 불구하고 서로 다른 징계 결과가 부여된 데이터를 정제하기 위해 TF-IDF 아이디어에서 착안한 라벨링 규칙을 적용했습니다.
최고 수위 징계 2회 이상 시 해당 징계를 최종 라벨로 확정하고, 그 외에는 두 번째로 높은 수위의 징계를 선택하는 방식으로 징계 코드(Penalty Code)의 일관성을 확보했습니다.
징계 사유의 경우, 빈도수가 높은 사유를 우선하되 빈도가 동일할 경우 전체 데이터에서 희귀한 사유를 선택하여 데이터의 구체성(Specificity)을 높이는 방식을 채택했습니다.
이러한 복잡한 라벨링 규칙은 모델이 다양한 유해성 수준과 사유를 정확히 구분하도록 학습시키는 데 중요한 역할을 합니다.
기존 인코더 모델과 달리, 본 프로젝트에서는 디코더 기반 모델(Decoder-based Model)인 Granite Guardian 3.1 2B를 채택했습니다. 이는 분류 과제에서도 디코더 모델이 좋은 성능을 보이는 최신 트렌드를 반영한 결정입니다.
안전성 모더레이션(Safety Moderation) 특화 튜닝: 이미 유해성 판단 과제로 사전 학습된 모델을 활용하여 도메인 특화 성능을 기대했습니다.
2B 파라미터 규모: LINE의 방대한 오픈챗 데이터를 실시간으로 처리해야 하므로, 서빙 비용과 응답 속도를 고려하여 비교적 가벼운 모델을 선택했습니다.
Apache 라이선스: 상업적 활용 가능성을 고려하여 라이선스 문제를 방지했습니다.
Granite Guardian은 'Yes'/'No' 토큰 확률 비교를 통해 유해성을 판단하므로, 일반 생성 모델의 출력 형식 불안정성 문제(Output Format Instability)를 해결하면서도 신뢰도(Confidence) 기반의 임곗값 조정이 용이하다는 장점이 있습니다.
본 모델은 단순한 유해 여부(Yes/No) 분류를 넘어, 징계 코드(Penalty Code)와 징계 사유(Penalty Reason)까지 예측하는 멀티태스크 학습(Multitask Learning) 방식을 채택했습니다.
프롬프트 엔지니어링(Prompt Engineering): `{오픈챗 이름 및 설명 글}` 입력을 받아 `Action:{징계 코드 토큰}
Reason:{징계 사유 토큰}` 형식의 출력을 유도하는 프롬프트를 설계했습니다.
Cross Entropy Loss 활용: 모델 응답 영역에 대해서만 손실을 계산하여, 징계 코드 및 사유 예측 정확도 향상에 집중했습니다.
LoRA 적용: 전체 파라미터 대신 LoRA(Low-Rank Adaptation)를 적용하여 학습 효율성 증대 및 메모리 사용량 감소를 달성했습니다. 이는 사전 학습된 모델의 능력을 최대한 유지하면서도 파인튜닝(Fine-tuning) 비용을 절감하는 효과를 가져옵니다.
추론 단계에서는 KV 캐싱(Key-Value Caching)을 활용하여 트랜스포머(Transformer) 모델의 추론 속도를 최적화했습니다.
2단계 토큰 예측: 먼저 징계 코드 토큰의 확률을 계산하고, 가장 높은 확률의 코드가 생성되었다고 가정하여 이어서 징계 사유 토큰을 예측합니다.
KV 캐싱 적용: 이전 토큰들의 키(Key)와 밸류(Value)를 재사용하여 어텐션(Attention) 계산 중복을 제거하고, 특히 긴 시퀀스 처리 시 성능 향상을 이끌어냅니다.
자연어 토큰 매핑: 임의의 코드값을 모델이 학습하기 쉬운 자연어 토큰으로 매핑하여 모델의 학습 용이성을 높였습니다. 이는 모델이 코드의 의미를 더 잘 이해하고 예측하는 데 도움을 줍니다.
성능 평가는 정밀도(Precision)와 재현율(Recall)의 조화 평균인 F1 점수를 기준으로 진행되었습니다. 이는 '문제없음' 클래스의 중요도를 반영하기 위함입니다.
정상 클래스 F1 개선: 모든 평가 대상 국가에서 기존 모델 대비 정상 클래스 F1 점수가 크게 향상되었습니다.
NG 클래스 F1 개선: 문제 있는 오픈챗(NG 클래스)에 대한 F1 점수 역시 모든 지역에서 기존 모델보다 높은 성능을 보였습니다.
임곗값(Threshold) 기반 정밀도 관리: LINE의 높은 자동 처리 정밀도 요구사항을 충족하기 위해, 단순히 가장 높은 확률의 예측을 선택하는 대신 임곗값 이상일 경우에만 자동 처리하는 방식을 적용했습니다. 이를 통해 정밀도를 확보하고, 재현율 감소는 감수하는 전략을 사용했습니다.