[AI] LLM 02-1


HuggingFace

LLM 모델 이름 표기법 정리

image.png

1. 예시 분석: Gemma 4 12B QAT

LM Studio/HuggingFace에서 볼 수 있는 모델 이름은 대부분 [제작사/패밀리] [버전] [파라미터 수] [추가 태그] 순서로 구성된다.

Gemma

  • Google이 만든 오픈 웨이트 LLM 패밀리(family)명
  • Gemini(비공개 상용 모델)의 오픈소스 버전 격으로, 같은 연구 결과물을 기반으로 만들어짐

4

  • 해당 패밀리의 세대(버전) 번호
  • 숫자가 클수록 최신 세대이며, 아키텍처 개선·학습 데이터 갱신·성능 향상이 반영됨
  • 표기 위치는 모델마다 다름 (예: Llama 3, Qwen2.5, Gemma 4)

12B

  • 파라미터(parameter) 개수를 의미 — 120억 개
  • B = Billion(십억), M = Million(백만), T = Trillion(조)
  • 파라미터 수가 많을수록 일반적으로 더 많은 지식과 추론 능력을 담을 수 있지만, 그만큼 메모리·연산량이 늘어남
  • 같은 세대 안에서 1B, 4B, 12B, 27B 등 여러 크기로 배포되는 경우가 많으며, 로컬 실행 시 이 숫자가 사양 결정에 가장 중요한 기준이 됨

QAT (Quantization-Aware Training)

  • 양자화 인식 학습: 처음부터 양자화(정밀도 축소)될 것을 감안하고 학습 단계에서 미리 정밀도 손실에 적응시키는 방식
  • 일반적인 양자화(학습이 끝난 모델을 사후에 압축)보다 품질 손실이 적음
  • 목표는 bfloat16(원본 정밀도) 수준의 품질을 유지하면서 메모리 사용량은 훨씬 적게 만드는 것
  • 즉 “가볍지만 원본과 가까운 품질”을 노리는 버전이라는 뜻

정리: Gemma 4 12B QAT = Google Gemma 패밀리의 4세대, 파라미터 120억 개짜리 모델을, 양자화될 것을 고려해 미리 학습시켜 압축 손실을 최소화한 버전


2. 다른 모델에서 흔히 쓰이는 공통 표기

2-1. 학습 방식 / 튜닝 단계 태그

태그의미
Base사전학습(pretraining)만 마친 원본 모델. 대화형이 아니라 다음 단어 예측에 최적화되어 있어 챗봇 용도로는 부적합
Instruct지시(명령) 수행에 맞게 추가 학습(instruction tuning)한 버전. “~해줘” 형태 요청에 잘 반응
Chat대화형 상호작용에 맞춰 튜닝한 버전. Instruct와 거의 같은 의미로 쓰이는 경우가 많음
Reasoning / Thinking답변 전에 단계별 사고 과정을 거치도록 추가 학습된 버전 (예: 최근 Gemma 4처럼 “Unified reasoning” 모델)
Distill / Distilled큰 모델(teacher)의 지식을 작은 모델(student)에 압축해 넣은 버전. 크기 대비 성능이 좋음
Uncensored / Abliterated안전장치·거절 응답을 의도적으로 제거·완화한 커뮤니티 버전 (공식 배포판이 아님)

2-2. 양자화 포맷 (파일 형식)

포맷특징
GGUFllama.cpp 진영에서 쓰는 단일 파일 컨테이너 형식. LM Studio, Ollama 등에서 표준으로 사용. CPU 실행과 GPU/CPU 혼합 실행(오프로딩)을 지원
GPTQGPU 전용 양자화 포맷. 레이어별로 오차를 보정하며 압축
AWQActivation-aware Weight Quantization. 활성값 분포를 고려해 중요한 가중치를 덜 압축하는 방식
EXL2ExLlamaV2 전용 포맷. 비트 수를 세밀하게(소수점 단위) 조절 가능
safetensors양자화 여부와 무관하게 널리 쓰이는 안전한 가중치 저장 형식 (pickle 대비 보안 이슈 없음). 원본/파인튜닝 모델 배포 시 기본값

2-3. GGUF 양자화 세부 표기 (Qn_K_X 형태)

  • Q + 숫자 (예: Q4, Q8): 가중치 하나를 저장하는 데 사용하는 평균 비트 수. 숫자가 작을수록 용량은 작아지지만 품질 손실 위험 증가
  • K: K-quant 방식 적용을 의미. 가중치를 블록 단위로 묶어, 모델 품질에 중요한 부분(예: attention 레이어)은 더 높은 정밀도를 유지하고 덜 중요한 부분은 더 압축하는 스마트한 양자화 기법
  • S / M / L (Small/Medium/Large): 같은 비트 수 안에서의 세부 등급. M이 S보다 중요 레이어에 비트를 더 할당해 품질이 좋고, 파일 크기 차이는 작아 보통 M이 권장됨

일반적인 체감 기준(원본 FP16 대비 품질 유지율):

양자화대략적 품질 유지율특징
Q2_K~84%용량은 최소지만 품질 저하 뚜렷
Q4_K_M~98%용량 대비 품질 균형이 가장 좋아 커뮤니티 기본값으로 자주 사용
Q6_K~99.5%고품질, 여유 있는 하드웨어용
Q8_0~99.8%사실상 무손실에 가까움, FP16 대비 용량은 절반

2-4. 아키텍처 관련 태그

