eagle-3b-preview / README.md
dalgarak's picture
Update README.md
b35efd0 verified
metadata
language:
  - ko
library_name: transformers

EAGLE: ETRI's Advanced-lightweight Generative Language Engine

(과거에 eGPT로 불렸으며, 2024.11.14 에 이름을 변경하였습니다. 추후 릴리즈되는 모델의 prefix는 egpt- 대신 eagle-로 변경됩니다)

본 모델은 사전학습만 수행된 모델이며, 별도의 Instruction Tuning 등이 적용되지 않은 기초 모델입니다. 챗봇 스타일의 입출력이 필요한 경우, 별도의 미세조정을 반드시 수행해야 합니다.

모델 정보

3.1B Decoder-only, Causal 언어모델. 수학, 정량 추론을 비롯한 STEM 분야에 특화된 소규모 언어모델을 지향합니다. 범용 언어모델의 역할을 목표로하지는 않기에, 통상의 이해 관련 범용 태스크 평가(e.g. hellaswag, sentineg 등)에는 낮은 성능이 나타날 수 있습니다. 학습 데이터 변경 및 학습 방법 수정, 개선으로 인해 본 모델은 비정기적으로 업데이트 될 수 있음을 미리 알려드립니다.

Tokenizer는 LLaMa의 구성과 유사하게 byte-fallbacked BPE + digit 분리 구성을 가지나, BOS/EOS(e.g. <s>,</s>) 토큰이 모두 EOS(</s>)로 통일되어 있습니다. 토크나이저 설정에서 PAD 토큰은 별도로 지정되어 있지 않으나, Byte-level BPE의 특성상 <unk> 심볼이 사용되지 않으므로, 미세조정 단계에서는 <unk> 토큰을 PAD 토큰으로 지정하여 활용할 것을 권장합니다. LLaMA 호환 아키텍쳐로 구성되어 있으며, A100 80GB PCIE * 8장에서 약 720B tokens를 from-scratch로 사전 학습하여 획득된 모델입니다.

업데이트 기록/Update log

날짜 버전 세부 사항
2024.10.28 v24.10 (현재버전) 첫번째 퍼블릭 릴리즈 후보. 약 720B tokens 학습

통지사항/Acknowledgement

  • 이 모델은 2024년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구임 (RS-2023-00216011, 사람처럼 개념적으로 이해/추론이 가능한 복합인공지능 원천기술 연구)
  • This work was supported by Institute of Information & Communications Technology Planning & Evaluation(IITP) grant funded by the Korea government(MSIT) (RS-2023-00216011, Development of artificial complex intelligence for conceptually understanding and inferring like human)

제한적 모델 접근 및, 모델 접근 허가와 관련한 개인정보 수집 및 사용 안내/Information on Collection and Use of Personal Information for Gated Model Access

본 모델은 연구와 교육 목적으로만 사용 될 수 있으며, 현재 제한적 공개 상태로, 본 언어 모델의 다운로드에는 담당자 사전 승인이 필요합니다. 사전 승인과 관련된 문의사항은 별도의 메일(jhshin82 at etri.re.kr)로 요청 부탁드립니다.

본 모델과 관련해 사회적, 법적 문제가 발생할 경우 모델의 사용을 제한하고, 배포를 철회할 수 있습니다. 이를 위해 모델 접근 허가에 사용된 이메일 주소를 다음과 같이 수집, 보유, 이용할 수 있습니다.

개인정보 수집동의/Concent to collection of Personal Information

본 모델의 사용과 관련, 배포/사용 제한/철회, 그 외 사용자의 이익에 관계된 라이선스 변경 시 이를 통지하기 위해, 아래와 같이 개인정보를 수집, 이용합니다.

수집 목적 수집 항목 보유, 이용기간
모델의 사용제한/철회 요청 목적 이메일 주소, huggingface hub ID 본 모델의 공개 기간 및 이용 목적 달성 시
모델의 사용 라이선스 등 변경 안내 이메일 주소, huggingface hub ID 본 모델의 공개 기간 및 이용 목적 달성 시

본 모델에 대한 접근 요청을 수행하고, 모델에 접근하시는 행위는 아래에 안내된 안내사항, 본 모델의 한계, 책임있는 AI 연구에 대한 정보, 개인정보 수집/이용에 동의하신 것으로 간주합니다. 사용자는 동의를 거부하실 권리가 있으며, 동의를 거부하실 경우 모델 사용이 제한되며, 이에 관련한 사용, 결과에 대한 책임은 사용자에게 있음을 알려드립니다. 사용 후 동의 철회, 개인정보 폐기에 대한 사항은 상기 안내된 메일 주소 또는 Community tab을 통해서 요청하실 수 있습니다.

모델의 한계, 책임있는 AI 연구를 위한 관련 정보 안내

본 모델의 개발과 관련한 개발자 및 조직은 책임있는 AI 연구를 준수하고자 노력하고 있으며, 이와 관련해 AI 연구에 사용되는 입출력 데이터 내 포함된 욕설, 음란, 정치적 내용 및 기타 거친 언어에 대한 처리를 수행하고자 노력하고 있습니다. 그럼에도 불구하고, 원시 웹 텍스트 데이터의 특성 상 이를 기반으로 해 학습된 본 생성 언어 모델은 경도된 사상을 포함하거나, 사회적으로 용인될 수 없는 텍스트를 생성할 수 있으며, 다른 언어 모델과 마찬가지로 특정 프롬프트와 공격적인 콘텐츠가 반환될 수 있습니다. 이를 포함, 본 모델의 출력/생성 결과와 관련한 내용은 개발자 및 개발자가 속한 조직의 사상, 의도와 전혀 관련이 없음을 알려드립니다.

