GITHUB 레포 딥다이브 · 2026-07-30 · PARITOK-OFFICIAL/PARITOK-4B-V1 · 코딩 에이전트 전용 컨텍스트 압축 모델

Paritok-4B-v1 딥다이브
토큰 청구서를 74~95% 깎는 4B 압축 모델

Paritok은 Claude Code·Cursor·Codex 같은 AI 코딩 에이전트가 LLM에 보내는 입력 토큰을 압축하는 오픈소스 도구다. 핵심은 두 조각이다 — ① 4B 파라미터 압축 모델(Qwen3-4B에 LoRA 미세조정), ② 에이전트와 LLM API 사이에 끼어 요청 본문을 실시간으로 압축하는 프록시 게이트웨이. 파일 읽기·툴 출력·오래된 대화 기록처럼 "덩치는 크지만 대부분 잉여인" 컨텍스트를 원본의 25.7%까지 줄여서 올려보낸다.

일반적인 파일 압축(gzip)과 다른 점은 코드를 이해하고 압축한다는 것이다. 함수 시그니처·경로·에러 문자열은 지키고 디버그 로그는 버린다. 45,000개의 실제 코딩 에이전트 대화 궤적으로 학습했기 때문이다. 게다가 비파괴(non-destructive) — 압축된 내용은 [REF:id] 태그로 남고, 모델이 원본이 필요하면 expand_context를 호출해 정확한 원문을 즉시 복구한다.

(저장소 Paritok-official/paritok-4b-v1 · 베이스 Qwen3-4B-Instruct-2507 · 어댑터 LoRA r=32 · 미들웨어 Python 3.10+ · 라이선스 Apache 2.0 · 패키지 버전 1.2.7 · 학습 데이터 45K 궤적 · SWE-bench 품질 유지 86.5% · 압축률 25.7% · q4 모델 ~2.5GB · 24GB GPU 1장 자체호스팅 · 제작 2인 팀 · 최초 릴리스 2026-07-14)
목차
  1. 한 줄 정체
  2. 왜 주목받는가 — 에이전트 토큰 폭탄
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 — 프록시 4단계 파이프라인
  5. 디렉토리 구조 해부
  6. 학습 포인트 — 기술별 배울 것
  7. 시스템 / 실행 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 로드맵 (주차별)
  10. 핵심 키워드 사전
  11. 참고 링크

1한 줄 정체

이 프로젝트가 정확히 무엇인지 한 문장으로

Paritok은 "코딩 에이전트와 LLM 사이에 앉은 압축 통역사"다. 에이전트가 매 턴 LLM에 보내는 요청에는 방금 읽은 파일 전체, 방금 실행한 bash 출력, 지난 대화 수십 턴, 그리고 70개가 넘는 툴 정의(JSON 스키마)가 통째로 들어간다. 이 대부분은 실제 답을 내는 데 필요 없다. Paritok은 그 요청을 가로채 필요한 것만 남기고 나머지를 요약·생략한 뒤 올려보낸다. LLM은 훨씬 짧은 입력을 받고, 너는 짧아진 만큼 청구서를 덜 낸다.

한 장의 비유

"변호사에게 사건을 넘기기 전, 3000쪽 서류를 30쪽 요약으로 줄여 주는 보조원"

변호사(LLM)는 시간당 요금을 받는다 — 읽는 페이지(입력 토큰)만큼 돈을 낸다. 3000쪽 원본을 그대로 넘기면 비싸다. 유능한 보조원(Paritok)은 사건 판단에 꼭 필요한 핵심 — 계약 조항, 날짜, 이름 — 은 한 글자도 빼지 않고, 반복되는 정형 문구·잉여 로그는 "여기 이런 내용 있음"으로 줄여 30쪽으로 만든다.

결정적으로, 요약본에는 각 항목마다 원본 쪽 번호([REF:id])가 붙어 있다. 변호사가 "이 조항 원문 전체를 봐야겠다" 싶으면 그 번호를 부르고, 보조원이 즉시 원본 그 페이지를 그대로 가져다준다. 그래서 줄였지만 잃지 않는다.

