검색 증강 세대의 기초, 2 부

검색 증강 세대의 기초, 2 부

마지막 게시물에서, 우리는 RAG (Respreval-Augmented Generation)의 기본 사항과 외부 지식 소스와 통합하여 LLMS (Lange Language Model)의 기능을 향상시키는 방법에 대해 논의했습니다. 또한 벡터 임베딩의 개념과 의미 검색에서의 역할을 도입했습니다.

이 게시물에서는 벡터 헝겊, 그래프 래그 및 에이전트를 포함하여 다양한 걸레 층에 더 깊이 빠져들게됩니다. 우리는 이러한 레이어를 어떻게 결합하여보다 강력하고 효과적인 AI 시스템을 만들 수 있는지 탐구합니다.

Genai 시스템은 층으로서 시스템

나는 최근에 Genai를 LLM, 시맨틱 검색, 검색 쿼리 (RAG 소스), 에이전트 등의 일련의 계층으로 생각하기 시작했습니다. 이러한 층 각각은 솔루션에 다양한 종류의 가치를 추가하여 사용자 정의, 잠재적으로 고품질 결과를 생성하고 환각의 위험을 줄일 수 있습니다.

내가 좋아하는 비교는 음식을 층화하는 것입니다. 추가 층은 더 많은 맛, 질감을 가져오고 전반적으로 음식을 개선 할 수 있지만 어느 시점에서는 너무 많은 층이 구개를 압도하거나 먹기가 어렵습니다.

층은 AI뿐만 아니라 음식을 향상시킬 수 있습니다

층은 AI뿐만 아니라 음식을 향상시킬 수 있습니다

추가 계층은 또한 복잡성을 추가하므로 각 구성 요소의 추가 복잡성이 사용 사례에 대한 번거 로움의 가치가 있는지 평가하기 위해 분석을 수행해야합니다. 비용이 혜택을받을 가치가 있다면 자신감을 갖도록하십시오. 그렇지 않다면 아마도 AI의 복잡성이 추가되지 않고 결과를 개선하기위한 간단한 접근법이있을 수 있습니다.

현재 Genai 풍경의 일부 레이어를 살펴 보겠습니다.

벡터 걸레

벡터 전용 걸레 ( “순진한 래그”라고도 함)는 LLM에 제공하려는 데이터에 대한 벡터 (임베딩)를 생성하고 벡터 유사성 검색을 사용하여 해당 데이터를 검색한다는 것을 의미합니다. 이 접근법은 대규모 데이터 세트에서 의미 적으로 관련된 정보를 검색하여 LLM이보다 정확하고 상황에 맞는 응답을 생성 할 수 있도록 매우 강력합니다.

다음은 벡터 데이터베이스의 데이터가 어떻게 보일 수 있는지에 대한 예입니다.

벡터 데이터베이스의 데이터

벡터 데이터베이스의 데이터

데이터베이스 솔루션 (벡터 데이터베이스)은 벡터 임베드의 스토리지, 검색 및 검색을 최적화하기 위해 발생했습니다. 많은 데이터베이스 (그래프, 관계형, 문서 등 포함)는 시맨틱 검색에 대한 벡터 임베딩 지원을 특수 모델에 통합했지만, 기본 벡터 데이터베이스에는 특정 워크로드에 대한 성능 최적화가 더 많을 수 있습니다.

벡터 데이터베이스는 많은 메타 데이터 또는 관련 엔티티를 저장하지 않고 벡터 임베딩을 저장하고 검색하기 위해 설계 및 최적화되었습니다. 또한 비슷한 것이 항상 관련성과 동일하지는 않습니다.

그래프 레이어가 데이터 포인트 간의 추가 컨텍스트와 관계를 제공하여 검색된 정보의 관련성을 향상시킬 수 있습니다. 이것은 복잡한 분석을 다룰 때 또는 데이터에 복잡한 관계가있는 경우에 특히 중요합니다.

그래프 걸레

GraphRag는 데이터 포인트 간의 관계를 활용하여 데이터의 연결 및 컨텍스트를 고려하여 검색 프로세스를 향상시키는 계층을 도입합니다. GraphRag는 벡터 유사성 검색의 강점을 그래프 데이터베이스의 연결된 데이터와 결합하여보다 미묘하고 관련 컨텍스트 검색을 가능하게합니다.

