언어 생성 모델 쉽게 사용하기: GGUF부터 파인튜닝 까지

ChatGPT를 포함한 다양한 인공지능 모델이 소개되면서, 특히 언어 모델 분야에서도 많은 발전이 이루어졌다. 그렇지만 그림 인공지능 모델에 비해 언어 모델은 상대적으로 일반 사용자들이 접근하기 어렵다는 단점이 있고, 그래서 그걸 극복하려는 다양한 방법을 사람들이 모색을 했다. 이 글에서는 언어 모델을 가볍게 체험해 볼 수 있는 방법들을 소개하고자 한다.

text-generation-webui, oobabooga

Github 링크

Colab 링크

그림 인공지능에서의 automatic1111-WebUI나 ComfyUI 같이 언어 생성 모델을 사용할 수 있게 만드는 프로그램이다. 그림 인공지능의 WebUI의 언어 모델 버전을 목표로 시작된 프로젝트로, 초기에는 애니메이션 캐릭터와 대화하는 기능이 주력이다. 챗봇의 기본 프로필 사진이 애니메이션 그림이었지만 지금은 그런 흔적이 사라진 상태다. 로컬에 설치를 할 수 있지만 Colab에서도 돌릴 수 있다.

기본적인 파인튜닝 기능도 제공하고 있으며 허깅페이스에서 모델을 다운로드하는 기능도 제공한다. Colab에서 돌릴 시 직접 모델 파일을 계정에 올리기보다는 실행 후 여기서 제공하는 기능으로 모델을 다운로드하는 것을 추천한다.

LLMs (언어 생성 모델)

ChatGPT 이후 여러 모델이 나왔는데 주로 어떤 모델이 있는지, 그리고 대용량 원본 언어 모델 대신에 양자화된 모델의 링크를 정리다. 양자화란 모델의 크기를 줄이거나 처리 속도를 올리기 위한 방법인데, 컴퓨터의 성능이 제한적인 사용자들에게 매우 유용한 방법이다. 물론, 성능이 충분하다면 원본 모델을 사용하면 되지만, Colab으로 돌릴 시 GGUF로 변환된 모델을 사용하는 것을 추천한다. 다만 품질은 원본에 비해 떨어진다고 볼 수 있다.

참고로 이러한 작업을 전문적으로 해주는 허깅페이스 유저가 있다. 바로 ‘theBloke’라는 사용자인데, 유명한 모델은 웬만해선 이분이 다 변환을 해서 업로드가 되어있습니다. 아래의 링크는 모두 이 유저가 올린 모델과 연결된다. 요구되는 VRAM 용량에 맞게 파일을 다운로드면 되는데, Colab에서 무료로 제공하는 GPU는 테슬라 T4로 램이 15G이기 때문에 이 이하의 용량을 요구하는 모델을 받으면 된다.

LLAMA3 – 메타

며칠 전에 공개된 라마3 GGUF 링크를 남긴다. 참고로 theBloke라는 사용자가 아닌 QuantFactory라는 사용자가 변환한 것이다. 참고로 아래 소개된 모델 쓸 필요 없이 이것만 쓰면 된다고 할 정도로 성능이 인상적이다.

Llama-3-8B-GGUF

Llama-3-8B-Instruct-GGUF

LLAMA2 – 메타

페이스북과 인스타그램의 메타에서 발표한 언어 생성 모델로 두 번째 버전으로 무료 Colab에서는 아래 13B 버전까지는 무리 없이 작동을 한다. 참고로 상업적으로도 사용할 수 있는 인공지능 모델이다.

Llama-2-7B-GGUF

Llama-2-7B-Chat-GGUF

Llama-2-13B-GGUF

Llama-2-13B-chat-GGUF

Llama-2-70B-GGUF – Colab 무료 불가능

Llama-2-70B-Chat-GGUF – Colab 무료 불가능

Solar – 업스테이지

국내 인공지능 기업인 업스테이지에서 만든 모델로, LLAMA 보다는 한국어를 좀더 잘하는 느낌이 있다. 두가지 버전이 있는데 아래버전은 업스테이지에서 파인튜닝을 한 모델이다.

SOLAR-10.7B-v1.0-GGUF

SOLAR-10.7B-Instruct-v1.0-GGUF

Mistral – Mistral AI

프랑스기업에서 발표한 언어 생성 모델로 비교적 크기가 작지만 고성능을 내는 AI를 발표했다는 평이 있다.

Mistral-7B-Instruct-v0.2-GGUF

Mixtral-8x7B-Instruct-v0.1-GGUF – Colab 무료 불가능

Mistral-7B-v0.2-hf-GGUF – 24년 3월말 출시된 새 버전의 GGUF

Orca – Microsoft

마이크로소프트에서 발표한 소형 LLM이다.

Orca-2-7B-GGUF

Orca-2-13B-GGUF

개인적으로 조금씩 네 가지를 써봤는데 잠깐만 썼기에 제대로 파악한 것은 아니지만 각각의 모델별로 크게 성능 차이가 있다고 느끼지는 못했다.

qlora, 파인튜닝

Text Gen WebUI에서도 Lora가 가능하지만 그냥 학습을 하면 상당히 높은 성능의 GPU가 필요하게 된다. 하지만 qlora라는 방식으로 파인튜닝을 하면 상대적으로 저성능의 GPU에서 학습이 가능하다. 위의 두개는 GGUF로 학습하는게 아닌 원본 모델을 불러와서 학습하는 자료이며

qlora를 할 수 있도록 하는 프로그램(이나 Colab)은 많지만 Axolotl이 가장 많이 쓰이는 것으로 보인다.

여기서부터는 일반 사용자의 수준을 넘어가는 것으로 보인다.

Axolotl

Github OpenAccess-AI-Collective/axolotl

Runpod 링크

Colab 링크 공식 ipynb 파일

Colab 링크 (공식으로 제공되는 것은 아니고 검색으로 나온 것이다, 특정모델을 사용하는 것을 기준으로 작성된 것으로 보인다.)

허깅페이스 Transformer Trainer

허깅페이스 소개 링크

Qlora 하는 법 설명 medium 링크

unsloth

Github 링크

GGUF로 Qlora를 학습한다. 가장 낮은 성능에서 돌아가는 방식.

Merge, 모델 병합

그림 인공지능이 모델 병합이 가능한 것처럼 언어 모델도 병합 기능이 있다. 그림 인공지능처럼 디테일하게 할 수는 없지만 병합한 모델이 성능이 좀 더 좋게 나온다는 결과를 보기도 했다.

TheBloke Merge

Gryphe/MergeMonster


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다