용어
컨텍스트 압축 (context compression)
LLM에 넣는 입력(프롬프트)의 길이를 줄이는 기술. 단순히 글자를 자르는 게 아니라, 의미는 최대한 보존하면서 토큰 수만 줄이는 것이 목표다. Paritok은 규칙(정규식) 대신 작은 LLM(4B) 자체가 "무엇을 남길지" 판단하게 한다. 코딩 궤적으로 학습했기 때문에 코드 맥락을 읽고 압축한다.
용어
코딩 에이전트 (coding agent)
Claude Code, Cursor, Codex, OpenHands처럼 LLM이 스스로 파일을 읽고·명령을 실행하고·코드를 고치는 반복 루프를 도는 프로그램. 이 루프 때문에 매 턴 컨텍스트가 눈덩이처럼 불어나고(파일+출력+히스토리), 그게 곧 토큰 비용이다. Paritok이 겨냥한 바로 그 지점.

2왜 주목받는가 — 에이전트 토큰 폭탄

트렌딩 이유와 경쟁 기법 대비 강점

2025~2026년 코딩 에이전트가 폭발적으로 퍼지면서 새로운 고통이 생겼다 — 토큰 청구서. 에이전트는 한 작업을 끝내려고 수백 번 LLM을 호출하고, 매번 "지금까지의 모든 파일 + 모든 출력 + 모든 대화"를 다시 통째로 밀어넣는다. 긴 세션에서 한 턴 입력이 3만 토큰을 넘기는 일이 흔하다. Paritok의 README는 이걸 정면으로 조준한다 — 10인 팀 3개월 프로젝트에서 입력 비용 $13,500 → $3,468, 약 1만 달러 절감(전형 74% 절감 가정)이라고 예시를 든다.

Paritok이 급부상한 이유는 "압축"이라는 오래된 아이디어에 세 가지 신선한 각도를 붙였기 때문이다.

① 범용 압축이 아니라 "코드 전용" 압축

기존 프롬프트 압축기(LLMLingua-2 등)는 일반 텍스트로 학습됐다. Paritok은 실제 코딩 에이전트 궤적 45,000건으로 학습해서, import 문·함수명·파일 경로·에러 클래스는 "비싼 값"으로 지키고 디버그 라인은 과감히 버린다. 같은 작업에서 gpt-4.1-mini 프롬프팅보다 약 2배 더 세게 압축하면서 정답률은 동급이라고 주장한다.

② 비파괴 게이트웨이 — 줄이되 지우지 않는다

압축의 공포는 "혹시 중요한 걸 버렸으면?"이다. Paritok은 압축된 조각마다 [REF:id] 태그를 달고, 원본은 로컬 섀도 스토리지에 보관한다. LLM이 원문이 필요하면 expand_context라는 가상 툴을 호출 → 미들웨어가 정확한 원문을 즉시 반환한다. 전송 구간에서만 손실이고, 필요할 때 완전 복구 가능이라는 설계다.

③ 완전 오픈 + 자체호스팅

가중치는 Apache 2.0, 4B라서 24GB GPU 한 장 또는 Ollama로 CPU/맥에서도 돈다(q4 ~2.5GB). SaaS 종속도, 압축기에 붙는 토큰당 별도 요금도 없다. 데이터 파이프라인까지 공개해 재현 가능하다고 강조한다.

벤치마크 — SWE-bench Verified

컨텍스트 소스품질 유지율 ¹압축률(낮을수록 셈)
무압축 기준선100.0%100.0%
gpt-4.1-mini (압축기)85.6%50.2%
gpt-5 (압축기)93.6%61.9%
Paritok-4B-v186.5%25.7%

¹ 품질 유지율 = 압축기 정답률 ÷ 무압축 기준선 정답률. 높을수록 좋다. 즉 Paritok은 토큰을 절반 이하로 쓰면서 gpt-4.1-mini와 같은 정답 유지율을 냈다는 주장이다.

냉정하게 볼 점
숫자는 "제작자 자체 측정"이며 재현 자료는 v2에 공개 예정

