자연어로 물으면 다 알려주는 LLM 파인튜닝 AI도우미

by 위키북스
"LoRA 파인튜닝이 뭐야?"라고 물었더니,
AI가 코드까지 찾아줘서 알려줍니다




이런 경험, 있지 않으신가요?


책을 공부하다 보면 이런 순간이 옵니다. "LoRA가 뭐지?" 싶어서 검색하면 블로그 글마다 설명이 조금씩 다르고, 코드를 찾으면 버전이 달라서 실행이 안 되고, GitHub에서 관련 파일을 찾으려면 폴더 구조가 복잡해서 방황하게 됩니다.


그래서 만든 것이 wbs-llm-finetuning-rev 스킬입니다. 자연어로 질문하면, AI가 도서의 실습 코드를 찾아서 개념 설명과 함께 보여주는 스킬입니다.



어떤 도구인가요?


wbs-llm-finetuning-rev는 『한 권으로 끝내는 LLM 실전 파인튜닝』(강다솔 저)의 공식 GitHub 실습 코드를 검색하고 조회하는 AI 스킬입니다. 이 도서는 GPT 구현부터 LoRA/QLoRA 파인튜닝, vLLM 서빙, Whisper 음성인식, Vision-Language Model까지 7개 챕터에 걸친 실습 코드를 담고 있는데, 이 스킬을 사용하면 그 방대한 코드 저장소에서 원하는 내용을 자연어로 물어보기만 하면 됩니다.


핵심 개념: 사용자는 자연어로 질문하고, AI가 내부적으로 코드를 검색해서 개념 설명 + 실제 코드 + 출처 링크를 함께 제공합니다.


깃허브에서 제공하고 있는 도서의 코드는 다음과 같습니다.

image.png


이렇게 물어보세요


사용법은 정말 간단합니다. 기술적인 명령어를 외울 필요 없이, 평소에 말하듯 자연어로 질문하면 됩니다. 스킬이 나머지를 알아서 처리합니다. 실제 사례를 통해 어떤 식으로 활용할 수 있는지 보여드리겠습니다.


사례 1: 개념이 궁금할 때 — 설명과 코드를 함께 받기

/wbs-llm-finetuning-rev 스킬을 이용해서 Text-to-SQL을 구현하는 핵심 원리를 설명해줘


스킬은 이 질문을 받으면 ‘Text-to-SQL’ 키워드로 Chapter 4.2의 QLoRA 튜닝 노트북을 찾고, 전체 구현 흐름을 셀 단위로 분석합니다. 아래는 실제 응답의 요약입니다.


스킬의 실제 응답 (요약)

핵심 아이디어: 자연어 질문을 입력받아 SQL 쿼리를 생성하도록 LLM을 QLoRA로 파인튜닝하는 것. 전체 파라미터를 학습하는 대신, 4비트 양자화 + LoRA 어댑터만 학습하여 GPU 메모리를 크게 절약합니다.

구현 흐름 5단계:

1) 데이터 준비 — 한국어 Text-to-SQL 데이터셋을 로드하고 난이도별로 분류한 뒤 대화 형식으로 변환합니다. 시스템 프롬프트로 SQL 전문가 역할을 부여하고, 사용자 입력에 자연어 지시와 테이블 스키마를 넣고, 어시스턴트 응답에 SQL 쿼리를 넣는 구조입니다.

2) 4비트 양자화 모델 로딩 — BitsAndBytesConfig로 NF4 양자화를 적용하여 베이스 모델을 로드합니다. 이중 양자화(double_quant)로 오류를 줄입니다.

3) LoRA 어댑터 설정 — 어텐션 레이어(q/k/v/o_proj)와 FFN 레이어(up/down/gate_proj)에 rank=256, alpha=128의 LoRA를 적용합니다.

4) SFTTrainer로 학습 — packing=True(여러 시퀀스를 묶어 효율화)를 적용하여 1 epoch 학습합니다.

