
VK, 비디오, Dzen 및 데이팅 서비스를 위한 자체 LLM 기반 통합 검색 레이어 'Discovery AI' 출시
요약
VK가 자체 LLM 기반의 통합 검색 레이어인 'Discovery AI'를 발표했습니다. 이 기술은 VK 비디오, Dzen 등 자사 서비스에 통합되어 0.5초 미만의 빠른 답변과 자연어 기반 매칭을 제공하지만, 외부 개발자를 위한 공개 API는 제공되지 않습니다.
핵심 포인트
- Discovery AI는 VK 서비스 내부 전용 신경망 검색 레이어임
- 0.5초 미만의 빠른 응답 속도와 Deep Research 모드 지원
- 자연어 질의를 통한 데이팅 앱 프로필 매칭 기능 포함
- 모델의 아키텍처나 파라미터 등 기술적 세부 사항은 미공개
검색창에 "정보 검색을 위한 신경망"이라고 입력하고, 일반 검색과 기사 읽기, 수동 선택을 모두 대체할 단 하나의 서비스를 기대합니다. 그러다 VK가 Discovery AI를 도입했다는 뉴스를 발견합니다. 첫 반응은 "좋아, 바로 이거야"일 것입니다. 하지만 보도 자료를 주의 깊게 읽어본 두 번째 반응은 "내 프로젝트에 이걸 어떻게 연결하지?"일 것입니다. 방법은 없습니다. 그리고 이것이 7월 1일의 사건에 대해 이해해야 할 핵심입니다.
차례대로 살펴보겠습니다. 정확히 무엇이 발표되었는지, 어디까지가 검증 가능한 사실이고 어디서부터가 보도 자료의 문구인지, 그리고 VK 서비스 위에 구축된 타인의 폐쇄적인 레이어가 아니라 당신의 제품 내부에서 정보를 검색하기 위한 자체 신경망이 필요하다면 무엇을 해야 하는지 알아보겠습니다.
VK가 2026년 7월 1일에 정확히 발표한 내용
핵심 사항: 2026년 7월 1일, VK는 Discovery AI 도입을 발표했습니다. 회사의 설명에 따르면, 이는 VK 자체의 거대 언어 모델 (LLM)을 기반으로 한 독자적인 신경망 검색 (Neural Search) 기술입니다 (출처: VK 보도 자료 및 CNews, 2026-07-01). 공개 API나 별도의 애플리케이션이 아니라, 내부적인 검색 및 추천 레이어입니다.
출처에서 언급된 이 레이어에 대한 내용은 다음과 같습니다:
- Discovery AI는 VK 비디오 (VK Video), Mail.ru Media 프로젝트 및 Dzen에 통합되었습니다 (VK, CNews, 2026-07-01).
- VK의 발표에 따르면, 이 시스템은 0.5초 미만으로 답변을 생성합니다 (VK, CNews, 2026-07-01).
- 자연어 질의를 통해 데이팅 앱에서 프로필 매칭을 지원합니다. 보도 자료에는 "산행을 함께할 사람을 찾아줘"와 같은 예시가 포함되어 있습니다 (VK, CNews, 2026-07-01).
- 사용자의 요청에 따라 주제를 심층적으로 분석하는 "Deep Research" 모드가 있습니다 (VK, CNews, 2026-07-01).
- VK의 실험적 AI 기술 부문 책임자인 Ilya Altukhov에 따르면, 이 시스템은 모든 VK 서비스의 데이터를 분석함으로써 사용자에게 개인적으로 흥미로운 정보의 검색을 가속화합니다 (VK, CNews, 2026-07-01).
별도의 맥락적 신호: 이번 발표는 7월 1일 당일에 열린 추천 시스템 관련 VK AI 미트업(meetup)과 시기가 맞물렸습니다. 즉, 이는 공개된 가격과 문서가 있는 패키지 제품(off-the-shelf product)의 출시가 아니라, 전문적인 플랫폼에서 기술에 대해 논의하는 자리였다는 의미입니다.
만약 당신이 해외 모델들을 활용해 자체적인 검색 로직을 병행하여 구축하고 싶다면, 이는 별개의 과제입니다. VPN 없이 하나의 API를 통해 Claude, GPT, Gemini, DeepSeek 및 Qwen에 접근할 수 있는 방법은 provod.ai가 제공합니다. 이 내용은 아래 코드 부분에서 다시 다루겠습니다.
⚠️ 중요: VK는 소스에서 모델의 기술적 세부 사항(크기 및 아키텍처)을 공개하지 않았습니다. 타 매체의 보도에 나오는 '수십억 개의 파라미터(parameters)'나 '컨텍스트 윈도우(context window)'에 관한 수치들은 릴리스의 사실이 아니라 추측일 뿐입니다. 여기에는 그러한 정보가 포함되지 않습니다.
왜 "정보 검색을 위한 신경망"이 단일 제품이 아닌가
핵심: "정보 검색을 위한 신경망"이라는 질의 자체는 마치 단일한 대상이 존재하는 것처럼 구성되어 있습니다. 하지만 실제로는 이 말 뒤에 세 가지 서로 다른 개념이 숨어 있으며, Discovery AI는 그중 하나일 뿐이며, 심지어 당신이 직접적으로 사용할 수도 없는 형태입니다.
이 질의의 실체를 분석해 보면 다음과 같습니다:
- 타사 서비스 내부에 내장된 신경망 검색. 이것이 바로 VK 비디오(VK Video)나 Dzen에 적용된 Discovery AI와 같은 형태입니다. 당신은 소비자로서 이를 사용하지만, 자신의 웹사이트나 봇에 내장할 수는 없습니다. 다른 대형 검색 엔진의 신경망 검색도 이와 유사하게 작동합니다.
- 자신의 데이터에 직접 연결하여 사용하는 엔진으로서의 언어 모델. 엔지니어들이 RAG(검색 증강 생성, Retrieval-Augmented Generation)라고 부르는 것입니다. 즉, 당신의 데이터베이스를 검색하고 모델이 답변을 생성하는 방식입니다. 내부 문서, 카탈로그 또는 대화 기록에 대해 "정보 검색을 위한 신경망"이 필요할 때 구축하는 것이 바로 이것입니다.
- 범용 채팅 어시스턴트. 질문을 던지면 모델이 가진 자체 지식을 바탕으로 답변을 제공합니다. 유용하지만, 당신의 최신 데이터를 검색하는 것은 아닙니다.
Discovery AI는 첫 번째 카테고리에 속합니다. "산행을 함께할 사람을 찾아줘"라는 예시는 VK 데이팅 서비스 내에서 자연어 (Natural Language) 기반의 프로필 매칭을 구현한 아주 좋은 사례입니다. 이는 VK 데이터에 대한 모델의 강력함을 보여주지만, 당신의 코드에서 이 엔진의 기능을 직접 호출할 수는 없습니다. 만약 두 번째 카테고리, 즉 자신의 데이터를 활용한 자체 검색 기능이 필요하다면 직접 구축해야 합니다. 이제 바로 그 부분에 대해 알아보겠습니다.
다양한 제품 위에 통합 레이어를 구축하는 방법
핵심: 이번 사건에서 편집자로서 흥미로운 점은 단순히 "또 하나의 AI 검색"이 등장했다는 사실이 아니라, 하나의 엔진이 비디오, 뉴스 컨텍스트, 데이팅과 같이 서로 성격이 다른 제품들을 서비스한다는 점입니다.
VK의 설명에 따르면, Discovery AI는 하나의 레이어로 상당히 다른 세 가지 과제를 해결합니다:
- 콘텐츠 추천 (Content Recommendation): VK 비디오와 Dzen에서 무엇을 보여줄지 결정합니다.
- 뉴스 컨텍스트 집계 (Aggregation of News Context): 다양한 미디어 소스로부터 특정 주제를 수집합니다.
- 자연어 기반 매칭 (Natural Language Matching): 데이팅 서비스에서 "산행을 함께할 사람"과 같은 요청을 이해하고 이를 프로필과 대조합니다.
Ilya Altukhov의 코멘트 중 핵심 문구는 "VK의 모든 서비스에 대한 데이터 분석"입니다. 바로 이러한 서로 다른 제품의 데이터에 대한 공통 접근성이 생태계 소유자에게 이 레이어를 가치 있게 만듭니다. 하나의 모델이 비디오, 피드, 앱에서의 사용자 행동을 모두 파악하고 이를 하나의 통합된 개인화 (Personalization)로 연결하기 때문입니다.
엔지니어로서 여기서 얻을 수 있는 실질적인 결론이 있습니다. 신경망 검색 (Neural Search)의 가치는 거의 언제나 모델 자체에 있지 않습니다. 모델이 어떤 데이터에 연결되어 있는지, 그리고 그 데이터가 어떻게 준비되었는지에 달려 있습니다. VK는 모든 서비스의 데이터를 이미 손에 쥐고 있습니다. 당신에게는 자신만의 데이터베이스가 있으며, 검색의 품질은 당신이 데이터를 어떻게 자르고(chunking), 인덱싱(indexing)하고, 모델에 제공하느냐에 따라 결정될 것입니다. 모델은 대체 가능하지만, 데이터는 대체 불가능합니다.
LLM 기반의 자체 검색을 구축하는 방법: 실행 단계
핵심: 자체 데이터를 활용한 최소한의 작동 가능한 신경망 검색 (Neural Search)은 텍스트를 벡터 데이터베이스 (Vector Database)에 인덱싱하고, 쿼리에 따라 유사한 조각을 검색한 뒤, 찾아낸 컨텍스트를 바탕으로 모델이 답변을 생성하는 것입니다. 아래는 핵심적인 프레임워크입니다.
군더더기 없는 단계:
- 소스 수집. 문서, 기사 또는 카드 데이터를 일반 텍스트로 추출합니다. 의미가 경계에서 끊기지 않도록 약간의 중첩(Overlap)을 두어 500~1000자 단위의 조각(Fragment)으로 나눕니다.
- 인덱스 구축. 조각들을 임베딩 모델 (Embedding Model)에 통과시켜 벡터를 생성하고, 이를 벡터 데이터베이스 (로컬 Qdrant 또는 Postgres의 pgvector가 적합함)에 저장합니다.
- 쿼리 처리. 입력된 질문에 대한 임베딩을 계산하고, 가장 유사한 상위 N개의 조각을 찾습니다.
- 답변 생성. 질문과 찾아낸 조각들을 LLM에 전달하되, 오직 컨텍스트에 기반해서만 답변하고 데이터에 답이 없다면 솔직하게 "찾을 수 없습니다"라고 작성하도록 지시합니다.
- 출처 표시. 원본 조각에 대한 링크를 반환합니다. 이것이 없다면 사용자는 사실과 환각 (Hallucination)을 구분할 수 없습니다.
다섯 번째 단계는 단순한 미적 요소가 아닙니다. 바로 이 단계가 신뢰할 수 있는 검색과 그럴싸한 수다를 가르는 기준입니다.

