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)된 모델의 경우에도 속도는 상당히 빠를 것 같은데 그거까지 하고싶지는 않다
근데 깃허브 밑에 다 설명하니까 그냥 보고 하면 될 듯 함
흠......
지우는 방법(아나콘다)
여기 다 들어있으니까 알아서 삭제하면 된다
일반 파이썬이면 또 파이썬 캐시파일로 잡혀서 들어가는지는 모르겠는데 경로 따라 가면 있을 듯
맛보기 끝
'취미 & 아무거나' 카테고리의 다른 글
[DL] 취미로 하는 Faster R-CNN - Anchor box (0) | 2024.07.08 |
---|---|
[Compiler] Liveness analysis w. CFG (0) | 2024.06.17 |
[Sensor] TF-LC02 LiDAR sensor Quickstart (0) | 2024.06.11 |
[YOLOv8] 이미지 확인을 위한 Image Convert (0) | 2024.06.04 |
[YOLOv8] YOLOv8n 내부 가중치 확인하기 (0) | 2024.06.04 |