그래프 데이터베이스의 데이터

그래프 데이터베이스의 데이터

벡터 래그와 마찬가지로 그래프 래그는 가장 관련성이 높은 데이터 포인트를 찾기 위해 유사성 검색을 실행합니다. 다음으로, 검색 쿼리는 이러한 지점 주변의 관계를 가져 와서 데이터의 컨텍스트와 의미에 대한보다 포괄적 인 이해를 허용합니다.

그래프 데이터베이스는 복잡한 관계를 저장하고 쿼리하도록 설계되었으므로 데이터 포인트 간의 관계가 정보의 컨텍스트 또는 의미를 이해하는 데 중요한 시나리오에서 특히 유용합니다. LLM 일반 또는 광범위한 질문에 대해 생각하는 경우 LLM 지식 그래프에 액세스 할 수있게하면 특정 산업 정보 또는 덜 알려진 연구 주제 내에서 컨텍스트를 사용하여 확률을 좁힐 수 있습니다.

그래프 크래그는 특히 복잡한 도메인에서 생성 된 출력의 정확성과 관련성을 향상시키는 것으로 나타났습니다. 그러나 지식 그래프조차도 모든 관련 정보를 포함하지는 않을 수 있습니다.

이곳은 에이전트가 작용하여 작업을 수행하고 다양한 출처에서 정보를 검색하는 중개자 역할을합니다. 에이전트는 복잡한 프로세스를 일련의 단계로 분류하고 주어진 쿼리에 대해 가장 관련성이 높은 정보를 수집하도록 설계 될 수 있습니다.

AI 요원

AI 에이전트는 단순에서 복잡한 것까지 다양하며 설계 및 기능에 따라 하나 또는 여러 에이전트의 구성으로 배열 될 수 있습니다. 에이전트 시스템은 다양한 데이터 소스, API 및 기타 AI 시스템과 상호 작용하여 정보를 수집하고 작업을 자동화하며 출력을 생성 할 수 있습니다. 에이전트는 자동화 향상에 기여하지만 결정을 내리고 독립적으로 운영 할 수있는 자율 시스템을 향해 노력합니다.

에이전트 시스템 설계

에이전트 시스템 설계

에이전트는 Genai 시스템을 향상시키기위한 강력한 도구이지만 복잡성을 더합니다. 개발자는 에이전트가 액세스 할 수 있도록 여러 도구를 정의하고 조정하는 방법을 이해해야합니다. 이는 에이전트가 민감한 데이터와 상호 작용하거나 중대한 결과를 초래할 수있는 결정을 내리는 시나리오에서 특히 중요합니다.

에이전트 시스템의 설계는 간단한 규칙 기반 시스템에서 시간이 지남에 따라 학습하고 적응할 수있는 복잡한 다기 시스템에 이르기까지 다양 할 수 있습니다. 설계 선택은 특정 사용 사례와 필요한 복잡성 수준에 따라 다릅니다.

모델 컨텍스트 프로토콜 (MCP)

MCP (Model Context Protocol)는 Genai 커뮤니티에서 인기있는 주제였습니다. MCP는 a입니다 규약 LLM의 리소스 관리 모델 AS를 사용합니다 문맥. 외부 데이터 소스, 도구, 인프라 및 데이터 API를 LLM에 연결하기위한 템플릿과 비슷하며 외부 지식 소스에보다 효과적으로 액세스하고 활용하는 표준화 된 방법을 제공합니다.

지난 가을 (인체 론) 출시 이후 회사와 개발자는 도구 및 서비스를위한 MCP 서버를 만들어 자체 통합을 만들고 있습니다. MCP 프로토콜에는 MCP 호스트, MCP 클라이언트 및 MCP 서버의 세 가지 주요 구성 요소가 있습니다. 호스트는 사용자와 인터페이스하는 AI 응용 프로그램입니다 (예 : 채팅 또는 IDE). 클라이언트 (에이전트처럼 생각)는 다양한 서버 도구에 대한 연결을 보유하고 필요한 모든 리소스를 관리하고 요청시 조치를 취할 준비가되어 있습니다. 서버는 액세스해야 할 도구, 데이터 및 리소스를 노출시키기위한 백엔드입니다.

MCP 아키텍처 예

MCP 아키텍처 예

