TL;DR

  • Offlineisbetter는 비싼 하드웨어나 클라우드 API에 의존하지 않고 CPU에서 실행하는 텍스트 인코딩 모델을 구축하는 프로젝트임.
  • 모델의 초점은 감정 분석, 텍스트 태깅, 문서 검색 등이며 자동회귀 생성과 같은 디코딩 작업은 대상이 아님.
  • 첫 모델 offline-sentiment-small은 감정 분석용 2억 3천만 파라미터 모델임.
  • Ryzen 9950X3D CPU 단일 스레드에서 Stanford NLP의 SST-2 검증 세트를 이용해 벤치마크를 수행함.
  • offline-sentiment-small은 검증 F1 0.9489, p95 지연 시간 80.32ms를 기록했으며, 매개변수 효율과 낮은 지연 시간의 모델을 누구나 쉽게 이용할 수 있게 하는 것이 프로젝트의 철학임.

Offlineisbetter 소개

  • Offlineisbetter는 모델 추론을 제공하며, 개인 데이터를 익명의 기업에 맡길 필요 없이 텍스트 모델을 로컬에서 실행할 수 있어야 하고 고가 하드웨어도 필요하지 않아야 한다는 관점에서 출발함.
  • 모델은 자동회귀 생성과 같은 디코딩 작업보다 감정 분석, 텍스트 태깅, 문서 검색 등 인코딩 작업에 초점을 둠.
  • 간단한 작업을 위해 최첨단 언어 모델용 클라우드 API에 의존하는 것은 낭비이자 위험이라는 입장임.
  • 런타임이나 양자화 형식을 직접 다루지 않고도 모델을 내려받아 사용할 수 있는 방식을 지향함.

직접 사용하기

  • 첫 모델은 offline-sentiment-small이라는 감정 분석용 소형 텍스트 모델이며, 파라미터 수는 2억 3천만 개임.
  • offlinedemo를 설치하고 저장소의 릴리스 페이지에서 모델 아카이브를 내려받아 압축을 해제한 뒤, 체크포인트가 들어 있는 디렉터리를 지정해 데모를 실행하는 절차임.

벤치마크

  • 벤치마크는 Stanford NLP의 stanfordnlp/sst2 검증 세트를 이용한 이진 감정 분류 기준이며, Ryzen 9950X3D CPU 단일 스레드에서 모두 수행함.
  • 모델별 파라미터 수, p95 지연 시간, 검증 F1은 다음과 같음.
  • offline-sentiment-small: 2억 3천만 개, 80.32ms, 0.9489
  • distilbert-base: 6천7백만 개, 66.15ms, 0.9321
  • roberta-base: 1억 2천5백만 개, 469.65ms, 0.9396
  • modernbert-base: 1억 4천9백만 개, 530.73ms, 0.9396

철학

  • 핵심 철학은 매개변수 효율이 높고 지연 시간이 낮은 모델을 누구나 쉽게 사용할 수 있어야 한다는 것임.
  • Hugging Face와 transformers.pipeline을 이용하면 Python 세 줄로 감정 분석을 실행할 수 있지만, Offlineisbetter는 매개변수 효율이 더 높고 이미 양자화되어 있으며 연산 그래프가 최적화된 모델을 지향함.