10P by neo 15시간전 | ★ favorite | 댓글 1개
  • 오픈소스 모델과 도구(Milvus, LangChain 등)를 활용해 Deep Research 형태의 리서치 에이전트를 구현
  • 웹·문서 검색을 통해 주제나 질문에 대해 자동으로 심층 리서치를 수행하고, 중간 단계마다 행동(검색, 정리 등)을 선택하는 에이전트 구조를 구현하는 사례가 늘어났음
  • 본문에서는 이러한 아이디어를 확장한 DeepSearcher 오픈소스 프로젝트를 소개. 쿼리 라우팅, 조건부 실행 흐름, 웹 크롤링 도구 사용 등을 소개
  • DeepSearcher는 파이썬 라이브러리·CLI 형태로 제공되어, 여러 소스 문서를 입력받고 임베딩 모델 및 벡터 DB 설정을 파일로 간단히 조정할 수 있음
  • 간단하지만 에이전트 기반 RAG를 시연하는 사례로, 실제 AI 애플리케이션 개발로 이어지는 발판 역할을 할 수 있음
  • 특히 추론 모델의 속도와 효율성 문제가 강조되는데, 질의와 검색 과정에서 많은 토큰 생성이 필요해 추론 리소스가 병목이 됨
  • SambaNova의 맞춤형 하드웨어로 돌아가는 DeepSeek-R1 reasoning model을 사용하면 초당 토큰 생성 속도가 경쟁 서비스보다 빠르게 나옴
  • 이러한 클라우드 추론 서비스를 통해 Llama 3.x, Qwen2.5, QwQ 등 다양한 모델에 대해서도 효율적인 추론이 가능해짐

질문 정의 및 세분화

  • 초기 사용자 질의를 세부 하위 질의로 분해함
  • 이전 글과 유사하게, "How has The Simpsons changed over time?" 같은 질의가 아래와 같이 여러 하위 질의로 나누어짐
    • 예: 작품의 문화·사회적 영향, 시즌별 캐릭터·유머·서사 방식 변화, 애니메이션·제작 기술 변화, 시청자 반응 변화 등
  • 이후 단계에서 필요하다면 추가적으로 질문을 재정의하거나 확장하기도 함

리서치 및 분석

  • 하위 질의를 토대로 쿼리 라우팅, 벡터 검색, 반성(reflection), 그리고 조건부 반복 단계를 거침
  • 쿼리 라우팅
    • 여러 데이터베이스 컬렉션 중 어떤 것을 사용할지 LLM이 결정하도록 프롬프트를 구성함
    • JSON 형태 응답을 받아, 컬렉션별로 검색 질의를 생성하도록 함
  • 벡터 검색
    • Milvus에 저장된 임베딩을 활용해 유사도 검색을 실행함
    • 이전 글과 유사하게, 소스 데이터를 미리 분할하고 벡터화해둠
  • 반성(reflection)
    • LLM이 이전 단계에서 나온 질의·답변을 바탕으로 추가 정보가 필요한지 확인함
    • 부족한 부분이 있으면 새로운 하위 질의를 생성해 재검색을 시도함
  • 조건부 반복
    • 반성 결과 추가 질의가 필요하면 위 과정을 반복함
    • 더 이상 정보를 수집할 필요가 없다고 판단하면 최종 보고서를 생성하는 단계로 넘어감

최종 보고서 생성

  • 모든 하위 질의와 검색 결과를 종합해 하나의 프롬프트로 보고서를 생성함
  • 이전 시연보다 일관성과 응집력을 높인 형태의 보고서를 얻게 됨
  • 예를 들어, “How has The Simpsons changed over time?”에 대한 최종 보고서는 아래와 같은 구조로 상세 내용을 제공함
      1. 문화적 영향과 사회적 관련성
      1. 캐릭터·유머·스토리라인 진화
      1. 애니메이션·기술적 변화
      1. 시청자 층, 반응, 시청률 변화
    • 결론: 작품이 초기의 반항적 풍자에서 대중적 아이콘으로 변모한 과정 등
  • DeepSeek-R1 모델을 사용한 버전과 GPT-4o mini 모델로 생성한 버전 보고서를 비교할 수 있음

향후 방향

  • DeepSearcher는 아직 간단한 수준이나, 추가적 에이전트 구성, 보고서 구조화, 조건부 반복 확장 등으로 더 발전시킬 수 있음
  • 대규모 추론 모델은 매우 무거운 연산을 수반하므로, 추론 속도비용이 서비스의 핵심 이슈가 됨
  • SambaNova의 DeepSeek-R1 모델을 이용해 65회 추론 호출, 약 25k 입력 토큰과 22k 출력 토큰을 사용했으며, 약 0.30달러 비용으로 충분히 빠른 응답을 얻었다고 함
  • DeepSearcher 저장소에서 프로젝트를 직접 체험 가능하며, 앞으로도 추가 기능과 사례를 지속적으로 공유할 계획임
Hacker News 의견
  • 이 시스템은 로컬 LLM을 사용하지 않아서 진정한 로컬 시스템이 아님

    • Ollama와 LM Studio가 호스팅하는 로컬 LLM을 사용할 수 있는 깊은 검색기가 있는지 궁금함
  • HuggingFace의 오픈소스 버전과 비교가 궁금함

    • HF 버전은 웹을 탐색하고 결과를 수집한 후 평가하여 최종 결과를 합성하는 추론 LLM을 사용함
    • 이 버전은 웹 크롤링에서 생성된 문서의 벡터 저장소를 보여주는 것 같음
  • Grok의 구현의 마법은 대부분의 웹사이트를 캐시하고 있어서 매우 빠르게 느껴짐

    • Bing/Brave 검색은 그 기능을 제공하지 않는 것 같음
    • 이런 서비스가 존재하는지 궁금함
  • Deep Research에 대한 다양한 접근을 좋아함

    • Flow를 사용하여 새로운 워크플로우를 시도 중임
  • 관련된 두 개의 블로그 게시물이 있음

    • 오픈소스를 사용하여 Deep Research를 구축한 경험을 공유함
  • 주요 AI 회사들이 동일한 Deep Research 제품을 만들었으므로, 공유 오픈소스 플랫폼에 집중하는 것이 합리적일 것임

  • 웹 크롤링 통합의 실질적인 의미가 궁금함

    • 이론적으로 Sci-Hub에서 논문을 읽고 유효한 대학원 수준의 연구를 생성하는 데 사용될 수 있을지 궁금함
    • DeepSeek R1과 GPT-4o 및 다른 대형 모델을 사용하여 작성된 보고서를 비교하는 데 유용할 수 있음
    • 오픈소스 코드가 다양한 LLM의 한계를 더 빨리 드러내고 특정 필요에 맞는 더 나은 추론 루프 개발에 도움을 줄 수 있음
  • 개인 노트(Obsidian)와 웹에 연결할 수 있는 Deep Research 도구를 찾고 있었음

    • 이 도구가 그 기능을 가지고 있는 것 같음
    • 이제 남은 것은 Deep Research 결과를 Obsidian으로 내보내는 방법을 찾는 것임
  • 실제로 사용해 보았고 몇 가지 문제에 직면하여 openAI 텍스트 임베딩을 MilvusEmbedding으로 교체해야 했음

    • QuickStart의 반응이 좋았음
  • 진정한 마법의 총알은 lib-gen과 sci-hub를 검색하는 것임