분산 추론의 개요
분산 추론의 개요
Petals는 BitTorrent 방식으로 초대형 LLM을 분산 추론·파인튜닝하게 해 주는 BigScience 프로젝트예요. 모델 전체를 내 컴퓨터에 올리지 않아도, 네트워크의 여러 사람이 레이어를 나눠 서빙하며 거대한 모델을 돌릴 수 있어요.
한마디로 '집에서 LLM을 BitTorrent 스타일로 돌린다'는 거예요. 공개 스웜에서 분산 Llama 3.1(최대 405B), Mixtral(8x22B), Falcon(40B+), BLOOM(176B)을 추론하고 파인튜닝할 수 있어요. 오프로딩보다 최대 10배 빠르다고 문서는 주장해요.
사용법은 정말 간단해요. 몇 줄로 모델을 로드하고 generate를 부르면 끝나요.
from transformers import AutoTokenizer
from petals import AutoDistributedModelForCausalLM
# Choose any model available at https://health.petals.dev
model_name = "meta-llama/Meta-Llama-3.1-405B-Instruct"
# Connect to a distributed network hosting model layers
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoDistributedModelForCausalLM.from_pretrained(model_name)
# Run the model as if it were on your computer
inputs = tokenizer("A cat sat", return_tensors="pt")["input_ids"]
outputs = model.generate(inputs, max_new_tokens=5)
print(tokenizer.decode(outputs[0])) # A cat sat on a mat...
핵심은 AutoDistributedModelForCausalLM이에요. 로컬 파이토치 모델인 것처럼 코딩하지만, 실제로는 분산 네트워크가 레이어를 제공해요. 405B짜리 Llama 3.1을 내 컴퓨터에 통째로 안 올려도 된다는 게 실질적인 이득이죠.
단일 배치 추론은 Llama 2(70B) 기준 초당 최대 6 토큰, Falcon(180B) 기준 초당 최대 4 토큰 정도로, 챗봇 같은 인터랙티브 앱에는 충분해요.