localGPT 2.0 – 최고의 프라이빗 RAG 시스템 구축

채널 아이콘
Prompt Engineering 구독자 190,000명

요약

localGPT 2.0은 로컬 환경에서 개인 문서를 안전하게 검색·응답할 수 있는 프레임워크로, 하이브리드 검색·청킹·임베딩 모델 선택 등 다양한 인덱싱 옵션을 제공합니다. 트리 어드레스(자동 판단)와 컨텍스트 강화 검색을 통해 문맥을 보존하면서 필요한 정보만 효율적으로 가져옵니다. 또한 신뢰도 점수 기능, 복잡 질문 분해·서브쿼리 처리, 검증 단계까지 갖춰 정확도를 높였으며, 설치·실행 방법도 상세히 안내합니다.

주요 키워드

localGPT Retrieval Augmented Generation(RAG) 컨텍스추얼 리트리벌 하이브리드 검색 임베딩(embeddings) 청킹(chunking) 리랜킹(reranking) 프루닝(pruning) LLM Olama

하이라이트

  • 🚀 새로운 프레임워크 제공: localGPT 2.0은 다양한 하이퍼파라미터 실험·커스터마이징을 지원하는 모듈식 RAG 시스템입니다.
  • 🔑 완전 로컬 처리: 외부 API 호출 없이 모든 문서를 로컬 모델(Olama)로만 처리해 개인정보와 보안을 지켜줍니다.
  • ⚡️ 하이브리드 검색 추천: 밀집 임베딩과 풀텍스트 검색을 조합한 하이브리드 방식으로 높은 검색 성능을 경험할 수 있습니다.
  • 🌟 컨텍스트 강화 검색: 주변 청크 요약을 활용해 단일 청크가 아닌 다중 청크 문맥을 반영한 정확도를 제공합니다.
  • 📌 자동 판단·트리 어드레스: 질문 성격에 따라 LLM 자체 지식 사용 여부를 자동 분기해 가장 적합한 응답 경로를 택합니다.
  • 🔍 상세 리트리벌 파이프라인: 쿼리 분해, 서브쿼리 생성·재순위화·컨텍스트 확장·응답 생성까지 단계별 처리 과정을 시각화합니다.
  • 💡 신뢰도 점수 부여: 최종 답변에 대해 추가 LLM 평가를 거쳐 신뢰도 점수를 매김으로써 응답 품질을 모니터링합니다.
  • 🛠️ 손쉬운 설치·실행: GitHub v2 브랜치 클론, Conda 환경 설정, 백엔드·프론트엔드 서버 실행 등 단계별 가이드를 제공합니다.
  • 🔧 확장성 높은 설계: API 중심 구조로 UI 교체나 자체 애플리케이션 개발이 가능하며, 곧 비전 기반 검색도 도입 예정입니다.

용어 설명

RAG(Retrieval Augmented Generation)

검색된 문서 정보를 활용해 LLM이 응답을 생성하는 기법

청킹(chunking)

문서를 일정 단위(문장·페이지)로 분할해 인덱싱 및 검색 정확도를 높이는 과정

하이브리드 검색(hybrid search)

밀집 임베딩(dense embeddings)과 풀텍스트 검색을 결합한 검색 방식

컨텍스추얼 리트리벌(contextual retrieval)

주변 청크 요약을 같이 활용해 단일 청크만 독립적으로 다루지 않는 검색 기법

임베딩(embeddings)

텍스트를 벡터 공간에 매핑해 의미적 유사도를 계산하는 표현 방법

리랜킹(reranking)

검색된 청크를 재평가해 질문에 더 적합한 순서로 정렬하는 단계

프루닝(pruning)

검색된 청크 내에서 질문과 관련도가 높은 문장만 남기는 가공 과정

트리 어드레스(tree address)

LLM이 문서 검색 여부를 자동 판단해 자체 지식·히스토리 또는 인덱스를 선택하는 분기

[00:00:00] 인트로 및 개요

localGPT 2.0 프리뷰 공개와 주요 목적 설명. 완전 로컬 RAG 시스템으로 문서를 안전하게 채팅 처리할 수 있음을 소개합니다.

로컬 GPT 2.0 프리뷰 버전 출시 소개. 이는 검색 증강 생성의 독창적인 구현체로, 이전보다 프레임워크적 성격이 강해져 더 나은 검색 시스템 구현과 하이퍼파라미터 실험이 가능합니다.
로컬 GPT는 로컬 모델을 사용해 문서와 대화할 수 있는 오픈 소스 프로젝트입니다. 모든 것이 비공개로 처리되어 외부 API 사용이나 문서 전송이 없습니다.
새로운 버전의 인터페이스는 이전보다 훨씬 깔끔해졌습니다. 영상에서는 인덱싱과 검색 기능들을 먼저 보여주고, 후반부에 로컬 머신 설치 옵션들을 설명합니다.
[00:00:54] 인덱스 생성 및 UI

새 인덱스 생성, 기존 인덱스 선택, 로컬 모델 직접 채팅 등 세 가지 주요 옵션을 안내하며 새 인터페이스를 시연합니다.

로컬 GPT 로드 시 세 가지 옵션이 제공됩니다: 새 인덱스 생성, 기존 인덱스 선택, 로컬 모델과 직접 대화. 세 번째 옵션은 Ollama로 구동되어 사용 가능한 모든 LLM을 선택할 수 있습니다.
인덱스 생성 시 다양한 옵션이 제공됩니다. 검색을 위해 밀집 임베딩과 전체 텍스트 검색을 결합한 하이브리드 방식을 추천하며, 지연 청킹과 고 회수율 청킹 등의 기능도 있습니다.
[00:02:02] 인덱싱 옵션 상세