태그의미
MoE (Mixture of Experts)여러 개의 “전문가” 서브 네트워크 중 입력마다 일부만 활성화하는 구조. 8x7B처럼 표기되며, 전체 파라미터는 크지만 실제 연산량은 그보다 적음
Context length (예: 128K)모델이 한 번에 처리할 수 있는 입력+출력 토큰의 최대 길이
Vision / Multimodal이미지 등 텍스트 외 입력을 함께 처리할 수 있는 버전
Tools / Function calling외부 도구 호출(함수 실행)을 지원하도록 학습된 버전 여부

2-5. 파인튜닝/추가학습 관련 태그

태그의미
LoRALow-Rank Adaptation. 원본 모델 전체를 재학습하지 않고, 작은 추가 파라미터만 학습해 붙이는 경량 파인튜닝 기법
QLoRA양자화된 모델 위에 LoRA를 적용하는 방식. 적은 메모리로도 파인튜닝 가능
Merge / Composer여러 파인튜닝 모델의 가중치를 합쳐 만든 모델 (커뮤니티에서 자주 실험적으로 배포)

허깅페이스 pipeline 함수로 모델 불러오기

1. pipeline 함수란

  • 허깅페이스(HuggingFace)가 제공하는 transformers 라이브러리의 고수준 함수
  • 태스크(task) 이름만 지정하면, 해당 태스크에 맞는 기본 모델과 토크나이저를 자동으로 불러와서 바로 추론까지 실행해줌
  • 복잡한 모델 로딩·전처리·후처리 과정을 한 줄로 감싸주는 역할
from transformers import pipeline

model = pipeline("sentiment-analysis")
output = model(input)

2. 모델 캐싱 동작 방식

  • pipeline()을 처음 실행하면, 지정된(또는 기본) 모델 가중치 파일을 하드디스크로 다운로드함 (기본 경로: ~/.cache/huggingface)
  • 두 번째 실행부터는 다시 다운로드하지 않고 로컬 캐시를 그대로 사용 — 인터넷 연결 없이도 동작 가능
  • 즉 최초 1회만 네트워크가 필요하고, 이후에는 로컬 추론만 이루어짐

3. GPU 사용을 위한 준비

  • pytorch가 GPU 연산을 하려면 CUDA가 설치·최신 상태여야 함
  • CUDA가 없거나 버전이 안 맞으면 pytorch는 자동으로 CPU 모드로 동작 (속도는 느리지만 에러 없이 실행은 됨)
  • GPU 사용 여부 확인:

      import torchprint(torch.cuda.is_available())  # True면 GPU 사용 가능
    

4. 사용 가능한 파이프라인(available pipelines)

교재 기준 목록은 텍스트(NLP) 위주였지만, 실제로는 이미지·오디오·멀티모달까지 훨씬 다양한 태스크가 지원된다. 라이브러리가 자주 업데이트되므로 최신 목록은 공식 문서에서 확인하는 것이 가장 정확하다.

4-1. 자연어(NLP) 관련 파이프라인

태스크 이름설명
feature-extraction특징 추출 — 텍스트를 벡터(숫자 배열)로 변환
fill-mask마스크 채우기 — 문장 속 빈칸([MASK])에 들어갈 단어 예측
ner (token-classification)개체명 인식 — 사람·장소·기관명 등을 문장에서 찾아 태깅
question-answering질의 응답 — 주어진 문서에서 질문에 대한 답을 찾아냄
sentiment-analysis (text-classification)감정 분석/텍스트 분류 — 문장의 감정이나 카테고리 분류
summarization요약 — 긴 텍스트를 짧게 압축
text-generation텍스트 생성 — 이어질 문장을 생성
translation번역
zero-shot-classification제로샷 분류 — 학습 때 본 적 없는 라벨로도 분류 가능. 분류하고 싶은 카테고리(candidate_labels)를 직접 지정할 수 있어 데이터 라벨링 없이 바로 사용 가능
table-question-answering표 형태 데이터에 대한 질의 응답
text2text-generation입력 텍스트를 다른 텍스트로 변환(번역/요약 등을 포괄하는 범용 형태)

4-2. 비전(이미지) 관련 파이프라인

태스크 이름설명
image-classification이미지 분류
zero-shot-image-classification라벨을 직접 지정해 이미지 분류 (학습 안 된 카테고리도 가능)
object-detection이미지 속 객체의 위치(bounding box) 탐지
zero-shot-object-detection학습되지 않은 카테고리도 직접 지정해 객체 탐지
image-segmentation이미지를 픽셀 단위로 영역 분할

4-3. 오디오 관련 파이프라인

태스크 이름설명
automatic-speech-recognition (ASR)음성을 텍스트로 변환 (음성인식)
audio-classification오디오를 카테고리로 분류
text-to-speech텍스트를 음성으로 변환

4-4. 멀티모달 파이프라인

태스크 이름설명
image-text-to-text이미지와 텍스트 프롬프트를 함께 입력받아 텍스트로 응답 (예: 이미지 보고 질문에 답하기)
document-question-answering문서 이미지(스캔본 등)에서 질문에 대한 답 찾기
visual-question-answering이미지에 대한 질문에 답변

5. 기본 사용 패턴

from transformers import pipeline

# 1) 태스크만 지정 -> 기본(default) 모델 자동 로드
model = pipeline("sentiment-analysis")

# 2) 태스크 + 특정 모델 지정 -> 원하는 모델로 로드
model = pipeline("sentiment-analysis", model="beomi/KcELECTRA-base")

# 3) 추론 실행
output = model(input)
  • 태스크만 넘기면 허깅페이스가 해당 태스크의 기본 모델을 알아서 골라서 가져옴
  • model= 인자에 원하는 모델 이름(HuggingFace Hub 경로)을 넣으면 특정 모델을 지정해서 가져올 수 있음
  • 여러 입력을 한 번에 처리하려면 리스트로 전달 가능: model([input1, input2])






© 2017. by isme2n

Powered by aiden