본문 바로가기

AI

한국어 제일 잘하는 AI 찾기 (feat. ollama / quantize)

728x90
반응형

최근 llama3 기반으로 한국어 모델을 활용하는 스터디 중이었는데 

오늘 기가막힌 뉴스가 나왔다. 

 

서울과기대 연구실에서 한국어를 잘 학습 시켜주셔서 모델을 올려주셨네. 

너무 감사합니다~!!

 

 

https://huggingface.co/MLP-KTLim/llama-3-Korean-Bllossom-8B

 

MLP-KTLim/llama-3-Korean-Bllossom-8B · Hugging Face

저희 Bllossom팀 에서 한국어-영어 이중 언어모델인 Bllossom을 공개했습니다! 서울과기대 슈퍼컴퓨팅 센터의 지원으로 100GB가넘는 한국어로 모델전체를 풀튜닝한 한국어 강화 이중언어 모델입니다!

huggingface.co

 

 

https://huggingface.co/Bllossom/llama-3-Korean-Bllossom-70B

 

Bllossom/llama-3-Korean-Bllossom-70B · Hugging Face

저희 Bllossom 프로젝트 팀에서 한국어-영어 이중 언어모델인 Bllossom-70.8B를 공개했습니다! 서울과기대 슈퍼컴퓨팅 센터의 지원으로 100GB가넘는 한국어로 모델전체를 풀튜닝한 한국어 강화 이중언

huggingface.co

 

이 중에서 이 전에 ollama로 한국어 모델을 연결해본 방식을 사용하기 위해서 

gguf 로 변형 하고 모델 크기를 줄이기 위해서 quantize 하는 방법을 찾아봤다. 

 

이 방법 역시 ollama에서 제공하고 있는데 방법을 찾느라 시간이 좀 갔다. 

huggingface 에 올라와 있는 모델은 pytorch 같은 딥러닝 프레임워크에서 모델을 가져다 쓸 수 있게 

여러 모델파일들로 되어져 있다. 

 

우리가 ollama 에서 이 모델을 쓰려면 gguf 라는 파일 하나로 되야 하는데... 하고 찾다가 

llama 에서 convert 하는게 있다고 하여 방법을 찾았다. 

 

https://github.com/ollama/ollama/blob/main/docs/import.md

 

ollama/docs/import.md at main · ollama/ollama

Get up and running with Llama 3, Mistral, Gemma, and other large language models. - ollama/ollama

github.com

 

convert 방법

 

시키는 대로 해보는데 tokenizer 관련 에러가 나길래 구글링 하니 

아래처럼 뒤에 추가로 옵션을 붙여 줘야 했다. 

정확한 방법인지는 조금 더 스터디 해보기로 했다. 

 

python .\convert.py C:\Users\llama-3-Korean-Bllossom-8B --outfile llama3-ko-16.gguf --outtype f16 --vocab-type bpe --pad-vocab

 

그런데 이렇게 파일 하나로 만들었는데 아직도 용량이 16기가가 넘었다. 

내 GPU는 8G 메모리 정도 되서 이정도면 올라가지 않는데..

 

이렇게 작은 메모리에 올리기 위해 용량을 줄이는 방법이 

양자화....quantize 인것 같다. 8비트, 4비트 뭐 여러가지 방법이 있는 것 같은데 

시간 내서 좀 더 공부 해야 할 것 같다. 

Q4_0 이 있고 Q4_K, Q4_K_S, Q4_K_M 같이 다양한 옵션이 있었는데 

우연히 아래 type 에 대한 설명이 나온 것을 찾았다. 역시.... 잘 모르겠지만 방식이 달라서 용량도 다른 듯..

 

우선 제일 위에 있는 Q4_0 으로 해보려고 했다. 

 

그런데 내 PC가 linux가 아니다 보니 

quantize 하기가 어려웠다. make 도 잘 안되고... 그래서 이 파일들을 mac으로 옮겨서 시도 했는데 

 

윈도우나 MAC 에서 quantize 를 하려면 아래 링크에서 파일을 찾아 다운 받는게 좋다. 

 

https://github.com/ggerganov/llama.cpp/releases

 

Releases · ggerganov/llama.cpp

LLM inference in C/C++. Contribute to ggerganov/llama.cpp development by creating an account on GitHub.

github.com

 

 

우여 곡절 끝에 위 방법으로 quantize 성공

 

모델 파일이 5기가 언더로 떨어졌다. 

 

그래서 기존에 학습 했던 방법으로 ollama에 연결하고 

https://devmeta.tistory.com/74

 

한글 잘하는 llama3 찾아서 ollama에 연결하기 (feat. Hugging Face)

그냥 llama3 8b는 한글을 잘 못한다.. 그래서 한국에 연구자분들께서 올려주신 한글 llama를 찾아다녀봤다.  아래처럼 따라해 보면 한글을 잘하는 llama3를 내 컴퓨터에서 만나볼 수 있었다.  https:/

devmeta.tistory.com

 

한글 대화 성공~!! 

한글을 잘 생성 하는 것 같고

프롬프트를 잘 설계 해서 적용하면 활용도가 정말 높을 것 같다~!!

 

감사합니다. 대한민국 연구자분들~!!

 

728x90
반응형