MCP를 식당처럼 생각한다면 MCP 호스트는 식당 호스트, MCP 고객은 웨이터이며 MCP 서버는 주방입니다. 호스트 (MCP 호스트)는 고객을 받아들이고 요청을 받고 좌석을 조직합니다. 웨이터 (클라이언트)는 고객으로부터 주문을 받아 주방 (서버)에 전달하여 음식 (데이터 또는 자원)을 준비하고 고객에게 전달하기 위해 웨이터에게 전달합니다. 웨이터는 고객과 주방 사이의 에이전트 역할을하며 두 당사자간에 정보/음식을 릴레이 할 준비가되어 있습니다.

MCP는 많은 약속을 보여 주지만 보안 격차, 관찰 가능성, 검증 된 MCP 구현 및 엔터프라이즈 고려 사항을 포함하여 신생 MCP 생태계 내에 현재 존재하는 위험이 있습니다. 새로운 기술과 마찬가지로 MCP를 신중하게 평가하고 시스템을 보호하고 책임감있게 사용하도록하기 위해 적절한 예방 조치를 취하는 것이 중요합니다.

MCP 프로토콜은 여전히 ​​발전하고 있으므로 엄격한 개선과 신흥 모범 사례를 볼 수 있으므로 개발자가 LLM 및 외부 지식 소스의 힘을 활용하는 AI 애플리케이션을 더 쉽게 구축하고 배포 할 수 있습니다.

더 알고 싶다면 NEO4J 블로그 게시물에 MCP를 시작하기위한 여러 타사 리소스가 있습니다.

무엇을 선택해야합니까?

그렇다면 사용할 레이어를 어떻게 선택합니까? 사용 사례와 데이터의 복잡성에 따라 다릅니다. 고려해야 할 많은 변형과 뉘앙스가 있으며, 최상의 결정은 특정 요구에 대한 최적의 솔루션을 찾기 위해 LLM 모델, 벡터 스토어 (데이터베이스) 및 에이전트 아키텍처의 여러 가지 조합을 테스트해야 할 것입니다.

벡터 유사성 검색은 사용 사례에 대한 충분한 정확도와 관련성을 제공합니까? 그렇다면 그래프 데이터베이스 또는 에이전트 시스템의 복잡성을 추가 할 필요가 없습니다. 결과가 컨텍스트가 없거나 높은 정확도가 중요하면 그래프 데이터베이스 접근 방식이 최선의 선택 일 수 있습니다. 통합 데이터 저장소를 실용적으로 만들기에는 너무 많은 흩어져 있고 일관되지 않은 데이터 소스가 있습니까? 아니면 다른 시스템으로 전송 해야하는 작업/데이터가 포함되어 있습니까? 그런 다음, 에이전트 시스템은 추가적인 복잡성의 가치가있을 수 있습니다. 또한 여러 도구, API 및 데이터 소스에 대한 사용자 정의 통합을 작성해야한다면 MCP (Model Context Protocol)가 귀중한 추가 일 수 있습니다.

마무리

이 블로그 게시물에서, 우리는 벡터 걸레, 그래프 래그 및 에이전트를 포함한 다양한 래그 층을 탐색했습니다. 우리는 이러한 계층을 어떻게 결합하여보다 강력하고 효과적인 AI 시스템을 만들 수 있으며, Genai 솔루션에 복잡성을 추가하는 데 관련된 트레이드 오프. 어떤 레이어를 사용할 레이어를 결정하기 위해 특정 사용 사례와 관련된 데이터를 이해하는 것이 중요합니다. 계층의 선택은 데이터의 복잡성, 필요한 정확도 수준 및 AI 시스템의 특정 목표에 따라 다릅니다.

이러한 개념을 이해함으로써 자신의 프로젝트 및 응용 프로그램에서 Rag를 활용하는 방법에 대한 정보에 근거한 결정을 내릴 수 있습니다. 생성 AI 분야가 계속 발전함에 따라 이러한 기본 개념을 최신 상태로 유지하는 것은 AI 기술의 모든 잠재력을 활용하는 데 중요 할 것입니다.

개발자, 데이터 과학자 또는 AI의 미래에 관심이있는 사람이든 Rag 및 그 구성 요소를 이해하면보다 효과적이고 안정적인 AI 시스템을 만들 수 있습니다.

행복한 코딩!

자원

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다