하이브리드 검색, 레이트 청킹, 하이 리콜 청킹 등 다양한 청킹 및 검색 옵션을 설명하고 실험을 권장합니다.

고 회수율 청킹은 문장 수준 청킹으로 더 정확한 청크를 제공하지만 인덱싱 시간이 오래 걸립니다. 다양한 옵션으로 여러 인덱스를 생성하고 테스트를 통해 최적의 조합을 찾는 것이 좋습니다.
인덱싱 작업이 다른 솔루션들보다 느린 이유와 다양한 임베딩 모델 선택 옵션에 대해 설명합니다.
[00:03:10] 임베딩 모델과 문서 개요

기본 제공되는 임베딩 모델(QUEN)과 Olama 호스팅 모델 선택 방법. 문서별 랜덤 청크 요약 개요 자동 생성 과정을 다룹니다.

문서의 각 청크에 대해 개요를 생성하는 방법과 모델이 자동으로 지식 소스를 선택하는 트리 주소 단계를 설명합니다.
맥락적 검색 방법을 소개하며, 각 청크 주변의 다섯 개 청크를 통해 지역적 맥락을 보존하는 방식을 설명합니다.
인덱싱 시작 과정과 백엔드 처리 방법을 보여주며, 인덱스 생성 후 하이퍼파라미터 확인 방법을 설명합니다.
[00:04:52] 트리 어드레스 & 컨텍스트 검색

질문 유형에 따라 자체 지식·히스토리 활용 또는 인덱스 검색을 자동 분기하는 트리 어드레스와 주변 청크 요약을 활용한 컨텍스트 강화 검색 기법을 설명합니다.

테스트를 위해 다양한 설정으로 여러 인덱스를 만들어 성능을 비교하는 방법을 권장합니다.
DeepSeq 3 논문과 O3 mini 시스템 카드를 포함한 검색 예시 인덱스를 소개하며, 청킹 옵션 선택 이유를 설명합니다.
[00:05:14] 실전 데모: DeepSeq3 & O3 mini

90~100페이지 분량 논문 인덱스를 불러와 검색 설정, 재순위화, 컨텍스트 확장 등의 과정을 시연하며 결과 청크와 개요를 확인합니다.

검색 파이프라인 맞춤 설정 방법과 복잡한 질문 분해 기능을 소개합니다.
복잡한 질문 분해 시 LLM을 사용하여 각 하위 질문에 대한 답변을 생성하거나, 모든 청크를 검색하여 최종 LLM에 직접 전달하는 두 가지 방법이 있습니다. 하이브리드 검색이 기본 설정이며, Quen 38억 모델을 기본으로 사용하지만 Ollama의 모든 모델을 사용할 수 있습니다.
성능은 사용하는 LLM에 따라 달라지며, 12-16GB VRAM을 가진 사용자를 고려하여 8억 모델을 기본으로 설정했습니다. 'Hi'와 같은 일반적인 질문에는 LLM이 직접 응답하며, Quen 모델은 사고하는 모델이므로 간단한 질문에도 사고 토큰을 사용합니다.
[00:07:00] 응답 검증 및 신뢰도 점수

최종 답변을 별도 LLM이 평가해 신뢰도 점수를 산출하는 검증 단계 소개 및 설정에서 비활성화하는 방법을 안내합니다.

일반적인 질문은 대부분 검색이나 RAG 파이프라인을 트리거하지 않습니다. 백그라운드에서는 생성된 문서 개요를 살펴보고, 각 질문에 대해 LLM이 문서 요약에 관련 정보가 있는지 판단합니다. 관련 정보가 있으면 RAG를 트리거하고, 없으면 LLM 지식만 사용합니다.
'이 문서들은 무엇에 관한 것인가'와 같은 질문에서는 문서 개요를 살펴볼 수도 있지만, 이 경우 바로 청크를 검색하기로 결정했습니다. RAG 파이프라인을 사용하는 질문들은 여러 단계를 거칩니다: RAG 사용 여부 결정, 하위 쿼리 생성, 컨텍스트 검색 및 순위 매기기, 컨텍스트 윈도우 확장, 하위 쿼리 답변 생성 등입니다.
단일 질문의 경우 바로 답변을 생성합니다. 시스템은 문서들이 주로 AI 모델의 평가, 위험 관리, 기술적 능력에 초점을 맞춘다고 답변했으며, 특히 안전성과 성능 측면에서 애플리케이션별 작업을 다룬다고 설명했습니다. GPT-4o mini 논문에서 일부 청크를 선택한 것으로 보이며, 형식상 수정이 필요한 작은 버그가 있습니다.
[00:08:24] 복잡 질문 분해

LLM으로 복잡 질문을 분해해 서브쿼리별 응답을 생성하는 기능을 시연하고, 실시간 스트리밍 효과를 통해 단계별 결과를 확인합니다.

화자가 현재 작업하고 있는 것이 프리뷰 버전임을 설명하며, 메인 브랜치가 아닌 특별한 브랜치에서 새로운 버전을 보여줄 것이라고 말한다.
시스템에서 기본적으로 답변과 함께 신뢰도 점수를 제공한다고 설명한다. 최종 답변을 생성한 후 컨텍스트와 질문을 다른 LLM으로 보내 평가하는 과정을 거치며, 이 기능은 필요에 따라 비활성화할 수 있다고 한다.
DeepSeek 3와 03 mini에 대해 이야기한 후, 실제로 관련된 질문을 해보자고 제안한다. DeepSeek v3 모델의 총 훈련 비용에 대해 질문하며 RAG 검색 파이프라인을 통해 진행되길 바란다고 말한다.
기본적으로 Qwen 3 8B 모델을 사용하고 있으며, 이는 추론이나 사고 모델이라고 설명한다. 먼저 추론이 스트리밍되고 그 다음에 최종 답변을 보게 된다고 한다.
DeepSeek v3의 총 훈련 비용이 명시적으로 557만 달러라고 답변이 나왔으며, 사전 훈련에 사용된 GPU 개수와 사용된 다양한 청크들을 설명한다.
컨텍스트 검색 또는 컨텍스트 강화 기능에 대해 설명한다. 각 청크마다 모든 청크 주변의 실행 창을 기반으로 한 요약을 추가하며, 현재 실행 창은 약 5개의 청크 정도라고 한다.
[00:10:52] 설치 방법 안내

