AI 모델 및 플랫폼
RAG를 통한 심층 분석: 대규모 언어 모델에서 검색 보완 생성
대규모 언어 모델(LLM)에 접근할 수 있는 분석가가 있다고 가정해 보겠습니다. 이 모델은 작업 흐름에 많은 잠재력을 가지고 있습니다. 그러나最新의 주식 가격이나 현재의 인플레이션율에 대해 물어보면, 다음과 같은 대답을 받을 수 있습니다.
“I’m sorry, but I cannot provide real-time or post-cutoff data. My last training data only goes up to 2022년 1월.”
대규모 언어 모델은 언어적인 힘을 가지고 있지만, ‘지금’을 이해하는 능력이 부족합니다. 빠르게 변화하는 세계에서 ‘지금’은 모든 것입니다.
연구에 따르면, 대규모 사전 훈련 언어 모델(LLM)은 사실적인 지식의 저장소이기도 합니다. 이들은 많은 데이터를 훈련시켜 사실과 숫자를 많이 흡수했습니다. 미세 조정하면, 다양한 NLP 작업에서 놀라운 결과를 달성할 수 있습니다.
그러나 여기에는 한계가 있습니다. 모델이 저장된 지식을 접근하고 조작하는 능력은 때때로 완벽하지 않습니다. 특히 작업이 지식 집중적인 경우, 이러한 모델은 더 전문적인 아키텍처에 비해 뒤처질 수 있습니다. 모든 책이 있는 도서관을 가지고 있지만, 필요한 것을 찾는 카탈로그가 없는 것과 같습니다.
OpenAI의 ChatGPT 브라우징 업그레이드
OpenAI의 ChatGPT 브라우징 기능 발표는 검색 보완 생성(RAG) 방향으로 중요한 발전입니다. ChatGPT가 현재 및 권위 있는 정보를 인터넷에서 검색할 수 있게 되면서, RAG 접근 방식을 반영하여 동적으로 외부 데이터를 가져와서 풍부한 응답을 제공할 수 있습니다.
https://twitter.com/OpenAI/status/1707077710047216095
현재는 Plus 및 Enterprise 사용자에게만 사용할 수 있지만, OpenAI는 곧 모든 사용자에게 이 기능을 제공할 계획입니다. 사용자는 GPT-4 옵션 아래의 ‘Browse with Bing’을 선택하여 이 기능을 활성화할 수 있습니다.
프롬프트 엔지니어링은 효과적이지만 불충분합니다
프롬프트는 LLM의 지식에 대한 게이트웨이입니다. 모델을 안내하며, 응답에 대한 방향을 제공합니다. 그러나 효과적인 프롬프트를 작성하는 것은 LLM으로부터 원하는 것을 얻는 완전한 해결책은 아닙니다. 프롬프트 작성 시 고려해야 할 좋은 관행을 살펴보겠습니다.
* 명확성: 잘 정의된 프롬프트는 모호성을 제거합니다.それは 직접적이어야 하며, 모델이 사용자의 의도를 이해할 수 있도록 해야 합니다. 이 명확성은 더 일관적이고 관련 있는 응답으로 이어집니다.
* 맥락: 특히 긴 입력의 경우, 지시의 위치는 출력에 영향을 줄 수 있습니다. 예를 들어, 긴 프롬프트의 끝에 지시를 이동하면 더 좋은 결과를 얻을 수 있습니다.
* 지시의 정밀성: “누가, 무엇, 어디, 언제, 왜, 어떻게” 프레임워크를 통해 전달되는 질문의 힘은 모델을 더 집중된 응답으로 안내할 수 있습니다. 또한 원하는 출력 형식이나 크기를 지정하면 모델의 출력을 더 세부적으로 정의할 수 있습니다.
* 불확실성의 처리: 모델이 불확실할 때 어떻게 응답해야 하는지에 대한 지침을 제공하는 것이 중요합니다. 예를 들어, 모델에게 불확실할 때 “모르겠습니다”라고 응답하도록 지시하면, 부정확하거나 “환상적인” 응답을 생성하는 것을 방지할 수 있습니다.
* 단계별思考: 복잡한 지시에 대해서는 모델을 체계적으로 생각하거나 작업을 하위 작업으로 나누어 더 포괄적이고 정확한 출력을 생성하도록 안내할 수 있습니다.
생성적 AI 모델의 도전
프롬프트 엔지니어링은 모델의 성능을 향상시키기 위해 모델에 주는 지시를 미세 조정하는 것을 포함합니다. 이는 생성적 AI 애플리케이션의 정확도를 향상시키는 비용 효율적인 방법이며, 단지 소규모 코드 조정이 필요합니다. 프롬프트 엔지니어링은 출력을 크게 향상시킬 수 있지만, 대규모 언어 모델(LLM)의 내재된 제한을 이해하는 것이 중요합니다. 두 가지 주요 도전은 “환상”과 “지식 단절”입니다.
* 환상: 모델이 자신감 있게 잘못된 또는 허구의 응답을 반환하는 경우입니다. 고급 LLM에는 이러한 출력을 인식하고避ける 내장 메커니즘이 있습니다.
RAG 소개
검색 보완 생성(RAG)은 대규모 언어 모델이 훈련되지 않은 데이터에 접근할 수 있는 프레임워크입니다. RAG을 구현하는 방법은 여러 가지이며, 최상의 적합은 작업과 데이터의 특성에 따라 다릅니다.
RAG 프레임워크는 구조화된 방식으로 작동합니다.
프롬프트 입력
프로세스는 사용자의 입력 또는 프롬프트로 시작됩니다. 이것은 질문이나 특정 정보를 구하는 문장이 될 수 있습니다.
외부 소스에서 검색
모델은 검색기 구성 요소를 사용하여 외부 데이터 소스를 검색합니다. 이러한 소스는 지식베이스, 데이터베이스, 문서 저장소 또는 인터넷에 접근 가능한 데이터일 수 있습니다.
검색 이해
본질적으로 검색은 검색 작업입니다. 사용자의 입력에 대한 가장 관련 있는 정보를 추출하는 것입니다. 이 프로세스는 두 단계로 나눌 수 있습니다.
1. 색인화: 이것은 검색 보완 생성의 가장 어려운 부분입니다. 지식베이스를 색인화하는 프로세스는 크게 로딩과 분할로 나뉩니다. LangChain과 같은 도구에서는 이러한 프로세스를 “로더”와 “분할기”라고 합니다. 로더는 다양한 소스에서 콘텐츠를 가져오고, 분할기는 이 콘텐츠를 검색과 임베딩을 위해 최적화된 작은 조각으로 나눕니다.
2. 쿼리: 이것은 검색 용어에 따라 가장 관련 있는 지식 조각을 추출하는 것입니다.
프롬프트 보강
검색된 정보는 원래 프롬프트와 결합되어 보강된 프롬프트 또는 확장된 프롬프트를 생성합니다. 이 보강된 프롬프트는 모델에 추가적인 맥락을 제공하며, 특히 데이터가 도메인 특정적이거나 모델의 원래 훈련 코퍼스에 포함되지 않은 경우에 유용합니다.
완성 생성
보강된 프롬프트를 사용하여 모델은 완성 또는 응답을 생성합니다. 이 응답은 모델의 훈련뿐만 아니라 실시간으로 검색된 데이터에 의해 информ됩니다.
첫 번째 RAG LLM 아키텍처
2020年に발표된 Meta의 연구 논문 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“는 이 기술에 대한 심층적인 분석을 제공합니다. 검색 보완 생성 모델은 전통적인 생성 프로세스에 외부 검색 메커니즘을 보완합니다. 이는 모델이 광대한 데이터 코퍼스에서 관련 정보를 가져와서 맥락적으로 정확한 응답을 생성할 수 있도록 합니다.
1. 2단계 프로세스:
RAG LLM은 2단계 프로세스로 작동합니다.
* 검색: 모델은 먼저 큰 데이터셋에서 관련 문서나 구절을 검색합니다. 이것은 밀도 검색 메커니즘을 사용하여 수행되며, 쿼리와 문서를 연속적인 벡터 공간에 임베딩합니다. 임베딩은 유사성 점수를 계산하는 데 사용되며, 상위 순위 문서가 검색됩니다.
* 생성: 상위 k 관련 문서를 받은 후, 초기 쿼리와 함께 시퀀스-투-시퀀스 생성기에 채널링됩니다. 이 생성기는 쿼리와 검색된 문서에서 맥락을 끌어와 최종 출력을 제작합니다.
2. 밀도 검색:
전통적인 검색 시스템은 종종 희소한 표현을 사용합니다. 그러나 RAG LLM은 밀도 표현을 사용하여 쿼리와 문서를 연속적인 벡터 공간에 임베딩합니다. 이것은 키워드 일치以外의 의미적인 관계를 캡처하는 더 세련된 유사성 비교를 허용합니다.
3. 시퀀스-투-시퀀스 생성:
검색된 문서는 생성 모델에 대한 확장된 맥락을 제공합니다. 이 모델, 종종 트랜스포머 아키텍처를 기반으로 하며, 쿼리와 검색된 문서에서 맥락을 끌어와서 일관성 있고 맥락적으로 관련 있는 최종 출력을 생성합니다.
문서 검색
효율적인 정보 검색, 특히 큰 문서에서, 데이터는 일반적으로 벡터 데이터베이스에 저장됩니다. 각 데이터 조각 또는 문서는 임베딩 벡터를 기반으로 색인화되며, 내용의 의미적 본질을 캡처합니다. 효율적인 색인화는 입력 프롬프트에 따라 관련 정보를 빠르게 검색할 수 있도록 합니다.
검색 보완 생성의 이점
검색 보완 생성을 사용하면 다음과 같은 이점이 있습니다.
* 향상된 정확도: 외부 데이터 소스를 활용하여 모델은 훈련 데이터뿐만 아니라 최신 정보를 반영한 응답을 생성할 수 있습니다.
* 지식 격차 극복: RAG는 모델의 내재된 지식 제한, 즉 훈련 컷오프 또는 도메인 특정 데이터의 부족을 효과적으로 해결합니다.
* 다용도성: RAG는 다양한 외부 데이터 소스, 즉 조직 내의 사설 데이터베이스 또는 공개적으로 접근 가능한 인터넷 데이터와 통합할 수 있습니다.
* 환상 감소: 모델은 실시간 데이터 맥락을 제공하여 사실적으로 부정확하거나 허구의 응답을 생성할 가능성을 크게 줄일 수 있습니다.
* 확장성: RAG LLM의 주요 이점 중 하나는 확장성입니다. 검색과 생성 프로세스를 분리함으로써, 모델은 효율적으로大量의 데이터를 처리할 수 있으며, 이는 실제 애플리케이션에서 데이터가 풍부한 경우에 적합합니다.
도전과 고려
검색 보완 생성을 사용할 때 다음과 같은 도전과 고려할 점이 있습니다.
* 계산 오버헤드: 2단계 프로세스는 특히大量의 데이터를 다룰 때 계산적으로 집중적일 수 있습니다.
* 데이터 의존성: 검색된 문서의 품질은 생성 품질에 직접적인 영향을 미칩니다. 따라서 포괄적이고 잘 관리된 검색 코퍼스를 갖는 것이 중요합니다.
결론
검색과 생성 프로세스를 통합함으로써, 검색 보완 생성은 지식 집중적인 작업에 강력한 솔루션을 제공하여, 정보에 기반한 출력과 맥락적으로 관련 있는 출력을 보장합니다.
검색 보완 생성의 실제 약속은 실제 세계 애플리케이션에 있습니다. 의료 분야에서, 최신 정보는 결정적일 수 있으며, RAG는 의료 문헌에서 정보를 추출하고 통찰력을 생성하는 능력을 제공합니다. 금융 분야에서, 시장은 분당으로 진화하며, RAG는 실시간 데이터 기반의 통찰력을 제공하여 정보에 기반한 의사 결정을 지원할 수 있습니다. 또한, 학술 및 연구 분야에서, 학자들은 RAG를 사용하여大量의 정보 저장소를 검색하여 문헌 검토와 데이터 분석을 더 효율적으로 만들 수 있습니다.