5) 평가 — Exact Match와 GPT-4o-mini 의미 평가 두 가지로 성능을 측정합니다. SQL 구조가 달라도 결과가 같으면 정답으로 판정하는 LLM-as-Judge 방식이 특히 참고할 만합니다.


각 단계에 해당하는 실제 코드가 함께 제시되고, 출처 GitHub URL과 챕터 위치(Chapter 4.2), 관련 코드(Chapter 4.1 챗봇 QLoRA)가 함께 안내됩니다. 이처럼 하나의 질문으로 구현 원리부터 전체 흐름, 실제 코드, 평가 방법까지 한 번에 파악할 수 있습니다.



사례 2: 개념을 물어보면 — 이미지와 함께 친절한 설명

LoRA 파인튜닝이 잘 이해가 안돼, /wbs-llm-finetuning-rev 스킬을 이용해서 설명해줘


텍스트로만 설명하면 머리에 잘 안 들어오는 개념이 있습니다. LoRA가 딱 그런 경우입니다. 행렬 분해라는 개념 자체는 어렵지 않은데, Full fine-tuning과 LoRA의 차이가 시각적으로 와닿지 않으면 글로 읽어도 금방 잊게 됩니다. 이 질문을 스킬에 던지면, 텍스트 설명에 더해 시각적인 다이어그램을 직접 그려서 보여줍니다.


스킬의 실제 응답 (요약)

이제 LoRA 개념을 시각적으로 설명해드릴게요.
LoRA(Low-Rank Adaptation)는 기존 LLM을 파인튜닝할 때 전체 가중치를 업데이트하지 않고, 작은 행렬 두 개만 학습해서 메모리와 비용을 대폭 줄이는 기법이에요.
image.png?type=w966



사례 3: 특정 코드가 필요할 때 — 바로 복사해서 쓰기

/wbs-llm-finetuning-rev 스킬을 이용해서 vLLM을 활용한 모델 서빙에 대해서 설명해줘


스킬은 Chapter 5에서 vLLM 관련 노트북을 찾고, 6개 셀 전체를 분석하여 3단계로 정리해서 보여줍니다. 아래는 실제 응답의 요약입니다.


스킬의 실제 응답 (중략)

vLLM을 활용한 모델 서빙 — Chapter 5 해설

먼저 맥락부터
Chapter 5는 이 도서의 흐름상 매우 중요한 위치에 있습니다. Chapter 3~4에서 Full Fine-tuning과 LoRA/QLoRA로 모델을 학습시켰다면, Chapter 5는 "학습한 모델을 실제로 어떻게 서비스하느냐"라는 질문에 답합니다. 즉 학습(training)에서 추론(inference)/서빙(serving)으로 넘어가는 전환점입니다.

vLLM이 해결하는 문제

일반적인 HuggingFace transformers 라이브러리로 추론하면 배치 처리가 비효율적이고, 특히 KV Cache 메모리 관리가 낭비적입니다. vLLM은 PagedAttention이라는 기술로 KV Cache를 OS의 가상 메모리 페이징 방식처럼 관리하여, 같은 GPU 메모리로 훨씬 많은 동시 요청을 처리할 수 있게 합니다. 이 도서에서는 이 개념을 실습 코드로 보여줍니다.

노트북 1: vLLM 기본 서빙 (1_vllm.ipynb)

이 노트북은 두 가지 서빙 패턴을 보여줍니다.

패턴 A — 오프라인 배치 추론 (Python 내장)
python
from vllm import LLM, SamplingParams

llm = LLM(model="daje/meta-llama3.1-8B-qna-koalpaca-v1.1")

prompts = [
"안녕 내 이름은",
"한국의 대통령은
"대한민국의 수도는 현재",
"AI의 미래는",
]
sampling_params = SamplingParams(temperature=0.9, top_p=0.95, max_tokens=20)

outputs = llm.generate(prompts, sampling_params)