GitHub v2 브랜치 클론, Conda 환경 생성, npm·NodeJS 요구사항, 의존성 설치 등 로컬 환경 구축 절차를 단계별로 안내합니다.

03와 관련된 질문을 해보자고 제안하며, 컨텍스트 핵 지식에 대해 이야기하는 섹션을 발견한다. 222개의 선택형 질문 세트가 있다는 것을 확인하고 03 모델의 핵 지식 테스트에 사용된 선택형 질문 개수를 질문한다.
시스템이 하위 질문을 만들고 최종 답변을 생성했다고 설명한다. 스트리밍할 때 사고 토큰의 포맷이 때때로 어긋나는 문제가 있어 해결해야 할 부분이라고 언급한다.
답변을 확인한 결과, 컨텍스트에서 명시적으로 222개의 선택형 질문이 모델 평가에서 핵 지식을 테스트하는 데 사용되었다고 나와있다고 설명한다.
컨텍스트에서 적절한 청크를 찾을 수 있을 때 검색 시스템이 매우 정확하다는 것을 보여주는 예시를 설명합니다.
기본적으로 20개의 청크를 검색하고 리랭커를 사용해 10개를 선택하며, 컨텍스트 윈도우로 더 확장할 수 있다고 설명합니다. 처음에는 10개로 시작해서 4-5개로 줄여서 성능을 테스트해보라고 추천합니다.
속도 향상을 위해 질문-답변 쌍에 캐시를 사용하는데, 같은 질문을 반복하면 캐시된 답변을 가져온다고 설명합니다. 원하는 답변을 얻지 못할 때는 질문을 수정해야 하며, '이 문서에 따르면'과 같은 표현을 사용하면 RAG 파이프라인을 사용하라는 신호가 됩니다.
[00:13:00] 실행 모드 및 개발 서버

단일 커맨드와 개발 모드(백엔드·RAG 파이프라인·프론트엔드)로 서버를 구동하는 두 가지 방법과 포트 충돌 해결 팁을 제시합니다.

복잡한 질문의 예시로 'DeepSeek V3와 O3 mini 모델의 전체 훈련 매개변수 수'를 질문합니다. 시스템이 이를 두 개의 하위 질문으로 나누어 중간 질문들에 대한 답변을 동시에 스트리밍하는 기능을 보여줍니다.
DeepSeek V3는 5610억 개의 훈련 매개변수를 가지고 있다고 컨텍스트에 명시되어 있지만, O3 mini의 매개변수 수는 제공된 컨텍스트에 언급되지 않았다고 정확하게 답변합니다. 시스템이 생성한 개별 답변들도 확인할 수 있습니다.
스트리밍에 문제가 있어서 질문에 두 번 답변하려고 했다고 언급하며, 이것이 프리뷰 버전이라 완전히 완성되지 않았다고 설명합니다. 사용자들에게 테스트해보고 발견한 문제점들을 알려달라고 요청하며, 질문 방식에서 매우 구체적으로 해야 한다고 강조합니다.
질문 시 키워드를 명시적으로 사용하는 것이 중요하며, 시스템이 이전 맥락을 참고하여 딥시퀀스 3와 O3 미니의 훈련 하드웨어 정보를 정확히 제공하는 방법을 설명합니다.
검색 정확성을 높이기 위해 명시적인 키워드 사용을 권장하며, 프루닝 옵션을 통해 청크 전체가 아닌 가장 관련성 높은 문장만 유지하는 방법을 소개합니다.
[00:16:00] PDF 품질 문제 & 비전 기반 검색

PDF 파싱 품질이 청킹 정확도에 미치는 영향과 비전 기반 검색 통합 계획을 설명하며, 향후 GPU 요구사항을 언급합니다.

