Quantization & Prompt Engineering
·
NLP(자연어처리)
1. bitsandbytes https://huggingface.co/docs/transformers/ko/quantization/bitsandbytes bitsandbytesbitsandbytes는 모델을 8비트 및 4비트로 양자화하는 가장 쉬운 방법입니다. 8비트 양자화는 fp16의 이상치와 int8의 비이상치를 곱한 후, 비이상치 값을 fp16으로 다시 변환하고, 이들을 합산하여 fp16으huggingface.co bitsandbytes는 모델을 8비트 및 4비트로 양자화하는 가장 쉬운 방법이다. 4비트 양자화의 경우, QLoRA와 함께 사용하여 양자화된 대규모 언어 모델을 미세조정하는데 흔히 사용된다. config = BitsAndBytesConfig( load_in_4bit = True, ..
[NLP] PEFT(Parameter Efficient Tuning) : LoRA 코드
·
NLP(자연어처리)
LoRALoRA는 큰 모델을 튜닝하기 위한 PEFT 방법 중 가장 널리 사용되는 방법이다. 다음은 Hugging Face에 있는 KoGPT 모델을 LoRA 기법으로 미세조정하기 위해 설정 및 초기화를 수행하는 코드이다.  오늘은 이 코드를 살펴보도록 한다. import transformers from peft import LoraConfig, PdftModel , get_peft_model, prepare_model_for_int8_trainingtarget_modules = ["q_proj" , "k_proj" , "v_proj" , "out_proj" , "fc_in" , "fc_out" , "wte"] config = LoraConfig( r= 4 , #LoRA의 rank 설정 lor..
[NLP] get_accuracy 함수 내부구현 이해
·
NLP(자연어처리)
모델이 예측한 값과 실제 값을 비교하여 정확도 계산collator = DataCollatorWithPadding(tokenizer)loader = DataLoader(dataset, batch_size=batch_size, collate_fn=collator, shuffle=False) DataLoader데이터를 배치(batch)로 나누어 모델에 입력(데이터 셋이 너무 커서 한번에 처리 할 수 없을 때, 배치 단위로 모델에 전달) collate_fn데이터를 패딩 처리하는 역할DataCollatorWithPadding을 사용하면 배치 내에서 길이가 다른 문장들이 있을 경우, 가장 긴 길이에 맞춰 나머지 문장들을 padding 해준다. with torch.inference_mode() : outputs..
[NLP] R.A.G 기법
·
NLP(자연어처리)
RAG(Retrieval-Augmented Generation)  Retrieval (검색)Augmented (증강)Generation (생성) RAG 프로세스 1. 전처리 작업 LOAD (문서 로드)  Document Loader 문서로드 선택시 고려사항 텍스트를 원형 그대로 잘 가져오는가 ?한글 인코딩 특수문자 처리 메타데이터(metadata)의 종류는 어떤 것들이 있는가? page_content : 문서 내용 페이지 번호(page) 표, 차트 , 문서의 coordinates(좌표), 속성(Title , Table, Image, Text) 사용자의 질문에 대한 출처를 표기해야하는 상황이 올 때는 "속도"를 중요시 하기 보다는 "메타 데이터"를 더 중요시하는 것이 옳은 선택일 수 있다.  문서를 읽는 ..