LLM 클래스로 모델을 로딩하고, SamplingParams로 생성 파라미터(temperature, top_p, max_tokens)를 지정한 뒤, generate()에 프롬프트 리스트를 넘깁니다. 여러 프롬프트를 한 번에 넣으면 vLLM이 내부적으로 continuous batching을 적용하여 효율적으로 처리합니다. API 서버 없이 Python 코드 안에서 바로 추론할 때 이 방식을 씁니다..(중략)

출처:
· 1_vllm.ipynb — vLLM 기본 서빙
· 2_multi-lora_notebook.ipynb — Multi-LoRA 오프라인 추론
· 3_Mulit-lora1.ipynb — Multi-LoRA 어댑터 다운로드
· 4_Mulit-lora2.ipynb — OpenAI API 호환 Multi-LoRA 서빙


각 단계의 실제 코드가 원문 그대로 제시되므로, 바로 복사해서 사용할 수 있습니다. "이 코드 어디에 있었지?"라는 순간에 자연어 한 문장으로 해결됩니다.


그 밖에 아래와 같은 다양한 경우에 wbs-llm-finetuning-rev 스킬을 활용할 수 있습니다.



사례 4: 더 깊이 파고들고 싶을 때 — 비판적 분석

이 책에서 설명한 Text-to-SQL이 실무적으로 유용한가?


코드를 찾는 것에서 한 걸음 더 나아가, "이게 정말 실무에서 쓸 만한가?"라는 근본적인 질문을 던져볼 수도 있습니다. 스킬은 단순히 코드를 보여주는 것을 넘어서, 해당 기술의 실무 가치를 비판적으로 분석해줍니다.



사례 5: 워크플로우 전체를 배우고 싶을 때 — 단계별 안내

Whisper 모델 파인튜닝 전체 과정을 알려줘


특정 기술의 전체 워크플로우를 배우고 싶을 때 유용합니다. 스킬은 Chapter 6의 구조를 파악한 후, 데이터 준비 → 전처리 → 모델 설정 → 학습 → 평가 순서로 각 단계의 핵심 코드를 순차적으로 제시합니다.




어떻게 동작하는 걸까요?


기술적인 세부 사항을 몰라도 전혀 문제없지만, 대략적인 동작 흐름을 알고 계시면 스킬을 더 잘 활용할 수 있습니다. 스킬은 내부적으로 4단계를 거칩니다.

image.png

사용자가 보는 것은 최종 응답뿐이고, 중간 과정은 모두 스킬이 자동으로 처리합니다. 마치 도서관에서 사서에게 "이런 내용 찾아줘"라고 부탁하면, 사서가 책을 찾고, 해당 페이지를 펴서, 필요한 부분을 복사해서 건네주는 것과 같은 방식입니다.



마치며


도서를 학습하면서 LLM 파인튜닝을 배우는 과정에서 가장 큰 허들 중 하나는 "좋은 코드를 찾는 것" 자체입니다. 개념은 이해했는데 실제 코드는 어디 있는지, 코드는 찾았는데 버전이 맞는지, 이 코드가 도대체 전체 흐름에서 어느 위치인지 등 부차적인 어려움이 학습 흐름을 끊는 경우가 많습니다.


wbs-llm-finetuning-rev는 이 문제를 해결합니다. 자연어로 물어보면 검증된 코드와 설명이 함께 제공되므로, 공부에 집중할 수 있습니다. 도서의 코드인 만큼 버전 호환성 걱정도 없고, 항상 출처 URL이 함께 제공되므로 원본 노트북으로 바로 이동하여 직접 실행해볼 수도 있습니다.



관련 도서: 『한 권으로 끝내는 LLM 실전 파인튜닝』 (강다솔 저)

GitHub: https://github.com/daje0601/AllinOne_LLM


글에서 설명하는 wbs-llm-finetuning-rev 스킬은 여기서 다운받을 수 있습니다.

https://bit.ly/3NFG4oc














작가의 이전글한국어 맞춤법·띄어쓰기 교정 스킬을 직접 만들어보기