인증 및 코드: VPN 없이 모델을 사용하는 방법
핵심: 만약 OpenAI나 Anthropic의 익숙한 SDK를 사용하여 개발하고 있다면, 러시아에서 해외 모델에 접속하기 위해 코드를 변경할 필요가 없습니다. 키(Key)와 기본 주소(Base URL)만 바꾸면 됩니다.
provod.ai는 OpenAI 및 Anthropic SDK와 호환되는 단일 API를 제공합니다. 키와 base_url만 교체하면 나머지 코드는 그대로 유지됩니다. 결제는 해외 카드나 VPN 없이, 러시아 카드, SBP 또는 계좌 이체를 통해 하나의 루블 잔액으로 이루어집니다. 회계 처리를 위한 계약서, 인보이스 및 증빙 서류도 제공됩니다.
호환되는 클라이언트를 통해 찾아낸 컨텍스트를 바탕으로 답변을 생성하는 모습은 다음과 같습니다:
from openai import OpenAI
# 키와 주소 — 유일하게 변경되는 부분
...
키는 코드에 직접 넣지 말고 환경 변수(environment variable)나 비밀 관리자(secret manager)에 저장하세요. 위의 플레이스홀더 YOUR_PROVOD_KEY는 반드시 교체해야 하며, 절대로 리포지토리(repository)에 전송해서는 안 됩니다. 이 코드 조각에서 임베딩(embeddings)과 벡터 검색(vector search)을 의도적으로 생략한 이유는 사용자의 데이터베이스에 따라 달라지기 때문이며, 이 코드를 보여주는 핵심 목적은 모델 변경이 model=이라는 단 한 줄로 요약된다는 점을 보여주기 위함입니다.
비용과 모델 선택 가이드
핵심: 뉴로 검색(neuro-search)을 위해 항상 비싼 모델이 필요한 것은 아닙니다. 임베딩(embeddings)과 1차 필터링은 저렴한 모델로 수행하고, 최종 답변 생성 단계에서만 강력한 모델을 사용합니다.
RAG 파이프라인(RAG pipeline)에서의 합리적인 역할 분담:
| 단계 | 역할 | 권장 모델 | 이유 |
|---|---|---|---|
| 임베딩 (Embeddings) | 청크(fragments)와 쿼리(query)를 벡터화 | 저렴한 임베딩 모델 (embedding model) | 전체 코퍼스(corpus)에 대해 호출되므로 볼륨이 매우 큼 |
| ... |
'Deep Research'에 관한 참고 사항: VK의 출시 발표에서 이 명칭은 주제의 심층 분석을 위한 Discovery AI의 특정 모드 이름입니다 (VK, CNews, 2026-07-01). 다른 벤더(vendor)들의 동일한 이름의 모드와 혼동하지 마세요. 이는 마케팅 용어만 같을 뿐 서로 다른 제품입니다. 여러분은 검색의 여러 단계, 중간 결론 도출, 최종 조립 과정을 통해 이와 유사한 동작을 직접 구현할 수 있습니다.
러시아 관점에서의 솔직한 비교: 만약 작업 내용이 여러 모델 제품군 사이에서 쿼리를 라우팅(routing)하고 동일한 데이터로 모델들을 비교하는 것이라면, 5개의 SDK, 5개의 결제 방식, 5개의 우회 방법을 유지하는 것은 매우 불편합니다. provod.ai의 통합 루블 잔액과 단일 호환 API는 바로 이 지점을 해결해 줍니다. 이 애그리게이터(aggregator)는 Claude, GPT, Gemini, DeepSeek, Qwen을 하나의 채팅창과 하나의 API로 모아줍니다. 단, 이것이 GigaChat을 대체하거나 VK의 내부 모델에 대한 접근을 제공하는 것은 아닙니다. 이는 해외 모델 제품군을 비교하거나 그 사이를 전환해야 할 때 사용하는 접근 방식입니다.

