1. 파인튜닝 학습
[AI] 파인튜닝 - 실전(영화 소개 문장을 학습)
https://velog.io/@exoluse/AI-%ED%8C%8C%EC%9D%B8%ED%8A%9C%EB%8B%9D-%EC%8B%A4%EC%A0%84%EC%98%81%ED%99%94-%EC%86%8C%EA%B0%9C-%EB%AC%B8%EC%9E%A5%EC%9D%84-%ED%95%99%EC%8A%B5
713개의 질문 생성 : exaone3.5:7.8b
모델 학습 : TinyLlama-1.1B-Chat-v1.0
2. Langchain 학습
chromadb, pinecone, pgvector 를 이용하여 llm 에게 retriever 를 제공 했었고 최근에 faiss 를 알게 되었다.
[AI] langchain + Huggingface + ollama + FAISS 적용해보자
https://velog.io/@exoluse/AI-langchain-FAISS-%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90
3. RAG 는 이랬다.
- 일단 벡터 데이터를 어딘가에 저장해 두는게 일이다.
- 어떻게 저장할지 실행 계획이 필요하다. (벡터db 선정...)
- 벡터 dimension 과 embedding 모델 결정 (dimension 값이 같아야 함) 제공되는 정보량과 종류에 따라서 달라질 수 있다.
- DBMS(postgresql + pgvector) 같은 방법도 있으나 조회속도가 극악이다.
- 저장된 벡터 데이터를 활용하는 것은 어렵지 않았다. Langchain 은 llm 에 끼워넣으면 되는 수준
- 데이터가 변경되어도 프롬프트를 운용하는데 지장 없다.
4. 파인튜닝은 이랬다.
- Instruction dataset 만드는 과정이 험난(지루)했다.
- Instruction dataset 생성용 모델 운용이 많이 빡셌다.
- 만들어진 Instruction dataset 을 검토하는 게 엄청 큰일이다.(문장이 긴 경우 질답 케이스가 많이 나오는데 모델이 횡설수설할 수도 있다.)
- 학습 과정이 지루하다. TinyLlama-1.1B-Chat-v1.0 같은 쬐끄만 모델 학습에도 엄청난 인내심이 필요하다. 또는 장비가 좋거나...
- 학습을 한 후에는 학습 과정(loss, grad_norm, learing_rate, epoch) 을 시각화하여 분석이 필요하다.
5. 나름 결론을 내자면
내 기준으로 보면 RAG 가 판정승 (8:2) 이다.
5-1. 파인튜닝
- "절대" 바뀌지 않는 불변의 데이터셋으로 AI 를 접목한다면 파인튜닝이 적합할 수는 있겠다.
- 과거 법령이나 역사의 사건 등을 각 모델에 튜닝하여 사용하면 좋을 듯(?) 하다.
- 또는 박물관, 전시회 등의 큐레이션에도 적합하다 (고정 데이터)
5-2. RAG
- PDF/Word/Excel 등을 어렵지 않게 벡터로 저장이 가능하다.
- 추론 모델만 업그레이드 하여 사용 가능하다. 파인튜닝은 또 튜닝...
- 물론 임베딩 모델은 벡터 차원(dimension) 값을 확인해야 한다.
- 데이터 변경에 민감하지 않아도 된다.
- 지속적으로 증가하는 모든 데이터에 적용 가능하다.