RoBERTa AI 텍스트 감지기를 약 500MB에서 약 97MB로 압축하여 브라우저 클라이언트 측에서 실행 가능하게 하고, 이미지 감지기
요약
본 글은 AI 텍스트 및 이미지 감지기를 클라이언트 측 브라우저에서 실행 가능하도록 최적화한 과정을 설명합니다. RoBERTa 기반 텍스트 모델을 약 500MB에서 97MB로 압축하고, ONNX Runtime Web과 양자화를 활용하여 웹 환경에 적합하게 구현했습니다.
핵심 포인트
- RoBERTa 텍스트 감지기를 500MB에서 97MB로 대폭 압축함.
- ONNX Runtime Web을 사용하여 클라이언트 측 추론 환경을 구축함.
- 혼합 정밀도 양자화와 가중치 공간 보간 기법을 적용하여 모델 크기를 줄임.
- 브라우저에서 GPU(WebGPU) 또는 WASM을 활용해 빠른 추론 속도를 구현함.
저는 콘텐츠를 어디에도 업로드할 필요가 없는 AI 텍스트/이미지 감지기를 원했기 때문에, 기존의 공개된 두 가지 감지기를 가져와 ONNX Runtime Web을 사용하여 완전히 클라이언트 측에서 실행되도록 만들었습니다. 데모: https://ritabratamaiti.github.io/tinydetect/ — 코드 및 모든 스크립트: https://github.com/ritabratamaiti/tinydetect 미리 명확히 하자면, 저는 새로운 감지기를 훈련시키지 않았습니다. 기본 모델은 fakespot-ai/roberta-base-ai-text-detection-v1 (Apache-2.0)과 Community Forensics (commfor-model-384, MIT)입니다. 저의 작업은 튜닝/압축 및 브라우저 런타임이었습니다.
텍스트 모델 (~500 MB fp32 → 총 ~97 MB)
- 인간/AI 코퍼스 혼합(HC3, GPT-wiki-intro, HAP-E, WildChat, Gutenberg, 로컬에서 생성된 Gemma-3-1B 텍스트 일부)로 가벼운 파인튜닝을 수행한 후 WiSE-FT: 원래 가중치와 튜닝된 가중치 사이의 가중치 공간 보간(weight-space interpolation)을 통해 원본 모델에서 너무 멀리 벗어나는 것을 방지했습니다.
- 단어 임베딩 행렬은 ONNX 그래프에서 추출되어 int4로 저장하고, 행별 fp16 스케일과 함께 (~19 MB + ~2 MB) JS에서 양자화 해제(dequantised)하여 트랜스포머 본체에 공급합니다.
- 트랜스포머 본체는 혼합 정밀도 양자화(~75 MB)를 사용합니다.
- 바이트 단위 BPE 토크나이저와 Fakespot의 clean_text 전처리가 JS로 재구현되었습니다.
이미지 모델 (~26 MB)
- 보정된 출력 점수를 가진 Community Forensics ViT를 양자화했습니다. 크기 조정/중앙 자르기/정규화는 추론 전에 로컬에서 수행됩니다.
런타임
- ONNX Runtime Web 1.30: 어댑터가 사용 가능한 경우 WebGPU 빌드를, 그렇지 않은 경우 스레드 WASM을 사용합니다.
- 서비스 워커(service worker)는 COOP/COEP 헤더를 추가하여 GitHub Pages에서 스레드 WASM이 작동하도록 하고, 모델/런타임 파일을 캐시합니다.
- 웜업 실행(warm-up run)은 첫 번째 실제 검사 전에 GPU 셰이더를 컴파일합니다. 그 후에는 노트북에서 약 100 토큰의 텍스트 검사가 ~60ms가 걸리고, 이미지는 ~200ms가 걸립니다.
한계점
- 점수는 출처 증거가 아니라 신호입니다. 짧거나 캐주얼한 텍스트, 패러프레이징, 대규모 편집, 스크린샷, 자르기 및 새로운 생성기는 두 모델 모두의 성능을 저하시키며, 첫 로드는 큰 다운로드를 수반합니다 (휴대폰에서 더 심함).
훈련 폴더(training/)의 모든 것(후보 벤치마크, 튜닝, WiSE 알파 선택, 내보내기, 양자화 스윕, 평가)은 단일 노트북에서 실행됩니다. 특히 양자화 선택과 본인의 텍스트에서 실패하는 지점에 대한 피드백을 받고 싶습니다. /u/Alternative_Detail31 제출 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/MachineLearning (hot)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기