티스토리 뷰
8월 14일 러닝스푼즈 세미나 요약
이미 알고 있는 것은 거의 생략
RAG 자체에서 QA 자료를 자체로 DB에 넣는 방법도 존재.
멀티 모달 체인으로 확인
테이블 이미지만 추출 unstructed -> 후에 요약하여
ChatGPT API vs LLM Fine-tuning
파인튜닝하는 데이터를 만들 때 ChatGPT API를 굉장히 많이 쓴다.
ChatGPT API를 이용해서
부족한 한글 데이터. Text to sql의 수행 사례
영어 문장만 한글 문장으로 바꾸면 한글 문장을 SQL로 바꾸는 쿼리가 된다.
"실제 텍스트를 참고하여 영어 텍스트를 한글 데이터로 만드세요." 라는 프롬프트.
한글이 가능한 모델을 찾을 때 = LogicKor 사이트를 참고한다.
RAG에 사용하려면 모델이 처리 가능한 Context 수도 고려해야 한다.
파인튜닝을 사용하면 LLaMA Factory도 추천한다.
데이터 디렉토리, Template도 참고
Vast.ai, Runpod 등 활용.
A100 시간당 5달러 정도
RAG를 위한 파인튜닝
RAFT : Adapting Language Model to Domain Specific RAG
사용자의 질문과 연관된 문서, 연관이 없는 문서 모두 조합해서 만들려고 하고 있는데
사용자의 질문과 연관이 없는 문서는 네거티브 샘플 = 사용자의 질문과 연관된 내용을 연관된 문서만 집어서 답변하는 능력을 갖춘다.
=>강건한 모델을 만든다.
파인튜닝 시킬 때 검색된 문서의 원문을 인용하도록 강제하면은 할루시네이션을 많이 줄일 수 있다.
##이유## ##답변## 등
CoT를 통해 ##인용시작## ##인용종료##를 이용한다.
Cohere에서 사용하는 RAG 프롬프트 => <co:doc> 기호를 사용하여 표시하세요 같은 비법.
Orion-14-RAG 특화 모델.
답변 끝에 인용한 문서 번호를 달도록 하시오.
공개된 모델을 가져다 쓰면서, Cohere 모델처럼 원문 인용을 가져다 달라고 하면 안된다.
모델 성능 자체가 떨어진다. 잘하는 모델들로 학습 데이터를 구축한 다음에, 가지고 있는 작은 모델들 가지고 파인튜닝을 시킨다.
원문을 인용하도록 강제한 QA셋을 만들면 결국 작은 모델도 그걸로 파인튜닝 시켰을 때 잘하게 된다.
무료 ChatGPT 수준 : 70B
사내 서비스용 RAG = 10B 이내
Text-to_SQL 가능한 정도 : 10B, 7B
간단한 키워드 추출 = 1B~2B
Ensemble 뿐만 아니라,
BM25로 검색한 후에 embedding으로 Reranking 하는 경우도 가능하다.
LoRA : 1e-4
Full : 2e-5
Learning Late의 대략적인 값.
하지만 모델마다 다를 수도 있다.