n8n에서의 흔한 실수와 노코드(No-code) 구축
핵심: 신경망 검색(Neural Search) 실패의 주된 원인은 모델이 아니라 데이터와 출처 검증의 부재에 있습니다. 그리고 첫 번째 프로토타입은 코드 없이도 충분히 구축할 수 있습니다.
전형적인 실수들:
- 너무 큰 청크(Fragments). 모델이 필요한 사실이 노이즈 속에 섞여 있는 컨텍스트(Context)를 받게 되면, 엉뚱한 답변을 내놓습니다. 더 잘게 나누세요.
- 관련성 임계값(Relevance Threshold) 부재. 가장 가까운 청크조차 의미상 거리가 멀다면, 모델이 환각(Hallucination)을 일으키게 만들기보다 "찾을 수 없습니다"라고 정직하게 답변하는 것이 낫습니다.
- 출처 없는 답변. 사용자가 확인할 수 없다면 신뢰할 수 없습니다.
- API 오류 무시. 타임아웃(Timeout)과 제한(Limit)은 반드시 발생합니다. 호출을 재시도 로직(Retry with pause)으로 감싸고 응답 코드를 로그(Log)로 남기세요.
- 코드 내 비밀 정보 노출. 리포지토리(Repository)에 키를 저장하는 것은 예산 유출입니다. 반드시 환경 변수(Environment Variable)나 시크릿 매니저(Secret Manager)를 사용하세요.
프로그래밍 없이 n8n에서 프로토타입을 구축하는 노드(Node) 체인은 다음과 같습니다:
- 트리거(Trigger) — 들어오는 질문 (Webhook 또는 봇의 메시지).
- 벡터 데이터베이스(Vector Database)로의 HTTP Request — 상위 청크들을 가져옵니다.
- 호환 가능한 API로의 HTTP Request (
base_url은 위 코드와 동일하며, 키는 노드 본문이 아닌 n8n의 자격 증명(Credential)에 입력) — 답변을 생성합니다. - 출처 링크를 포함하여 사용자에게 답변을 전달합니다.
3단계에서 인증 오류가 발생한다면, 거의 항상 잘못된 base_url 때문이거나 키를 헤더(Header)가 아닌 일반 텍스트로 입력했기 때문입니다. 만약 답변이 비어 있거나 잘린다면, 컨텍스트가 제한을 초과하지 않았는지, 그리고 model 필드에 모델명이 오타 없이 작성되었는지 확인하세요.

AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기