Kay x Cybersyn x LangChain: Embedding SEC Filings for RAG
Quick Summary
Kay·Cybersyn·LangChain의 SEC Retriever는 최신 SEC Filings를 정제·청킹·임베딩해 생성형 및 대화형 에이전트가 RAG 문맥으로 검색할 수 있도록 제공한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Kay·Cybersyn·LangChain의 SEC Retriever는 최신 SEC Filings를 정제·청킹·임베딩해 생성형 및 대화형 에이전트가 RAG 문맥으로 검색할 수 있도록 제공한다.
📌 핵심 요약
- SEC Filings 활용은 LLM의 지식 시점 한계, TXT·XBRL 등 검색하기 어려운 형식, 50개가 넘는 벡터 저장소와 계속 바뀌는 임베딩 모델, 복잡한 표·섹션 처리, 낮은 오탐 허용도 때문에 자체 RAG 파이프라인으로 구현하기 어렵다.
- Cybersyn은 SEC 데이터를 관계형 구조로 변환하고 기업 식별자와 메타데이터를 추가해 Snowflake Marketplace에서 정기 갱신하며, Kay는 이 데이터를 보강·임베딩해 의미 검색 API로 제공하고 LangChain은 KayAiRetriever로 연결한다.
- 개발자는 Kay를 설치하고 API 키를 받은 뒤 KayAiRetriever의 company 데이터셋에서 10-K·10-Q와 상위 6개 청크를 지정해 검색 문맥을 기존 프롬프트와 LLM에 전달할 수 있다.
- NVIDIA 예시 답변은 투자·재무 현금흐름 변동과 Q2 2023의 8,826백만 달러 규모 자사주 매입을 제시하지만, 영업활동 현금흐름 1,874→1,731→1,288백만 달러를 ‘일관된 증가’라고 표현해 수치와 서술이 일치하지 않는다.
- Kay는 gte-base를 자체 호스팅하고 섹션 기반 평균 1,500자 동적 청킹과 표의 자연어 요약을 적용했으며, Ray로 2,000만 개가 넘는 임베딩을 15분 미만에 처리하고 HNSW·BM25 및 증분 인덱싱을 사용했다.
🧩 주요 포인트
- SEC 원문과 최신성을 RAG에 직접 연결하면 파생 기사에 의존할 때 누락될 수 있는 출처 문맥과 덜 알려진 기업의 정보까지 활용할 수 있다.
- Cybersyn의 데이터 정제, Kay의 호스팅 임베딩·검색, LangChain의 연결 구조는 여러 팀이 반복 구축하던 수집·임베딩·확장 부담을 줄이는 데 의미가 있다.
- 검색 품질과 처리 성능은 임베딩 모델 하나가 아니라 기업·문서 메타데이터, 섹션별 청킹, 표 변환, HNSW·BM25 결합, 증분 인덱싱의 연계에 좌우된다.
🧠 상세 정리
1. SEC 문서를 RAG에 활용하기 어려운 이유
금융 문서는 투자와 기업 전략처럼 결과의 중요도가 높은 판단에 쓰이며, 미국 상장사의 SEC Filings는 풍부하고 세밀한 기업 정보를 담고 있다. 그러나 LLM이 보유한 지식은 마지막 학습 시점에 머무는 반면 금융시장은 빠르게 움직이므로, 최신 공시를 외부 문맥으로 공급하는 RAG가 필요하다. SEC 문서는 형식상 검색엔진이 색인하기 어려워 개발자가 파생 기사에 의존하기도 하지만, 이 방식은 원문 문맥과 덜 알려진 기업의 정보를 놓칠 수 있다. 여기에 50개가 넘는 벡터 저장소, 계속 달라지는 MTEB Leaderboard의 임베딩 모델, GPU 확보와 대규모 배치 처리 비용까지 겹치면서 자체 인프라의 설계와 운영이 복잡해진다.
2. Kay·Cybersyn·LangChain의 역할 분담
여러 팀이 SEC 문서 수집부터 청킹, 임베딩, 검색까지 동일한 파이프라인을 내부에서 반복 구축하면서 비용이 증가하는 문제를 해결하기 위해 SEC Retriever가 제시됐다. Kay는 대규모 데이터셋의 임베딩을 완전 호스팅 방식으로 제공해 개발자가 원천 데이터를 직접 모으고 임베딩을 생성하거나 검색 계층을 확장하지 않아도 되게 한다. Cybersyn은 Snowflake Marketplace를 통해 분석 가능한 경제 데이터를 제공하며, SEC Filings가 포함된 LLM Training Essentials를 공급하고 Kay는 이를 추가 보강해 의미 검색 API로 구성한다. LangChain의 KayAiRetriever는 이 데이터와 검색 기능을 생성형 또는 대화형 에이전트의 기존 프롬프트·LLM 흐름에 연결하는 접점으로 사용된다.
3. KayAiRetriever 시작 절차
사용 절차는 먼저 pip install kay로 패키지를 설치하고 Kay.ai에서 무료 API 키를 받는 것으로 시작한다. 이어 KayAiRetriever를 초기화하면서 필요한 데이터셋과 문서 유형, 반환할 문맥 수를 지정하며, 글의 예시는 dataset_id를 company로 두고 data_types에 10-K와 10-Q를 설정한다. num_contexts는 6으로 지정돼 주어진 질문과 관련성이 높은 상위 6개 청크를 반환하도록 구성된다. 반환된 문맥은 별도의 새로운 애플리케이션 구조를 요구하지 않고 기존 프롬프트에 삽입해 원하는 LLM으로 전달할 수 있으며, Kay가 제공하는 다른 기업 관련 문서·보도자료·엔지니어링 블로그 데이터셋에도 같은 연결 방식을 적용할 수 있다.
4. NVIDIA 질의 예시와 출력의 한계
글은 NVIDIA의 최근 세 분기 재무 성과 패턴을 묻는 질문으로 사전 임베딩된 SEC 데이터의 활용 모습을 보여준다. 예시 답변은 영업활동 현금흐름을 Q1 2023 1,874백만 달러, Q2 2023 1,731백만 달러, Q3 2023 1,288백만 달러로 제시하고 투자활동 및 재무활동 현금흐름의 큰 변동도 정리한다. 투자활동 현금흐름은 Q2의 8,244백만 달러 유출과 Q3의 7,378백만 달러 유입을, 재무활동 현금흐름은 Q2의 9,961백만 달러 유출과 Q3의 2,610백만 달러 유출을 언급한다. 또한 Q2 2023의 보통주 재매입 관련 지급액 8,826백만 달러를 주주 환원에 초점을 둔 징후로 해석한다. 다만 영업활동 수치는 분기 순서대로 감소하는데도 답변은 이를 ‘일관된 증가’라고 설명하므로, 검색된 수치와 최종 자연어 서술의 일치 여부를 별도로 살펴야 함을 예시 자체가 보여준다.
5. SEC Filings의 활용 분야
SEC Filings는 규모가 크고 비정형적인 문서지만 미국 상장사의 재무 상태, 전략, 제품, 위험과 시장 인식을 폭넓게 담고 있어 단순한 정형 표보다 많은 신호를 제공한다. 재무 분석에서는 특정 기업의 5년간 매출 성장 추세를 확인하거나 두 기업의 부채비율을 비교하는 질의를 처리할 수 있다. 영업 기회 탐색에서는 새로 출시된 하드웨어 제품, 전략적 방향, 사업 확장 계획을 찾고, 산업 동향 분석에서는 기업이 활용하는 시장 추세나 경쟁사 간 포지셔닝 차이를 파악할 수 있다. 규제 준수 연구에서는 GDPR 지침에 대한 기업의 대응이나 특정 인수와 관련된 잠재적 위험을 검토할 수 있어 분석가, 감사인, 투자자, 경영진, 영업 및 마케팅 조직이 긴 문서를 빠르게 탐색하는 데 활용된다.
6. EDGAR 데이터의 수집과 구조화
미국 상장사는 의무 공시를 SEC의 EDGAR 시스템에 제출하며 API로 접근할 수 있지만, 서로 다른 형식의 데이터를 직접 처리하고 임베딩하는 과정은 단순하지 않다. Cybersyn은 조달·정제·결합이 어려운 공개 및 독점 데이터로 파생 데이터 제품을 만들고, SEC Filings의 비정형 TXT와 XBRL 데이터를 관계형 데이터베이스로 변환한다. 이 구조 덕분에 공시 PDF를 대상으로 별도의 OCR 및 텍스트 추출 파이프라인을 구축할 필요가 줄어들며, CIK·EIN·LEI·PermID·OpenFIGI 같은 공통 기업 식별자를 이용해 회사를 연결할 수 있다. 변환된 데이터는 Snowflake Marketplace에서 SQL로 안전하게 조회할 수 있고 Cybersyn이 시간 민감성을 고려해 정기적으로 갱신하므로, Kay는 접근성·품질·신뢰성이 확보된 기반 위에서 후속 처리를 수행한다.
7. 메타데이터 보강과 gte-base 선택
Kay는 원문을 확보한 뒤 검색 효율을 높이기 위해 기업 메타데이터와 문서 메타데이터라는 두 범주의 정보를 보강한다. 기업 메타데이터에는 티커, 산업, 위치, 요약, 웹사이트 등이 포함되며 기업을 정규화하고 관련 집단으로 묶어 검색하는 데 사용된다. 문서 메타데이터에는 공시의 섹션, 시간과 날짜에 대한 언급, NER로 추출한 주요 개체가 포함되고, 일부는 청크와 함께 임베딩되며 나머지는 필터 조건으로 활용된다. 임베딩 모델은 내부 사용 사례 평가를 거쳐 gte-base로 결정했으며, Kay는 오픈소스 모델을 자체 호스팅하면 확장 제어권과 비용 효율을 확보하고 향후 미세조정 가능성을 열어 둘 수 있다는 이유로 OpenAI 임베딩 API에서 전환했다고 설명한다.
8. 동적 청킹과 대규모 배치 임베딩
SEC 문서는 섹션 구조와 표의 비중이 일정하지 않기 때문에 Kay는 고정 길이로 자르지 않고 섹션을 기준으로 문장 단위의 동적 가변 청킹을 적용한다. 청크 길이는 평균 1,500자로 제한하며, 표가 포함된 청크는 일반 텍스트와 다르게 처리해 LLM이 자연어로 요약하도록 한다. 이렇게 정제된 청크의 오프라인 배치 임베딩에는 Ray의 병렬화 프레임워크를 사용했고, 2,000만 개가 넘는 임베딩을 15분 미만에 청킹하고 생성했다고 보고한다. 생성 결과는 벡터 검색용 HNSW와 텍스트 검색용 BM25로 색인하며, 쓰기와 인덱싱을 동시에 수행하는 일부 벡터 저장소에서 쓰기 처리량이 크게 낮아진 관찰을 근거로 증분 인덱싱 전환을 권장한다.
9. 검색 최적화의 범위와 제공된 내용의 경계
글은 RAG 시스템의 핵심을 데이터, 표현, 검색의 세 구성요소로 나누고 각 요소의 선택이 전체 성능에 직접 영향을 준다고 설명한다. 검색 단계는 벡터 저장소에 기본 호출을 보내는 것만으로 끝나지 않으며, 후보 집합을 줄이기 위해 추가로 수행할 수 있는 작업이 많다고 강조한다. 앞부분에서는 데이터셋과 사용 사례에 맞춘 검색에 데이터 보강, 최신 임베딩, 질의 이해 등이 포함된다고 밝히지만, 제공된 source_body는 후보 집합 축소를 언급한 직후 종료된다. 따라서 구체적인 질의 변환, 필터링, 재순위화 방식이나 검색 성능 평가 수치는 주어진 원문 범위에서 확인할 수 없으며, 해당 부분은 일반적인 방향까지만 요약할 수 있다.
🧾 핵심 주장 / 시사점
- SEC 기반 RAG의 핵심 가치는 최신 공시를 검색하는 데 그치지 않고, 파생 기사에서 손실될 수 있는 원문 문맥과 덜 알려진 기업의 정보를 직접 활용하는 데 있다.
- 기업·문서 메타데이터, 섹션 기반 청킹, 표 요약, gte-base, HNSW와 BM25를 함께 사용한 구성은 검색 품질이 단일 임베딩 모델보다 전체 데이터 처리 체계에 의존함을 보여준다.
- Ray의 2,000만 개 이상 임베딩 처리 결과는 배치 생성의 처리량을 보여주지만, 증분 인덱싱 권고는 생성 이후의 쓰기·색인 결합도 별도의 성능 병목이 될 수 있음을 드러낸다.
✅ 액션 아이템
- KayAiRetriever의 company 데이터셋에 10-K·10-Q와 상위 6개 청크를 지정한 질의 적용 검증.
- NVIDIA 예시의 영업활동 현금흐름 1,874→1,731→1,288백만 달러와 ‘일관된 증가’ 서술 간 일치성 재점검.
- gte-base·평균 1,500자 동적 청킹·Ray·HNSW·BM25·증분 인덱싱 조합의 처리량과 검색 품질 검증.
❓ 열린 질문
- KayAiRetriever가 10-K·10-Q에서 반환하는 상위 6개 청크는 질의에 필요한 SEC 원문 문맥을 충분히 제공하는가?
- gte-base와 평균 1,500자 동적 청킹은 표와 섹션이 복잡한 SEC Filings에서도 낮은 오탐 요구를 충족하는가?
- HNSW·BM25와 증분 인덱싱은 2,000만 개가 넘는 임베딩 규모에서 검색 품질과 쓰기 처리량을 어떻게 균형화하는가?