Spanner와 멀티 모델 기능은Google Cloud의 AI 서비스 및 오픈소스 프레임워크인 LangChain과 통합되어 생성형 AI 애플리케이션을 빌드하는 데 도움이 됩니다. 유사성 검색, 검색 증강 생성 (RAG), 지식 그래프와 같은 기능으로 애플리케이션을 개선할 수 있습니다. Spanner는 확장성, 가용성, 일관성을 기반으로 이 기능을 구축합니다.
벡터 검색으로 유사성 검색 수행
벡터 검색과 함께 Spanner를 사용하여 비정형 텍스트 데이터에 대한 유사성 검색을 구현합니다. Spanner는 Vertex AI와 같은 서비스와 통합되어 구조화되지 않은 텍스트 데이터에서 벡터 임베딩 생성을 호출합니다. 이러한 임베딩은 텍스트의 시맨틱 의미를 반영하는 숫자 표현입니다. 개념적으로 유사한 항목을 찾으려면 벡터 거리 함수를 사용하여 검색 요청의 임베딩과 가장 유사한 임베딩 벡터를 찾습니다. 이 프로세스를 통해 제품 또는 콘텐츠 추천과 같은 기능을 빌드할 수 있습니다.
시작하려면 기존 텍스트 데이터에 대해 Vertex AI 벡터 임베딩을 일괄 생성하고 백필하세요. SQL과 Vertex AI 임베딩 모델(예: 텍스트 임베딩 API 문서에 설명된 text-embedding
모델)을 사용하여 이 작업을 수행할 수 있습니다.
Spanner는 쿼리 벡터 임베딩과 함께 근사 최근접 이웃 (ANN) 및 K-최근접 이웃 (KNN)을 사용하는 것을 지원합니다. ANN은 벡터 색인을 사용하여 근사치의 결과를 반환하는 빠르고 확장 가능한 검색을 지원합니다. KNN은 더 정확한 결과를 반환하는 완전한 검색을 수행하지만 대규모 데이터 세트의 경우 속도가 느릴 수 있습니다. 여러 벡터 거리 함수를 사용하여 유사성을 측정할 수 있습니다.
코사인 거리: 두 벡터 간의 각도 코사인을 측정합니다. 크기에 관계없이 방향이 비슷한 항목을 찾는 데 유용합니다.
유클리드 거리: 두 벡터 간의 직선 거리를 측정합니다.
내적: 벡터 크기의 곱과 벡터 사이의 각도 코사인을 계산합니다. 이는 정규화된 벡터에 가장 계산적으로 효율적인 옵션일 수 있습니다.
자세한 내용은 다음 항목을 참조하세요.
SQL로 ML 예측 생성
Spanner에서 SQL 쿼리를 사용하여 Vertex AI에 배포된 대규모 언어 모델 (LLM)을 호출할 수 있습니다. LLM에 직접 액세스하면 Spanner에 저장된 데이터에 대해 감정 분석, 텍스트 분류, 번역과 같은 작업을 예측할 수 있습니다.
ML.PREDICT
(GoogleSQL) 또는 spanner.ML_PREDICT_ROW
(PostgreSQL) 함수를 사용하면 데이터를 이동하거나 LLM과 상호작용하기 위해 맞춤 애플리케이션 코드를 작성하지 않고도 머신러닝 (ML) 예측을 생성할 수 있습니다. 이렇게 하면 애플리케이션 아키텍처가 간소화되고 ML 기능을 데이터에 더 가깝게 가져올 수 있습니다. 자세한 내용은 SQL을 사용하여 ML 예측 생성을 참고하세요.
모델 컨텍스트 프로토콜 (MCP)을 사용하여 LLM 에이전트에 연결
Model Context Protocol (MCP)을 지원하는 IDE에 Spanner 인스턴스를 연결할 수 있습니다. MCP는 LLM을 Spanner의 데이터에 연결하는 데 사용할 수 있는 개방형 프로토콜입니다. 연결 후 LLM 에이전트가 Spanner 인스턴스를 쿼리하고 상호작용할 수 있습니다. 자세한 내용은 IDE를 Spanner에 연결을 참고하세요.
Spanner 그래프로 통계 파악
고급 RAG 사용 사례의 경우 Spanner Graph는 그래프 데이터베이스 기능을 Spanner의 핵심 강점과 통합합니다. Spanner Graph를 사용하면 연결성이 높은 데이터를 모델링, 저장, 쿼리할 수 있습니다.
LangChain과 Spanner Graph를 통합하여 GraphRAG 애플리케이션을 빌드합니다. 이 통합은 기존 RAG를 개선할 수 있습니다. GraphRAG를 사용하면 지식 그래프와 같이 항목 간의 복잡한 관계를 캡처하는 애플리케이션을 만들 수 있습니다. 통합은 벡터 검색 외에도 그래프 쿼리를 사용하여 데이터의 복잡한 암시적 관계를 포착합니다. 그래프 쿼리와 벡터 검색을 함께 사용하면 벡터 검색만 사용하는 것보다 LLM에서 더 정확하고 관련성 높은 답변을 얻을 수 있습니다.
자세한 내용은 Vertex AI 및 Spanner Graph를 사용하는 생성형 AI용 GraphRAG 인프라를 참고하세요.
LangChain을 사용하여 LLM 기반 애플리케이션 빌드
Spanner는 LangChain을 프로그래매틱 방식으로 사용할 수 있는 여러 클래스를 제공합니다. LangChain은 복잡한 LLM 워크플로를 간소화하는 구조, 도구, 구성요소를 제공하는 LLM 조정 프레임워크입니다. LangChain을 사용하여 생성형 AI 애플리케이션 및 RAG 워크플로를 빌드합니다. Spanner에 사용할 수 있는 LangChain 클래스는 다음과 같습니다.
SpannerVectorStore
: 클래스를 사용하여 애플리케이션 내에서 유사성 검색을 사용 설정하기 위해 벡터 임베딩을 저장하고 검색합니다.SpannerLoader
: 임베딩에 사용하거나 클래스를 사용하여 LLM 체인에 특정 컨텍스트를 제공하기 위해 Spanner에서 데이터를 로드합니다.SpannerChatMessageHistory
: Spanner 데이터베이스에 대화 기록을 저장하여 대화형 AI 애플리케이션을 사용 설정합니다.
자세한 내용은 LangChain을 사용하여 LLM 기반 애플리케이션 빌드 및 LangChain용 Spanner 클라이언트 라이브러리를 참고하세요.
사용 사례 탐색
Spanner의 AI 기능을 사용하여 다음과 같은 사용 사례를 위한 지능형 애플리케이션을 빌드하세요.
전자상거래 추천 엔진: 제품 설명의 벡터 임베딩을 생성하여 추천 엔진을 지원합니다. 이 엔진은 고객에게 유사한 상품을 추천하여 쇼핑 경험을 개선하고 매출을 늘릴 수 있습니다. 자세한 내용은 생성형 AI를 사용하여 전자상거래 애플리케이션에서 맞춤형 추천을 가져오는 방법을 참고하세요.
채팅 메시지 기록 관리: Spanner와 LangChain을 사용하여 대화 기록을 저장하고 검색합니다. Spanner는 이 데이터를 데이터베이스에 저장하고
SpannerChatMessageHistory
클래스를 제공합니다. 이 클래스는 LangChain 기본 클래스를 확장하여 데이터베이스에서 메시지를 저장하고 검색합니다. 자세한 내용은 Spanner와의 채팅 메시지 기록을 참고하세요.금융 사기 행위 감지: Spanner Graph를 사용하여 사용자, 계정, 거래 간의 복잡한 관계를 분석하여 기존 관계형 데이터베이스로는 감지하기 어려운 의심스러운 패턴과 이상치를 식별합니다.
다각적인 고객 파악: Spanner Graph를 사용하면 관계, 선호도, 구매 내역을 추적하여 고객을 종합적으로 파악할 수 있습니다. 이를 통해 맞춤 추천, 타겟팅된 마케팅 캠페인, 개선된 고객 서비스 경험을 제공할 수 있습니다.
소셜 네트워크: Spanner Graph로 사용자 활동 및 상호작용을 모델링하여 친구를 추천하고 소셜 네트워크에서 콘텐츠를 탐색합니다.
다음 단계
Spanner에서 AI 기능을 구현하는 방법을 자세히 알아보려면 다음 주제를 참고하세요.