[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"post-document:\u002Fsllm\u002F2026\u002F08\u002F28\u002Fresource-efficient-build\u002F":3},{"id":4,"title":5,"body":6,"categories":368,"date":370,"description":371,"extension":372,"image":373,"key_concepts":373,"last_modified_at":373,"legacyPath":374,"meta":375,"navigation":377,"part":373,"path":378,"published":377,"robots":373,"seo":379,"series":373,"stem":380,"strengths":373,"summary":373,"tags":381,"tradeoffs":373,"__hash__":383},"posts\u002Fposts\u002FsLLM\u002FPost2.md","제한된 자원에서 sLLM 구축하기",{"type":7,"value":8,"toc":358},"minimark",[9,13,17,20,23,27,30,33,36,39,42,47,50,53,56,59,62,65,78,81,99,102,116,120,123,126,129,195,198,201,215,218,232,235,239,247,251,254,257,260,277,280,283,286,303,306,309,312,315,318,321,324,344,349,352,355],[10,11,12],"h1",{"id":12},"예시",[14,15,16],"p",{},"Base 모델: Qwen2.5-1.5B\n학습 대상: 연차·재택근무 질문 200개\n검색 문서: 최신 인사 규정 PDF\n목표: 3초 이내에 근거가 포함된 정확한 답변",[14,18,19],{},"서비스를 만드르 때 다음 순서로 연결",[14,21,22],{},"LoRA\u002FQLoRA로 모델 적응\n↓\nQuantization\u002FKV Cache로 빠르게 배포\n↓\n정확도, 근거성, 환각, 속도, 비용 측정\n↓\n작은 시나리오에서 RAG와 Fine-Tuning 비중 조정",[10,24,26],{"id":25},"_1-제한한-자원에서는-lora-또는-qlora-사용","1. 제한한 자원에서는 LoRA 또는 QLoRA 사용",[14,28,29],{},"Full Fine-Tuning은 모델의 거의 모든 파라미터를 수정",[14,31,32],{},"GPU 메모리에는  모델 가중치, Gradient, Optimizer, 중간 연산 결과, 입력 데이터",[14,34,35],{},"등이 전부 GPU 메모리에 올라가야 한다.",[14,37,38],{},"따라서 모델 파일은 실행되더라도, 학습 과정에서는 메모리가 부족할 수 있다.",[14,40,41],{},"LoRA와 QLoRA는 이 문제를 줄이는 방법",[43,44,46],"h2",{"id":45},"lora의-동작-방식","LoRA의 동작 방식",[14,48,49],{},"LoRA는 원래 모델을 고정하고, 모델의 일부 계층에 작은 추가 행렬을 붙인다.",[14,51,52],{},"Base 모델 파라미터 : 고정\nLoRA Adapter: 학습",[14,54,55],{},"예를 들어 원래 모델에 다음과 같은 능력이 있다고 가정",[14,57,58],{},"사용자: 연차는 어떻게 신청해?\nBase 모델: 회사의 연차 정책을 확인하고 담당자에게 문의하세요.",[14,60,61],{},"HR 질문과 모범 답변을 LoRA로 학습하면 다음과 같은 응답 방식에 적응시킬 수 있음",[14,63,64],{},"사용자: 연차는 어떻게 신청해?\nLoRA 모델:",[66,67,68,72,75],"ol",{},[69,70,71],"li",{},"그룹웨어의 근태 메뉴에 접속합니다.",[69,73,74],{},"사용일 3일 전까지 신청합니다.",[69,76,77],{},"팀장 승인을 받아야 합니다.",[14,79,80],{},"Base 모델 전체를 바꾸지 않고도 다음 요소를 학습",[82,83,84,87,90,93,96],"ul",{},[69,85,86],{},"사내 용어",[69,88,89],{},"답변 순서",[69,91,92],{},"응답 형식",[69,94,95],{},"업무별 판단 패터",[69,97,98],{},"모르는 내용에 대한 처리 방식",[14,100,101],{},"LoRA가 적합한 경우",[82,103,104,107,110,113],{},[69,105,106],{},"FP16 또는 BF16 Base 모델을 GPU에 올릴 수 있음",[69,108,109],{},"학습 안정성과 설정의 단순성이 중요함",[69,111,112],{},"비교적 작은 모델을 학습함",[69,114,115],{},"MPS 기반 Mac 또는 다양한 환경에서 실습함",[43,117,119],{"id":118},"qlora의-동작-방식","QLoRA의 동작 방식",[14,121,122],{},"QLoRA는 Base 모델을 4비트로 압축해서 메모리에 올리고, 그 위에 LoRA Adapter를 학습",[14,124,125],{},"4비트 Base 모델: 고정\nLoRA Adapter: 학습",[14,127,128],{},"LoRA보다 Base 모델이 차지하는 메모리가 작기 때문에 더 큰 모델을 제한된 GPU에서 학습",[130,131,132,151],"table",{},[133,134,135],"thead",{},[136,137,138,142,145,148],"tr",{},[139,140,141],"th",{},"방식",[139,143,144],{},"Base 모델 저장 정밀도",[139,146,147],{},"학습 대상",[139,149,150],{},"메모리",[152,153,154,169,182],"tbody",{},[136,155,156,160,163,166],{},[157,158,159],"td",{},"Full Fine-Tuning",[157,161,162],{},"FP16\u002FBF16",[157,164,165],{},"전체 모델",[157,167,168],{},"매우 큼",[136,170,171,174,176,179],{},[157,172,173],{},"LoRA",[157,175,162],{},[157,177,178],{},"작은 Adapter",[157,180,181],{},"작음",[136,183,184,187,190,192],{},[157,185,186],{},"QLoRA",[157,188,189],{},"주로 4bit",[157,191,178],{},[157,193,194],{},"더 작음",[14,196,197],{},"정확한 메모리 사용량은 모델 구조, 시퀀스 길이, 배치 크기, Optimizer 등에 따라 달라진다.",[14,199,200],{},"LoRA를 먼저 선택",[82,202,203,206,209,212],{},[69,204,205],{},"현재 GPU에서 Base 모델 로딩과 학습이 가능함",[69,207,208],{},"구현 복잡도를 낮추고 싶음",[69,210,211],{},"Mac MPS나 CPU 환경도 고려해야 함",[69,213,214],{},"양자화로 인한 추가 변수를 피하고 싶음",[14,216,217],{},"QLoRA를 선택",[82,219,220,223,226,229],{},[69,221,222],{},"CUDA GPU가 있지만 VRAM이 부족함",[69,224,225],{},"LoRA 방식으로도 모델이 메모리에 들어가지 않음",[69,227,228],{},"더 큰 Base 모델을 사용해야 함",[69,230,231],{},"4비트 학습을 지원하는 라이브러리 환경이 준비됨",[14,233,234],{},"LoRA 실행 가능 여부 확인\n→ 메모리 부족 발생\n→ 배치 크기와 시퀀스 길이 축소\n→ Gradient Accumulation 적용\n→ 그래도 부족하면 QLoRA 검토",[10,236,238],{"id":237},"_2-배포-단계에서-quantization-과-kv-cache를-최적화한다","2. 배포 단계에서 Quantization 과 KV Cache를 최적화한다.",[14,240,241,242,246],{},"LoRA와 QLoRA는 주로 모델을 어떻게 학습할 것인지에 관한 기술, Quantization과 KV cache 최적화는 학습이 끝난 모델 ",[243,244,245],"strong",{},"어떻게 빠르게","실행할 것인지에 관한 내용",[43,248,250],{"id":249},"quantization","Quantization",[14,252,253],{},"Quantization은 모델이 사용하는 숫자의 정밀도를 낮추는 방법",[14,255,256],{},"FP32 → FP16\u002FBF16 → INT8 → INT4",[14,258,259],{},"숫자 하나를 저장하는데 필요한 비트가 줄어들면 다음 효과가 생긴다.",[82,261,262,265,268,271,274],{},[69,263,264],{},"모델 메모리 감소",[69,266,267],{},"더 작은 GPU에서 실행 가능",[69,269,270],{},"메모리 대역폭 사용 감소",[69,272,273],{},"환경에 따라 추론 속도 향상",[69,275,276],{},"동시 요청 처리량 증가 가능",[14,278,279],{},"FP16 모델 크기: 약 3GB\nINT8 모델 크기: 약 1.5GB\nINT4 모델 크기: 약 0.75GB",[14,281,282],{},"다만, 낮은 비트가 항상 빠른 것운 아님",[14,284,285],{},"INT4로 줄였다고 반드시 모든 환경에서 빨라지는 것은 아니다.",[82,287,288,291,294,297,300],{},[69,289,290],{},"해당 하드웨어가 INT4 연산을 잘 지원하는가?",[69,292,293],{},"실행 엔진이 해당 양자화 형식을 지원하는가?",[69,295,296],{},"양자화 해제 비용이 얼마나 드는가?",[69,298,299],{},"배치 크기가 얼마인가?",[69,301,302],{},"CPU, NVIDIA GPU, Apple Silicon 중 어디서 실행하는가?",[14,304,305],{},"그리고 문제가 하나 더 있다.",[14,307,308],{},"Quantization의 정확도 손실이다.",[14,310,311],{},"정질도를 낮추면 일부 가중치가 손실된다. 따라서 배포 전후에 동일 질문으로 품질을 비교해야 한다.",[14,313,314],{},"뭐 예시로 좀 보자면",[14,316,317],{},"FP16 모델\n사용자: 연차 신청 기한은?\n답변: 사용일 3일 전까지 신청해야 합니다.",[14,319,320],{},"INT4 모델\n사용자: 연차 신청 기한은?\n답변: 사용일 전에 신청해야 합니다.",[14,322,323],{},"양자화 전후에 특히 확인해야 할 항목은 다음과 같다.",[82,325,326,329,332,335,338,341],{},[69,327,328],{},"숫자와 날짜",[69,330,331],{},"고유 명사",[69,333,334],{},"부정 표현",[69,336,337],{},"전문 용어",[69,339,340],{},"긴 답변의 일관성",[69,342,343],{},"JSON등 구조화된 출력 방식",[345,346,348],"h3",{"id":347},"kv-cache","KV Cache",[14,350,351],{},"언어모델은 답변을 한 번에 완성하지 않고, 토큰을 하나씩 생성한다.",[14,353,354],{},"\"연차\"\n\"연차 신청\"\n\"연차 신청은\"\n\"연차 신청은 그룹웨어에서\"",[14,356,357],{},"새 토큰을 만들 때마다 이전 토큰들의 Attention 계산을",{"title":359,"searchDepth":360,"depth":360,"links":361},"",2,[362,363,364],{"id":45,"depth":360,"text":46},{"id":118,"depth":360,"text":119},{"id":249,"depth":360,"text":250,"children":365},[366],{"id":347,"depth":367,"text":348},3,[369],"sLLM","2026-08-28 17:45:21 +0900","LoRA와 QLoRA, 양자화, KV Cache와 RAG를 조합해 제한된 자원에서 sLLM을 구축하는 방법을 정리한다.","md",null,"\u002Fsllm\u002F2026\u002F08\u002F28\u002Fresource-efficient-build\u002F",{"layout":376},"post",true,"\u002Fposts\u002Fsllm\u002Fpost2",{"title":5,"description":371},"posts\u002FsLLM\u002FPost2",[369,173,186,250,382],"RAG","Ey8-QHA-LJZDXawxHTyurVZARPDz0Fgv7hLsaLlic8E",1788744790230]