반응형

Chatgpt 열풍이 부는 가운데,

 

갑자기 혜성처럼 등장해 `오픈 소스`를 자칭하는 딥시크.

 

그리고 우리가 먼저 했다도르 수상 엑사원 3.5

 

웹 운영도 하지 않는 엑사원의 성능이 상당히 궁금해졌다. (할 수도 있는데 안 찾아봄)


한국어로 엑사원 3.5를 검색해 봤는데, 놀랍게도 기사만 2페이지 이상 나오고 깃허브 페이지 등은 방문률이 처참한지 검색 엔진이 저 뒤로 밀어버린 모양이다.

 

아무튼 영어로 EXAONE 3.5 검색해서 깃허브 페이지로 들어간다.

(허깅페이스 라는 곳도 있다고 하는데, AI를 주로 하는게 아니라 잘 모르겠다.)

 

GitHub - LG-AI-EXAONE/EXAONE-3.5: Official repository for EXAONE 3.5 built by LG AI Research

 

GitHub - LG-AI-EXAONE/EXAONE-3.5: Official repository for EXAONE 3.5 built by LG AI Research

Official repository for EXAONE 3.5 built by LG AI Research - LG-AI-EXAONE/EXAONE-3.5

github.com

 

퀵스타트를 가져와 한 번 보도록 하자

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct"

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

# Choose your prompt
prompt = "Explain how wonderful you are"  # English example
prompt = "스스로를 자랑해 봐"       # Korean example

messages = [
    {"role": "system", "content": "You are EXAONE model from LG AI Research, a helpful assistant."},
    {"role": "user", "content": prompt}
]
input_ids = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt"
)

output = model.generate(
    input_ids.to("cuda"),
    eos_token_id=tokenizer.eos_token_id,
    max_new_tokens=128,
    do_sample=False,
)
print(tokenizer.decode(output[0]))

pretrained 모델을 다운받아 사용하는 형식일 것 같고, 

 

model name 의 매개변수는 3개 중에 선택 가능하다고 한다

 

뭐.. gpt api 를 쓸 때랑 크게 다르지 않다

근데 온디바이스 모델은 2.4B parameter를 감당 가능하다고 해도 IoT 임베디드 환경에서 쓸 모델은 없나,, 생각하게 된다

 

한 번 실행을 해 보자.

내 실행환경은 anaconda, Python 3.11.7, i7-12700, rtx 3070을 사용 중이다.

코드 중에 to("cuda")가 있는데 Nvidia 계열 gpu가 아닌 경우에 그냥 cpu로 맞춰주면 될 것 같다

(런타임은 얼마나 걸릴지 장담 못한다)

 

> 여러 패키지가 이미 설치된 환경이기 때문에 나는 단 2개의 종속 패키지들만 설치했다

> accelerate==0.26.0

> transformers==4.43.0

 

실행하게 되면 다운로드를 쭉 받는다 (모델 구조가 어떻게 되어 있는지는 모르겠지만 DNN 구조라 parameter가 많은 듯 하다)

 

로컬에서 돌리면 메모리를 상당 부분 차지한다.

메모리 32gb 이상 환경에서 돌리는 것이 권장되나 보다

 

내 환경에서는 첫 시작에 15분 30초가 소요되었다.(다운로드 포함)

 

이후 2번째 실행에서는 gpu를 열심히 갈궈서 2분 30초만에 실행이 완료되었다.

 

그래도 rtx3070인데.. 파라미터 2.4B 짜리로 교체해보자.

model_name 을 교체해 준다.

model_name = "LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct"

 

그런데도 가중치 값에 추가적인 값들이 들어간 텐서 파일이 5기가를 차지한다

확실히 LLM이 용량 압박이 거세다

 

처음 실행은 못 찍었는데, 2분대로 걸렸다.(다운로드 포함)

 

이후 실행에서는 좀 쓸 만한 정도까지 된 듯 하다(15초 소요)

근데 다른 프롬포트 넣어서 하니까(한글) 50초까지도 소요되는 걸 보면 PC 성능 문젠가 싶기도 하고..

2.4B 모델은 챗봇으로 사용하기도 나쁘지 않은 듯 하다(RTX 3070, 32gb ram 급 PC 로컬에서)

 

양자화(Quantization)된 모델의 경우에도 속도는 상당히 빠를 것 같은데 그거까지 하고싶지는 않다

 

근데 깃허브 밑에 다 설명하니까 그냥 보고 하면 될 듯 함

 

흠......


 

지우는 방법(아나콘다)

 

 

여기 다 들어있으니까 알아서 삭제하면 된다

일반 파이썬이면 또 파이썬 캐시파일로 잡혀서 들어가는지는 모르겠는데 경로 따라 가면 있을 듯

 

맛보기 끝

반응형

+ Recent posts