Retrieval Augmented Generation (RAG) and Beyond
우리가 흔히 사용하는 인공지능 모델인 '대규모 언어 모델(LLM)'에 외부 데이터를 더해서 성능을 높이는 기술이 요즘 많은 주목을 받고 있습니다. 특히, '검색-기반 생성(Retrieval-Augmented Generation, RAG)'이나 '미세 조정(fine-tuning)' 같은 방법이 많이 쓰이고 있어요. 하지만 이 방법들을 실제로 적용할 때는 여러 가지 어려움이 따라요.
예를 들어, 어떤 데이터를 찾아야 하는지, 사용자가 진짜로 원하는 것이 무엇인지, 그리고 복잡한 문제를 풀 때 LLM이 가진 모든 능력을 제대로 활용하는 방법을 찾는 것이 쉽지 않다는 거죠.
LLM의 성능이 떨어지는 이유는 두 가지로 설명할 수 있어요. 첫째, 모델이 문제의 핵심을 제대로 이해하지 못할 때 성능이 떨어집니다. 둘째, 문제를 여러 가지로 나눠서 풀어야 하는데, 이를 한꺼번에 처리하려다 보니 어려움이 생길 수 있죠.
그래서 이번 연구에서는 외부 데이터를 활용한 RAG 작업을 네 가지로 나누어 설명해요. 이 네 가지는 다음과 같아요:
- 명시적 사실 쿼리: 질문에 명확한 답이 있는 경우.
- 암시적 사실 쿼리: 답이 바로 드러나지 않고 약간의 해석이 필요한 경우.
- 해석 가능한 근거 쿼리: 복잡한 질문이지만, 답을 찾기 위한 논리가 비교적 명확한 경우.
- 숨겨진 근거 쿼리: 답을 찾기 위해 깊이 있는 분석과 추론이 필요한 경우.
이 네 가지 종류의 질문에 따라 필요한 데이터를 정리하고, 이런 질문들을 풀기 위한 중요한 기술과 과제를 함께 설명합니다.
마지막으로, 외부 데이터를 LLM에 통합하는 세 가지 주요 방법을 소개해요:
- 컨텍스트: 필요한 정보를 모델에 제공해주는 방식.
- 작은 모델: 큰 모델 대신 작은 모델을 활용해 데이터를 처리하는 방법.
- 미세 조정: 모델을 특정 작업에 맞게 조정하는 방법.
각 방법이 가진 장점과 한계를 설명하고, 어떤 문제를 해결할 때 이 방법들이 유용한지를 이야기해요.
1. 서론
최근 대규모 언어 모델(LLM)은 많은 분야에서 인상적인 성과를 보여주고 있습니다. 이 모델들은 방대한 양의 지식을 바탕으로 복잡한 문제를 풀거나 논리적인 추론을 할 수 있죠. 하지만 이와 동시에 LLM을 실제로 전문 분야에 적용할 때는 여러 가지 어려움이 따릅니다. 대표적으로, 모델이 사실이 아닌 내용을 만들어내는 '환각' 현상이나, 특정 산업의 전문 지식과의 불일치 같은 문제들이 발생합니다.
도메인 특화 데이터 통합의 필요성
특히, LLM이 원래 훈련된 데이터에는 포함되지 않은 개인 데이터나 특정 산업에 필요한 정보를 모델에 포함시키는 것이 중요한 과제가 됩니다. 예를 들어, 기업의 독점 데이터나 특정 분야에서 사용되는 데이터는 일반적으로 모델이 학습하지 않은 정보일 수 있어요. 이런 데이터를 통합하지 않으면 모델이 그 분야의 요구에 정확히 맞지 않을 수 있습니다.
전문성과 시의성 문제 해결
LLM이 훈련에 사용한 데이터는 때로는 최신 정보가 아니거나, 모든 전문 분야를 포괄하지 못하는 경우가 많습니다. 그리고 모델이 사용자나 기업이 소유한 특별한 데이터를 처리하지 못할 때도 있죠. 하지만 외부 데이터를 추가로 사용하면, LLM의 성능을 더욱 강화할 수 있습니다. 이렇게 보강된 모델은 더 복잡한 질문에도 더 정확하고 상세한 답변을 제공할 수 있습니다. 또한 데이터를 업데이트하거나 맞춤형으로 조정할 수 있어 더욱 유연하게 활용할 수 있게 됩니다.
전문가 수준의 능력 구현
예를 들어, LLM이 의료나 법률과 같은 특정 분야의 데이터를 학습하게 되면, 의사나 변호사와 비슷한 수준의 지식과 판단 능력을 발휘할 수 있습니다. 이처럼 도메인 특화 데이터를 학습하는 것은 매우 중요한 부분이에요.
모델 환각 줄이기
LLM의 문제 중 하나는 사실과 다른 답을 만들어내는 '환각' 현상인데, 데이터로 보강된 모델은 이런 현상을 줄이는 데 도움이 됩니다. 모델이 실제 데이터를 기반으로 답변을 제공하면, 더 신뢰할 수 있는 결과를 얻을 수 있습니다.
제어 가능성과 설명 가능성 향상
또한, 외부 데이터를 추가하면 모델의 예측이 어디에서 나온 것인지 더 쉽게 설명할 수 있고, 그 결과를 더 잘 통제할 수 있게 됩니다. 이는 특히 신뢰도가 중요한 분야에서 매우 중요한 요소죠.
LLM 적용의 어려움
그렇다고 해서 이런 발전이 쉽게 이루어지는 것은 아닙니다. 개발자들은 LLM의 성능을 높이기 위해 많은 노력을 기울여야 하고, 이를 위해서는 전문적인 지식과 인력이 필요합니다. 예를 들어, 금융 분야에서는 시계열 데이터 같은 복잡한 데이터를 다뤄야 하는데, 이 데이터는 시간에 따라 변화하는 수치들을 의미합니다. 의료 분야에서는 의료 이미지를 분석하거나, 환자의 시계열 의료 기록을 이해해야 할 때가 많죠.
이런 데이터들을 LLM이 잘 이해하고 활용할 수 있도록 만드는 것은 여전히 큰 도전 과제입니다. 법률이나 수학 분야에서도, LLM이 복잡한 구조의 문제들을 풀 때 어려움을 겪는 경우가 많습니다.
해석 가능성과 일관성에 대한 요구
특정 산업에서는 모델이 내놓는 답변의 '해석 가능성'과 '일관성'이 매우 중요합니다. 하지만 LLM은 본래 설명하기 어려운 특성을 가지고 있고, 때로는 불확실한 결과를 내놓기도 해요. 이러한 문제를 해결하는 것은 특히 정확성과 책임이 중요한 분야에서 매우 필요합니다.
전문 도메인의 복잡한 요구
전문적인 분야에서는 데이터와 그에 대한 추론 과정이 매우 복잡할 수 있습니다. 개발자들이 이런 복잡성을 잘 이해하지 못하면, 마치 곳곳에 물이 새는 집처럼 문제가 많은 솔루션을 만들게 될 수 있습니다. 하지만 요구 사항과 도전 과제를 제대로 이해하고 이를 바탕으로 모델을 발전시켜 나간다면, 점차적으로 성능을 개선할 수 있을 것입니다.
2. 문제 정의
이번에는 데이터로 보강된 인공지능 애플리케이션이 어떻게 작동하는지를 설명해 볼게요. 이 애플리케이션은 도메인 특화 데이터를 활용하는 간단한 질문-답변 봇부터 복잡한 데이터 시스템에서 특정 작업을 처리하는 에이전트까지 다양한 형태로 나타날 수 있어요.
이런 애플리케이션에서는 질문이 얼마나 복잡한지에 따라 서로 다른 방식으로 대응해야 합니다. 여기서 중요한 건, 인공지능이 사용자의 질문에 답하기 위해 얼마나 깊이 있는 사고 처리를 해야 하느냐입니다. 간단한 사실을 찾아주는 것부터 복잡한 문제를 분석하는 것까지, 질문의 난이도가 높아질수록 인공지능이 해야 하는 일이 더 어려워져요.
이 질문들을 네 가지 단계로 나눠서 설명할 수 있어요:
1단계: 명시적 사실
이 단계는 가장 간단한 형태의 질문이에요. 주어진 데이터 안에 명확한 답이 있는 경우를 말해요. 인공지능은 단순히 관련된 정보를 찾아서 추출하기만 하면 됩니다. 예를 들어, "2024년 하계 올림픽은 어디에서 열리나요?"라는 질문은 외부 데이터에서 바로 답을 찾아낼 수 있죠.
2단계: 암시적 사실
이 단계에서는 질문의 답이 명확히 드러나지 않아요. 그래서 약간의 상식이나 논리를 사용해서 추론해야 합니다. 예를 들어, "캔버라가 위치한 국가에서 현재 다수당은 무엇인가요?"라는 질문은 캔버라가 호주에 있다는 사실과 호주의 현재 정치 상황을 결합해야 답을 알 수 있죠. 여기서는 여러 데이터 조각을 연결하고 간단한 추론을 해야 합니다.
3단계: 해석 가능한 근거
여기서는 사실을 이해하는 것뿐만 아니라, 도메인 특화된 지식을 바탕으로 복잡한 논리를 적용해야 합니다. 예를 들어, 제약 분야에서 인공지능이 특정 약물이 규제 요건을 충족하는지 확인하려면 FDA의 가이드라인을 해석할 수 있어야 하죠. 또, 고객 지원에서 인공지능은 미리 정해진 복잡한 워크플로우를 이해하고 이를 바탕으로 고객의 문제를 해결해야 합니다. 이 단계에서는 외부에서 제공된 규칙과 절차를 제대로 따르는 능력이 중요합니다.
4단계: 숨겨진 근거
이 단계는 가장 복잡한 질문에 해당합니다. 명확하게 문서화된 논리나 규칙이 없을 때, 인공지능은 데이터를 기반으로 추론해야 하죠. 예를 들어, 클라우드 운영팀이 여러 사건을 처리한 경험이 있다고 할 때, 인공지능은 그동안 축적된 데이터를 통해 패턴을 찾아내고, 성공적인 전략을 추론해낼 수 있어야 해요. 또, 소프트웨어 개발에서 과거의 디버깅 기록을 바탕으로 비슷한 문제가 발생했을 때 그 해결책을 유추하는 것과 같아요. 이 단계는 명시적으로 주어진 정보가 없기 때문에, 인공지능이 스스로 패턴을 찾아내고 복잡한 문제 해결 방식을 배워야 합니다.
이렇게 4단계로 나뉜 질문은 각각 다르게 처리해야 하며, 질문이 복잡해질수록 인공지능이 더 깊이 있는 분석과 추론을 요구받게 됩니다.
3. 명시적 사실 쿼리 (L1)
명시적 사실 쿼리는 가장 단순한 형태의 질문이라고 할 수 있어요. 이런 질문들은 주로 특정한 문서나 자료에서 직접적으로 답을 찾을 수 있는 질문입니다. 예를 들어, "파리의 인구는 몇 명인가요?"와 같은 질문이에요. 답은 문서나 데이터베이스에 이미 적혀 있고, 이 정보를 그대로 찾아서 알려주면 되기 때문에 복잡한 논리나 깊은 추론이 필요하지 않아요.
이 쿼리의 특징은 외부 데이터에 정확하게 의존한다는 점입니다. 즉, 질문에 대한 답을 제공하려면 정확한 데이터를 찾는 것이 제일 중요해요. 이런 간단한 질문을 처리할 때 가장 널리 사용되는 기술은 '검색-기반 생성(RAG)'입니다. RAG는 질문에 맞는 데이터를 찾아와서 대답을 만들어내는 기술로, 비용이 적게 들고 효율적이라는 장점이 있어요.
하지만, RAG 기술을 사용할 때에도 몇 가지 어려움이 있어요:
- 데이터 처리의 어려움: 외부 데이터는 텍스트뿐만 아니라 표나 이미지, 비디오 같은 다양한 형태로 되어 있을 수 있어요. 이런 데이터를 쪼개서 사용할 때 원래 의미가 변하지 않도록 유지하는 게 쉽지 않아요.
- 데이터 검색의 어려움: 많은 양의 데이터 중에서 정확한 정보를 찾아내는 것은 시간이 많이 걸리고, 실수를 하기 쉬운 작업이에요. 그래서 빠르고 정확하게 데이터를 찾아주는 검색 시스템을 만드는 게 큰 도전입니다.
- 평가의 어려움: RAG 시스템이 잘 작동하는지 평가하는 방법도 어렵습니다. 검색된 데이터의 질과 생성된 답변이 얼마나 정확한지 측정하는 지표를 만드는 게 중요한 과제예요.
RAG 기술이란, 언어 모델이 데이터를 검색해 그 정보를 바탕으로 자연스럽게 답변을 만들어내는 방법이에요. 이 기술은 언어 모델이 단순히 알고 있는 정보만으로 답을 만드는 게 아니라, 대규모 데이터베이스나 문서에서 필요한 정보를 찾아내서 더 정확한 답을 만들 수 있게 해줍니다. RAG는 보통 다음 세 가지 단계로 이루어져요:
- 데이터 인덱스 구축: 데이터베이스를 정리해서 쉽게 검색할 수 있도록 준비합니다.
- 검색 시스템 구축: 질문에 맞는 데이터를 검색하는 시스템을 만듭니다.
- 답변 생성: 검색된 데이터를 바탕으로 답변을 만들어냅니다.
이 기술을 더 발전시키기 위해서는 세 가지가 필요해요:
- 데이터 처리 향상: 문서나 표, 도표 등에서 필요한 정보를 일관성 있게 추출하고, 그 조각들을 정확히 식별해 검색하는 기술이 중요해요.
- 데이터 검색 향상: 정보 검색(Information Retrieval, IR) 기술을 RAG에 잘 적용하는 것이 중요해요. 이를 위해 데이터를 잘 정리하고, 적합한 검색 방법을 적용해서 필요한 정보를 신속하게 찾는 게 핵심입니다.
- 응답 생성 향상: 검색된 정보가 충분한지 판단하고, 필요한 경우 추가 데이터를 가져와서 답변을 보완하는 과정이 필요해요. '지도형 미세 조정(Supervised Fine-tuning)'이라는 기법을 사용하면 RAG 시스템이 더 정확한 답을 생성할 수 있게 도와줍니다.
4. 암시적 사실 쿼리 (L2)
이 질문들은 답이 명확하게 드러나지 않아서, 약간의 상식이나 기본적인 논리가 필요합니다. 즉, 바로 답을 찾기보다는 여러 가지 정보를 종합하고 추론하는 과정이 필요한 질문이라고 할 수 있죠.
예를 들어, "이 제품이 가장 많이 팔린 시기는 언제인가?" 같은 질문이 이에 해당됩니다. 이런 질문의 답은 한 문서나 한 데이터에서 바로 나오지 않고, 여러 자료를 통해 정보들을 모아서 결론을 내리는 과정이 필요할 수 있습니다. 단순히 검색 한 번으로 해결되지 않고, 여러 번의 검색과 추론을 통해 종합적인 답을 도출해야 합니다.
주요 과제
이 과정에서 생기는 어려움 중 하나는 적응형 검색 볼륨입니다. 질문의 난이도나 요구하는 정보에 따라 검색해야 할 자료의 양이 달라집니다. 검색을 너무 많이 하면 불필요한 정보가 많아질 수 있고, 너무 적으면 필요한 정보를 놓칠 수 있죠. 이를 해결하기 위해서는 검색과 추론을 잘 조율해야 합니다.
또한, 추론과 검색 간의 조율도 중요한 과제입니다. 무엇을 검색할지 결정할 때 추론이 중요한 역할을 하고, 검색된 정보를 바탕으로 추론 전략을 조금씩 수정해가며 문제를 해결하는 방식이 필요합니다.
해결 방법
이러한 문제들을 해결하기 위해 몇 가지 방법이 제안되고 있습니다:
- 반복적인 RAG
암시적 사실 쿼리는 복잡한 문제를 단계별로 풀어가는 방식과 비슷합니다. 필요한 정보를 반복해서 검색하고, 그 과정에서 검색 결과를 바탕으로 점차 답에 가까워지는 방식이죠. 이런 방식으로 정보를 얻고 수정하면서 점점 더 정확한 답변을 만들 수 있습니다. - 예를 들어, ReAct라는 방법은 질문을 여러 단계로 나눠서 각 단계에서 필요한 정보를 찾고, 그 정보를 바탕으로 다음 단계를 결정합니다. GenGround는 좀 더 간단한 질문을 먼저 해결하고, 그 답을 다시 검토해서 최종 답을 도출하는 방법을 사용합니다.
- 그래프/트리 기반 질문 응답
암시적 사실 쿼리를 해결하려면 여러 문서에서 정보를 모아야 하는데, 이를 위해 그래프나 트리 구조를 사용할 수 있습니다. 그래프는 여러 정보를 연결해주는 역할을 해서, 필요한 정보를 효율적으로 찾을 수 있도록 도와줍니다. 예를 들어, 지식 그래프는 정보들 간의 관계를 시각적으로 보여주기 때문에 여러 자료를 한꺼번에 처리하기 좋습니다. - SQL 변환을 통한 구조화된 데이터 처리
마지막으로, SQL 쿼리를 사용하는 방법도 있습니다. SQL은 데이터베이스에서 원하는 정보를 정확하게 찾을 수 있는 언어인데, 최근에는 자연어 질문을 SQL 쿼리로 변환하는 기술이 많이 발전했어요. 이런 방식으로 복잡한 데이터를 다룰 때 더욱 정교한 답변을 만들 수 있습니다.
정리하자면, 암시적 사실 쿼리는 간단하지 않은 질문들을 여러 번의 검색과 추론을 통해 해결해야 하는 유형입니다. 이를 효과적으로 처리하기 위해 반복적인 RAG, 그래프 기반의 질문 응답, 그리고 SQL을 활용한 접근 방식이 사용됩니다.
5. 해석 가능한 근거 쿼리(L3)
이 쿼리는 단순히 사실만 알아내는 것이 아니라, 문제 해결을 위해 필요한 근거를 제공하는 외부 데이터를 해석하고 적용하는 능력이 요구됩니다. 이때 데이터를 어떻게 사용하느냐에 따라 두 가지로 나눌 수 있어요: 해석 가능한 근거 쿼리와 숨겨진 근거 쿼리입니다.
해석 가능한 근거 쿼리는 비교적 단순한 쿼리로, 외부 데이터가 문제 해결에 필요한 논리적 근거를 명확히 설명해주는 경우입니다. 예를 들어, 의학 가이드라인이나 고객 서비스 매뉴얼과 같은 공식 문서들이 이에 해당합니다. 이런 문서들은 특정 상황에서 어떻게 행동해야 하는지에 대한 명확한 지침을 제공합니다. 예를 들어, 흉통이 있는 환자를 어떻게 진단하고 치료해야 하는지에 대한 가이드라인이 있다면, 이 문서가 해석 가능한 근거를 제공해줍니다.
데이터는 여러 가지 형식으로 존재할 수 있는데요:
- 일반 텍스트: 가장 흔한 방식입니다. 가이드라인, 매뉴얼, 공식 문서들이 이에 해당합니다.
- 구조화된 지침: 더 명확한 논리적 흐름이나 의사 결정 과정이 있는 자료들입니다. 예를 들어, 고객 서비스 에이전트가 제품 교환을 처리하는 방식처럼, 단계별로 따라가는 워크플로우나 의사 결정 트리가 이에 해당하죠.
이 쿼리의 예시:
- 흉통이 있는 환자를 어떻게 진단하고 치료해야 하나요? (흉통 관리 가이드라인 기준)
- 특정 상황에서 고객 질문에 어떻게 답해야 하나요? (고객 서비스 워크플로우 기준)
하지만 이러한 쿼리에서 문제가 되는 부분도 있습니다. LLM이, 즉 인공지능 모델이 외부 데이터를 잘 해석하고 그 데이터를 바탕으로 올바른 결정을 내리는 것이 쉽지 않기 때문입니다. 여기서 몇 가지 도전 과제가 있어요:
- 프롬프트 최적화 비용: 프롬프트, 즉 모델에게 줄 질문을 잘 다듬는 작업이 오래 걸리고, 컴퓨터 자원도 많이 소모됩니다.
- 해석 가능성의 한계: 프롬프트가 모델에게 어떤 영향을 미치는지 명확하게 파악하기 어렵습니다.
이 문제를 해결하기 위해 다양한 기법이 연구되고 있습니다. 예를 들어, 프롬프트 튜닝이라는 기술은 인공지능 모델이 더 정확하게 작동하도록 프롬프트를 최적화하는 과정입니다. 몇 가지 예를 들어볼게요:
- Text2MDT: 의료 분야에서 의사결정 트리를 자동으로 추출해 주는 방식입니다.
- MedDM: LLM이 임상 지침을 바탕으로 환자와의 대화를 이끌어가는 방식입니다.
또한, Chain of Thought(COT) 프롬프팅이라는 기법도 있습니다. 이 방식은 모델이 여러 단계에 걸쳐 추론을 이어가는 방법입니다. 이렇게 하면 복잡한 문제도 단계별로 풀 수 있죠. 예를 들어, GPT-4 모델을 사용해 임상 기록에서 오류를 찾아내고 수정하는 데 COT 방식이 사용되었습니다.
자동화된 CoT 방식도 있습니다. 이 방식은 수동으로 추론 사슬을 만들지 않고, 인공지능이 스스로 추론 과정을 생성하도록 하여 시간과 자원을 절약할 수 있게 해줍니다.
실제 응용 분야:
해석 가능한 근거는 다양한 분야에 적용될 수 있습니다. 예를 들어, 인공지능을 이용한 자동 기계 학습(AutoML) 솔루션 개발이나, 소프트웨어 개발에서 여러 이해관계자가 협업해 프로젝트를 완성하는 시스템에서 활용됩니다. 또한 고객 서비스나 의료 정보 제공과 같은 복잡한 요청을 처리할 때도 사용될 수 있습니다.
이러한 시스템은 상호작용의 질을 높이고, 인공지능 모델이 잘 설계된 워크플로우에 통합될 때 큰 잠재력을 보여줍니다.
6. 숨겨전 근거 쿼리 (L4)
숨겨진 근거 쿼리는 가장 풀기 어려운 질문 유형이에요. 이 유형은 답을 찾기 위해 필요한 중요한 정보가 바로 눈에 보이지 않고, 여러 전문 분야에 걸쳐 복잡한 추론이 필요한 경우가 많아요. 예를 들어, 법률, 수학, 프로그래밍 같은 특정 분야의 지식이 필요할 때가 그렇죠.
이런 숨겨진 근거는 데이터 안에 숨겨져 있거나 암묵적으로 존재할 수 있는데, 이를 찾기 위해서는 해당 분야에 대한 깊은 이해가 필요합니다. 두 가지 대표적인 예를 들어볼게요:
- 도메인 내 데이터: 같은 분야에서 쌓여온 과거의 데이터나 기록이 숨겨진 답을 제공해줄 수 있어요. 예를 들어, 파이썬 프로그래밍 문제를 풀 때 과거의 해결책이 힌트가 될 수 있죠. 그 해결책에 담긴 알고리즘이나 문제 해결 전략이 현재 문제에도 적용될 수 있으니까요.
- 사전 지식: 또 다른 숨겨진 근거는 우리가 이미 알고 있는 넓은 범위의 지식이에요. 예를 들어, 법적인 문제를 다룰 때는 다양한 법률 규정이 바탕이 될 수 있고, 수학 문제를 풀 때는 이미 알려진 증명 과정이 힌트가 될 수 있어요.
이처럼 숨겨진 근거 쿼리를 해결하기 위해서는, 분산된 데이터에서 중요한 정보를 찾아내고 해석하는 고급 분석 기법이 필요합니다. 이것은 AI 시스템, 특히 'RAG' 시스템이 해결하기 까다로운 과제이기도 해요.
숨겨진 근거 쿼리의 예시
- 경제 질문: 경제 상황이 회사의 미래에 어떤 영향을 미칠까? 이런 질문은 경제적, 금융적 지식이 필요합니다.
- 수학 문제: 숫자 5, 5, 5, 1로 24를 만들려면 어떻게 해야 할까? 이는 특정 게임과 관련된 수학적 규칙을 알아야 풀 수 있죠.
- 법률 질문: 아프가니스탄이 해외에서 태어난 자녀에게 시민권을 부여하는가? 이런 질문은 국가별 법률과 관련된 데이터를 찾아야 답을 알 수 있어요.
해결하기 어려운 이유
- 논리적 검색의 어려움: 숨겨진 근거를 찾으려면 단순히 단어가 비슷한 데이터를 찾는 것으로는 충분하지 않아요. 문제의 본질을 이해하고 그에 맞는 논리적인 정보를 찾아야 하는데, 이는 기존의 검색 방법으로는 힘들 수 있어요.
- 데이터 부족: 관련된 명확한 답변을 담고 있는 데이터가 부족한 경우도 있어요. 대신, 다양한 지식이나 예시들이 퍼져 있죠.
해결 방법들
- 오프라인 학습: 데이터를 통해 규칙이나 지침을 미리 학습한 후, 이를 이용해 문제를 해결하는 방법이에요. 예를 들어, 과거의 데이터를 바탕으로 답을 생성하는 연구들이 있어요. STaR나 LXS 같은 방법이 대표적이죠.
- 맥락 학습: LLM이 사전에 학습한 예시들을 통해 맥락을 파악하는 방식이에요. 관련된 예시를 활용해 모델의 학습 능력을 극대화할 수 있지만, 관련 없는 정보가 포함되면 오히려 혼란을 일으킬 수 있어요.
- 미세 조정: LLM이 복잡한 문제를 더 잘 처리할 수 있도록 훈련시키는 방법이에요. 예를 들어, ChatDoctor는 의료 데이터를 사용해 LLM을 훈련시켜 환자의 질문에 더 잘 답할 수 있도록 만들었고, FinGPT는 금융 데이터를 이용해 자동화된 금융 분석을 돕는 오픈 소스 모델을 개발했어요.
미세 조정은 특히 고급 문제나 특정 분야에서 LLM의 성능을 높이는 데 중요한 역할을 해요.
7. 결론
이 논문에서는 데이터를 추가한 대규모 언어 모델(LLM)을 어떻게 응용할 수 있는지, 질문(쿼리)의 주요 초점에 따라 네 가지 범주로 나누어 설명하고 있어요. 각 범주는 고유한 도전 과제가 있고, 이에 맞는 해결책이 필요합니다. 이걸 간단히 살펴볼게요.
- 일반 상식에 관련된 질문: 이런 경우에는 '연쇄적 사고(Chain of Thought)'라는 방법을 사용한 일반적인 LLM이 효과적이에요. 여기서 '연쇄적 사고'란, 생각을 단계별로 이어가면서 답을 찾는 방식입니다.
- 명시적 사실을 묻는 질문: 이 경우에는 정확한 사실을 찾아내는 것이 핵심이므로, 검색을 통해 필요한 정보를 찾고 답을 생성하는 'RAG(검색 증강 생성)' 방식이 적합해요.
- 암시적 사실을 묻는 질문: 이건 여러 관련된 사실들을 통합해야 하므로, 여러 번 검색을 하거나, 데이터를 트리나 그래프 형태로 연결하는 방식이 효과적이에요. 이 방법을 통해 각각의 사실을 연결해 답을 찾아낼 수 있습니다.
- 해석과 근거가 필요한 질문: 여기에선 LLM이 외부 지침을 더 잘 따를 수 있도록 '프롬프트 튜닝'이나 '연쇄적 사고 프롬프팅' 같은 기술을 발전시키는 게 중요해요. 프롬프트 튜닝은 모델이 더 명확한 지시를 받도록 설정을 미세하게 조정하는 방법입니다.
- 숨겨진 근거를 찾는 질문: 가장 어려운 질문이에요. 대규모 데이터 세트를 활용해 자율적으로 문제 해결 방식을 찾아내야 하므로, 여기에는 '오프라인 학습', '맥락 학습', '미세 조정' 같은 복잡한 방법이 필요해요.
특정한 LLM 응용 프로그램을 만들기 전에, 전문가로서 우리는 작업을 깊이 이해하고, 질문의 복잡성을 파악하며, 이에 맞는 기술을 선택해야 합니다.
이러한 기술들은 주로 세 가지 방식으로 LLM에 지식을 주입해요:
- 맥락 입력 방식: 질문에 맞춰 필요한 데이터를 모델에 입력해서 답을 찾는 방법이에요.
- 작은 모델을 사용한 방식: 특정 데이터를 기반으로 작은 모델을 훈련시켜 외부 정보를 통합하는 방법이죠.
- 미세 조정 방식: 외부 데이터를 사용해 LLM을 특정 도메인 전문가 수준으로 조정하는 방법입니다.
이 방법들은 각각 필요한 데이터의 양, 훈련 시간, 계산 자원이 다릅니다.
- 맥락 입력 방식은 명확한 설명과 안정성을 보장하지만, 사용할 수 있는 정보량이 제한되어 있을 수 있어요.
- 작은 모델은 훈련 시간은 적게 걸리지만 복잡한 작업에서는 성능이 떨어질 수 있어요.
- 미세 조정은 큰 데이터로 모델 성능을 극대화할 수 있지만, 데이터를 어떻게 설계하느냐에 따라 성능이 달라집니다. 잘못된 데이터를 사용하면 모델이 오류를 더 많이 내거나 원래 알던 정보를 잃을 수 있습니다.
실제로 일을 할 때는 다양한 질문 유형을 한꺼번에 다뤄야 할 때가 많아요. 그래서 개발자는 여러 방법을 함께 사용하는 '라우팅 파이프라인'을 설계해야 복잡한 문제를 효과적으로 풀 수 있어요.
논문 리뷰
arXiv:2409.14924v1 [cs.CL] 23 Sep 2024