Downloads · 30 days
7
4% of all-time downloads
etri-lirs/faster-gbst-kebyt5-base
faster-gbst-kebyt5-base is a fill-mask model from etri-lirs. Use it when you need the model to fill a missing word. It is set up for transformers. The card lists the license as other.
KEByT5: Korean-Enhanced/Enriched Byte-level Text-to-Text Transfer Transformer(T5)의 GBST 버전으로, CharFormer(Tay et al., 2021)를 기반으로 합니다.
Downloads · 30 days
7
4% of all-time downloads
All-time downloads
175
Public
Repo size
4.7 GB
Likes
2
Public
Click a slice to open those files.
.bin2.3 GB · 100%
From the Hugging Face model README
KEByT5: Korean-Enhanced/Enriched Byte-level Text-to-Text Transfer Transformer(T5)의 GBST 버전으로, CharFormer(Tay et al., 2021)를 기반으로 합니다.
한국어를 위해 토큰 후보 구간을 1∼9 바이트 단위로 청킹하여 후보군을 생성하고, GBST로 나온 소프트 임베딩 시퀀스를 1/6로 다운샘플링하여, 서브워드 기반 모델(한국어 평균 2.3∼2.7 토큰, 3만 단어)을 넘어서는 속도/성능 목표를 갖는 토큰-프리 언어모델을 지향합니다.
본 모델의 구동을 위해서는 GBSWT5 모듈이 필요합니다. 모델에 포함되어 있는 코드를 from_pretrained() 메서드 호출 인자로 trust_remote_code=True를 추가해, 별도 모듈 없이 사용 가능합니다.
https://github.com/etri-crossmodal/gbswt5
아래와 같이 pip를 통해 모듈을 설치 가능합니다. 모델 사용 방법은 github를 참조해주십시오.
pip install git+https://github.com/etri-crossmodal/gbswt5.git
또는, 최신 버전의 Transformers와 함께, 별도의 코드 없이 아래의 방법으로 모델 사용이 가능합니다:
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("etri-lirs/faster-gbst-kebyt5-base")
# 아래와 같이 trust_remote_code=True를 붙임으로, 자동으로 관련 코드를 다운로드 받고 쓸 수 있습니다
model = AutoModelForSeq2SeqLM.from_pretrained("etri-lirs/faster-gbst-kebyt5-base", trust_remote_code=True)
또한, 다운스트림 태스크 학습 시, 아래의 python 코드와 같이, GBST layer를 frozen 하여 학습하는 것을 권장합니다.
gbst_frozen_target = ['encoder.embed_tokens.embeds.weight',
'encoder.embed_tokens.positional_convol.2.convol.weight',
'encoder.embed_tokens.positional_convol.2.convol.bias',
'encoder.embed_tokens.positional_convol.2.proj.weight',
'encoder.embed_tokens.positional_convol.2.proj.bias',
'encoder.embed_tokens.cand_scoring.0.weight',
'encoder.embed_tokens.cand_scoring.0.bias',
# embedding weight는 frozen 하지 않는 쪽이 일반적으로 더 나은 성능을 보임.
#'shared.weight',
]
print("** GBST Model found, freeze GBSWT layer for training downstream.")
for name, param in self.model.named_parameters():
if name in gbst_frozen_target:
print(f"** freeze {name} layer.")
param.requires_grad = False
else:
param.requires_grad = True
참고로, 모델에 포함된 원격 코드에는 다음의 오픈소스 소프트웨어가 포함되어 있습니다:
크로스모달 및 다국어 친화적인 한국어 중심의 토큰-프리 언어 이해 생성 모델 (EN=Cross-modal, Multilingual Friendly, Token-free Encoder-Decoder Pretrained Language Model for Korean)
본 사전학습 언어모델은 다음과 같은 규모를 가집니다:
이들 모델은 google/byt5-small, google/byt5-base, google/byt5-large 모델과 동일한 신경망 구조와 크기를 가지며, 토크나이저(ByT5Tokenizer)와 구현 상 두 모델은 별도의 수정없이 바로 교환하여 사용할 수 있습니다. huggingface transformers에서의 사용법 역시, T5ForConditionalGeneration을 동일하게 사용할 수 있습니다.
해당 사전학습 언어모델은 연구 및 교육 목적의 활용으로 그 사용 목적이 제한됩니다.
현재 공개되는 모델은 T5 모델 학습에 사용된 Corrupted span denoising 만으로 학습되어 있어, 실제 응용 태스크에 적용하기 위해서는 fine-tuning 과정이 필요합니다.
Sentinel Token(token id 258, 257, 256, ...)을 사용하여 Masked Token Prediction을 수행할 수 있으나, 예측된 내용에는 부적절한 내용이 있을 수 있습니다.
Token-free 모델의 특성 상, 복잡하거나 Noisy한 입력에 강건하며, 짧은 시퀀스 길이의 생성에 적합합니다. (예: 언어 이해, 대화 응답 생성)
Masked Token Prediction을 통해 획득될 수 있는 정보에는 다른 생성형 언어모델과 같은 위험을 가지고 있을 수 있습니다. 학습에 사용된 데이터는 욕설, 음란, 정치적 내용 및 기타 거친 언어들에 대한 별도의 처리가 이루어지지 않았습니다. 따라서, 사회적으로 용인되지 않은 토큰이나 텍스트를 생성할 수 있으며, 주변 문맥에 따라서 공격적인 입력에 어떠한 결과를 생성할 수 있을지 쉽게 예상할 수 없습니다.
한편, 본 언어모델은 주로 한국어 텍스트로 학습되었으며, 이들의 특성을 전이할 수 있는 다운스트림 태스크, 그 중에서도 분류, 요약, 짧은 문장 생성에 적합할 수 있습니다. 입출력 수준에서 미등록어(Out-of-Vocabulary)가 존재할 수 없으나, 사전학습되지 않은 텍스트 시퀀스에 대해서는 추가의 도메인 적응 학습 및 다운스트림 태스크의 미세조정이 필요합니다.
[More Information Needed]
Transformers 4.27.0 이상의 버전에서, 다음의 파이썬 코드를 사용하여 모델과 tokenizer를 사용할 수 있습니다. 상기에 언급된 바와 같이, transformer 모듈 로드 전 gbswt5 모듈을 import 해야 합니다:
import gbswt5
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("etri-lirs/faster-gbst-kebyt5-base")
model = AutoModelForSeq2SeqLM.from_pretrained("etri-lirs/faster-gbst-kebyt5-base")
본 사전학습에는 아래의 공개 데이터가 사용되었습니다:
또한, 소량의 자체 구축된 데이터 및 합성 데이터 일부를 사용, 전체 약 ~220GB 가량의 데이터로 학습되었습니다.
한국어 언어 이해 태스크에 사용되는 KLUE dataset, v1.1의 dev set을 사용하여 평가되었습니다. 생성은 모두 seq2seq을 이용한 출력 레이블 직접 생성 방법을 사용했습니다.
모든 모델의 학습 조건은 유효배치 크기 16, 학습 epoch 4로 고정, 파라미터 크기에 따라 고정된 학습률, Cosine-Annealing LR Scheduler (min lr=1e-7, restarts=4, gamma=0.7)을 사용하여 학습 되었습니다. 상세 테스트 환경은 신종훈 외, 2023에 기록된 것과 같습니다. 상기 학술논문 이후에 출시된 본 모델(GBST-KEByT5-Large)의 다운스트림 태스크 학습 조건은 태스크 별로 가변적인 학습률(LR 6.2e-5~4.6e-5) 사이의 값을 사용하여 학습하였고, 나머지 조건은 동일하게 설정하였습니다.
하기 미세조정 실험을 위해 사용된 학습기를 함께 공개하였습니다. 해당 학습기는 다른 huggingface encoder-decoder 모델(BART 등)의 학습도 함께 사용할 수 있습니다. https://github.com/etri-crossmodal/llm-downstream-s2s
| models | KLUE-TC(YNAT) (F1) | KLUE-NER (Entity, Char F1) | KLUE-DP (UAS, LAS) | KLUE-MRC (EM, ROUGE-W) |
|---|---|---|---|---|
| google/byt5-large (1.23B) | 78.52 | 48.81, 63.95 | 44.26, 7.805 | NOT TESTED |
| KEByT5-Base (580M) | 84.99 | 86.75, 91.05 | 88.70, 85.90 | 62.28, 68.38 |
| GBST-KEByT5-Base (584M) | 85.29 | 87.35, 92.09 | 88.33, 85.00 | 59.69, 66.44 |
| faster-GBST-KEByT5-base (584M) | - | - | - | 64.08, 70.75 (LR 8e-5)) |
| KEByT5-Large (1.23B) | 85.68 | 88.09, 92.40 | 87.18, 85.52 | 70.07, 75.81 |
| GBST-KEByT5-Large (1.23B) | 85.72(LR 4e-5) | 87.22, 91.54(LR 4.6e-5) | -, - | 68.6, 74.33 (LR 6.2e-5) |
| faster-GBST-KEByT5-Large (1.23B) | 85.48(LR 3e-5) | 87.35, 92.06(LR 3e-5) | 86.12, 83.34 (not final) | 69.21, 74.86 (LR 6.2e-5)) |
대화 상태 추적(DST; Dialogue State Tracking) 태스크인 KLUE-WOS-v1.1 결과는 다음과 같습니다. 평가는 모두 seq2seq을 이용한 다이얼로그 상태 직접 생성을 사용했습니다:
| models | WOS (JGA, %) | WOS (F1, %) |
|---|---|---|
| klue/klue-roberta-large | 50.22 | 92.23 |
| KEByT5-Base (580M) | 77.15 | 96.92 |
| GBST-KEByt5-base (584M) | 75.94 | 96.73 |
| KEByT5-Large (1.23B) | 78.54 | 97.28 |
| GBST-KEByT5-Large (1.23B) | -(not tested yet) | - |
관계 추출(RE; Relation Extraction) 태스크인 KLUE-RE-v1.1 결과는 다음과 같습니다. no_relation을 제외한 29개의 관계 클래스에 대한 Micro F1 결과입니다:
| models | KLUE-RE (F1, %) |
|---|---|
| klue/klue-roberta-base | 65.90 |
| KEByT5-Base (580M) | 65.48 |
| KEByT5-Large (1.23B) | 68.95 |
| GBST-KEByT5-Large (1.23B) | -(not tested yet) |
GBST 적용을 통한 효율화 개선은 다음과 같이 평가되었습니다. 평가 환경은 A100 PCIE 80GB가 사용되었으며, 정밀도는 bfloat16에서 측정되었습니다. 학습 및 평가에는 KLUE-MRC 데이터셋이 사용되었습니다. 이들 데이터셋의 길이는 최대 6800 bytes의 문맥이 들어갑니다.
| model | training sample/sec. | inference sample/sec. |
|---|---|---|
| KEByT5-base (580M) | 1.30 | 3.95 |
| GBST-KEByT5-base (584M) | 3.56 | 5.77 |
| GBST-KEByT5-Large (1.23B) | 2.02 | not tested |
Jong-hun Shin(ETRI), e-mail=jhshin82 AT etri DOT re DOT kr.