정말 오랜만에 블로그를 작성해 본다.
이직 생각이 없다가 뭐 이런저런 이유로 이직을 생각 중인데~
요즘 회사들에서 요구하는 것들이 MSA, Doker, Kubernetes, AI(LLM)들이다 AI를 제외하고는 8년 전인가 세미나, 회사에서 스터디를 하면서 이것들 언제 우리나라에 보편화 될까 웃어 넘겼는데 세월이 참 빠르다.. 이제는 쓰지 않는 곳이 없다.
이직 준비를 하면서 하나씩 다시 공부를 좀 해야겠다
우선 LLM (Large Language Model)부터.. LLM은 언어모델로 쉽게 말해서 Chat GPT 같은 것이라고 한다.
내가 궁금한 것은 실무에서는 LLM을 어떻게 사용하는지이다. 단순히 LLM을 시스템에 넣어서 질문하는 수준이라면 기술력은 형편 없을꺼 같고~ 실제 사용하고 있는 회사에서는 어떻게 활용을 할지 너무 궁금하다
아직은 구축은 해보지 않아서 감이 없다 그래서 구축을 해보자
GPT의 도움을 받아서 하나씩 하나씩 해보자
느리겠지만 윈도우기반에서 돌려봐야겠다
- OS: Windows 10/11
- Python: 3.10 이상 (권장: 3.11)
- Git: https://git-scm.com/
- VS Code(선택)
- WSL2 (선택) — GPU CUDA 지원이 필요하면 설치 권장
- GPU (선택) — 없으면 CPU로도 가능 (속도 느림)
CPU만으로도 테스트 가능하지만, 7B급 이상 모델은 GPU+양자화를 쓰는 게 실용적입니다.
양자화가 뭘까~?
1️⃣ 기본 개념
- LLM 모델은 수억~수십억 개의 **파라미터(숫자, 가중치)**로 구성돼 있어요.
- 원래 이 숫자들은 32-bit floating point (FP32) 형태로 저장되고 계산돼요.
- 예: 3.14159265 같은 숫자 → 32bit로 저장
- 근데 이렇게 하면 모델 용량이 크고, GPU/CPU 메모리를 많이 사용하게 됩니다.
양자화는 이 숫자를 작은 비트(bit) 단위로 줄여서 저장하고 계산하는 기법이에요.
2️⃣ 종류
- 8-bit 양자화
- FP32 → INT8 (8bit 정수)
- 메모리 절반 정도로 줄이면서, 성능 저하가 거의 없음
- 4-bit 양자화
- FP32 → INT4 (4bit 정수)
- 메모리 1/4 수준으로 줄이지만, 정확도가 조금 떨어질 수 있음
- 더 낮은 비트
- 연구용으로 3bit, 2bit도 시도되지만, 품질이 크게 낮아짐
3️⃣ 장점
- 메모리 절약 → GPU VRAM이 적어도 큰 모델 실행 가능
- 연산 속도 향상 → 작은 비트 연산이 더 빠름
- 저사양 환경에서도 모델 실행 가능
4️⃣ 단점
- 정확도 저하 → 아주 미세한 값 차이 때문에, 출력 품질이 약간 떨어질 수 있음
- 지원 제한 → 모든 라이브러리/모델에서 양자화를 지원하지는 않음
5️⃣ 예시
- Mistral-7B 모델 (FP32: 13GB)
- 8-bit → 약 6.5GB
- 4-bit → 약 3.2GB
요약하면, 양자화는 모델을 “압축해서 메모리와 속도를 절약”하는 기술이에요.
연구소나 내 PC에서 GPU 메모리가 부족할 때 필수적으로 쓰는 기법이죠