본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
*_1. 학습 인증샷 4장 이상 포함
*_① 오늘자 날짜, 공부 시작 시각 포함 사진 1장
② 오늘자 날짜, 공부 종료 시각 포함 사진 1장
③ 1개 클립 수강 인증 사진 (강의장 목록 캡쳐, 강의 내용이 담긴 수강화면이 보이지 않도록) 1장
④ 학습 인증샷 1장 이상 (ex. 필기 촬영, 작업물, 등)
2. 학습 후기 700자 이상 (공백 제외)
- 파인튜닝 테스트
AutoPeftModelForCausalLM()
의 입력으로 LoRA Adapter가 저장된 체크포인트의 주소를 넣으면 LoRA Adapter가 기존의 LLM과 부착되어 로드됩니다. 이 과정은 LoRA Adapter의 가중치를 사전 학습된 언어 모델(LLM)에 통합하여 미세 조정된 모델을 완성하는 것을 의미합니다.peft_model_id
변수는 미세 조정된 가중치가 저장된 체크포인트의 경로를 나타냅니다."llama3-8b-summarizer-ko/checkpoint-372"
는 LoRA Adapter 가중치가 저장된 위치로, 이 경로에서 해당 가중치를 불러옵니다.fine_tuned_model
은AutoPeftModelForCausalLM.from_pretrained
메서드를 통해 체크포인트를 로드하여 생성됩니다. 이 메서드는 LLM과 LoRA Adapter를 결합하고, 최적화된 설정으로 모델을 메모리에 로드합니다.device_map="auto"
옵션은 모델을 자동으로 GPU에 배치합니다.pipeline
은 Hugging Face의 고수준 유틸리티로, NLP 작업(예: 텍스트 생성, 번역, 요약 등)을 간단히 수행할 수 있게 해줍니다. 이 코드에서 사용된pipeline("text-generation")
은 텍스트 생성 작업을 수행하기 위한 파이프라인 객체를 생성합니다. 파이프라인은 내부적으로 모델과 토크나이저를 관리하여, 입력 텍스트를 토큰화하고, 모델을 통해 생성된 결과를 다시 디코딩하여 사람이 읽을 수 있는 텍스트로 변환합니다.- 이 코드는 미세 조정된 LLM을 로드한 뒤, 이를 이용해 텍스트 생성 작업을 간단히 수행할 수 있도록 준비하는 데 목적이 있습니다.
pipeline
을 통해 텍스트 생성 작업을 실행하면, 입력 텍스트에 기반하여 모델이 다음 토큰을 예측하고 이를 반복적으로 생성합니다. 이 과정은 사용자에게 자연스러운 텍스트를 출력하는 데 사용됩니다. - 코드
import torch from peft import AutoPeftModelForCausalLM from transformers import AutoTokenizer, pipeline
peft_model_id = "llama3-8b-summarizer-ko/checkpoint-372"
fine_tuned_model = AutoPeftModelForCausalLM.from_pretrained(peft_model_id, device_map="auto", torch_dtype=torch.float16)
pipe = pipeline("text-generation", model=fine_tuned_model, tokenizer=tokenizer)
eos_token = tokenizer("<|eot_id|>",add_special_tokens=False)["input_ids"][0]
def test_inference(pipe, prompt):
outputs = pipe(prompt, max_new_tokens=1024, eos_token_id=eos_token, do_sample=False)
return outputs[0]['generated_text'][len(prompt):].strip()
for prompt, label in zip(prompt_lst[10:15], label_lst[10:15]):
# print(f" prompt:\n{prompt}")
print(f" response:\n{test_inference(pipe, prompt)}")
print(f" label:\n{label}")
print("-"*50)
- LoRA Adapter를 merge하지 않은 기본모델로 테스트 데이터에 인퍼런스
~~~코드2
base_model_id = "NCSOFT/Llama-VARCO-8B-Instruct"
model = AutoModelForCausalLM.from_pretrained(base_model_id, device_map="auto", torch_dtype=torch.float16)
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
for prompt, label in zip(prompt_lst[10:15], label_lst[10:15]):
# print(f" prompt:\n{prompt}")
print(f" response:\n{test_inference(pipe, prompt)}")
print(f" label:\n{label}")
print("-"*50)
url : https://abit.ly/lisbva
'스타트업 투자 > 데이터 + 테크' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 46일차 : LLM 평가 (0) | 2025.05.16 |
---|---|
패스트캠퍼스 환급챌린지 45일차 : RAG 파인튜닝 (0) | 2025.05.15 |
패스트캠퍼스 환급챌린지 43일차 : 허깅페이스 TRL 파인튜닝 (0) | 2025.05.13 |
패스트캠퍼스 환급챌린지 42일차 : 데이터 전처리 (0) | 2025.05.12 |
패스트캠퍼스 환급챌린지 41일차 : 주요코드 이해하기 (0) | 2025.05.11 |
댓글