CLOVA Studio 운영자 Posted January 2 공유하기 Posted January 2 TOON, LLM 입력 구조를 다시 생각하게 만든 포맷 대규모 언어 모델(LLM)에서 연산 속도와 토큰 효율을 높이면서 응답 품질을 유지하거나 향상시키려는 시도는 계속되고 있습니다. 특히 엔터프라이즈 환경에서는 토큰 사용량과 Latency가 곧 비용과 사용자 경험으로 직결됩니다. JSON은 구조가 명확하고 범용성이 높아 LLM 입력 포맷으로 널리 활용되고 있습니다. 그러나 반복되는 key-value 구조와 다양한 구분자는 토큰 소모를 빠르게 증가시키고, 결국 연산 비용이 증가하는 문제도 있습니다. 오늘은 이러한 문제를 해결하기 위해 등장한 TOON(Token-Oriented Object Notation) 포맷을 살펴봅니다. TOON은 JSON의 표현력을 유지하면서도, 동일한 정보를 더 간결하게 표현해 토큰 사용량을 줄이고 LLM이 구조를 더 효율적으로 해석하도록 설계된 입력 포맷입니다. TOON의 경량화된 구조 이미지 출처: https://github.com/toon-format/toon TOON은 반복되는 객체 리스트를 탭형(tabular) 구조로 표현할 수 있도록 설계된 입력 포맷입니다. 계층 구조는 들여쓰기로 유지하면서, 동일한 구조의 배열에 대해서는 필드 목록을 한 번만 선언하고 이후 값을 행(row) 단위로 나열합니다. 이 방식은 JSON에서 반복적으로 등장하는 key-value 구조를 제거해 입력을 간결하게 만듭니다. 반복된 구조를 압축적으로 표현해 토큰 사용량을 크게 줄일 수 있습니다. 모델이 구조를 더 쉽게 파악해 특정 Task에서 속도 개선 가능성이 있습니다. 사람이 읽고 비교, 검수하기 쉬운 간결한 구조를 제공합니다. 예를 들어 JSON의 product 리스트가 다음과 같다면, { "products": [ { "product_id": "301", "name": "무선 마우스", "price": "29900", "stock": "재고 있음", "rating": "4.5" }, { "product_id": "302", "name": "기계식 키보드", "price": "89000", "stock": "재고 부족", "rating": "4.8" }, { "product_id": "303", "name": "USB-C 허브", "price": "45500", "stock": "품절", "rating": "4.1" } ] } TOON에서는 아래와 같이 표현할 수 있습니다. products[3]{product_id,name,price,stock,rating}: 301,무선 마우스,29900,재고 있음,4.5 302,기계식 키보드,89000,재고 부족,4.8 303,USB-C 허브,45500,품절,4.1 동일한 정보이지만 반복되는 key가 제거되면서 토큰 사용량은 크게 줄어들고, LLM이 인식해야 할 구조 역시 훨씬 단순해집니다. 입력 포맷별 벤치마크 결과 다음은 TOON GitHub에서 공개된 벤치마크 결과입니다. TOON, JSON, YAML, XML 등 주요 포맷을 대상으로 비교 실험을 진행했습니다. 입력 포맷의 효율성은 1,000 토큰당 정확도(acc% / 1K tokens) 기준으로 평가되었습니다. 즉, 같은 질문을 풀었을 때의 정답률을 토큰 사용량으로 나눈 지표입니다. 이 기준에서 TOON은 JSON 대비 약 39.6% 적은 토큰을 사용하면서도, 더 높은 정확도(73.9% vs 69.7%)를 기록했습니다. 즉, 표현 방식만 바꿨는데도, 토큰 대비 성능 지표에서 변화가 관찰되었습니다. ※ CSV는 단순한 테이블 데이터에서는 매우 효율적이지만, 복합적인 구조를 표현하는 데 한계가 있어 전체 비교에서는 제외되었습니다. HyperCLOVA X 모델로 실험하기 CLOVA Studio에서 HyperCLOVA X 모델을 활용해 JSON과 TOON을 비교했습니다. 이번 실험은 입력 포맷을 변경했을 때 나타나는 차이와 특성을 살펴보는 데 초점을 두었습니다. 1. 단순 구조 데이터 대규모 JSON 배열을 그대로 전달하는 상황에서는 TOON의 특성이 비교적 명확하게 드러났습니다. 동일한 데이터를 TOON 형식으로 변환했을 때, Prompt token 사용량이 약 27.3% 감소했습니다. 2. Reasoning 중심 Task KMMLU와 같은 추론 중심 Task에서는 JSON이 더 안정적인 결과를 보였습니다. 정답률 측면에서 JSON이 우세했으며, TOON의 토큰 효율성은 이 영역에서 의미 있는 차이를 만들지 못했습니다. 3. RAG 기반 Task RAG 기반 Task에서는 일부 작업에서 긍정적인 경향이 관찰되었습니다. 특히 요약, 비교, 추천, 정보 추출처럼 Retrieval 결과를 후처리하는 유형의 Task에서 TOON이 상대적으로 안정적인 성능을 보였습니다. 4. API 응답/로그 분석 API 응답이나 로그 데이터처럼 반복 패턴이 많은 데이터를 다루는 Task에서도 TOON이 유리한 경향을 보였습니다. 이상 탐지, 패턴 분석, 단순 요약과 같은 작업에서 입력 크기가 줄어들면서 처리 효율이 개선되는 모습을 확인할 수 있었습니다. 마치며 모델 자체를 변경하지 않고 입력 포맷을 조정하는 것만으로도, 특정 유형의 작업에서는 토큰 사용량과 처리 효율에 차이를 만들 수 있음을 확인했습니다. TOON은 모든 상황에 적용할 수 있는 해법은 아니지만, 구조가 단순하고 반복적인 데이터가 많은 영역에서는 하나의 선택지가 될 수 있습니다. 결국 LLM 입력에서도 중요한 것은, 정보를 얼마나 효율적인 형태로 전달하고 있는가일 것입니다. 이번 포스팅은 여기서 마무리하며, 다음에도 유용한 활용 팁으로 찾아오겠습니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인