yek 소개
yek은 빠르고 효율적인 방식으로 프로젝트의 텍스트 기반 파일을 처리하여 대규모 언어 모델(LLM)이 쉽게 소비할 수 있도록 데이터를 구조화하고 직렬화하는 도구입니다. Rust로 작성되어 빠른 속도와 높은 안정성을 제공하며, 특히 파일 우선순위를 지정하고 .gitignore
를 활용하여 불필요한 파일을 건너뛸 수 있는 기능이 돋보입니다.
yek은 주로 다음과 같은 작업을 자동화할 수 있는 CLI 도구입니다:
-
프로젝트 내 텍스트 파일을 처리하고, 원하는 크기나 토큰 개수로 청크(Chunk)로 나눕니다.
-
.gitignore 규칙 및 Git 히스토리를 활용하여 중요한 파일만 선택적으로 처리합니다.
-
결과 데이터를 임시 디렉토리에 저장하거나 스트리밍 방식으로 출력합니다.
Rust 기반으로 작성된 만큼 성능이 뛰어나며, 특히 대규모 파일이 있는 프로젝트에서도 빠른 처리 속도를 보장합니다. 기본적으로 프로젝트의 모든 파일을 10MB 단위로 나누어 LLM이 쉽게 처리할 수 있는 형태로 제공합니다. LLM 학습 및 추론 워크플로우에서 yek은 데이터 준비 시간을 획기적으로 단축할 수 있습니다.
또한, yek은 비슷한 도구인 Repomix와 비교해 최대 230배 빠른 성능을 자랑합니다. Rust의 병렬 처리와 효율적인 I/O 작업을 통해 속도 면에서 큰 장점을 보유하고 있습니다. 특히 다음과 같은 기능에서 차별화됩니다:
-
.gitignore 및 Git 히스토리를 활용한 우선순위 처리.
-
기본적으로 바이너리 파일 및 대용량 파일을 무시.
-
사용자 지정 가능성이 높은 설정 파일(yek.toml) 제공.
yek의 주요 기능
-
파일 우선순위 지정: Git 기록 및 사용자 정의 규칙을 기반으로 더 중요한 파일을 마지막에 출력하여 LLM의 집중도를 높임.
-
청크 크기 조절: 기본 10MB 크기, 최대 토큰 수 등을 지정 가능.
-
스트리밍 출력 지원: 파이프를 통해 다른 명령어로 결과를 전달 가능.
-
다중 디렉토리 처리: 여러 디렉토리를 한 번에 처리 가능.
-
사용자 정의 설정: yek.toml 파일을 통해 추가적인 무시 패턴 및 우선순위 규칙 설정 가능.
라이선스
yek 프로젝트는 MIT 라이선스로 공개된 오픈소스 프로젝트입니다.
yek GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~