드래그 노드 트리아지 옵션을 사용하면 LLM의 지식을 무시하고 항상 RAG 파이프라인을 사용하도록 강제할 수 있다고 설명합니다.
로컬 GPT 설정을 위해 GitHub 저장소의 v2 버전을 방문하여 별점을 주고, 새로운 문서를 통해 철학과 기능을 확인할 수 있다고 안내합니다.
현재는 PDF 파일만 지원하지만 곧 다른 비구조화된 파일도 지원할 예정이며, Docker 배포, 직접 배포, 수동 구성 요소 설정의 세 가지 설치 옵션이 제공됩니다.
API 우선 시스템으로 설계되어 자신만의 UI를 구축할 수 있으며, 모든 것이 문서화되어 있어 쉽게 애플리케이션을 개발할 수 있고, 기업 배포를 위한 개인 지원도 제공됩니다.
localGPT v2 브랜치에서 프로젝트를 클론하고 설치하는 과정을 시작합니다. git clone 명령어를 사용하여 v2 브랜치를 가져오고, 명령어 실행 중 발생한 오류를 수정하는 모습을 보여줍니다.
로컬 머신에 Python 가상환경을 설정하고 필요한 의존성을 설치합니다. NodeJS와 npm이 필요하며, conda를 사용해 Python 3.10 또는 3.11 환경을 생성하고 requirements.txt에서 패키지를 설치합니다.
localGPT 2.0의 주요 특징을 설명합니다. 순수 Python으로 구현되었으며, LangChain이나 Llama Index 등의 의존성 없이 RAG 시스템을 Python 자체에서 구현했다고 강조합니다.
시스템 실행 방법을 두 가지로 제시합니다. 첫 번째는 단일 명령어로 모든 서비스를 시작하는 방법이고, 두 번째는 개발 목적으로 백엔드 서버, RAG 시스템, 프론트엔드를 각각 별도로 실행하는 방법입니다.
세 개의 서비스를 개별적으로 실행하는 방법을 상세히 설명합니다. backend_server.py로 백엔드 API를 시작하고, rag_system.api_server로 RAG 파이프라인을 실행하며, npm rundev로 프론트엔드를 시작합니다.
포트 충돌 문제와 해결 방법을 설명하고, 새로운 인덱스 생성과 상호작용 과정을 안내합니다. 개별 서비스 실행 방법이 백엔드를 더 안정적으로 찾을 수 있다고 언급합니다.
청킹 과정의 중요성과 한계점을 설명합니다. PDF 파일 품질에 따라 Dockling의 파싱 성능이 달라지며, 향후 비전 기반 검색 통합을 고려하고 있지만 더 강력한 GPU가 필요할 것이라고 언급합니다.
프로젝트 마무리와 향후 계획을 설명합니다. 사용자들의 피드백을 수집하고 코드를 정리할 예정이며, 안정적인 버전이 완성되면 현재 브랜치가 메인 브랜치로 대체될 것이라고 안내합니다.
[00:22:26] 마무리 및 피드백 요청

별도 브랜치 유지 기간, 안정 버전 병합 예정 일정 공유. 사용자 피드백 수집 및 향후 개선 계획을 안내합니다.

타임라인 정보가 없습니다.