86.5% / 25.7% 같은 수치는 2인 팀의 자체 평가다. README도 "per-issue 결과와 재현 방법은 v2 릴리스와 함께 공개"라고 적어, 현재는 제3자 검증 전이다. "95% 절감" 같은 상단값은 툴 출력이 극단적으로 반복되는 롱세션 가정치이니, 실제 절감은 워크로드에 따라 크게 달라진다. 학습으로 배운 요약이라 드물게 환각·오요약 가능성도 원리상 남는다(그래서 expand_context가 안전장치).

어떤 압축기와 비교되나

항목Paritok-4B-v1LLMLingua-2gpt-4.1-mini 프롬프트
코딩 궤적 학습
함수명·경로 보존✅ 설계상부분적부분적
압축률(낮을수록 셈)25.7%~40%50.2%
자체호스팅 오픈 가중치Apache 2.0MIT비공개 API
압축기 토큰당 요금0 (자체호스팅)0 (오픈)토큰당 과금

3기술 스택 전체 지도

pyproject.toml·requirements.txt·소스에서 읽어낸 실제 구성

Paritok은 한 저장소 안에 성격이 완전히 다른 두 세계가 같이 산다. (A) 사용자가 매일 돌리는 런타임(미들웨어+프록시)은 의존성이 극도로 가볍고, (B) 모델을 만드는 학습·데이터 파이프라인은 무거운 ML 스택이다. 이 분리를 이해하는 게 핵심이다.

① 런타임 코어 (paritok 패키지) — 가볍다

pyproject.toml의 기본 의존성은 딱 넷뿐이다. 사용자가 pip install paritok 할 때 이것만 깔린다.

② 프록시 서버 (선택 확장 [proxy])

③ 임베딩 기반 툴 선택 (프록시의 숨은 절약 포인트)

④ 학습·데이터 파이프라인 (별도 requirements.txt) — 무겁다

모델을 직접 재현하려는 사람만 건드리는 영역. 전형적인 HuggingFace 미세조정 스택이다.

용어
LoRA (Low-Rank Adaptation)
거대 모델 전체를 다시 학습하는 대신, 각 층에 작고 얇은 보정 행렬(rank=32)만 끼워 그 부분만 학습하는 기법. Qwen3-4B 본체는 그대로 두고 Paritok 특유의 "압축 능력"만 어댑터로 덧입혔다. 그래서 배포물이 4B 어댑터로 작고(HF엔 LoRA 어댑터로 올라감), 24GB GPU 한 장에서 돈다.
용어
교사 증류 (teacher distillation)
비싸고 똑똑한 모델(교사, 여기선 gpt-4.1-mini)에게 "이 조각을 이렇게 압축해"라는 정답을 만들게 하고, 작은 학생 모델(Paritok 4B)이 그 정답을 흉내 내도록 학습하는 방식. 학생은 교사의 압축 감각을 값싸게 물려받는다. 데이터 증류에 든 API 비용은 약 $300으로 명시.

4아키텍처 심화 — 프록시 4단계 파이프라인

에이전트가 요청을 던지고 응답을 받기까지, 내부에서 벌어지는 일

Paritok을 이해하는 가장 좋은 방법은 "에이전트가 요청 하나를 던진 순간부터, 압축된 요청이 Anthropic에 도착하기까지"를 따라가는 것이다. 전체 그림은 이렇다.