테스트중에 발생한 비정상적인 혹은 사회적으로 용인되지 않는 텍스트가 생성된 경우 jhshin82 at etri.re.kr로 (__at__을 @로 치환) 출력 유도에 사용된 입력문(프롬프트), 사용된 샘플링 기법 및 하이퍼파라미터(예: top-p=0.8, temperature, repetition-penalty 등), 이를 통해 생성된 출력 결과를 함께 보내주시면, 이를 억제하기 위한 노력을 기울이도록 하겠습니다.

평가/Evaluations

사전학습 모델의 KOBEST 평가

평가는 EleutherAI/lm-evaluation-harness, v0.4.2를 사용하여, KoBEST(Kim et al., 2022) 평가셋으로 fine-tuning 없이 zero-shot, 5-shot 테스트를 수행했습니다. (lm-evaluation-harness의 KOBEST 평가는 버전에 따라 다르게 나타는 문제가 있어, 최신 lm-evaluation-harness(버전 0.4.2 이후)를 통한 평가를 아래 별도로 제시하였습니다.)

Zero-shot 성능 KB-BOOLQ (F1) KB-COPA (F1) KB-HELLASWAG (F1) KB-SENTINEG (F1) KB-WIC (F1) Average (F1)
eagle-3b-preview (v24.08) 0.3393 0.5353 0.3446 0.5653 0.3280 0.3994
eagle-3b-preview (v24.09) 0.3343 0.5367 0.3383 0.4991 0.3280 0.3917
eagle-3b-preview (v24.10) 0.3778 0.5648 0.3369 0.4763 0.3280 0.4092
eagle-3b-preview (v24.11) 0.3651 0.5893 0.3551 0.4473 0.3280 0.4101
5-shots 성능 KB-BOOLQ (F1) KB-COPA (F1) KB-HELLASWAG (F1) KB-SENTINEG (F1) KB-WIC (F1) Average (F1)
eagle-3b-preview (v24.08) 0.4680 0.5580 0.3332 0.4950 0.4830 0.4795
eagle-3b-preview (v24.09) 0.5087 0.5599 0.3257 0.4207 0.4212 0.4681
eagle-3b-preview (v24.10) 0.5207 0.5791 0.3511 0.5959 0.4712 0.5078
eagle-3b-preview (v24.11) 0.4753 0.5924 0.3592 0.5810 0.4930 0.5024
10-shots 성능 KB-BOOLQ (F1) KB-COPA (F1) KB-HELLASWAG (F1) KB-SENTINEG (F1) KB-WIC (F1) Average (F1)
eagle-3b-preview (v24.08) 0.4243 0.5673 0.3364 0.4232 0.4265 0.4465
eagle-3b-preview (v24.09) 0.5001 0.5597 0.3377 0.3498 0.3578 0.4432
eagle-3b-preview (v24.10) 0.5101 0.5894 0.3675 0.5101 0.4650 0.4994
eagle-3b-preview (v24.11) 0.4151 0.6143 0.3718 0.5883 0.5134 0.4963

전이학습 능력 평가

준비중입니다.

모델 GSM8k test 비고
- - -

사전학습에 참여한 데이터셋 정보/Datasets

  • FIXME: 학습데이터 목록 수정, 업데이트 필요

아래의 학습 데이터를 사용하여 학습하였습니다:

사용 요령/How to use

아래 코드를 통해, transformers>=4.28 버전에서 추론 가능합니다.

import sys

from transformers import (
        AutoTokenizer, AutoModelForCausalLM, GenerationConfig
        )


def load_model(mdl_path):
    tokenizer = AutoTokenizer.from_pretrained(mdl_path,)
    # device_map 인자를 사용하기 위해서는 accelerator 모듈 설치 필요.
    model = AutoModelForCausalLM.from_pretrained(mdl_path, device_map="auto",
                                                 torch_dtype="auto")

    return tokenizer, model


if __name__ == '__main__':
    # FIXME: 모델 경로 수정!
    tokenizer, model = load_model("etri-lirs/egpt-3b-preview")
    # print(model.hf_device_map)
    # 필요에 따라 아래 생성 옵션을 제어
    gen_cfg = GenerationConfig(max_new_tokens=256, min_length=0,
                               max_time=10.0, do_sample=True,
                               top_p=0.9, epsilon_cutoff=3e-4,)

    print("** Now Ready to input from stdin.")
    for aline in sys.stdin:
        aline = aline.rstrip("\n\r\t")
        input_cond = tokenizer(aline, add_special_tokens=False, return_tensors="pt").to("cuda")
        outs = model.generate(**input_cond, generation_config=gen_cfg)
        out_str = tokenizer.batch_decode(outs, skip_special_tokens=True,
                                         clean_up_tokenization_spaces=True)
        print(">> " + ' '.join(out_str))