Blog
Engineering & Product Updates
Deep-dives on embedding infrastructure, vector migration, and building reliable AI retrieval systems.
왜 요즘 RAG에는 BM25와 그래프가 없어도 벡터는 있어야 하는가
BM25는 단어를 찾고, 그래프는 관계를 따라간다. 하지만 자연어 질문과 문서 표현 사이의 간극을 먼저 메우는 것은 벡터 검색이다.
한국어 Legal RAG에서 PII를 먼저 지우는 이유
공개 Korean PII 모델 두 개와 Schift STRONG v2를 같은 gate에서 비교했다. KDPII도 mapped subset으로 돌려보고, 우리가 이긴 범위와 아직 주장하지 않을 범위를 분리한다.
기능이 늘어난 엔진을 더 빠르게 만들기
현재 production engine image와 새 engine build를 같은 amd64 Docker/RPC 조건에서 비교했다. Graph, hybrid keyword, content lookup까지 포함한 실제 RAG workload에서 어떤 변화가 있었는지 기록한다.
온톨로지가 당신 회사에 필요 없을 가능성이 큰 이유
AI 시대의 의미 인프라라는 말이 자주 빠뜨리는 것들입니다. 온톨로지를 깎아내리려는 글이 아니라, 헷갈리지 않고 결재 전에 확인해야 할 기준을 정리한 글이에요.
왜 RAG에는 decision layer가 필요할까?
검색은 됐는데 답은 흔들리는 순간이 있습니다. 최근 retrieval 뒤에 rerank와 corrective retrieval을 붙이는 방향을 검토하면서, 결국 필요한 것은 더 큰 모델보다 decision layer라는 쪽으로 생각이 정리됐습니다.
RAGBench covidqa: top_k는 7이 sweet spot이었다
Schift retrieval stack으로 RAGBench covidqa를 end-to-end로 돌려 보니, 현재 설정에서는 rerank보다 no-rerank가 낫고 top_k=7이 가장 균형이 좋았다.
Schift가 뭔데?
자료를 넣으면 dirty work를 다 해서 깔끔한 graph-vector DB로 만들어주는 프로덕트입니다.
LongMemEval 벤치마크: 자체 스택으로 96% R@5
대화 기억 검색 벤치마크 LongMemEval에서 Schift Engine + schift-embed-1으로 96% Recall@5를 달성했습니다. 7가지 retrieval 전략 실험 기록.
LongMemEval: 96% R@5 with our own stack
We ran the LongMemEval conversation memory benchmark on Schift Engine with our own embedding model. No ChromaDB, no external dependencies. Here's what worked and what didn't.
RAG Is Not Vector Search
Vector search is step 3 of 8. Here's the full checklist for production RAG -- and what breaks when you skip steps.
우리 엔진이 Qdrant보다 8.7배 빠른 이유
Schift 벡터 엔진의 실측 벤치마크를 공개한다. 이기는 곳, 지는 곳 모두 투명하게. Apple M5 Pro, 1M vectors, 1024d 기준으로 Qdrant, FAISS, pgvector와 비교했다.
自作ベクトルエンジンをQdrant・FAISSと比較してみた(1M vectors, 1024d)
Rustで書いたベクトル検索エンジンSchiftのベンチマークを取ってみました。Qdrantに8.7倍勝ち、FAISS Flatには負けます。勝つところも負けるところも全部出します。
pgvectorの限界を1M vectorsで実測してみた話
pgvectorは小規模ベクトル検索に便利だが、どこから専用エンジンが必要になるのか。Rust製エンジン・FAISS・Qdrantと比較しながら、境界線を数字で示します。
TypeScriptでAI Agentフレームワークを作っている理由
AI agentツールはPythonばかり。でもproductionアプリはTypeScript。このギャップがつらいので、自分たちで作ることにした話。
pgvector Is Not a Vector Database (And That's Fine)
pgvector is a solid choice for adding vector search to Postgres at low scale. But when does it stop being enough? We ran the numbers.
Why We're Building an AI Agent Framework in TypeScript
The AI agent tooling ecosystem is dominated by Python. But production applications are TypeScript. We think that mismatch has a real cost, and we built something to close it.
Making SQ8 the Default for New Collections
Why the engine moved to SQ8 as the default storage format — what we measured, what failed, and what we are not doing yet.
FAISS에서 SQ8까지
벡터 검색 엔진의 기본 저장 포맷을 찾기까지. FAISS를 기준선으로 두고 F32, SQ8, SQ4, SQ1, TQ4를 비교한 개발 기록.
HyperbolicRAG를 바로 도입하지 않고, hierarchy-aware retrieval부터 검증하기
HyperbolicRAG의 문제의식은 유효하지만, 먼저 검증할 것은 구조 신호 기반 rerank. dense baseline에서 relation-aware rerank까지의 실험 기록.
법률 데이터를 Vector DB로 만들면 얼마나 작아지고 얼마나 빨라질까
한국 법률 코퍼스 기반 벡터 DB 벤치마크. SQ8 압축, 계층 탐색, 본문 조회까지 포함한 전체 파이프라인 성능 기록.
2026 AI바우처 수요기업 신청 가이드
AI 도입 비용의 최대 80%를 정부가 지원합니다. 신청 자격, 절차, 일정, 비용 구조를 정리했습니다.
The Embedding Failover Pattern: Zero Downtime Across Providers
When your embedding provider goes down, your search breaks. Learn the failover pattern that keeps retrieval alive across provider outages using projection matrices.
Case Study: Cutting Embedding Costs to $0 with Gemini
How a startup paying $1,500/month in OpenAI embedding costs migrated to Gemini Embedding in one afternoon — without re-embedding a single document.
Why Vector Migration Matters More Than You Think
Embedding model upgrades silently break production retrieval. Here is why vendor lock-in is a hidden technical debt — and what you can do about it today.