┌──────────────────────────────────────────────────────────────┐ │ Claude Code / Cursor / Codex (네 에이전트, 코드 수정 없음) │ │ 요청 = [ 시스템프롬프트 | 대화 히스토리 | 툴결과 | 툴스키마×70 ] │ └───────────────────────────┬──────────────────────────────────┘ │ ANTHROPIC_BASE_URL=127.0.0.1:8080 ▼ ┌──────────────────────────────────────────────────────────────┐ │ Paritok 프록시 (server.py, 포트 8080) │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ ParitokEngine.process_request() │ │ │ │ │ │ │ │ 1) 툴 발견 70개 스키마 → 관련 top-K만 전체, 나머지 스텁 │ │ │ │ 2) 툴 출력 압축 각 tool_result → 4B 모델이 압축 │ │ │ │ 3) 히스토리 압축 최근 4턴 빼고, 컨텍스트 80% 넘으면 요약 │ │ │ │ 4) 가상 툴 주입 expand_context / gateway_search_tools │ │ │ └───────────────────────┬────────────────────────────────┘ │ │ 압축 실행 위치 →│ 로컬 Ollama 4B 또는 GPU 서버 │ │ 원본은 섀도 스토리지에 보관 (id → 원문), 압축본엔 [REF:id] 태그 │ └───────────────────────────┬──────────────────────────────────┘ │ 압축된 요청 (원본 25.7% 크기) ▼ ┌──────────────────────────────────────────────────────────────┐ │ Anthropic / OpenAI (← 여기서 "압축된 토큰"으로 과금) │ │ 응답은 그대로 되돌아옴. LLM이 원문 필요 → expand_context 호출 │ └──────────────────────────────────────────────────────────────┘

1단계 — 툴 발견(tool discovery): 스키마 다이어트

코딩 에이전트는 MCP 서버까지 붙으면 매 요청에 70개+ 툴 정의(JSON)를 통째로 싣는다. 대부분은 지금 작업과 무관하다. tool_discovery.py는 사용자 의도를 임베딩해 가장 관련 있는 top-K(기본 5, 최대 8)만 전체 스키마로 남기고 나머지는 최소 스텁으로 바꾼다.

영리한 포인트는 프롬프트 캐시 친화다. 툴 선택은 대화당 한 번 고정(freeze)돼서, 턴이 바뀌어도 tools[] 블록이 바이트 단위로 동일 → LLM의 KV 캐시를 무효화하지 않는다. 스텁된 툴이 나중에 필요하면 gateway_search_tools로 되찾는다.

용어
프롬프트 캐시 (prompt cache) / KV 캐시
LLM API는 요청 앞부분이 이전과 완전히 동일하면 그 부분 계산을 캐시해 훨씬 싸게(Claude 기준 0.1배) 처리한다. 만약 압축이 매 턴 툴 목록을 조금씩 바꿔버리면 캐시가 깨져 오히려 손해다. Paritok이 툴 선택을 "대화 내 고정"으로 두는 이유 — 절감이 캐시 이득을 까먹지 않도록.

2단계 — 툴 출력 압축: 4B 모델이 판단

compress.py의 파이프라인은 각 tool_result(파일 읽기 결과, bash 출력 등)를 이렇게 처리한다.

1. 이미 압축됨?  ([REF:] 접두사면 건너뜀)
2. 토큰 게이팅   (min 512 미만이면 압축 안 함, max 50000 초과 청킹)
3. SHA256 캐시   (같은 내용 재등장 → 재압축 없이 기존 [REF] 재사용)
4. 4B 모델 호출  (Ollama에 "이 조각 압축해" 프롬프트)
5. 효과 검사     (refusal_threshold 0.05 미만이면 원본 유지)
6. 섀도 저장     (원본 보관 + [REF:id src=경로] 태그로 치환)

주목할 디테일: Claude Code의 Read 툴은 cat -n 스타일 줄번호( 1\t실제내용)를 붙인다. Paritok은 매칭 비교 때 이 줄번호 접두사를 정규화해 벗겨서, 같은 파일을 offset만 바꿔 다시 읽어도 동일 섀도로 인식(재압축 방지)한다.

3단계 — 히스토리 압축: 오래된 대화 접기

HistoryConfig최근 4턴은 원본 그대로 두고, 전체 컨텍스트가 창의 80%를 넘으면 그 이전 턴들을 한 번 요약한다. 긴 세션에서 "95% 절감"이 나오는 지점이 바로 여기 — 파일·툴 출력이 반복 누적된 옛 히스토리가 통째로 접힌다.

4단계 — 가상 툴 주입: 안전장치

미들웨어는 툴 목록에 실재하지 않는 두 개의 가상 툴을 몰래 끼워넣는다. LLM은 이걸 진짜 툴처럼 부르지만, 호출은 상위 API로 안 가고 프록시가 가로채 로컬에서 처리한다.

