Linux용 로컬 시맨틱 파일 검색 (Rust, llama.cpp, EmbeddingGemma 2)
요약
이 기술은 PDF, 오피스 파일, 스캔본 등 다양한 미디어 파일을 인덱싱하고 내용 기반으로 검색하는 로컬 시맨틱 검색 시스템입니다. EmbeddingGemma 2를 사용하여 텍스트, 이미지, 비디오 프레임 등을 통합 벡터 공간에 임베딩하며, llama.cpp와 Rust로 구현되어 오프라인 환경에서 높은 성능을 보여줍니다.
핵심 포인트
- 다양한 미디어(PDF, 스캔본, 오디오/비디오)를 인덱싱하여 검색 가능합니다.
- EmbeddingGemma 2가 멀티모달 임베딩을 담당하며, llama.cpp로 로컬 실행됩니다.
- Rust와 GTK 4로 구현되어 LLM이나 네트워크 연결 없이 작동합니다.
- Vulkan 인덱싱은 CPU 대비 약 3배 빠른 성능을 보여줍니다.
PDF, Office 파일, 스캔본, 스크린샷, 오디오 및 비디오를 인덱싱하고 내용으로 파일을 찾습니다. '언제 채용 동결을 결정했는지'와 같은 질의는 해당 초의 녹화본을 재생합니다. * EmbeddingGemma 2가 텍스트, 이미지, 비디오 프레임 및 30초 오디오 창을 하나의 벡터 공간에 임베딩하며, llama.cpp를 통해 인프로세스(in-process)로 실행됩니다 (CUDA, Vulkan 또는 CPU). 순위 지정은 하이브리드 방식입니다: 벡터 유사성 및 정확한 문자열 검색을 위한 SQLite FTS5를 사용합니다. OCR은 PaddleOCR을 사용합니다. 엔진은 Rust로, 애플리케이션은 GTK 4로 작성되었습니다. 모델 다운로드 후에는 LLM이나 네트워크 연결이 필요 없습니다. i5 노트북(Iris Xe)에서: 작은 테스트 세트의 파일 검색 시 95%의 정확도를 보이며, 키워드 결과는 약 4ms, 시맨틱 검색은 약 0.17초가 소요됩니다. Vulkan 인덱싱은 CPU보다 약 3배 빠릅니다. 부족한 기능: 오디오 전사(transcription), 패키지, 구형 데스크톱의 Wayland 단축키 지원. MIT 라이선스: https://github.com/pdstn12/Recall DigUp에서 영감을 받았습니다. DigUp은 Abdur Rahim이 만든 macOS 앱입니다. https://i.redd.it/7jvvwjndvquh1.gif /u/somthing_tn 님이 제출했습니다. [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기