
Pirate Face는 피어가 30초 안에 파일 목록을 보내지 않으면 해당 파일을 Hugging Face에서 내려받는다. 새 패키지 pirateface를 추가하면 기존 코드를 바꾸지 않고 Hugging Face 모델 파일을 비트토렌트로 받을 수 있다.
transformers나 huggingface_hub를 사용하는 코드는 그대로 두고 다운로드 경로를 바꾸려는 사람에게 쓸모가 있다. diffusers, sentence-transformers, hf_hub_download, snapshot_download, hf download 명령도 대상이다.
이게 뭔데?
기존 다운로드 경로 옆에 토렌트 경로를 붙이는 것을 떠올리면 쉽다. pirateface는 파이썬이 시작될 때 실행되는 연결 고리를 설치하고, Hugging Face에서 내려받는 파일을 토렌트 피어에서도 가져오도록 한다. 정상 사용 시의 캐시 구조와 파일 검증은 Hugging Face 방식에 맡긴다.
기존 코드는 어떻게 달라지나?
가장 간단한 실행 방법은 다음과 같다.
uv run --with pirateface python your_script.py
패키지를 설치해 두고 쓰려면 다음 명령을 실행한다.
pip install pirateface
그 뒤에도 모델을 불러오는 코드는 바뀌지 않는다.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("org/model") # unchanged, now from the swarm
별도의 명령줄 도구도 제공한다.
pf download org/model [--revision REV]
파일은 어떻게 검증하고 언제 기존 경로로 돌아가나?
Pirate Face는 토렌트에서 받은 파일을 일반 Hugging Face 캐시에 넣기 전에 Hugging Face의 지문과 대조한다. 큰 파일에는 SHA-256을, 나머지 파일에는 git SHA-1을 사용한다. 모델이 Pirate Face에 없거나 피어가 파일을 보내지 못하거나 검증에 실패하면 해당 파일은 평소처럼 Hugging Face에서 내려받는다. 패키지를 제거하면 코드는 이전과 같이 실행된다.
패키지는 pirateface.pth를 설치한다. 파이썬 시작 시 실행되지만 huggingface_hub를 가져오기 전에는 아무 작업도 하지 않는다. Hugging Face는 예상 커밋과 지문을 제공하고, 토렌트에서 받은 모든 파일은 그 정보와 대조된다. 파일 목록을 받지 못하면 30초 뒤 Hugging Face에서 받는다. 전송이 60초 동안 진행되지 않아도 Hugging Face 경로로 돌아간다. 캐시 구조와 심볼릭 링크, 잠금은 huggingface_hub가 계속 관리한다.
설정과 설치 조건은 무엇인가?
환경 변수는 값이 비어 있거나 0일 때를 제외하면 켜진 것으로 처리한다.
| 변수 | 기본값 | 기능 |
|---|---|---|
PF_DISABLE | off | 연결 고리를 끈다 |
PF_QUIET | off | 아무것도 출력하지 않는다 |
PF_NO_RESCUE | off | 아직 없는 모델을 Pirate Face에 추가해 달라고 요청하지 않는다 |
PF_DEBUG | off | libtorrent 로그를 출력한다 |
PF_CACHE | ~/.cache/pirateface | 토렌트 데이터와 파일 목록을 저장한다 |
PF_API | https://pirateface.co | Pirate Face 서버를 지정한다 |
PF_LISTEN | 사용 가능한 임의 포트 | libtorrent의 수신 인터페이스를 지정한다 |
PF_METADATA_TIMEOUT | 30 | 피어가 파일 목록을 보내기를 기다리는 시간(초)이다 |
PF_STALL_TIMEOUT | 60 | 진행 없이 기다린 뒤 Hugging Face로 전환하기까지의 시간(초)이다 |
지원 파이썬 버전은 3.12 또는 3.13이다. libtorrent는 아직 3.14용 휠을 제공하지 않는다. uvx가 보유한 최신 파이썬을 선택하므로 버전을 지정해야 한다.
uvx -p 3.13 --with pirateface --from huggingface_hub hf download org/model
개발용 점검 명령은 다음과 같다.
uv run --group dev ruff check
써 보려면 파이썬 버전과 PF_METADATA_TIMEOUT, PF_STALL_TIMEOUT 설정을 확인하면 된다. 원문은 패키지 가격이나 토렌트 다운로드 속도, 지원 모델 범위를 밝히지 않는다. Pirate Face Hub 저장소 · 연결 방식 · 설정 · 개발
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요