비유

도서관 대출 시스템. 책 전체(원본)를 늘 들고 다니면 무겁다. Paritok은 각 책을 "제목+한 줄 초록+청구기호([REF:id])" 카드로 바꿔 준다. 대부분은 카드만 봐도 충분하다. 정말 본문이 필요하면 청구기호로 expand_context를 불러 그 책 원본을 그 자리에서 꺼내 온다 — 책은 버려진 게 아니라 서고(섀도 스토리지)에 그대로 있다.

규칙 기반 안전망 — must-keep 정규식

모델 판단만 믿지 않는다. src/mustkeep.py는 하나의 거대 정규식으로 절대 버리면 안 되는 스팬을 스캔한다 — 파일 경로, 스택트레이스의 File "...", 줄번호, 커밋 해시, URL, XxxError/XxxException 같은 에러 클래스, snake_case·camelCase 식별자, 패키지명(numpy·torch…). 이 스팬들은 압축 대상에서 보호된다. "모델의 감각 + 규칙의 보증"을 겹쳐 함수명·경로 손실을 막는 이중 안전장치다.

5디렉토리 구조 해부

저장소를 열면 보이는 것들 — 무엇이 런타임이고 무엇이 학습인가
paritok-4b-v1/ ├── paritok/ ← ★ 런타임 코어 (사용자가 매일 돌리는 것) │ ├── cli.py up / proxy / init 명령 (click) │ ├── config.py paritok.yaml → 데이터클래스 설정 │ ├── token_counter.py tiktoken 토큰 계수 │ ├── storage.py 섀도 스토리지 (id → 원본 보관) │ ├── middleware/ │ │ └── wrapper.py ★ ParitokEngine — 4단계 오케스트레이션 (640줄) │ ├── pipelines/ │ │ ├── compress.py 툴 출력/히스토리 압축 (286줄) │ │ ├── tool_discovery.py 70개 툴 → top-K 선택 (240줄) │ │ └── virtual.py expand_context / gateway_search_tools 스키마 │ ├── proxy/ │ │ ├── server.py ★ Starlette 프록시 서버 (1,291줄) │ │ ├── adapters/ anthropic / openai / responses 프로토콜 변환 │ │ ├── codex_setup.py ~/.codex/config.toml 자동 작성 │ │ └── pricing.py 모델별 캐시-인지 요금표 (절감액 추정) │ └── strategies/ │ ├── local_model.py Ollama 호출 (306줄) │ ├── chunking.py 큰 입력 청킹 (182줄) │ ├── tagger.py [REF:id] 태깅 │ └── system_prompts/ file_read.txt · other.txt (압축 지시문) ├── src/ ← 공용 규칙/스키마 │ ├── mustkeep.py must-keep 정규식 (68줄) │ ├── schema.py 세그먼트 스키마 │ └── tokenizer_utils.py ├── data_pipeline/ ← 데이터 제작 (재현용, 무거움) │ ├── extract/ 에이전트 궤적 → 세그먼트 풀 │ ├── compress/ gpt-4.1-mini 교사 증류 │ ├── quality/ 품질/벤치/린트 │ ├── review_app/ Electron 리뷰 앱 (사람이 압축 결과 검수) │ └── scripts/ 01_download → 06_distill 파이프라인 ├── training/ ← 학습 │ ├── configs/sft_config_qwen3_4b.yaml │ └── models/ ├── examples/inference/basic.py ← 미들웨어 없이 [SEG] 한 블록 압축 예제 ├── tests/ ├── deploy.sh ← ollama pull + cp + 프록시 기동 ├── pyproject.toml ← 런타임 패키지 정의 (v1.2.7) └── requirements.txt ← 학습 스택 (transformers/trl/peft…)

구조가 던지는 메시지는 분명하다. 왼쪽 위(paritok/)만 알면 도구를 쓸 수 있고, data_pipeline/·training/은 "우리가 어떻게 이 모델을 만들었는지 다 공개한다"는 투명성의 증거물이다. 특히 data_pipeline/review_app/(사람이 압축 결과를 눈으로 검수하는 Electron 앱)의 존재는, 데이터 품질을 손으로 관리했다는 신호다.