안녕하세요 여러분, 다시 만나뵙게 되어 기쁩니다. 오늘은
로컬 GPT의 프리뷰 버전을
출시하게 되었습니다. 이건 검색 증강 생성에 대한
독창적인 구현체입니다.
그리고 이 새로운 버전은
실제로 더 프레임워크적인 성격이 강해서
이 버전을 사용하여
더 나은 검색 시스템을 구현하고
다양한
하이퍼파라미터를 가지고 실험할 수 있습니다.
만약 로컬 GPT에 익숙하지 않으시다면,
이건 제가 직접 만든 오픈 소스 프로젝트로
로컬 모델을 사용해서 문서와 대화할 수 있게 해줍니다.
그래서 모든 것이 비공개입니다.
외부 API를 사용하지 않고 문서를
어디에도 보내지 않습니다. 이제 감을 잡을 수 있도록
말씀드리면,
이것이 이 새로운 버전의 인터페이스인데
이전 버전에 비해 훨씬 더 깔끔합니다.
이제 이 영상에서는 먼저
인덱싱과 검색을 위한
다양한 기능들을 보여드리고
영상 후반부에서는
여러분의 로컬 머신에
이것을 설치하기 위한
다양한 옵션들을 보여드리겠습니다.
참고로 저는 맥 OS에서
이것을 테스트하고 개발해왔습니다.
그래서 윈도우나 리눅스에서
실행하시면 여기저기 버그가 있을 수 있습니다.
새로운 버전의 로컬 GPT를 로드하면
이 화면을 보시게 될 것입니다.
첫 번째 옵션은 새로운 인덱스를 생성하는 것입니다.
두 번째는 기존 인덱스를 선택하는 것입니다.
여기 이미 생성된 다양한 인덱스들이
여러 개 있습니다.
그리고 세 번째는 이 버전의 로컬 GPT를 사용해서
로컬 모델과 직접 대화할 수 있다는 것입니다.
이것은 Ollama에 의해 구동됩니다.
그래서 Ollama에서 사용 가능한
모든 LLM을 가져오고
그 중 하나를 선택해서
상호작용을 시작할 수 있습니다.
첫 번째 메시지는 보통
Ollama에서 모델을 불러오는 중이라
가장 오래 걸릴 수 있지만
나중에는 속도가 개선됩니다.
자, 이제 돌아가서
인덱스를 생성할 때
사용할 수 있는 옵션들을
설명해드리겠습니다. 여기로 가보겠습니다.
여기에 제가 만든 다양한 인보이스들이
몇 개 있는 것 같습니다.
데모를 위해 이 중 몇 개를
선택해보겠습니다.
인보이스 데이터 V2라고 부르겠습니다.
검색을 위한 다양한 옵션들이 있습니다.
전체 텍스트 검색과 함께
밀집 임베딩을 사용할 수 있습니다.
하이브리드를 선택하는 것을
강력히 추천합니다. 또한
지연 청킹을 위한 구현도 있습니다.
기본적으로는 활성화되지 않습니다.
제 추천은 파일의
여러 다른 인덱스를 생성하고
다양한 질문들을 실행해서
어떤 조합이 여러분의 솔루션이나
문제에 가장 적합한지
알아보는 것입니다.
저는 이것들을 활성화하지 않겠습니다.
고 회수율 청킹이 있습니다.
이것은 기본적으로 문장 수준 청킹입니다.
훨씬 더 정확한 청크를 얻을 수 있지만
인덱싱 프로세스 자체가
시간이 오래 걸릴 것입니다.
지금 이 버전의 로컬 GPT를 사용하기 시작하면
인덱싱 작업이 보통
다른 솔루션들에 비해 훨씬 느리다는 것을 알 수 있습니다.
그 이유는 바로
이러한 다양한 옵션들 때문입니다.
이제 다양한 임베딩 모델을 선택할 수 있습니다.
여기서 보시는 Quen 임베딩 모델들이
기본적으로 제공됩니다.
처음 실행할 때는
이러한 모델들을 로컬로 다운로드하게 됩니다.
마지막에 보시는 다른 모델들은
Olama를 통해 호스팅됩니다.
만약 Olama에서 실행 중인 임베딩 모델이 있다면
해당 모델들도 가져올 수 있습니다.
이것을 선택하겠습니다.
이제 간단한 개요를 드리겠습니다.
아마도 앞으로
기술적 세부사항을 다룰
추가 비디오들이 있을 것입니다.
하지만 모든 문서에 대해
무작위로 몇 개의 청크를 선택하고
해당 문서들에 대한 개요를 생성합니다.
트리 주소 단계를 보여드리겠습니다.
모델이 자동으로 자체 지식을 사용할지
채팅 기록을 사용할지 또는
인덱스에서 문서를 검색할지를 결정합니다.
이를 위해 이러한
개요를 만들어야 하고
그 다음에 맥락적 검색이 있습니다.
이는 Anthropic에서 권장하는 접근법과
매우 유사하지만 전체 문서를 보는 대신
주어진 청크 주변의
다섯 개 청크만 보고
작은 요약을 생성합니다.
이렇게 하면 지역적 맥락을 보존할 수 있어
각 청크가 단순히 독립적이거나
분리된 것이 아니라
주변에 훨씬 많은 맥락을 가지게 됩니다.
이 두 옵션을 위해 상대적으로 작은
60억 모델을 사용하는데
이러한 작업들은 계산 집약적이기 때문입니다.
설정이 완료되면 인덱싱 시작을 클릭하면
인덱싱이 시작됩니다.
여기서 백엔드 처리가
일어나고 있습니다.
우리가 선택한 모든 옵션들이 적용됩니다.
여기서 초기 임베딩을 생성하거나
실제로는 로딩했습니다.
인덱스가 생성되면
자동으로 새로운 차트를 생성합니다.
인덱스를 클릭하면
선택한 모든 하이퍼파라미터를
볼 수 있습니다.
그래서 저는 최소한 테스트 데이터에 대해
다른 하이퍼파라미터와 다른 설정으로
여러 인덱스를 만들 것을 권장합니다.
그 다음 몇 가지 질문을 실행해보고
어떤 것이 잘 작동하는지 확인할 수 있습니다.
몇 가지 검색 예시를 보여드리기 위해
다른 인덱스를 살펴보겠습니다.
이 인덱스는 DeepSeq 3 논문과
O3 mini 시스템 카드를 가지고 있습니다.
총 90에서 100페이지 정도를 보고 있습니다.
이것을 클릭하면 인덱스 내의
두 파일을 볼 수 있습니다.
저는 높은 재현율 청킹이나
문장 수준 청킹을 사용하지 않았는데
너무 많은 다른 청크들을 갖게 될 것이기 때문입니다.
나머지 옵션들은
이전에 본 것과 매우 유사합니다.
설정으로 가면 실제로
검색 파이프라인을 맞춤 설정할 수도 있습니다.
다양한 옵션을 설정하고
토글할 수 있습니다.
예를 들어, 복잡한 질문들의 경우 이를 분해합니다.
이제 분해 기능의 경우에도
각 하위 질문에 대한 답변을 생성하기 위해 LLM을 사용하거나
아니면 모든 청크를 검색한 다음
이를 최종 LLM에 직접 전달하여
답변을 생성하도록 할 수 있습니다
따라서 이러한
하이퍼파라미터들도
조정할 수 있습니다. 검색 유형 측면에서는
하이브리드 검색이 있습니다
현재 이것이 기본값입니다. 그리고
다시 LLM의 경우, 기본적으로
Quen 38억 모델을 사용하고 있습니다. 하지만
기본적으로 Ollama에서 사용 가능한
모든 모델을 사용할 수 있습니다. 이제
성능은 실제로 사용하기로 결정한
LLM에 따라 크게 달라집니다. 하지만
데모 목적과 많은 사람들이
12GB 또는 16GB VRAM을 가지고 있을 것이기 때문에
8억 모델을 기본 모델로 유지하고 싶었습니다
좋습니다. 우리는 실험하면서
이러한 다양한 설정들을
살펴보겠습니다. 따라서
처음에 '안녕하세요'라고 말한다면
이것은 매우 일반적인 질문입니다. 따라서
LLM을 직접 사용하여 응답을 생성합니다
이제 Quen 모델들은 사고하는 모델입니다
따라서 이런 간단한 질문에 대해서도
일부 사고 토큰을 사용하게 됩니다
일반적인 질문을 하면 대부분의 경우
검색이나 RAG 파이프라인을
트리거하지 않습니다. 그렇게 하지 않는
몇 가지 실패 사례가 있으며
이는 모델 자체에서 기인합니다. 하지만
백그라운드에서 본질적으로 일어나는 일은
우리가 생성한 문서 개요들을 살펴보고
각 질문에 대해 LLM에게
해당 문서 요약들이 이 질문과
관련된 정보를 생성하는지 묻습니다
따라서 관련 정보가 있다고 판단하면
RAG 부분을 트리거하고
해당 문서에서 관련 정보를
찾지 못하면 LLM 지식만
사용하게 됩니다. 이제
'이 문서들은 무엇에 관한 것인가'와 같은
질문을 하면 문서 개요를
살펴볼 수 있는 시나리오가 있지만
이 경우에는 문서 개요를
살펴볼 수 있는 시나리오가 있지만
이 경우에는 바로 가서
일부 청크를 검색하기로 결정했다고 생각합니다
RAG 파이프라인을 사용하기로 결정한 질문들의 경우
여러 단계를 거친다는 것을 볼 수 있습니다
따라서 먼저 RAG 파이프라인을
사용할지 말지를 결정한 다음
하위 쿼리를 생성하고
컨텍스트를 검색하고 순위를 매기고
그런 다음 해당 청크들 주변의
컨텍스트 윈도우를 확장하고
하위 쿼리에 대한 답변을 생성합니다
이제 단일 질문인 경우
바로 답변을 생성합니다
따라서 이 문서들은 주로
평가 위험 관리와
AI 모델의 기술적 능력에 초점을 맞춘다고 하며
특히 안전성의 맥락에서
성능 애플리케이션별 작업을 다룬다고 합니다
GPT-4o mini 논문에서
일부 청크를 선택한 것 같습니다. 따라서
꽤 좋은 개요를 제공하죠? 그리고 여기에
사용한 다양한 청크들이 있습니다
이제 형식이 약간 이상하다는 것을 알 수 있습니다
이것은 제가 아직 수정해야 할 부분입니다
해결해야 할 작은 버그입니다
맞죠? 그래서 이것을 프리뷰 버전이라고 부르는 거예요.
메인 브랜치에는 올라가지 않겠지만,
이 새로운 버전을 위한 특별한 브랜치를 보여드릴게요.
기본적으로 답변과 함께 신뢰도 점수도 보게 될 거예요.
기본적으로 답변과 함께 신뢰도 점수도 보게 될 거예요.
본질적으로 일어나는 일은 이런 거예요.
최종 답변을 생성한 다음,
컨텍스트와 질문을 가져와서
이 최종 답변을 다른 LLM 호출로 보내서
평가하는 거죠. 이 기능은 비활성화할 수 있어요.
왜냐하면 그 자체로
질문의 복잡성에 따라 5-10초 정도
쉽게 걸릴 수 있거든요. 하지만
설정에서
답변 검증을 쉽게 비활성화할 수 있고
그러면 그 검증 단계는 보지 않게 될 거예요.
그러면 그 검증 단계는 보지 않게 될 거예요.
이제 DeepSeek 3와 03 mini에 대해 이야기했으니
실제로 관련된 질문을 해보죠.
그럼 이렇게 물어보죠.
DeepSeek v3 모델의
총 훈련 비용은 얼마인가요?
총 훈련 비용은 얼마인가요?
이제 RAG나 검색 파이프라인을 통해
진행되길 바라요.
답변을 생성하고 있어요.
기다려보죠. 기본적으로 저는
Qwen 3 8B 모델을 사용하고 있는데
이건 추론이나 사고 모델이에요.
그래서 먼저 추론이 스트리밍되는 걸 보고
그 다음에 최종 답변을 보게 될 거예요.
이것을 비추론 모델로 쉽게 바꿀 수 있지만
그 경우 프롬프트 자체에
약간의 작업이 필요할 수 있어요.
좋아요. 여기서 DeepSeek v3의
총 훈련 비용은
명시적으로 557만 달러라고 나와있어요.
그리고 사전 훈련에 사용된
GPU 개수를 설명하고 있어요.
이것들이 사용된
다양한 청크들이에요.
이제 컨텍스트 또는
컨텍스트 검색을 사용했는데
아마 더 적절한 이름은
컨텍스트 강화일 거예요.
각 청크마다 모든 청크 주변의
실행 창을 기반으로 한 요약을 추가할 거예요.
현재 실행 창은
약 5개의 청크 정도예요.
약 5개의 청크 정도예요.
이제 03와 관련된
질문을 해보죠. 흥미로운 질문을 찾을 수 있는지 봅시다.
흥미로운 질문을 찾을 수 있는지 봅시다.
이 섹션은
컨텍스트 핵 지식에 대해 실제로 이야기하고 있어요.
좋아요. 봅시다.
222개의 선택형 질문 세트가 있어요.
실제로 이걸 물어보죠.
03 모델의 핵 지식을 테스트하는 데
사용된 선택형 질문은 몇 개인가요?
어떻게 될지 봅시다.
다시 하위 질문을 만들었어요.
여기서 최종 답변을 생성했어요.
스트리밍할 때 사고 토큰의
포맷이 때때로 약간 어긋나요.
이건 여전히
해결해야 할 문제예요.
하지만 여기 사고 토큰들이 있어요.
이게 사용된 총 컨텍스트예요.
각 청크의 모든 512개 토큰을 보여주지 않는 것 같아요.
그건 제가 확인해야 할 부분이에요.
하지만 답변을 보면
컨텍스트에서 명시적으로 222개의
선택형 질문이 모델 평가에서
핵 지식을 테스트하는 데 사용되었다고 나와있어요.
구체적으로 컨텍스트에서는
언급에 대한 내용입니다. 여기는 컨텍스트에서 가져온 일부 내용이라고 생각됩니다.
맞죠? 보시다시피
컨텍스트에서 적절한 청크를 찾을 수 있을 때는
실제로 꽤 정확합니다.
컨텍스트에서요.
이제 기본적으로 여기를 보시면
처음에 20개의 청크를 검색하게 됩니다.
그런 다음 리랭커를 사용하면
10개의 청크를 순위를 매기거나 20개 중에서
상위 10개 청크를 선택하게 됩니다.
그리고 이 컨텍스트 윈도우를 활성화하면
더 확장됩니다. 맞죠?
제 추천은 처음에는 10개로 시작하되
그 다음 4개나 5개 정도로
줄여보시고 비슷한 성능을 얻을 수 있는지
확인해보세요.
이제 한 가지 문제는 속도를 높이기 위해
질문-답변 쌍에 대해 캐시를 사용하고 있다는 것입니다.
그래서 만약 같은 질문을
다시 한다면... 실제로 확인해볼 수 있을지
예시로 보여드리자면
정확히 같은 질문을 사용하면
캐시된 답변을 그냥 가져오게 됩니다.
맞죠? 그래서 때로는
원하는 답변을 얻지 못할 때
질문을 조금 수정해야 할 수도 있습니다.
그리고 보통은
'이 문서에 따르면'과 같은 표현을
넣으면 많은 도움이 됩니다.
맞죠? 그러면 시스템이
자체 지식으로 답변하려고 하지 않고
RAG 파이프라인을 사용하라는
신호가 됩니다.
좋습니다. 한 가지 더
기능을 보여드리겠습니다.
만약 'DeepSeek V3와 O3 mini 모델의
전체 훈련 매개변수 수는 얼마인가요?'와 같은
질문을 한다면
이 질문을 보내보겠습니다.
이는 상당히 복잡한 질문입니다.
이에 대해 검색을 시도하면
문제가 발생할 것입니다.
하지만 여기서 보시면 이것을 두 개의
하위 질문으로 나누었고
이제 생성된
중간 질문들에 대한 답변을
스트리밍하고 있습니다.
맞죠? 그래서 때로는
동시에 스트리밍하는 것을 보실 수 있는데
이는 정말 멋진 효과라고 생각합니다.
좋습니다. 여기서
최종 답변을 얻었습니다.
DeepSeek V3의 전체 훈련 매개변수 수는
5610억 개라고 합니다.
이는 컨텍스트에 명시적으로 나와 있습니다.
그리고 O3 mini의 경우
전체 훈련 매개변수 수는
제공된 컨텍스트에 언급되어 있지 않습니다.
스니펫은 성능 지표,
벤치마크, 평가에 중점을 두고 있습니다.
O3 mini의 크기를 모르기 때문에
이는 실제로 정확합니다.
하지만 시스템이 생성하려고 했던
개별 답변들도 확인할 수 있습니다.
질문 중 하나에 대해
두 번 답변하려고 했던 것 같습니다.
흥미롭습니다. 아마
스트리밍에 문제가 있는 것 같습니다.
그래서 이를 해결해야 할 것 같고
그래서 이것이 프리뷰 버전이라고 하는 것입니다.
완전히 완성된 것은 아닙니다.
테스트해보시고
어떤 다른 문제들을 겪고 있는지
알려주시기를 강력히 추천합니다.
한 가지는 질문에 답변하는 방식에서
매우 구체적으로 해야 한다는 것입니다.
키워드를 사용하세요. 여기서 두 모델 모두 언급했는데
이전 맥락을 보고 올바르게 두 개의 답변을 만들어냅니다.
첫 번째는 딥시퀀스 3 훈련에 사용된
훈련 하드웨어이고
다른 하나는 O3 미니입니다. 하지만
경우에 따라 질문을 할 때
이전 차트를 기반으로 향상될 수 있는 질문이라면
올바르게 선택하지 못할 수도 있습니다.
그래서 매우 명시적으로 표현하는 것이 좋습니다.
예를 들어, 딥시퀀스 3와
O3 미니 훈련에 사용된 훈련 하드웨어가
무엇인가와 같은 키워드를 사용할 수 있습니다.
맞죠? 이렇게 하면
더 나은 검색 가능성이 높아집니다.
딥시퀀스 3의 숫자는 올바르게 선택했지만
O3 미니는 언급되지 않았습니다. 좋습니다.
제가 강력히 추천하는 또 다른 옵션은
재순위화되거나 순위가 매겨진 청크의 수를 파악한 다음
프루닝도 고려해보는 것입니다.
청크를 순위화할 때 청크의 모든 텍스트가
실제로 질문과 관련이 있는 것은 아니기 때문에
이것이 도움이 됩니다. 맞죠?
프루닝은 문장 수준 프루닝을 수행하여
전체 청크보다는 가장 관련성 높은 문장만
유지합니다.
이 주제에 대한 이전 영상을 만들었습니다.
영상 설명에 링크를 달아두겠습니다.
하지만 이 새로운 버전으로 로컬 GPT를
자신의 머신에 설정하는 방법을 보여드리겠습니다.
실제로 그 전에
드래그 노드 트리아지라는 옵션이 있습니다.
이것을 선택하거나 토글하면
시스템이 항상 검색 파이프라인을 사용하도록
강제합니다. 맞죠?
그래서 LLM의 지식을 완전히 무시하고
항상 RAG 파이프라인을 사용하게 됩니다.
맞죠? 좋습니다. 설정하기 위해
로컬 GPT GitHub 저장소로 가면
여기서 이 로컬 GPT v2를 볼 수 있습니다.
만약 이 프로젝트가 지금까지 유용했다면
GitHub에서 별점을 주세요.
정말 감사하겠습니다.
이것이 새로운 버전의 문서입니다.
철학과 다양한 기능에 대해 설명하고 있습니다.
현재는 PDF 파일만 지원하지만
다른 모든 비구조화된 파일에 대한 지원도
곧 제공될 예정입니다.
설치를 위한 세 가지 옵션이 있습니다.
하나는 Docker 배포,
다른 하나는 직접 배포,
그리고 수동 구성 요소 설정이 있습니다.
지금은 가장 쉬운 방법을 보여드리겠습니다.
다른 영상에서는
이 모든 다양한 옵션들을 살펴보겠습니다.
다양한 API에 대한 자세한 문서도 있습니다.
API 우선입니다.
원한다면 자신만의 UI를 만들 수 있습니다.
현재 UI를 사용할 필요가 없습니다.
맞죠? 그리고 모든 것이 문서화되어 있습니다.
따라서 이것 위에 자신만의 애플리케이션을
쉽게 만들 수 있습니다.
또한 기업이고 로컬 GPT를 배포하고 싶다면
마지막에 양식이 있습니다.
작성하시면 개인적으로 도움을 드리겠습니다.
이것이 메인 브랜치에 있지 않기 때문에
그래서 모든 것이 문서화되어 있습니다.
따라서 이것 위에 자신만의 애플리케이션을
쉽게 만들 수 있습니다.
또한 기업이고 로컬 GPT를 배포하고 싶다면
마지막에 양식이 있습니다.
작성하시면 개인적으로 도움을 드리겠습니다.
이것이 메인 브랜치에 있지 않기 때문에
이 브랜치에서 클론해야 합니다.
이를 위해 다음 명령어를 사용하세요.
이 브랜치에서 클론해야 합니다.
이 명령어를 사용하면 됩니다.
기본적으로 이것은 로컬
GPT v2 브랜치이고 우리는
local GPT라는 폴더를 만들 것입니다.
실제로 이것을 복사해서 제 시스템에서
보여드리겠습니다. 이 명령어를
붙여넣겠습니다. 하지만 제가
local이라는 폴더를 만들고 싶다면...
실제로 무슨 일이 일어났죠? 아, 이것은
그 브랜치에서 git clone이어야 합니다.
네, 실제로 이것을 수정해야 할 것 같습니다.
Local GPT v2를 확인해보겠습니다.
이것이 작동하기를 바랍니다. 좋습니다.
그 명령어를 수정하겠습니다. 버그를 발견했습니다.
그럼 cd local로 이동합니다.
우리는 이제 local GPT2 브랜치에 있습니다.
그리고 여기 모든 파일들이 있습니다.
이제 로컬 머신에 npm이 설치되어 있어야 합니다.
또는 NodeJS가 필요하며 이것은 요구사항 중 하나입니다.
맞습니다. 다음 단계는
npm을 설치하는 것입니다.
실제로 conda 환경을 만들어보겠습니다.
local python이라고 부르겠습니다.
Python 3.11을 사용하거나
3.10도 잘 작동할 것입니다.
이것을 실행해보겠습니다. 좋습니다.
가상 환경이 생성되었습니다.
이것을 활성화하겠습니다.
보시다시피 우리가 사용하는
가상 환경입니다.
이제 requirements.txt에서 요구사항을 설치하겠습니다.
좋습니다. 설치가 완료되었습니다.
이제 제가 언급하는 것을 깜빡한 또 다른 것은
순수 Python이라는 것입니다.
의존성이 최소화되어 있습니다.
lang chain이나 lama index를 사용하지 않습니다.
전체 RAG 설정이 실제로
Python 자체에서 구현되었습니다.
그렇죠? 따라서 많은 의존성
문제에 직면하지 않을 것입니다.
이것을 실행하기 위해서는
두 가지 방법이 있습니다. 하나는 python system을 실행하는 것입니다.
백엔드 서버를 시작하고
프론트엔드 서버를 시작하여
바로 사용할 수 있게 됩니다.
제가 보여드릴 다른 방법은
세 개의 다른 파일을 실행하는 것입니다.
하지만 그것은 아마도 개발 목적으로
가장 좋을 것입니다.
다른 서비스들을 시작했습니다.
이것을 시작하기 전에 Ola가 실행되어야 합니다.
프론트엔드에 접근하려면
로컬 호스트에서 이것에 접근하면 됩니다.
제가 강력히 권장하는 두 번째 방법은
특히 초기 개발 목적으로
세 개의 다른 탭을 여는 것입니다.
실제로 이것은 제가 이전에 만든
가상 환경이었습니다.
첫 번째에서는
backend_server.py를 실행하고 싶습니다.
이것은 백엔드 API를 시작할 것입니다.
그다음 rag_system.api_server를
시작하겠습니다.
좋습니다. 이것이 주요 RAG 파이프라인입니다.
좋습니다. 이것을 시작하고 있습니다.
마지막 하나는 npm rundev입니다.
좋습니다. 이것은 우리 프론트엔드를 시작할 것입니다.
이제 포트 3000의 로컬 호스트로 가면
모든 것이 실행되고 있는 것을 볼 수 있습니다.
때로는 첫 번째 방법으로 다른 세션이
같은 포트를 사용하고 있으면
일부 문제가 발생할 수 있습니다.
하지만 이 방법으로는 보통
백엔드를 쉽게 찾을 수 있습니다.
다시 새로운 인덱스를 만들고
상호작용을 시작하는 동일한 단계를
진행하겠습니다.
이 비디오를 끝내기 전에
한 가지 더 말씀드리고 싶은 것은
청킹 과정이 PDF 파일의
품질에 정말 의존적이라는 것입니다.
맞죠? Dockling이 PDF 파일을
올바르게 파싱할 수 없다면
파이프라인의 나머지 부분이
일부 문제에 직면할 수 있습니다.
그렇죠? 저는 실제로
비전 기반 검색을
로컬 GPT의 일부로 통합하는 것을
생각하고 있습니다. 하지만
그러려면 훨씬 더 좋은 GPU가 필요합니다.
여러 모델을 실행하게 되고
비전 모델은 보통 훨씬 더
많은 리소스를 필요로 하기 때문입니다.
좋습니다. 이것은 새로운
로컬 GPT의 간단한 소개였습니다.
이것을 가지고 놀아보시고
로컬 머신에 설치해보시고
어떤 문제에 직면하는지 알려주세요.
그 모든 것을 해결하고 싶습니다.
기존 코드 설정을 정리하겠습니다.
이것은 앞으로 몇 주 동안
별도의 브랜치로 남을 것입니다.
하지만 안정적인 버전이 나오면
이것이 더 새로운 버전이나
로컬 GPT의 이전 버전을 대체하고
메인 브랜치가 될 것입니다.
이 프로젝트가 우리를 어디로 이끌지
정말 기대됩니다. 피드백을 주시고
이 비디오가 유용했기를 바랍니다.