AI Self study _ 개념어를 알아보자

HyunJunSon·2025년 10월 11일

NIPA-ORACLE

목록 보기
11/28
  1. hugging-face Open LLM LeaderBoard

  1. safetensors
  • 인공지능 모델을 저장할 때 사용하는 파일 포맷(저장 형식)
  • “안전하고(Safe) 빠른(Tensors) 모델 저장 방식” -> Hugging Face에서 만든 보안 강화 + 속도 개선된 모델 저장 포맷
  • 기존 .bin, .pt 에 보안문제, 로딩속도가 느린문제가 있었음
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("MaziarPanahi/calme-3.2-instruct-78b", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("MaziarPanahi/calme-3.2-instruct-78b")
  1. TGI (Text Generation Inference)
  • TGI는 Hugging Face가 직접 만든 LLM 전용 추론 서버(backend)
  • LLM을 GPU에서 빠르고 안정적으로 서비스하기 위한 전문 엔진

  • 설치예시 (Docker)

docker run --gpus all --shm-size 1g -p 8080:80 \
  -v $PWD:/data ghcr.io/huggingface/text-generation-inference:latest \
  --model-id MaziarPanahi/calme-3.2-instruct-78b
  
  • 허깅페이스 Hub에 있는 모델 중에 “text-generation-inference compatible”이라고 표시된 모델은 TGI에서 바로 구동 가능하게 최적화 포맷(.safetensors) 으로 배포됨
  1. Quantized GGUF
  • 대형 언어모델(LLM) 을 더 작은 용량으로 압축해 실행할 수 있도록 변환한 버전
  • Quantized (양자화) :모델의 수치(예: 32비트 float)를 더 낮은 정밀도(예: 8비트, 4비트 등)로 바꿔 메모리·GPU 사용량을 줄이는 기술
  • GGUF(Georgi Gerganov Unified Format) : Meta의 LLaMA 계열 모델을 오프라인에서 실행할 수 있게 만든 llama.cpp용 모델 포맷 -> CPU나 Mac(M1/M2/M3), 혹은 모바일 기기에서도 LLM을 실행할 수 있도록 만든 최적화된 바이너리 파일 형식
  1. ChatML 이란?
  • ChatML은 OpenAI가 ChatGPT에 사용한 프롬프트 구조 형식
  • Hugging Face 모델 중 일부(예: Qwen, LLaMA-3, Mistral-Instruct 등)는
    이 형식을 그대로 따라 학습됨

  • Hugging Face 모델을 사용할 때,이 프롬프트 구조를 그대로 써야 모델이 의도대로 작동함

from transformers import AutoTokenizer, AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("MaziarPanahi/calme-3.2-instruct-78b")
tokenizer = AutoTokenizer.from_pretrained("MaziarPanahi/calme-3.2-instruct-78b")

prompt = """<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
Explain quantum computing in simple terms.<|im_end|>
<|im_start|>assistant
"""

inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=150)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
  1. Tensor type F32
  • 모델 내부 데이터가 32비트 부동 소수(float32)로 저장됨 -> 높은정밀도, 메모리사용많음

  1. Git LFS (Large File Storage)
  • 기존 Git이 다루기 힘든 대용량 파일(>100MB) 을 효율적으로 관리하기 위한 확장 기능
  • Git은 원래 코드 버전 관리용이라, 수백 MB~GB짜리 파일(예: AI 모델, 데이터셋)은 비효율적임. Git LFS는 그런 대형 파일을 “포인터(pointer)”로 치환해서 관리
  • 일반적으로 git add model.safetensors 하면 그 큰 파일 자체가 .git 히스토리에 통째로 들어가 버림 (용량 폭발)
  • Git에는 “파일 위치를 가리키는 작은 텍스트 포인터”만 저장, 실제 파일은 LFS 전용 서버(Hugging Face Hub 등)에 저장


# 1️⃣ Git LFS 설치
brew install git-lfs
git lfs install

# 2️⃣ 어떤 파일을 LFS로 관리할지 지정
git lfs track "*.safetensors"
git lfs track "*.bin"

# 3️⃣ 설정파일 추가
git add .gitattributes

# 4️⃣ 커밋 & 푸시
git add .
git commit -m "Add large model files"
git push



  • .gitattributes : “추적할 때 이렇게 처리해라”
  • .gitignore : “추적하지 말아라”

from huggingface_hub import HfApi

api = HfApi(token=os.getenv("HF_TOKEN"))
api.upload_folder(
    folder_path="/path/to/local/model",
    repo_id="zorba86/test",
    repo_type="model",
)

hf download MaziyarPanahi/calme-3.2-instruct-78b config.json --local-dir .
  • --local-dir 로 디렉터리 지정해서 다운로드 할수 있다.
  • 지정안해주면 .cache 하위에 blobs 하위에 해시값 이름으로 저장됨
hf download bigcode/the-stack --repo-type dataset --revision v1.1
  • dataset 타입만 특정 버전 지정해서 다운로드하는법

hf download stabilityai/stable-diffusion-xl-base-1.0 --include "*.safetensors" --exclude "*.fp16.*"*
  • 특정 파일추가, 삭제 상태에서 다운로드하는법

hf download openai-community/gpt2 --dry-run
  • 다운로드시 어떤 파일, 어떤 사이즈로 다운로드 되는지 시뮬레이션 가능

hf upload zorba86/test --repo-type=space --exclude="*.json" --delete="*" --commit-message="upload test with hf cli"
  • --delete :“리포지토리에 있는 기존 파일 중, 로컬에 없는 파일을 삭제해라”는 뜻

  1. wrt = with respect to = "~에 대하여, ~을 기준으로"

  2. tensor 의 dim 에 따른 연산 방향


t = torch.FloatTensor([1,2])
t.mean() # tensor(1.5000)
m1 = torch.FloatTensor([[1,2],[3,4]]) # 2*2
m1.mean()

m1.mean(dim=0 ,dtype=torch.float) # tensor([2., 3.])
m1.mean(dim=1 ,dtype=torch.float) # tensor([1.5000, 3.5000])

profile
즐겁게 공부하고 사람들에게 도움을 주는 개발자가 되고 싶습니다.

0개의 댓글