6학습 포인트 — 기술별 배울 것

이 레포를 뜯으면 실제로 손에 남는 것들

① LLM 프록시/게이트웨이 패턴

이 프로젝트의 진짜 교재 가치는 "에이전트를 안 고치고 동작을 바꾸는 법"이다. ANTHROPIC_BASE_URL 하나만 바꿔 요청을 가로채고, 본문을 변형해 상위로 포워딩하고, 헤더(진짜 API 키)는 그대로 흘려보낸다. proxy/adapters/에서 Anthropic Messages·OpenAI Chat·OpenAI Responses 세 가지 와이어 프로토콜을 서로 변환하는 코드는, LLM 인프라를 짜는 사람에게 그대로 참고서가 된다.

② 작은 특화 모델 > 큰 범용 모델 (증류의 실전)

"gpt-4.1-mini에게 정답을 만들게 하고 4B가 흉내 낸다"는 교사 증류 + LoRA 파이프라인 전체(data_pipeline/training/)가 공개돼 있다. 데이터 수집 → 세그먼트화 → 교사 라벨링 → 필터/리밸런스 → SFT → 체크포인트 선택의 6단계를 그대로 읽을 수 있는, 흔치 않은 오픈 교재다.

③ 정규식 + LLM 하이브리드 설계

mustkeep.py는 "LLM은 감으로 압축하되, 규칙으로 핵심을 보증한다"는 방어적 설계의 좋은 예다. 순수 LLM도 순수 규칙도 아닌 겹layer 안전망 — 프로덕션 AI 시스템에서 자주 필요한 패턴이다.

④ 임베딩 기반 라우팅 + 캐시 인지 최적화

bge-small로 툴을 top-K 선택하는 tool_discovery.py로컬 임베딩으로 무엇을 컨텍스트에 넣을지 고르는 미니 RAG다. 여기에 "선택을 대화당 고정해 프롬프트 캐시를 안 깬다"는 비용 인지까지 얹혀 있어, 실전 토큰 경제학을 배우기 좋다.

실습 아이디어 · 워밍업

paritok up으로 프록시를 띄우고 Claude Code를 붙인 뒤, curl 127.0.0.1:8080/stats내 실제 세션의 압축률·절감 토큰을 관찰해 보라. 그다음 trace.enabled를 켜서 원본 vs 압축본을 tool_result 단위로 diff — "무엇이 버려지고 무엇이 지켜지는가"를 눈으로 확인하는 게 이 도구를 신뢰(또는 불신)하는 가장 빠른 길이다.

7시스템 / 실행 요구사항

돌리려면 무엇이 필요한가 — 3가지 경로
경로필요 자원비고
Ollama 자체호스팅 (기본)q4 모델 ~2.5GB 디스크, CPU/맥에서도 구동paritok up이 자동 pull. 가장 쉬운 길
vLLM (LoRA 어댑터 직접)24GB GPU 1장, bf16Qwen3-4B + LoRA를 OpenAI 호환 서빙
Paritok GPU 서버GPU 불필요, API 키만paritok.com 유료 호스팅(use_gpu_server: true)
한계 · 적합하지 않은 경우
짧은 컨텍스트·단발 Q&A엔 오히려 손해

컨텍스트가 이미 2,000토큰 미만이거나, 히스토리가 누적되지 않는 단발 질의응답이면 300ms 오버헤드만 얹힐 뿐 절감이 없다. "바이트 단위로 완전 동일한 컨텍스트, 요약 단계 자체를 용납 못 함"인 워크로드도 부적합(다만 이 경우 대부분 expand_context로 커버된다고 README는 반박한다). v1은 Python 편중 — TypeScript·Rust·Go 등 다국어 지원은 v2 로드맵이다.

8직접 해볼 수 있는 실습 과제

난이도별로 손을 움직여 보는 과제
난이도 ★ · 초급

1. 내 세션 절감량 측정 30분

