서론: 너무 많은 텍스트의 문제점은 단순히 길이에 있는 것이 아닙니다
LLM에서 “긴 컨텍스트”에 대한 이야기는 마치 모든 문제가 해결된 것처럼 이야기하지만, 실제로는 200페이지 분량의 PDF를 넣어보면 엉뚱한 내용의 짧은 시(haiku)만 반환될 뿐입니다. 모델은 단순히 길이 때문에 어려움을 겪는 것이 아니라, 관련 없는 정보에 질식하는 것입니다. 엉터리 정보가 들어가면 그럴듯한 엉터리 결과가 나옵니다. 의미 있는 답변을 얻으려면 더 큰 모델이 필요한 것이 아니라, 불필요한 정보를 줄여야 합니다.
DeepSeek-OCR을 소개합니다. DeepSeek-OCR은 좋은 도구가 갖춰야 할 기능을 수행하는 OCR 엔진입니다. 즉, 이미지와 PDF를 별다른 문제 없이 텍스트로 변환해 줍니다. 하지만 여기서 중요한 것은 단순히 OCR 기능만이 아닙니다. DeepSeek-OCR을 사용하여 긴 텍스트를 압축하는 것입니다. 구조를 추출하고, 중복성을 줄이며, 핵심 정보(signal)를 유지하여 다운스트림 LLM이 1998년의 그림 설명에 토큰을 낭비하지 않도록 하는 것입니다.
“압축”이 핵심 단어입니다. ZIP 파일 압축이 아니라, 의미론적 압축입니다. 인간은 끊임없이 이 작업을 수행합니다. 페이지를 읽고, 단락을 기억합니다. 단락을 읽고, 문장을 기억합니다. 우리는 이것을 이해라고 부릅니다. DeepSeek-OCR을 사용하면 이러한 과정을 근사할 수 있습니다. 텍스트를 깔끔하게 가져오고, 합리적으로 분할하며, 모델이 실제로 작업할 수 있는 계층화된 요약을 생성합니다. 영웅적인 노력을 덜 들이고, 더 나은 결과를 얻을 수 있습니다.
이것은 사용 설명서입니다. 하지만 원본 PDF를 채팅 상자에 넣고 기도하는 것이 워크플로우라고 생각하는 사람들에게는 약간의 개입이기도 합니다. 이제 시스템을 만들어 봅시다.
“LLM을 위해 DeepSeek-OCR을 사용하여 긴 텍스트를 압축하는 방법”의 진짜 의미
도구는 압축하지 않고, 결정이 압축합니다. 사람들이 “LLM을 위해 DeepSeek-OCR을 사용하여 긴 텍스트를 압축하는 방법”이라고 말할 때, 그들이 진정으로 원하는 것은 지저분하고 시각적인 문서를 언어 모델이 각주에 대한 환각 없이 추론할 수 있는 간결하고 구조화된 텍스트 덩어리로 변환하는 재현 가능한 방법입니다. 이 과정은 네 가지 작업으로 나눌 수 있습니다.
- 정확한 추출: 페이지에서 단어를 정확하게 가져옵니다.
- 구조 복구: 제목, 목록, 표 및 읽기 순서를 보존합니다.
- 의미론적 응축: 의미를 유지하면서 중복성을 줄입니다.
- 검색 규칙: 필요할 때 필요한 것만 모델에 제공합니다.
DeepSeek-OCR은 처음 두 가지를 처리합니다. 당신(과 당신의 LLM)은 나머지 두 가지를 처리합니다. 결과 파이프라인은 “LLM을 위해 긴 텍스트를 압축”하는데, 이는 토큰을 줄이고, 동일한 답변을 얻으며, 불필요한 정보를 줄이는 가장 중요한 의미입니다.
1단계: DeepSeek-OCR을 올바르게 사용하십시오 (추출 레이어)
잘못된 OCR은 다운스트림에 있는 모든 것을 오염시킵니다. 오타, 깨진 열, 문장인 척하는 분리된 바닥글로 시작하면, 당신의 “압축”은 단순히 실수를 정당화할 뿐입니다. DeepSeek-OCR의 역할은 레이아웃 힌트와 함께 깨끗한 텍스트를 제공하는 것입니다.
- PDF 텍스트 추출을 우선적으로 사용하십시오. PDF가 디지털 네이티브(선택 가능한 텍스트)인 경우, 텍스트를 직접 추출하고 포함된 이미지나 스캔한 페이지에 대해서만 OCR로 대체하십시오. 이미 텍스트인 것을 OCR하지 마십시오. 오류를 수정하기 위해 오류를 추가하는 것은 현명하지 않습니다.
- 스캔한 PDF의 경우, 페이지 수준 및 블록 수준 레이아웃 감지 기능을 사용하여 DeepSeek-OCR을 사용하십시오. 제목, 단락, 표 및 그림 설명을 분리해야 합니다. 모델은 나중에 당신에게 감사할 것입니다.
- 읽을 수 있는 줄 너비를 설정하십시오. 두 열 PDF에서 긴 끊어지지 않은 줄은 난해한 시처럼 보이는 엉망진창의 인덱스를 생성하는 원인이 됩니다.
- 가능하면 표를 CSV 또는 Markdown으로 추출하십시오. 표는 의미가 압축되어 있습니다. 추출이 손상되지 않고 유지되면 압축이 더 똑똑해지고 멍청해지지 않습니다.
결과: 여전히 길지만 혼란스럽지 않은 코퍼스 - 텍스트, 제목, 목록, 표, alt와 같은 캡션이 있는 이미지. 구조는 첫 번째 압축입니다.
2단계: 페이지 번호가 아닌 의미별로 청크하십시오
일반적인 실수: 페이지 또는 토큰 수로 나누고 끝났다고 생각합니다. 페이지 번호는 프린터용입니다. 의미는 페이지에 신경 쓰지 않습니다. DeepSeek-OCR의 레이아웃 힌트를 사용하여 섹션 및 소제목별로 청크하십시오.
- 최상위 헤더(H1/H2)당 하나의 청크, H3/H4에 대한 하위 청크. 각 청크를 대상 모델의 편안한 컨텍스트 창(예: 800-1,200 토큰) 아래로 유지하십시오.
- 표와 설명 단락을 함께 유지하십시오. 분할하면 모델이 간격을 채우기 위해 데이터를 발명하는 좋은 방법이 됩니다.
- 부록 자료를 본문과 혼합하지 마십시오. 선택 사항입니다. 그런 식으로 취급하십시오.
압축은 청킹 전략에서 시작됩니다. LLM이 끝까지 잊지 않고 소화할 수 있는 더 작고 일관된 단위입니다.
3단계: 의미론적 압축 통과: 계층화된 요약
이제 “LLM을 위해 긴 텍스트 압축” 부분입니다. 전체 문서를 하나의 요약(임원들이 좋아하고 모델이 싫어함)으로 줄이는 대신 각 청크에 대한 계층화된 요약을 만드십시오.
- 요점 요약 (5-10개 항목): 핵심 사항, 주장, 정의, 숫자.
- 한 단락 요점: 주의 깊은 독자가 5분 후에 유지할 내용.
- 인용 및 앵커: 섹션 헤더, 페이지 번호, 표 ID.
이것은 참조 무결성이 있는 압축입니다. 글머리 기호는 무손실 인덱스이고 단락은 손실 코덱입니다. 둘 다 유지하십시오. 나중에 모델에 질문할 때 전체 청크가 아닌 글머리 기호와 관련 단락을 검색하십시오. 토큰을 더 적게 공급하고 더 나은 답변을 얻을 수 있습니다. 마술: 편집일 뿐입니다.
4단계: 인간 분석가처럼 표 요약
표는 긴 문서가 실제 요점을 숨기는 곳입니다. 정보를 잃고 싶지 않다면 텍스트로 평면화하지 마십시오.
- 출처에 대한 원시 표 (CSV/Markdown)를 유지하십시오.
- “표 메모”를 추가하십시오. 표가 보여주는 내용에 대한 3-5개의 글머리 기호, 의미하는 내용에 대한 한 문장, 이상한 점 (누락된 행, 위험 신호, 단검이 있는 각주).
- 단위, 시간 범위 및 코호트 정의를 보존하십시오. “매출 10% 증가”는 “QoQ, ex-FX, APAC 전용”이 없으면 사소한 일입니다.
쿼리가 숫자를 포함할 때 메모와 표를 LLM에 공급하십시오. 삭제가 아닌 명확성을 통한 압축입니다.
5단계: 생성 전 검색 (RAG, 유행어 제외)
RAG를 수행하기 위해 “RAG”라고 말할 필요가 없습니다. 모델에 답변을 요청하기 전에 올바른 청크를 선택하기만 하면 됩니다.
- 벡터 검색 (동의어, 의역)과 키워드 검색 (정확한 일치)으로 계층화된 요약을 인덱싱하십시오. 두 개의 검색, 짧은 목록, 교차합니다.
- 검색: 글머리 기호 + 요점 + 관련 표 메모. 선택적으로 소스 청크의 상위 몇 문장을 뉘앙스로 원시 텍스트로 포함하십시오.
- 증거로 답변하십시오. 모델에 청크 ID 또는 페이지를 인용하도록 지시하십시오.
이것은 입력을 절단하지 않고 LLM에 대한 긴 텍스트를 압축하는 방법입니다. 믹서가 아닌 사서라고 생각하십시오.
최소한의 지루하게 효과적인 프롬프트 패턴
각 청크에 대해 일관된 요약 프롬프트를 실행하십시오. 일관성은 전투의 절반입니다.
프롬프트 골격:
“당신은 주의 깊은 기술 편집자입니다. 글머리 기호 (사실만 해당), 한 단락 요점, 용어집 및 인용 (섹션 헤더 및 페이지)으로 다음 청크를 요약하십시오. 단위, 날짜 및 한정자를 보존하십시오. 텍스트에 증거가 없는 주장은 [인용되지 않음]으로 표시하십시오. 표를 다시 작성하지 마십시오. ID로 참조하십시오. 입력은 --- 이후에 시작됩니다.”
그런 다음 청크를 공급하십시오. 청크 ID로 출력을 저장하십시오. 이제 좋은 저널리스트가 인용문과 별도로 노트를 유지하는 방식과 다르지 않은 자체 압축 레이어를 제조했습니다.
특히 DeepSeek-OCR인 이유는 무엇입니까?
많은 OCR 도구가 있습니다. 일부는 빠르고 잘못되었고, 일부는 느리고 잘못되었습니다. DeepSeek-OCR은 빠르며, 요점은 레이아웃을 존중한다는 것입니다. 다중 열 처리 및 그림 캡션 분리는 몇 시간의 사후 처리를 절약해줍니다. 질문은 “완벽합니까?”가 아닙니다. 완벽한 것은 없습니다. 질문은 실패 모드가 예측 가능한지 여부입니다. DeepSeek-OCR을 사용하면 대부분 예측 가능합니다. 까다로운 합자, 본문 텍스트로 흐르는 머리글 및 가끔 수학. 당신은 그것을 계획할 수 있습니다. 계획은 압축의 절반입니다.
또한 말할 가치가 있습니다. 토큰 효율적인 텍스트를 반환하는 OCR이 중요합니다. OCR이 유령 공백, 끊어진 하이픈 또는 복제된 줄을 추가하면 모든 다운스트림 호출에서 해당 토큰에 대한 비용을 지불합니다. DeepSeek-OCR은 깨끗하게 유지하는 경향이 있습니다. 톱밥이 적고 파편이 적습니다.
실용적인 워크플로우: PDF에서 보풀이 없는 답변으로
실제로 제공되는 실용적인 “LLM에 대한 긴 텍스트를 압축하기 위해 DeepSeek-OCR을 사용하는 방법” 워크플로우:
- 디지털 텍스트 대 스캔한 페이지를 감지합니다. 필요한 경우 모드를 혼합합니다.
- 레이아웃 추출 및 표 감지가 활성화된 DeepSeek-OCR을 실행하십시오.
- 내보내기: 텍스트 (헤더, 목록)에 대한 Markdown, 표에 대한 CSV/Markdown, 그림에 대한 PNG 참조 (선택 사항).
- 하이픈 수정: 다음 줄이 소문자로 시작하는 경우에만 줄 바꿈에서 하이픈을 제거하십시오.
- 깨진 단락을 병합합니다. 섹션 사이에 빈 줄을 유지하십시오.
- 스마트 따옴표를 변환하고 유니 코드 (NFC)를 정규화하십시오. 모델은 토큰 때문에 신경 씁니다.
- H2/H3 경계로 분할합니다. 가장 가까운 참조 단락에 표를 첨부하십시오.
- 크기 제한을 적용합니다 (청크 대상당 1k 토큰). 중간 논쟁을 분할하지 마십시오.
- 글머리 기호 및 요점 텍스트에 대한 벡터 인덱스를 구축하십시오.
- 헤더, 용어집 용어 및 표 ID에 대한 키워드 인덱스를 구축하십시오.
- 벡터 + 키워드 교차점으로 상위 3-6개의 청크를 검색하십시오.
- 컨텍스트 구성: 글머리 기호 + 요점 + 표 메모 + 소스에서 인용한 2-3개의 문장.
- 인용과 함께 답변을 요청하십시오. 추측을 금지하십시오.
- 답변이 [인용되지 않은] 주장을 인용하면 부모 청크를 자동으로 다시 검색하십시오.
- 단위 없이 숫자가 나타나면 거부하고 단위 제약 조건으로 다시 요청하십시오.
축하합니다. 오트밀로 바꾸지 않고 LLM에 대한 긴 텍스트를 압축했습니다.
압축은 요약이 아닙니다. 분류입니다.
요약은 더 적게 말하려고 합니다. 압축은 더 적은 토큰으로 동일한 의미를 유지하려고 합니다. 다른 목표. DeepSeek-OCR을 사용하면 모든 단계에서 필요하지 않은 것을 버리는 정보 파이프라인을 구축합니다.
- 청킹은 페이지 경계를 버리고 논쟁을 유지합니다.
- 계층화된 요약은 반복을 버리고 주장을 유지합니다.
- 검색은 대부분의 주장을 버리고 질문에 답하는 몇 가지 주장을 유지합니다.
마지막 단계는 대부분의 “긴 컨텍스트” 판타지가 죽는 곳입니다. 모델이 어떤 2k 토큰이 중요한지 모르면 200k 토큰 컨텍스트 창은 팔러 트릭입니다. 압축은 결정하는 방법입니다.
오류, 편향 및 “모델이 말했습니다”에 대해
잘못된 것을 압축하면 문서에서 진실을 압축합니다. 그런 다음 모델은 남아있는 모든 것에 대해 행복하게 추론하고 권위 있게 들립니다. 안전 장치:
- 인용구를 그대로 보존하십시오. 의역을 명확하게 표시하십시오.
- 실용적일 때 청크 및 문장 수준에서 출처를 유지하십시오.
- 요약해서는 안 되는 정의, 방정식 및 규제 언어에 대한 작은 “그대로 캐시”를 유지하십시오.
- 모든 것을 버전화하십시오. 소스가 변경되면 요약을 무효화하십시오. 일주일 된 스시를 제공하지 마십시오.
DeepSeek-OCR은 때때로 머리글과 단락을 결합하거나 합자를 잘못 읽습니다. 괜찮습니다. 요약이 섹션과 페이지를 인용하는 이유입니다. 의심스러운 경우 영수증을 보여주십시오.
토큰 수학, 지루하지만 현실
“LLM에 대한 긴 텍스트를 압축하기 위해 DeepSeek-OCR을 사용하는 방법”의 경제학은 토큰으로 귀결됩니다. OCR 텍스트는 저렴합니다. LLM 컨텍스트는 그렇지 않습니다.
- 각 청크가 ~1,000 토큰 원시이고 계층화된 요약이 ~200 토큰이면 이미 5배 압축을 달성했습니다.
- 쿼리 시간에 5개의 요약을 검색하면 5,000개 이상의 원시 대신 ~1,000개의 컨텍스트 토큰이 사용됩니다. 답변을 추가하기 전입니다.
- 선택적으로 표를 추가하십시오. 200행 표는 수천 개의 셀로 죽음입니다. 5개의 글머리 기호 메모와 10행 필터링된 추출은 삶입니다.
절약액을 보기 위해 스프레드시트가 필요하지 않습니다. 늦은 밤 부리토처럼 전체 문서를 프롬프트에 넣는 것을 멈추기만 하면 됩니다.
Sider.AI가 적합한 곳 (실제로 작동시키고 싶다면)
여기 모든 사람이 마케팅 보풀을 기대하는 부분이 있습니다. 대신: Sider.AI는 실제로 작동합니다. 적어도 이것에는. 완고한 PDF를 업로드하고 OCR을 실행하면 베이비시팅 없이 청크로 자를 수 있는 섹션 앵커가 있는 깨끗하고 탐색 가능한 텍스트를 얻을 수 있습니다. 채팅 레이어는 마법이 아닙니다. 준비한 압축된 요약에 대한 훈련된 검색입니다. 좋은 놀라움은 PhD가 있는 PDF 리더인 척하지 않는다는 것입니다. 날카로운 칼을 가진 유능한 조수입니다. 의미를 훼손하지 않고 LLM에 대한 긴 텍스트를 압축하는 것이 목표일 때 정확히 원하는 것입니다. 추출을 위해 DeepSeek-OCR을 가져오고 검색 및 프롬프트 위생을 위해 Sider.AI를 사용하면 토큰, 시간 및 제정신을 존중하는 파이프라인이 됩니다. 각주 마커 크기의 주의 사항
- 복잡한 수학: OCR과 요약을 평평하게 하면 기호 표현이 손상됩니다. 방정식에 LaTeX 또는 이미지를 유지하십시오. 기호가 아닌 단어로 요약하십시오.
- 다이어그램: 모델에 레이블이 없는 다이어그램을 “추론”하도록 요청하지 마십시오. 그것은 타로이고 분석이 아닙니다. 캡션을 OCR하고 참조용 이미지를 유지하고 대상 질문을하십시오.
- 법률 및 규정 준수: 일부 텍스트는 그대로 보존해야 합니다. 표시하십시오. 조항을 압축한 다음 모델에 조항이 있는지 묻지 마십시오. 조항이나 변호사가 작동하는 방식이 아닙니다.
제정신 검사된 예제 패턴
120페이지 연례 보고서가 있다고 가정해 보겠습니다.
- DeepSeek-OCR로 OCR -> Markdown 텍스트 + CSV 표를 얻습니다.
- 섹션별 청크: “경영진 토론”, “위험 요소” 등
- 청크당 요약: 8개의 글머리 기호, 1개의 요점 단락, 용어집, 인용.
- 수익, 비용, 직원 수 및 세그먼트에 대한 표 메모.
- 이중 인덱스 구축: 글머리 기호에 대한 벡터, 헤더 및 용어집에 대한 키워드.
- 쿼리: “총 마진이 전년 대비 어떻게 변경되었으며 그 이유는 무엇입니까?” 비용 해설 + 수익 표 메모가 있는 두 개의 청크를 검색합니다. 인용과 1-2개의 인용된 문장으로 답변하십시오.
120페이지를 읽지 않았습니다. 모델도 그렇게 한 척하지 않았습니다. LLM에 대한 긴 텍스트를 압축하고 햇빛에 견딜 수 있는 답변을 얻었습니다.
예측 가능한 방식으로 문제가 발생하는 방식 문제 해결
- 모델이 주장을 뒷받침하지 않는 섹션을 인용합니다. 수정: 검색을 강화하십시오. 섹션 제목에 대한 키워드 적중을 높이고 일반 벡터 일치를 강등하십시오.
- 요약이 소스와 모순됩니다. 수정: 민감한 섹션에 대한 “의역 없음” 모드를 추가하십시오. 컨텍스트에 2-3개의 그대로 문장을 포함하십시오.
- OCR 오류가 헤더 또는 바닥글에 클러스터됩니다. 수정: 요약하기 전에 반복적인 상용구를 제거하도록 전처리기를 가르치십시오. 노이즈입니다.
- 표가 토큰 예산을 부풀립니다. 수정: 관련성이 높은 상위 N개 행으로 제한하고 메모를 유지하십시오. 더 깊이 파고들어야 하는 경우 전체 CSV에 대한 링크를 포함하십시오.
“LLM에 대한 긴 텍스트 압축”을 위한 멍청한 방법 대 스마트한 방법
멍청한: “이 300페이지 PDF를 요약하십시오.”
스마트: “이 10개의 섹션 요약과 3개의 표 메모에서 소스를 인용하여 이 좁은 질문에 답변하십시오.”
전자는 모델을 아첨하고 돈을 낭비합니다. 후자는 사용자를 아첨하고 현실을 존중합니다. DeepSeek-OCR은 깨끗한 텍스트를 제공합니다. 파이프라인은 정직하게 유지합니다.
결론: 존중으로서의 압축
독자를 존중하십시오. 토큰을 존중하십시오. 진실을 존중하십시오. 이것이 DeepSeek-OCR을 사용하여 LLM에 대한 긴 텍스트를 압축하는 방법에 대한 스레드입니다. OCR 단계는 테이블 스테이크입니다. 나머지는 워크플로우로 차려입은 편집 판단입니다. 아이디어별 청킹, 뉘앙스를 샌드 블라스팅하지 않고 요약, 중요한 검색, 모델이 영수증으로 응답하도록 합니다.
긴 컨텍스트 창은 좋습니다. 명확한 컨텍스트가 더 좋습니다. 주의 깊은 독자처럼 행동하는 모델을 원하면 주의 깊은 독자가 유지하는 것을 제공하십시오. 나머지는 페이지 수일 뿐입니다.
자주 묻는 질문
Q1: 의미를 잃지 않고 LLM에 대한 긴 텍스트를 압축하기 위해 DeepSeek-OCR을 어떻게 사용합니까?
레이아웃이 보존된 깨끗한 텍스트를 추출하고 머리글 (페이지가 아닌)로 청크하고 계층화된 요약 (글머리 기호, 한 단락 요점, 용어집 및 인용)을 생성합니다. 쿼리 시간에 해당 요약과 관련 표 메모만 검색합니다. 그것은 신호를 유지하면서 LLM에 대한 긴 텍스트를 압축합니다.
Q2: LLM에 대한 긴 텍스트를 압축할 때 가장 좋은 청크 크기는 무엇입니까?
임의 페이지 나누기가 아닌 섹션 또는 소제목에 맞춰 청크당 800-1,200 토큰을 목표로 삼으십시오. 목표는 동일한 바이트 수가 아닌 일관된 주장입니다. 논리를 반으로 자르지 않고 LLM에 대한 긴 텍스트를 압축하는 방법입니다.
Q3: 텍스트를 선택할 수 있는 경우에도 DeepSeek-OCR로 모든 PDF 페이지를 OCR해야 합니까?
아니요. 텍스트가 디지털 원본인 경우 직접 추출하고 스캔한 페이지 또는 이미지에만 DeepSeek-OCR을 사용하십시오. 깨끗한 텍스트를 다시 OCR하면 오류가 추가됩니다. 이는 LLM에 대한 긴 텍스트를 압축하는 것과 반대입니다.
Q4: LLM을 위해 긴 텍스트를 압축할 때 테이블은 어떻게 처리해야 하나요?
테이블은 CSV/Markdown 형식으로 유지하고, 내용 요약, 의미, 주의사항 등을 간단하게 메모로 추가하세요. 관련 내용이 있을 때 메모와 필터링된 슬라이스를 검색하는 것이 200줄짜리 표를 프롬프트에 덤핑하는 것보다 훨씬 현명합니다.
Q5: DeepSeek-OCR을 사용할 때 Sider.AI는 이 워크플로우에서 어떤 역할을 하나요?
정확한 추출을 위해 DeepSeek-OCR을 사용하고, 체계적인 검색 및 요약 관리를 위해 Sider.AI를 사용하세요. 이 둘을 함께 사용하면 실제로 LLM을 위해 긴 텍스트를 압축할 수 있습니다. 토큰 낭비는 줄이고, 답변은 더 명확하게, 인용문은 정확하게 유지할 수 있습니다.