본문 바로가기
데이터&AI/LLM

LLM 모델 팔콘 알아보기 (Falcon-180b)

by 일등박사 2023. 12. 2.

 

오늘은 HuggingFace에 TII가 소개한

초거대언어모델(LLM)인 Falcon 180B를 알아보고자합니다!!

 

ㅁ 모델 소개 및 배경

Falcon 180B는 현재까지 공개된 오픈소스 모델중

최고라고할수 있습니다!!

약 1800억 개의 매개변수를 가진 가장 큰 개방된 언어 모델로

 

기존에 공개되었던 Falcon 40B의 확장된 버전으로

다중 쿼리 어텐션( multiquery attention ) 같은 혁신을 바탕으로 개발되었습니다

모델 제작시에는 딥러닝 클라우드 서비스인 Amazon SageMaker를 바탕으로

최대 4096개의 GPU를 동시에 사용, 3.5조 개의 토큰으로 훈련되었습니다.

(Llama 2보다 2.5배 더 크고 4배 더 많은 컴퓨팅으로 훈련되었다는 것을 의미합니다.)

 

ㅁ 성능비교

Falcon 180B는 현재까지 가장 성능이 뛰어난 오픈소스공개 LLM입니다.

MMLU*에서 Llama 2 70B 및 OpenAI의 GPT-3.5를 능가하고

*MMLU는 "Multitask Multi-modal Language Understanding"의 약자로, LLM의 성능을 평가하는 데 사용되는 벤치마크입니다.
MMLU는 57개의 일반 지식 영역을 세분화된 카테고리로 분류하여 구성되어 있습니다.
각 카테고리에는 4개의 객관식 질문이 포함되어
이러한 질문에 얼마나 정확하게 답변하는지를 평가하여 성능을 측정합니다.

2023.12.01 - [일등박사의 생각/데이터분석] - 초거대언어모델(LLM) 의 성능평가지표

 

그 외에도 다양한 평가방식에서 (HellaSwag, LAMBADA, WebQuestions, Winogrande, PIQA, ARC, BoolQ, CB, COPA, RTE, WiC, WSC, ReCoRD)

Google의 PaLM 2-Large와 동등한 수준임을 확인했습니다.

 

우리가 많이 사용하는 OpenAI의 GPT로 비교해본다면

GPT 3.5와 GPT4 사이의 수준으로 평가됩니다!

 

모델 크기점수상용화 가능 여부라이선스사전 훈련 길이

모델명 LLM 점수 모델사이즈 사전 훈련 길이
Falcon 180B 68.74 180B 3,500B
Llama 67.35 70B 2,000B
LaMDA 64.23 65B 1,400B
Falcon 40B 61.48 40B 1,000B
Megatron-Turing NLG (MT-NLG) 56.15 30B 530B

 

 

 

ㅁ 사용법

1. chatgpt와 같은 데모 사이트

https://huggingface.co/spaces/tiiuae/falcon-180b-demo

 

Falcon-180B Demo - a Hugging Face Space by tiiuae

 

huggingface.co

 

2. python에서사용하기

## 모델 설치

pip install --upgrade transformers
huggingface-cli login

 

파이썬 코드

from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch

model_id = "tiiuae/falcon-180B"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

prompt = "My name is Pedro, I live in"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

output = model.generate(
    input_ids=inputs["input_ids"],
    attention_mask=inputs["attention_mask"],
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
    max_new_tokens=50,
)
output = output[0].to("cpu")
print(tokenizer.decode(output)

 

ㅁ 참고 : falcon 공식 소개자료

https://huggingface.co/blog/falcon-180b

 

Spread Your Wings: Falcon 180B is here

Spread Your Wings: Falcon 180B is here Introduction Today, we're excited to welcome TII's Falcon 180B to HuggingFace! Falcon 180B sets a new state-of-the-art for open models. It is the largest openly available language model, with 180 billion parameters, a

huggingface.co

 

댓글