pip install "paritok[proxy]"paritok upANTHROPIC_BASE_URL 설정 후 Claude Code로 아무 프로젝트나 몇 턴 작업. /stats를 찍어 compression_ratiotokens_saved를 기록하라. 짧은 작업 vs 긴 롱세션에서 숫자가 어떻게 달라지는지 비교.

난이도 ★★ · 초중급

2. must-keep 정규식 확장 2~3시간

src/mustkeep.pyCOMBINED_PATTERN은 numpy·torch 등 정해진 패키지명만 보호한다. 여기에 네가 쓰는 스택(예: React 훅 useXxx, 환경변수 ENV_VAR, 도커 이미지 태그)을 보호 스팬으로 추가하고, 압축 trace에서 그것들이 실제로 지켜지는지 확인하라.

난이도 ★★★ · 중급

3. 압축 trace 뷰어 만들기 반나절

trace.enabled로 남는 JSONL(원본·압축본·토큰수)을 읽어, tool_result별로 "원본 ↔ 압축본 side-by-side diff + 절감 토큰"을 보여 주는 작은 HTML 대시보드를 짜라. 어떤 종류의 콘텐츠가 잘 압축되고(로그) 어떤 건 안 되는지(코드) 데이터로 답이 나온다.

난이도 ★★★★ · 중고급

4. 새 프로토콜 어댑터 추가 1~2일

proxy/adapters/를 참고해, Gemini 네이티브 API나 다른 공급자용 어댑터를 하나 추가하라. 요청 파싱 → ParitokEngine.process_request() 호출 → 압축 결과를 그 프로토콜로 재직렬화하는 흐름을 익히면, LLM 게이트웨이의 뼈대를 완전히 이해하게 된다.

난이도 ★★★★★ · 고급

5. 미니 압축 모델 재현 1주+ · GPU 필요

data_pipeline/로 소규모 궤적 풀을 만들고, 더 작은 베이스(예: Qwen3-1.7B)에 LoRA SFT로 축소판 압축기를 학습해 보라. 교사 증류 → 필터 → SFT → 체크포인트 선택의 전 과정을 직접 밟으며, 압축률/품질 트레이드오프를 스스로 튜닝.

9관련 기술 심화 로드맵 (주차별)

Paritok을 온전히 소화하기 위한 4주 학습 경로

1주차 — LLM 토큰 경제학 & 프록시 기초

2주차 — 컨텍스트 압축과 RAG의 경계

3주차 — 미세조정: LoRA & 증류

4주차 — 에이전트 평가와 프로덕션 안전망

10핵심 키워드 사전

이 레포를 읽을 때 반복 등장하는 용어 빠른 정리
용어
압축률(CR)압축 후/전 토큰 비율. 25.7% = 원본의 4분의 1로 줄임. 낮을수록 세게 압축.
품질 유지율압축기 정답률 ÷ 무압축 정답률. 86.5% = 무압축의 86.5%만큼 문제를 품.
[REF:id]압축된 조각 자리에 남는 참조 태그. src=경로 힌트 포함 가능.
섀도 스토리지[REF:id]의 원본을 보관하는 로컬 저장소. expand_context가 여기서 원문을 꺼냄.
expand_contextLLM이 부르는 가상 툴. 압축된 원문을 즉시·정확히 복구.
gateway_search_tools툴 발견 단계에서 스텁된 툴 스키마를 되찾는 가상 툴.
툴 발견70개+ 툴 중 관련 top-K만 전체 스키마로 남기는 스키마 다이어트.
must-keep정규식으로 보호하는 절대-보존 스팬(경로·에러·식별자·해시…).
LoRA본체는 두고 얇은 보정 어댑터만 학습하는 미세조정 기법(r=32).
교사 증류gpt-4.1-mini의 압축 정답을 4B가 흉내 내며 배우는 방식.
refusal_threshold압축 효과가 5% 미만이면 그냥 원본을 유지(무의미한 압축 방지).
use_gpu_server압축을 자체 하드웨어(false)/Paritok 호스팅(true) 어디서 돌릴지 스위치.

11참고 링크

원본과 더 파고들 자료