인프런 커뮤니티 질문&답변
Embedding 모델 fine tuning 관련 질문
작성
·
22
0
강사님 안녕하세요? 10년전 쯤 파이썬 머신러닝 완벽가이드, CNN 완벽가이드를 수강하고 많은 도움을 받았는데, Transformer 강의를 내셨길래 반가운 마음으로 바로 구매했습니다 ㅎㅎ
회사에서 RAG 를 종종 구현하고 있는데.. 예시로 들어주신 BERT 모델은 RAG 구현 중 리트리버에 해당한다고 이해하면 될지요?
그리고 BERT 모델을 fine tuning 하고자 한다면 pre trained 모델의 tokenizer 와 model 둘 다 불러온 후, tokenizer 의 vocab 에 mapping 되어 있는 token 들을 ids 토시하나 틀리지 않고 있는 그대로 사용하되, 사내 내부 용어만 이후 ids 에 추가해서 사용하고, model 에 몇 개의 추가 layer 를 쌓아서 fine tuning 한다면, 처음부터 학습시키는 것보다 좀 더 효율/효과적인 방안이 될 수 있을지.... 도 궁금합니다.
RAG 를 구현하다보면, 외부에서 사전학습된 모델이 사내 문서의 특수한 약어나 내부 고유기술 용어를 인지하지 못해서 필요한 문서들을 못 물어 오는 경우를 가끔 보고 있어서.... 생성을 위한 LLM 모델이야 요즘 너무 첨단을 향해 가고 있는데, 리트리버 에 대한 최적화는 회사나 도메인 별로 필요한 것이 아닐까... 생각하고 있었습니다만, 제가 이해한 개념이 맞을지 문의 드려 봅니다.
답변 2
1
안녕하십니까, 오, 제 강의를 이전에 많이 선택해 주셨군요. 감사드립니다.
명절 후유증(?)으로 몸이 좀 안좋아서 답변이 늦었습니다.
예시로 들어주신 BERT 모델은 RAG 구현 중 리트리버에 해당한다고 이해하면 될지요?
=> BERT 모델 같은 Embedding 모델 + 벡터 인덱스(Vector DB등)는 리트리버에 해당합니다
BERT 모델을 fine tuning 하고자 한다면 pre trained 모델의 tokenizer 와 model 둘 다 불러온 후, tokenizer 의 vocab 에 mapping 되어 있는 token 들을 ids 토시하나 틀리지 않고 있는 그대로 사용하되, 사내 내부 용어만 이후 ids 에 추가해서 사용하고, model 에 몇 개의 추가 layer 를 쌓아서 fine tuning 한다면, 처음부터 학습시키는 것보다 좀 더 효율/효과적인 방안이 될 수 있을지.... 도 궁금합니다.
=> 제가 RAG 전문가가 아니어서 제대로된 답변은 아닐 수 있지만, RAG 성능 개선은 모델 자체보다는 효율적인 내부 용어 구조화와 적절한 검색 전략이 더 먼저일 것 같습니다(RAG도 본질적으로는 검색이 핵심이라고 생각합니다)
사내에서 사용되는 전문용어 사전집(약어와 이에 대한 상세한 설명)을 만들고 이를 vector db에 등록 시키거나, 이를 chunk할 문서에서 기술해 주는 방법이 있습니다(예를 들어 oms 같은 것을 풀어서 oms: order management system 으로 풀어서 다시 문서 내에 기술)
현대 언어 모델(BERT 포함)은 서브워드 기반의 Tokenization을 적용하기 때문에 낯선 단어라도 효율적으로 쪼개서 embedding화 시킬 수 있습니다(서브워드 토큰화는 섹션 7에서 설명드립니다)사내에서 사용되는 전문 단어라도 unknown으로 빠질 확률은 크지 않습니다. 강의에서 배운 내용으로 전문 단어가 어떻게 토큰화 되는지 확인해 보실 수 있습니다.
그리고 보다 효율적인 chunking 전략들을 적용해 볼 수도 있습니다.
물론 기술해 주신대로 모델을 fine tuning하는 방법도 적용을 고려해 볼수 있는데, 노력 대비 성능 향상은 크지 않을 거라 생각됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 아쿠아라이드님.
Transformer 강의를 통해 더욱 발전하는 모습을 보니 정말 반갑습니다. 질문해 주신 내용은 RAG (Retrieval-Augmented Generation)과 BERT 모델의 역할과 활용에 대한 것으로 파악했습니다.
RAG와 BERT의 관계: RAG는 기본적으로 두 부분으로 나눌 수 있습니다. 리트리버와 생성기입니다. BERT 모델은 주로 리트리버로 사용될 수 있습니다. 이 경우, BERT는 관련성 있는 문서를 검색하고 선택하는데 사용되며, 검색된 결과는 생성 모델에 입력되어 해당 내용 기반으로 텍스트를 생성하게 됩니다.
Fine-tuning BERT: BERT 모델을 사내 용어에 맞게 fine-tuning하는 방법은 효과적일 수 있습니다. 기존의 BERT pre-trained 모델을 가져와서 tokenizer와 모델 모두를 사용하되, 사내 고유 용어는 추가하여 tokenizer의 vocab을 확장하는 것이 좋습니다. 그런 다음, 모델에 몇 개의 층을 쌓고 이들을 학습시킨다면 초기 단계부터 학습시키는 것보다 더욱 효율적일 수 있습니다. 이는 특히 특정 도메인에 특화된 내용이나 용어가 많은 경우에 매우 효과적입니다.
회사나 도메인별 최적화: 리트리버 모델의 최적화는 특히 도메인 특이적인 용어가 많은 경우나, 특정 문서를 검색해야 하는 경우 중요합니다. BERT와 같은 리트리버 모델은 사내 고유 용어를 학습함으로써 더 나은 검색 성능을 발휘할 수 있습니다.
다음 링크를 참고하면 fine-tuning과 리트리버 최적화에 대한 이해를 높이는 데 도움이 되실 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




