[Model Review] 강력한 다중언어 모델-Orion

nebchi·2024년 3월 26일
1

LLM

목록 보기
5/11
post-thumbnail

Orion-14B

  • Orion-14B 모델은 중국어, 영어, 일본어, 한국어 등 2.5T 다국어 코퍼스를 대상으로 학습하였으며, 해당 언어에서 우수한 성능을 발휘함.
  • Orion-14B에는 한국어가 2.5조개의 토큰에서 약 2.6% 정도 학습을 하였는데, 이 정도는 기존 2T 토큰에서 0.6%만 한국어로 학습한 LLama2에 비해 많은 양이다.
  • 아마, 현재 알려진 오픈소스 LLM 중에서 가장 많은 한국어가 학습이 되어 파인튜닝 없이도 자연스러운 한국어 대화가 가능한 거 같다.

Data Source & Quality

  • Orion-14B의 논문을 살펴보면 데이터 출처는 웹 페이지, 뉴스 기사, 백과사전, 책, 소스 코드, 학술 논문 등 다양한 주제를 포괄하고 있다.
  • 기존 연구에서는 훈련 예제를 무작위로 섞어 사용하는 반면, Orion에서는 다른 훈련 단계에서 다양한 데이터 소스를 모델에 공급하는 전략을 채택하였다.
  • 수집한 데이터의 품질을 위해서, 우선 텍스트 정규화를 통해, HTML, 특수 문자들을 LLM 훈련에는 유용하지 않기 때문에 제거를 수행하였다.
  • 다양한 데이터 소스를 사용하다 보니, 유해 콘텐츠가 존재할 수 있어 Orion에서는 이를 제거하기 위해 2가지 프로세스를 사용, 첫 번째로는 키워드 및 정규식을 활용하여 제거하였고, 그 다음 단계에서는 심층 학습 기반 모델을 사용해서 제거하였다.
  • 개인 정보에 대해서는 플레이스홀더로 대체하거나 완전히 제거하기 위해 규칙 기반 방식을 사용하였고, 품질 필터링을 통해, 반복이 지나치게 많거나 N-gram 퍼플렉서티가 비정상적으로 높은 모델을 제거하면서 높은 품질의 데이터셋을 구축하였다.

Orion 사용해보기

사용한 패키지 버전

  • flash_stn == 2.5.6
  • accelerate == 0.27.2
  • huggingface-cli == 0.1
  • sentencepiece == 0.2.0
  • torch == 2.2.1
  • torchaudio == 2.2.1
  • torchvision == 0.17.1
  • transformers == 4.38.2(Orion에서는 해당 버전을 사용하기를 권장)
import torch
from datasets import Dataset, load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline, TrainingArguments, GenerationConfig

tokenizer = AutoTokenizer.from_pretrained(
    "OrionStarAI/Orion-14B-Chat-Int4",
    use_fast=False,
    trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
    "OrionStarAI/Orion-14B-Chat-Int4",
    device_map="auto",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True
)
model.generation_config = GenerationConfig.from_pretrained(
    "OrionStarAI/Orion-14B-Chat-Int4"
    
messages = [
    {"role": "user", "content": """
인공지능 분야에 지원하려는 강조해야 할 역량에는 무엇이 있을까?
"""}
]

response = model.chat(tokenizer, messages, streaming=False)
print(response)
)

  • 모델이 14B(140억) 매개변수이다 보니, 양자화가 된 Chat-Int4형을 사용하는 게 좋다.
  • 수행 결과를 보시다시피, 기존 LLAMA2는 영어로 답변을 해주었는데, Orion은 파인튜닝 없이도 한국어로 자연스러운 답변을 출력해주는 것을 보여준다.
  • 아마 양질의 SFT 데이터셋을 추가해준다면 Orion의 성능이 더 좋아질 거 같아, 추후에 파인튜닝도 진행해 볼 예정이다.
profile
NLP Developer

0개의 댓글