본문 바로가기

728x90
반응형

AI/LLM

(8)
🧭 2. 전체 실습 흐름 - 7 ✅ QLoRA 추론 단계 요약🔁 로딩 순서4bit base 모델 (quantized)LoRA adapter (fine-tuned)prompt 입력 → response 생성📦 1. 필요한 라이브러리 준비from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfigfrom peft import PeftModelimport torch🔁 2. 4bit base 모델 + LoRA 어댑터 로딩model_id = "tiiuae/falcon-rw-1b"adapter_path = "./output/qlora-adapter" # 학습한 QLoRA 어댑터 경로bnb_config = BitsAndBytesConfig( load_in..
🧭 2. 전체 실습 흐름 - 6 ✅ QLoRA 실습 개요🧠 개념 요약QLoRA는 8bit 양자화된 사전학습 모델에 LoRA 어댑터를 적용해 파인튜닝하는 기법입니다.핵심 구성:base 모델: 8bit로 로딩 (메모리 절약)LoRA: 저차원 학습 가능한 모듈Gradient checkpointing: GPU 메모리 절약💡 효과기준Full fine-tuneLoRAQLoRA메모리 사용매우 높음낮음매우 낮음학습 속도느림빠름빠름성능기준거의 동일거의 동일 📦 1단계: 필수 패키지 설치pip install bitsandbytes accelerate peft transformers datasetsbitsandbytes: 8bit, 4bit 양자화 로딩 지원accelerate: mixed precision + device 관리peft: LoRA + ..
🧭 2. 전체 실습 흐름 - 5 ✅ 5단계: 추론 - LoRA + Base 모델 합쳐서 답변 생성🎯 목표LoRA adapter 불러오기사용자 입력으로부터 모델 응답 생성텍스트 디코딩 후 출력📦 1. 모델 & LoRA 어댑터 로드from peft import PeftModelfrom transformers import AutoTokenizer, AutoModelForCausalLMbase_model_id = "tiiuae/falcon-rw-1b"adapter_path = "./output/lora-adapter"# base 모델model = AutoModelForCausalLM.from_pretrained( base_model_id, torch_dtype=torch.float16, device_map="auto")# ..
🧭 2. 전체 실습 흐름 - 4 ✅ 4단계: 파인튜닝 실행 (with Hugging Face Trainer)🎯 목표LoRA가 적용된 모델 학습 실행손실(loss) 로그 확인학습된 LoRA 가중치 저장📦 1. 학습 설정 구성from transformers import TrainingArgumentstraining_args = TrainingArguments( output_dir="./output/lora-finetune", per_device_train_batch_size=4, gradient_accumulation_steps=4, num_train_epochs=3, learning_rate=2e-4, fp16=True, # AMP 활성화 loggin..
🧭 2. 전체 실습 흐름 - 3 ✅ 3단계: 데이터셋 준비 및 전처리🎯 목표텍스트 데이터셋을 로딩하고, prompt-response 형식으로 변환토크나이징 후 학습용 데이터셋 생성📦 1. 사용할 데이터셋 종류옵션설명예시🟢 Hugging Face 공개 데이터셋tatsu-lab/alpaca 등오픈소스 학습용 데이터🟢 JSON 파일 직접 작성prompt + response 형태빠르게 커스텀🟡 CSV/Excel 변환Pandas로 전처리비정형 데이터 대응 가능 우선 Alpaca 형식 JSON 예제로 시작합니다.📁 2. Alpaca 형식 예시 데이터[ { "instruction": "Explain LoRA in simple terms.", "input": "", "output": "LoRA is a method to ..
🧭 2. 전체 실습 흐름 - 1 환경 설정 및 라이브러리 설치Hugging Face 사전학습 모델 불러오기PEFT/LoRA 구성 및 모델 래핑데이터셋 준비 (예: Alpaca 형식 등)파인튜닝 실행학습된 LoRA 모듈 저장 및 불러오기추론(Inference) 및 평가(선택) QLoRA로 양자화 기반 실습 ✅ 1단계: 환경 설정 및 라이브러리 설치🎯 목표실습 환경 구성필요한 라이브러리 설치📦 필요 라이브러리pip install transformers datasets accelerate peft bitsandbytes trltransformers: Hugging Face 모델 로딩datasets: 데이터셋 관리peft: LoRA 및 Adapter 구성bitsandbytes: QLoRA 등에 사용되는 8bit 옵티마이저trl: RLHF ..
🔍 1. LoRA의 핵심 개념 1. 기존 파인튜닝의 문제점대규모 언어 모델(예: GPT, BERT 등)을 파인튜닝하려면 수억~수십억 개의 파라미터를 업데이트해야 합니다.이는 GPU 메모리 과다 사용, 오랜 시간 소요, 모델 전체를 저장해야 하는 문제를 야기합니다.2. LoRA의 핵심 아이디어전체 가중치 행렬을 학습하지 않고, **두 개의 저차원 행렬(Low-Rank Matrices)**만 학습합니다.즉, 기존 가중치 WWW는 그대로 두고, 아래처럼 표현합니다:W′=W+ΔW=W+ABA∈Rd×r, B∈Rr×k: 학습 가능한 저차원 행렬r≪d,kr \ll d, kr≪d,k: 낮은 랭크(rank)를 사용3. 장점💾 메모리 효율: 전체 모델 파라미터의 0.1~1%만 학습🚀 속도 향상: 학습 시간 단축🧩 모듈화: 기존 모델을 변경하지 않고..
PyCharm에서 Colab 연결하여 작업하는 방법 1. Colab에서 필요한 설정:Google Colab에서 새로운 노트북을 열고, 다음 코드를 실행하여 Jupyter 서버를 시작합니다.from google.colab import drivedrive.mount('/content/drive')!pip install jupyter_http_over_ws!jupyter serverextension enable --py jupyter_http_over_ws# 포트 번호와 토큰 설정 (기본값: 8888)get_ipython().system_raw('jupyter notebook \ --NotebookApp.allow_origin="*" \ --port=8888 \ --NotebookApp.port_retries=0') 실행 결과에서 http://localh..

728x90
반응형