news

Featured

화합물 반도체 제조 업무에 활용 가능한 LLM서비스 만들기

2024.04.05

|

 

 

글에 나오는 코드는 colab으로 제공되어 실제로 실행해 볼 수 있습니다. colab주소는 다음과 같습니다. https://colab.research.google.com/drive/1fB_or4_Xbxw-8Wl0psTd94ZyWRJ5XbFo?hl=ko#scrollTo=FZo_7MUlzbhD

 

 

LLM이란?

대형 언어 모델(Large Language Model, LLM)은 컴퓨터 과학 및 인공지능 분야에서 사용되는 언어 모델의 한 유형을 지칭합니다. LLM은 대규모의 텍스트 데이터를 학습하여 자연어 처리 작업을 수행하는 데 사용됩니다. 이러한 모델은 일반적으로 많은 양의 매개 변수와 복잡한 신경망 구조를 가지고 있으며, 학습 과정에서 대규모의 텍스트 데이터를 사용하여 통계적 관계를 학습합니다.

 

LLM은 주어진 텍스트에 대한 다양한 자연어 처리 작업을 수행할 수 있습니다. 예를 들어, 문장 생성, 문장 분류, 기계 번역, 질의 응답, 요약 등의 작업에 사용될 수 있습니다. 이러한 모델은 대규모의 텍스트 데이터를 학습함으로써 텍스트의 의미와 문법적 구조를 이해하고, 이를 활용하여 다양한 자연어 처리 작업을 수행할 수 있습니다.

 

대표적인 LLM으로는 OpenAI의 ChatGPT-3.5를 비롯한 GPT 시리즈와 Google의 BERT 등이 있습니다. 이러한 LLM은 많은 양의 데이터를 기반으로 사전 학습되며, 필요에 따라 추가적인 지도 학습을 통해 특정 작업에 대한 성능을 높일 수 있습니다.

 



LLM의 한계

첫째로 대형 언어 모델(Large Language Model, LLM)에서는 환각(Hallucination)이 발생할 수 있습니다. 모델이 주어진 입력에 대해 실제로는 존재하지 않는 정보를 생성하거나 문맥을 잘못 이해하는 것을 의미합니다. 예를 들어 TV드라마의 주인공이 누구인지 물어봤을때 주인공을 잘못 대답하는 경우가 있습니다. 이것이 환각입니다.

 

둘째로 대형 언어 모델은 최신 정보를 알지 못합니다. 예를 들어 ChatGPT 3.5는 2022년 1월까지의 데이터로만 학습이 되었기 때문에 현재(24년 3월) 한국의 대통령이 누구인지 물으면 답변하지 못합니다. 대형 언어 모델은 학습시키는데 많은 비용이 들기 때문에 빠른 주기로 학습을 시키기가 어렵습니다. 따라서 대형 언어 모델에는 정보의 한계라는 단점이 존재합니다.

 

마지막으로 대형 언어 모델은 기본적으로 생성된 답변에 출처가 없습니다. 따라서 생성된 답변이 맞는지 확인하려면 사용자의 기본 지식으로 확인하거나 별도로 찾아 볼 수 밖에 없습니다. 만약에 답변에 출처가 있다면 사용자는 바로 출처를 확인하여 신뢰성을 평가할 수 있을 것입니다.

 

 

 

한계를 극복하기 위한 여러 기술들

 

· RAG

RAG는 Retrieval Augmented Generation에서 앞 글자를 따서 만든 약어로, 위와 같은 LLM의 한계를 줄이고자 할때 사용되는 기술입니다. 기존 ChatGPT가 ChatGPT 네트워크에 있는 정보로만 답변했다면, RAG가 적용된 LLM은 인터넷이나 자체DB에서 검색한 정보를 바탕으로 답변할 수 있습니다. 즉, RAG가 적용된 LLM은 답변시 참고할 수 있는 문서가 컨닝페이퍼(Cheat sheet)처럼 주어지는 것입니다. 기본적인 LLM이 클로즈드 북 시험이라면 RAG가 적용된 LLM은 오픈북 시험이라고 할 수 있겠습니다. RAG가 적용된 LLM은 Bing의 Copilot서비스에서 사용해볼 수 있습니다.

 

 

마지막으로 RAG의 정의를 알아보면, 외부 지식 기반(인터넷/자체DB)에서 사실을 검색하여 가장 정확한 최신 정보를 바탕으로 대형 언어 모델(LLM)을 구축하여 사용자에게 대형 언어 모델(LLM)이 주는 통찰력을 제공하기 위한 AI 프레임워크입니다. 즉, 대형 언어 모델(LLM)과 외부 지식 기반(인터넷/자체DB)을 결합하는 방법을 제공하는 AI 프레임워크입니다. 여기서 프레임워크는 소프트웨어를 더 빠르게 개발하고 관리할 수 있도록 구조적인 기본 틀을 제공하는 소프트웨어 도구를 말합니다.

 

· 파인튜닝(Fine-tuning)

파인튜닝도 대형 언어 모델(LLM)의 한계를 줄이고자 할때 사용되는 기술로 미리 학습된 대형 언어 모델(LLM)을 특정 작업 또는 도메인에 맞게 추가적으로 조정하는 과정을 의미합니다. 기본적으로 대형 언어 모델(LLM)은 대규모의 텍스트 데이터에서 사전 학습된 모델이지만, 파인 튜닝은 이 모델을 특정 작업을 수행하도록 더욱 특화시키는 단계입니다.

 

· RAG과 파인튜닝 비교

RAG는 외부 데이터가 잘 구축된 경우라면 이를 바로 활용할 수 있는 장점이 있습니다. 하지만 외부 데이터에서 검색하여 대형 언어 모델(LLM)에 제공해주어야 하기 때문에 정교한 검색 메커니즘이 필요합니다.

 

파인튜닝은 특정 작업에서 강력한 성능을 달성할 수 있습니다. 특정작업에서 LLama-7b(70억개)와 같은 작은 모델을 파인튜닝하여 GPT-4와 같은 큰 모델(파라미터 1조 7600억개)보다 뛰어난 성능을 보였다는 사례도 존재합니다. (http://cuts.kr/mlOXD) 다만, 파인튜닝된 모델 역시 마지막 학습 데이터까지만 알 수 있기 때문에 학습 이후에 나온 최신 정보는 알지 못합니다. 또한 GPT시리즈는 API로만 공개되기 때문에 파인튜닝을 할 수 없습니다. 따라서 파인튜닝을 하려면 LLama2와 같이 공개된 대형 언어 모델(LLM)을 선택해야 합니다.

 

결론적으로 LLM서비스를 만들때는 서비스의 성격에 맞게 RAG 또는 파인튜닝을 선택해야 합니다. 최신 정보가 중요하다면 RAG가 유리할 것이고, 특정 작업을 수행한다면 파인튜닝이 적절할 것입니다. 서비스에 따라 RAG와 파인튜닝을 동시에 진행해야 할 수도 있습니다.

 

 


 

 

LLM 서비스 만들기의 전문을 읽으시려면 여기를 클릭하세요

아이브이웍스 공식 블로그 ‘화합물 반도체 제조 업무에 활용 가능한 LLM 서비스 만들기’