검색 기능 강화 생성 또는 미세 조정을 통해 대형 언어 모델을 향상시키기
일련의 문서에서는 LLM(대규모 언어 모델)이 응답을 생성하는 데 사용하는 지식 검색 메커니즘에 대해 설명합니다. 기본적으로 LLM은 학습 데이터에만 액세스할 수 있습니다. 하지만 실시간 데이터 또는 개인 데이터를 포함하도록 모델을 보강할 수 있습니다.
첫 번째 메커니즘은 검색 보강 생성(RAG)입니다. RAG는 의미 체계 검색과 상황별 초기화를 결합하는 전처리의 한 형태입니다. 맥락화 프라이밍은 생성 AI 솔루션을 빌드하기 위한 주요 개념 및 고려 사항에서 자세히 설명합니다.
두 번째 메커니즘은 의 미세 조정입니다. 세밀 조정에서 LLM은 초기 광범위한 학습 후에 특정 데이터세트를 사용하여 추가로 학습을 진행합니다. 목표는 LLM을 조정하여 작업에서 더 나은 성능을 발휘하거나 데이터 세트와 관련된 개념을 이해하는 것입니다. 이 프로세스는 모델이 특정 유형의 입력 또는 도메인을 처리하는 데 있어 정확도와 효율성을 특수화하거나 개선하는 데 도움이 됩니다.
다음 섹션에서는 이러한 두 메커니즘에 대해 자세히 설명합니다.
RAG 이해
RAG는 종종 "내 데이터를 통해 채팅" 시나리오를 사용하도록 설정하는 데 사용됩니다. 이 시나리오에서 조직에는 문서, 설명서 및 기타 독점 데이터와 같은 잠재적으로 큰 텍스트 콘텐츠 모음이 있습니다. 사용자 프롬프트에 대한 답변의 기준으로 이 모음을 사용합니다.
전반적으로 문서 각각 또는 청크이라고 하는 문서의 일부에 대한 데이터베이스 항목을 만듭니다. 청크는 문서의 패싯을 나타내는 숫자의 벡터(배열)인 포함인덱싱됩니다. 사용자가 쿼리를 제출하면 데이터베이스에서 유사한 문서를 검색한 다음 쿼리와 문서를 LLM에 제출하여 답변을 작성합니다.
참고 항목
RAG(검색 보강 세대)라는 용어를 수용적으로 사용합니다. 이 문서에 설명된 대로 RAG 기반 채팅 시스템을 구현하는 과정은 외부 데이터를 지원 역할(RAG)로 사용하거나 응답의 중심 요소로 사용할 수 있는 방법을 제공합니다. RAG에 관한 읽기 자료에서는 미세한 차이가 다루지 않고 있습니다.
벡터화된 문서의 인덱스 만들기
RAG 기반 채팅 시스템을 만드는 첫 번째 단계는 문서 또는 청크의 벡터 포함이 포함된 벡터 데이터 저장소를 만드는 것입니다. 문서의 벡터화된 인덱스를 만드는 기본 단계를 간략하게 설명하는 다음 다이어그램을 고려합니다.
다이어그램은 데이터 파이프라인나타냅니다. 파이프라인은 시스템에서 사용하는 데이터의 수집, 처리 및 관리를 담당합니다. 파이프라인에는 벡터 데이터베이스에 저장할 전처리 데이터와 LLM에 공급되는 데이터가 올바른 형식인지 확인하는 작업이 포함됩니다.
전체 프로세스는 기계 학습 모델에서 처리할 수 있는 방식으로 입력의 의미 체계 속성을 캡처하는 데이터(일반적으로 단어, 구, 문장 또는 전체 문서)의 숫자 표현인 포함 개념에 의해 구동됩니다.
임베딩을 생성하려면 콘텐츠 청크(문장, 단락 또는 전체 문서)를 Azure OpenAI Embeddings API를 사용하여 보냅니다. API는 벡터를 반환합니다. 벡터의 각 값은 콘텐츠의 특징(차원)을 나타냅니다. 차원에는 주제, 의미적 의미, 구문 및 문법, 단어 및 문구 사용, 맥락적 관계, 스타일 또는 어조가 포함될 수 있습니다. 벡터의 모든 값은 콘텐츠의 차원 공간나타냅니다. 세 가지 값이 있는 벡터의 3D 표현을 생각하면 특정 벡터는 XYZ 평면의 특정 영역에 있습니다. 값이 1,000개 이상인 경우 어떻게 해야 할까요? 인간이 종이에 1,000차원 그래프를 그리는 것은 불가능하지만 컴퓨터는 차원 공간의 정도를 이해하는 데 아무런 문제가 없습니다.
다이어그램의 다음 단계에서는 벡터 데이터베이스에 벡터 및 콘텐츠(또는 콘텐츠 위치에 대한 포인터) 및 기타 메타데이터를 저장하는 방법을 보여 줍니다. 벡터 데이터베이스는 모든 유형의 데이터베이스와 비슷하지만 두 가지 차이점이 있습니다.
- 벡터 데이터베이스는 벡터를 인덱스로 사용하여 데이터를 검색합니다.
- 벡터 데이터베이스는 가장 가까운 인접
유사한 검색 코사인이라는 알고리즘을 구현합니다. 알고리즘은 검색 조건과 가장 일치하는 벡터를 사용합니다.
개발자는 벡터 데이터베이스에 저장된 문서 모음을 사용하여 검색기 구성 요소 빌드하여 사용자의 쿼리와 일치하는 문서를 검색할 수 있습니다. 데이터는 LLM에 사용자의 쿼리에 응답하는 데 필요한 정보를 제공하는 데 사용됩니다.
문서를 활용하여 쿼리에 답변하기
RAG 시스템은 먼저 의미 체계 검색을 사용하여 답변을 작성할 때 LLM에 도움이 될 수 있는 문서를 찾습니다. 다음 단계는 사용자의 원래 프롬프트와 일치하는 문서를 LLM에 보내 답변을 작성하는 것입니다.
다음 다이어그램을 간단한 RAG 구현(순진한 RAG이라고도 함)으로 간주합니다.
간단한 RAG 흐름을 보여 주는
다이어그램에서 사용자는 쿼리를 제출합니다. 첫 번째 단계는 사용자의 프롬프트를 위한 임베딩을 만들어 벡터로 반환하는 것입니다. 다음 단계는 가장 가까운 인접 항목과 일치하는 문서(또는 문서의 일부)에 대해 벡터 데이터베이스를 검색하는 것입니다.
코사인 유사도는 두 벡터가 얼마나 유사한지를 확인하는 데 도움이 되는 측정값입니다. 기본적으로 메트릭은 둘 사이의 각도의 코사인을 평가합니다. 1에 가까운 코사인 유사성 높은 수준의 유사성(작은 각도)을 나타냅니다. -1에 가까운 유사성은의 경우 비유사성(거의 180도의 각도)을 나타냅니다. 이 메트릭은 유사한 콘텐츠 또는 의미가 있는 문서를 찾는 것이 목표인 문서 유사성과 같은 작업에 매우 중요합니다.
최근접 이웃 알고리즘은 벡터 공간의 한 지점에서 가장 가까운 벡터 이웃을 찾아 작동합니다.
K-최근접 이웃(KNN) 알고리즘에서 k 고려할 최근접 이웃의 수를 나타냅니다. 이 방법은 분류 및 회귀에 널리 사용되며, 알고리즘은 학습 집합에서 가장 가까운 인접
해당 검색에서 최상의 결과를 가져와 일치하는 콘텐츠를 사용자의 프롬프트와 함께 보내고, 이를 기반으로 정보에 입각한 응답을 생성합니다.
과제 및 고려 사항
RAG 시스템에는 일련의 구현 과제가 있습니다. 데이터 개인 정보 보호가 가장 중요합니다. 시스템은 특히 외부 원본에서 정보를 검색하고 처리하는 경우 사용자 데이터를 책임감 있게 처리해야 합니다. 계산 요구 사항도 중요할 수 있습니다. 검색 프로세스와 생성 프로세스는 모두 리소스를 많이 사용합니다. 데이터 또는 모델의 바이어스를 관리하는 동안 응답의 정확도와 관련성을 보장하는 것도 또 다른 중요한 고려 사항입니다. 개발자는 이러한 과제를 신중하게 탐색하여 효율적이고 윤리적이며 가치 있는 RAG 시스템을 만들어야 합니다.
고급 검색 강화 생성 시스템 구축은 프로덕션 준비가 완료된 RAG(검색 보강 생성) 시스템을 사용하기 위해 데이터 및 유추 파이프라인을 구축하는 방법에 대한 자세한 정보를 제공합니다.
생성 AI 솔루션을 즉시 빌드하는 실험을 시작하려면 Python용 사용자 고유의 데이터 샘플을 사용하여 채팅을 시작하는 것이 좋습니다. 이 자습서는 .NET, Java및 JavaScript에 대해서도 사용할 수 있습니다.
모델 미세 조정
LLM에서 미세 조정은 LLM이 처음에 크고 다양한 데이터 세트로 학습된 후, 도메인별 데이터 세트로 학습하여 모델의 매개 변수를 조정하는 과정입니다.
LLM은 광범위한 데이터 세트에서 학습(미리 학습)되며 언어 구조, 컨텍스트 및 다양한 지식을 파악합니다. 이 단계에서는 일반 언어 패턴을 학습합니다. 미세 조정은 더 작은 특정 데이터 세트를 기반으로 미리 학습된 모델에 더 많은 학습을 추가합니다. 이 보조 교육 단계는 특정 작업에서 더 나은 성능을 발휘하거나 특정 도메인을 이해하도록 모델을 조정하여 해당 특수 애플리케이션에 대한 정확도와 관련성을 향상시키는 것을 목표로 합니다. 미세 조정하는 동안 모델의 가중치는 이 작은 데이터 세트의 뉘앙스를 더 잘 예측하거나 이해하도록 조정됩니다.
몇 가지 고려 사항:
- 전문화: 미세 조정은 법적 문서 분석, 의료 텍스트 해석 또는 고객 서비스 상호 작용과 같은 특정 작업에 모델을 조정합니다. 이 특수화는 해당 영역에서 모델을 보다 효과적으로 만듭니다.
- 효율성: 모델을 처음부터 학습시키는 것보다 특정 작업에 대해 미리 학습된 모델을 미세 조정하는 것이 더 효율적입니다. 미세 조정을 수행하려면 더 적은 데이터와 적은 계산 리소스가 필요합니다.
- 적응성: 미세 조정을 사용하면 원래 학습 데이터의 일부가 아닌 새 작업 또는 도메인에 적응할 수 있습니다. LLM의 적응성을 통해 다양한 애플리케이션을 위한 다양한 도구를 사용할 수 있습니다.
- 향상된 성능: 모델이 원래 학습된 데이터와 다른 작업의 경우 미세 조정으로 인해 성능이 향상될 수 있습니다. 파인 튜닝은 새 도메인에서 사용되는 특정 언어, 스타일, 또는 용어를 이해할 수 있도록 모델을 조정하는 것입니다.
- 개인 설정: 일부 애플리케이션에서 미세 조정은 사용자 또는 조직의 특정 요구 사항 또는 기본 설정에 맞게 모델의 응답 또는 예측을 개인화하는 데 도움이 될 수 있습니다. 그러나 미세 조정에는 특정 단점과 제한 사항이 있습니다. 이러한 요인을 이해하면 RAG와 같은 대안과 미세 조정을 선택할 시기를 결정하는 데 도움이 될 수 있습니다.
- 데이터 요구 사항: 미세 조정을 수행하려면 대상 작업 또는 도메인과 관련된 충분히 크고 고품질의 데이터 세트가 필요합니다. 이 데이터 세트를 수집하고 큐레이팅하는 것은 어려울 수 있으며 리소스 집약적일 수 있습니다.
- 과잉 맞춤 위험: 특히 작은 데이터 세트의 경우 과잉 맞춤이 위험합니다. 과적합은 모델이 학습 데이터에서는 잘 작동하지만, 새로운 보지 못한 데이터에서는 성능이 저하됩니다. 과잉 맞춤이 발생할 때 일반화 가능성이 줄어듭니다.
- 비용 및 리소스: 처음부터 학습하는 것보다 리소스 집약적이 적지만 미세 조정에는 특히 대형 모델 및 데이터 세트의 경우 계산 리소스가 여전히 필요합니다. 일부 사용자 또는 프로젝트에는 비용이 많이 들 수 있습니다.
- 유지 관리 및 업데이트: 미세 조정된 모델은 시간이 지남에 따라 도메인별 정보가 변경됨에 따라 효과적인 상태를 유지하기 위해 정기적인 업데이트가 필요할 수 있습니다. 이 지속적인 유지 관리에는 추가 리소스 및 데이터가 필요합니다.
- 모델 드리프트: 모델이 특정 작업에 대해 미세 조정되므로 일반적인 언어 이해와 다양성이 손실될 수 있습니다. 이 현상을 모델 드리프트이라고 부릅니다.
모델을 미세 조정하여 사용자 지정하는 방법 모델을 미세 조정하는 방법을 설명합니다. 상위 수준에서 잠재적인 질문과 선호하는 답변의 JSON 데이터 세트를 제공합니다. 설명서에서는 50~100개의 질문 및 답변 쌍을 제공하여 눈에 띄는 개선 사항이 있음을 시사하지만, 사용 사례에 따라 적절한 수가 크게 달라집니다.
미세 조정 및 RAG
표면적으로는 미세 조정과 RAG 사이에 상당한 겹침이 있는 것처럼 보일 수 있습니다. 미세 조정 및 검색 보강 생성 중에서 선택하는 것은 성능 기대치, 리소스 가용성 및 도메인 특이성 및 일반화성에 대한 필요성을 포함하여 작업의 특정 요구 사항에 따라 달라집니다.
RAG 대신 미세 조정을 사용하는 경우:
- 작업별 성능: 특정 작업에 대한 고성능이 중요하고 상당한 과잉 맞춤 위험 없이 모델을 효과적으로 학습시킬 수 있는 충분한 도메인별 데이터가 있는 경우 미세 조정이 바람직합니다.
- 데이터 제어 방법: 기본 모델의 학습 데이터와 크게 다른 독점적이거나 고도로 특수화된 데이터가 있는 경우, 미세 조정 과정을 통해 이 고유한 지식을 모델에 통합할 수 있습니다.
- 실시간 업데이트대한 제한된 요구 사항: 작업에서 최신 정보로 모델을 지속적으로 업데이트할 필요가 없는 경우 RAG 모델은 일반적으로 최신 데이터를 끌어오기 위해 up-to-date 외부 데이터베이스 또는 인터넷에 액세스해야 하기 때문에 미세 조정이 더 효율적일 수 있습니다.
미세 조정을 하는 것보다 RAG를 선호하는 경우:
- 동적 콘텐츠 또는 진화하는 콘텐츠: RAG는 가장 최신 정보를 갖는 것이 중요한 작업에 더 적합합니다. RAG 모델은 외부 원본의 데이터를 실시간으로 가져올 수 있으므로 뉴스 생성 또는 최근 이벤트에 대한 질문에 답변하는 등의 애플리케이션에 더 적합합니다.
- 일반화가 전문화보다 우선: 좁은 분야에서의 탁월한 성능보다 다양한 주제에서 강력한 성능을 유지하는 것이 목표인 경우 RAG가 더 바람직할 수 있습니다. 외부 기술 자료 사용하여 특정 데이터 세트에 과잉 맞춤될 위험 없이 다양한 도메인에서 응답을 생성할 수 있습니다.
- 리소스 제약 조건: 데이터 수집 및 모델 학습에 대한 리소스가 제한된 조직의 경우 RAG 접근 방식을 사용하면 특히 기본 모델이 이미 원하는 작업에 대해 합리적으로 잘 수행되는 경우 미세 조정에 대한 비용 효율적인 대안을 제공할 수 있습니다.
애플리케이션 디자인에 대한 최종 고려 사항
다음은 애플리케이션 디자인 결정에 영향을 줄 수 있는 이 문서에서 고려해야 할 사항 및 기타 내용의 짧은 목록입니다.
- 애플리케이션의 특정 요구 사항에 따라 미세 조정과 RAG 중에서 결정합니다. 미세 조정은 특수 작업에 더 나은 성능을 제공할 수 있지만 RAG는 동적 애플리케이션에 대한 유연성과 up-to날짜 콘텐츠를 제공할 수 있습니다.