KEY POINT
- LFM2.5-Encoder는 8k 컨텍스트를 지원하는 230M 및 350M 크기의 범용 인코더 모델이다.
- LFM2.5-Encoder-230M은 CPU 환경의 8k 토큰 처리 시 ModernBERT-base보다 3.7배 빠른 28초의 추론 속도를 기록했다.
- 개발자는 상시 운영 비용과 속도가 중요하다면 230M 모델을, 정밀한 추출과 정확도가 우선이라면 350M 모델을 선택해야 한다.
#LFM25 #ModernBERT #임베딩모델 #CPU추론 #텍스트분류
8k 컨텍스트를 지원하는 범용 인코더 LFM2.5-Encoder 공개
LFM2.5-Encoder는 230M과 350M 두 가지 파라미터 크기로 제공되는 일반 목적의 인코더 모델이다. 개발자는 이 모델을 통해 텍스트 분류, 토큰 수준 작업, 검색 등 다양한 NLP 애플리케이션을 구현할 수 있다. 검색 전용으로 설계된 LFM2.5-Retrievers와 달리, LFM2.5-Encoder는 마스크 언어 모델링(Masked-language objective)으로 사전 학습되어 더 넓은 범위의 작업에 적용 가능하다.
LFM 아키텍처를 적용한 이 모델은 입력 데이터의 길이가 길어져도 추론 비용의 증가 폭을 낮게 유지한다. 이를 통해 개발자는 의도 라우터(Intent Router), 정책 린터(Policy Linter), 개인 식별 정보(PII) 탐지기, 텍스트 분류기를 저비용으로 상시 운용할 수 있다. 특히 CPU 환경에서 입력값이 계속 길어지는 고빈도 이해 작업에서 생성형 LLM보다 효율적인 대안이 된다.
베이스 인코더는 텍스트의 일반적인 표현력을 제공하므로, 실제 서비스 적용을 위해서는 파인튜닝(Fine-tuning) 과정이 필요하다. 개발자는 8k 컨텍스트를 지원하는 파인튜닝 튜토리얼을 통해 긴 법률 문서 등의 도메인 특화 데이터를 학습시켜 분류 및 추출 정확도를 높일 수 있다.
디코더를 양방향 인코더로 변환한 아키텍처와 학습 공정
LFM2.5-Encoder는 LFM2.5-230M 및 LFM2.5-350M의 디코더 백본에서 초기화하여 구축했다. 설계자는 기존의 인과적 디코더(Causal Decoder) 구조를 몇 가지 변경을 통해 양방향 인코더(Bidirectional Encoder)로 변환했다. 양방향 인코더는 텍스트를 한 방향으로만 읽지 않고 전체 문맥을 동시에 참조하여 문장 내 관계 파악 능력을 극대화한다.
학습 공정은 총 2단계(Two stages)로 구성하여 모델의 표현력을 정교화했다. 230M과 350M 모델 모두 이 과정을 거쳐 디코더에서 인코더로 전환될 때 발생하는 가중치 불일치를 해결하고 양방향 구조에 최적화된 가중치 분포를 형성했다.
다운스트림 작업(Downstream task) 단계에서는 인코더 본체(Body)에 사용자가 정의한 헤드(Head)를 부착하여 활용한다. 작업 목적에 따라 분류(Classification), 토큰 분류(Token classification), 회귀(Regression), 검색(Retrieval) 헤드 중 하나를 선택해 결합함으로써 특정 태스크에 최적화된 출력을 얻는다.
GLUE 및 SuperGLUE 기반의 정확도 검증 결과
LFM2.5-Encoder는 GLUE, SuperGLUE 및 다국어 분류 작업 등 총 17개 태스크를 통해 정확도를 검증했다. 14개 모델을 대상으로 전체 미세 조정을 수행한 결과, LFM2.5-Encoder-350M은 전체 모델 중 4위를 기록했다. 상위 3개 모델은 3.5B 파라미터 모델을 포함하여 LFM2.5-Encoder-350M보다 크기가 최대 10배 가까이 큰 대형 모델들이다.
LFM2.5-Encoder-230M은 ModernBERT-base와 모든 EuroBERT 모델보다 높은 점수를 기록했다. 이 모델은 비교 대상인 대부분의 모델보다 파라미터 수가 적음에도 불구하고 더 높은 분류 정확도를 달성했다. 또한, 검색 전용 모델인 LFM2.5-Retrievers보다도 모든 지표에서 우수한 성능을 보였다.
결과적으로 LFM2.5-Encoder 시리즈는 모델 크기를 최소화하면서도 대규모 모델의 성능에 근접한 정확도를 유지했다. 이는 추론 비용을 낮추면서도 고성능의 텍스트 이해 작업을 수행할 수 있음을 입증한다.
CPU 및 GPU 환경에서의 추론 속도 비교 분석
LFM2.5-Encoder는 8,192 토큰의 컨텍스트를 처리할 때 CPU 환경에서 압도적인 속도 우위를 보인다. LFM2.5-Encoder-230M은 노트북 CPU에서 8k 토큰을 처리하는 데 약 28초가 소요되었으며, 이는 90초 이상이 걸린 ModernBERT-base보다 약 3.7배 빠른 속도다. 개발자는 이를 통해 수십 페이지의 계약서나 상담 로그를 CPU만으로 30초 이내에 스캔하고 분류할 수 있다.
GPU 환경에서도 입력 길이가 길어질수록 LFM2.5-Encoder의 효율성이 높아진다. Apple GPU 테스트 결과, 1,000개 미만 토큰 구간에서는 ModernBERT-base가 더 빠르지만, 2,000개 토큰 지점부터는 LFM2.5-Encoder가 추론 속도에서 앞선다. 이는 입력 데이터가 길어질수록 LFM2.5-Encoder가 더 빠른 선택지임을 보여준다.
인코더 모델은 다음 토큰을 순차적으로 예측하는 생성형 LLM과 달리 전체 맥락을 한 번에 처리한다. 따라서 메모리 점유율이 낮고 연산 비용이 절감되어, 고가의 GPU 인스턴스 없이 기존에 보유한 CPU 자원만으로도 상시 운영이 가능하다.
transformers 라이브러리 구현 및 모델 선택 기준
개발자는 작업의 우선순위에 따라 LFM2.5-Encoder의 모델 크기를 선택한다. 처리 속도와 자원 효율성이 최우선인 고빈도 작업에는 230M 모델을 선택하고, 분류 정확도와 정밀한 추출이 중요한 작업에는 350M 모델을 선택하는 것이 효율적이다. 모든 모델 가중치는 Hugging Face 저장소에서 오픈 웨이트로 제공된다.
구현은 `transformers` 라이브러리를 통해 이루어지며, 먼저 최신 버전을 설치해야 한다.
pip install transformers문장 중간의 빈칸을 맞추는 마스크 토큰 예측(masked-token prediction)은 아래 코드로 실행한다.
from transformers import AutoModelForMaskedLM, AutoTokenizertokenizer = AutoTokenizer.from_pretrained("lifellm/LFM2.5-Encoder-230M")
model = AutoModelForMaskedLM.from_pretrained("lifellm/LFM2.5-Encoder-230M")
inputs = tokenizer("The capital of France is <mask>.", return_tensors="pt")
outputs = model(**inputs)
특정 도메인의 분류나 추출 작업을 수행하려면 모델 상단에 헤드를 부착해 미세 조정한다.
from transformers import AutoModel, AutoModelForSequenceClassification분류 작업을 위한 헤드 부착
model = AutoModelForSequenceClassification.from_pretrained("lifellm/LFM2.5-Encoder-230M", num_labels=2)
GPU를 사용하는 환경에서 추론 효율을 극대화하려면 Flash Attention 2를 적용한다. GPU 인프라 없이 CPU 환경에서 긴 문서의 분류와 추출 작업을 저비용으로 상시 운영하려는 개발자는, 처리 속도가 빠른 230M 모델을 선택해 transformers 라이브러리로 구현하는 것이 가장 효율적인 실행 기준이다.




