2P by GN⁺ | ★ favorite | 댓글 1개
  • Petals는 대형 언어 모델 전체를 한 기기에 올리지 않고, 가정용 GPU나 Google Colab으로 일부만 실행해 텍스트 생성과 파인튜닝을 가능하게 함
  • Llama 3.1 최대 405B, Mixtral 8x22B, Falcon 40B+, BLOOM 176B까지 지원해 개인 장비로도 대형 모델을 다룰 수 있음
  • 사용자는 자신이 맡은 모델 조각을 로드한 뒤, 나머지 조각을 제공하는 참여자 네트워크에 연결되는 BitTorrent식 구조로 동작함
  • 단일 배치 추론은 Llama 2 70B에서 최대 6 tokens/sec, Falcon 180B에서 최대 4 tokens/sec로 챗봇과 대화형 앱에 쓸 수 있는 수준임
  • 일반 LLM API보다 넓게 파인튜닝·샘플링 방식을 고르고, 모델 내부 경로와 hidden states까지 다룰 수 있음

분산 방식으로 대형 모델 실행

  • Petals는 대형 언어 모델을 집에서 실행하는 것을 목표로 하며, BitTorrent처럼 여러 사용자가 모델의 서로 다른 부분을 제공하는 방식으로 동작함
  • 사용자는 모델 전체를 로드하지 않고 모델 일부만 올린 뒤, 나머지 부분을 제공하는 네트워크에 참여함
  • 지원 모델:
    • Llama 3.1: 최대 405B
    • Mixtral: 8x22B
    • Falcon: 40B+
    • BLOOM: 176B
  • 가정용 GPU 또는 Google Colab으로 텍스트 생성과 작업별 파인튜닝을 수행할 수 있음
  • 단일 배치 추론 성능:
    • Llama 2 70B: 최대 6 tokens/sec
    • Falcon 180B: 최대 4 tokens/sec
  • 이 속도는 챗봇과 대화형 앱에 충분한 수준임

API보다 넓은 제어 범위

  • Petals는 전통적인 LLM API를 넘어 파인튜닝과 샘플링 방법을 직접 선택할 수 있게 함
  • 모델을 통과하는 커스텀 경로를 실행하거나 hidden states를 확인할 수 있음
  • API의 편의성과 PyTorch, 🤗 Transformers의 유연성을 함께 제공함
  • 바로 실행해 볼 수 있는 Colab 노트북GitHub 문서가 제공됨
  • GPU를 제공해 Petals 용량을 늘리는 참여 방법이 있으며, 개발 소식은 Discord에서 따라갈 수 있음
  • 이 프로젝트는 BigScience 연구 워크숍의 일부임

댓글과 토론

Hacker News 의견들
  • 흥미롭다. 모델 가중치를 층별로 나눠 여러 머신에 분산하고, 각 머신은 준비가 되면 큰 해시 테이블에 자신을 등록한 뒤 자기 담당 층에 대해 “팀으로” 추론이나 미세 조정을 수행하는 구조로 보임
    아직 초기 단계지만 https://github.com/jmorganca/ollama용 모델 가중치를 Docker 레지스트리에 호스팅하는 작업을 해왔음. 주된 이유는 콘텐츠 주소 지정성으로, Ollama가 매번 올바른 가중치가 내려받아졌는지 검증할 수 있고, 결국 이름이나 바뀔 수 있는 URL 대신 콘텐츠 자체로 가중치를 가져올 수 있게 됨
    다음 단계로는 모델을 층별로 나누고 각 층을 독립적으로 저장해 이런 용도에 쓰거나, 여러 “로컬” 머신에 걸쳐 더 큰 모델을 다운로드하고 실행하는 데 활용할 수 있을 듯함

    • 자기 홍보를 좀 줄일 수 없을까. LLM 관련 글마다 ollama 댓글을 자주 봤음
      HN 가이드라인도 “HN을 주로 홍보에 쓰지 말고, 자기 작업을 가끔 올리는 건 괜찮지만 사이트의 주된 사용 목적은 호기심이어야 한다”고 되어 있음
      이번 경우에도 OP 작업에 대해 말하면서 프로젝트로 가는 무료 백링크는 빼도 충분했을 것 같음
  • “작업에 맞게 미세 조정할 수 있다”는 부분에서 눈썹이 올라갔음
    70B 미세 조정은 그냥 어려운 수준이 아니라, 아무리 오래 기다릴 수 있어도 아주 비싼 클라우드 인스턴스를 빌리거나 집값 수준의 PC를 사지 않으면 말 그대로 불가능함
    “llama 학습 호드”가 있다면 기꺼이 참여하겠음

    • 전통적인 미세 조정에는 맞는 말이지만, 매개변수 효율 미세 조정이나 qLORA에도 해당되는지는 모르겠음
      이해하기로는 N십억 매개변수 모델은 N보다 약간 작은 기가바이트 VRAM을 가진 GPU로 미세 조정이 가능함
      70B 매개변수 모델이면 A100 정도일까?
    • H100은 집은 아니고 자동차 정도 가격에 가깝지 않나 싶음
    • 신뢰하기 어려운 네트워크에서 분산 방식으로 미세 조정하면 단일 노드나 잘 연결된 클러스터보다 에너지·비용 효율이 훨씬 나빠질 수 있음
      또 Lambda Cloud에서는 70B 모델을 백만 토큰 기준 2달러에, Replicate에서는 10달러 미만에 미세 조정할 수 있음
    • LLM 학습을 병렬화하지 못하게 막는 게 뭘까? 책 1을 먼저 읽고 책 2를 읽든, 반대로 읽든 지식 업데이트 결과는 같을 것임
      LLM도 각 책을 독립적으로 학습한다고 보면, LLM 가중치의 두 델타를 그냥 더하면 될 것 같아 보임
    • CentML의 컴파일러 최적화 기술을 쓰면 모델 변경 없이 4×A10에서 40B Falcon을 미세 조정할 수 있음
  • 학습된 LLM은 어떤 방식으로든 합성 가능한가? 예를 들어 둘 다 99% 같은 데이터를 신뢰하지만 1%에서만 다르다면, 완전히 별도 모델 두 개가 필요할까, 아니면 99%에 대해서는 같은 의견을 가진 다른 사람들과 함께 연산을 공유하고 각자의 신뢰 모델 차이를 보정하는 파생 모델을 만들 수 있을까?
    신경망에 대한 이해는 기초 수준이지만, 모델의 유용성을 유지하면서 가중치를 그런 식으로 조작하는 게 말도 안 되는 일처럼 보이진 않음
    묻는 이유는 같은 성능의 LLM 두 개가 어떤 문장에 동의하고 어떤 문장에 disagreement가 있는지 알 수 있으면 유용할 것 같기 때문임. 그러면 그 차이를 역으로 학습 데이터의 차이에 매핑할 수 있음. 차이가 작을 때만 가능하겠지만
    반대로 같은 성능의 LLM 두 개가 더 강한 모델 하나를 만들 기회를 놓친 것에 가깝고, disagreement 분석도 지나치게 비싸다면 꽤 다른 세계가 됨

  • 악의적인 참여자가 더 큰 계산에서 자기 몫의 출력을 바꾸는 걸 어떻게 막을까? 공격자가 정한 네트워크 출력을 만들 수 있는 방법 같은 게 없더라도, 많은 노드가 들어와 그냥 쓰레기 결과를 반환하면 시스템을 사실상 서비스 거부 공격할 수 있어 보임

    • Petals 개발자임. 모든 서버를 주기적으로 훑고 잘못된 결과를 반환하는 서버를 차단하는 검증기를 개발 중임
      또한 클라이언트는 네트워크에서 서로 겹치지 않는 여러 경로로 데이터를 흘려보내고 결과가 일치하는지 확인할 수 있음
      잦은 공격자는 잡아내지만 100% 보호를 제공하진 않으므로, 완전한 정확성 보장이 필요하면 사람들이 비공개 swarm을 구성하리라 봄. 예를 들어 혼자 LLM을 돌릴 만큼 GPU가 충분하지 않지만 신뢰할 수 있는 하드웨어 소유자들이 있다면, 비공개 Petals swarm을 구성해 지리적으로 분산된 하드웨어에서 함께 LLM을 실행하고 데이터를 처리할 수 있음
  • 처음 든 질문은 “경제성은 어떤가?”였음. FAQ에 따르면:
    Petals 인센티브가 암호화폐, 블록체인 등에 기반하나? 아니다. Petals는 다른 모든 면에서 완전히 탈중앙화된 시스템이지만, 인센티브는 AI Horde kudos와 비슷한 중앙화 시스템으로 작업 중임. 이 포인트를 돈으로 교환하는 서비스는 제공할 계획이 없으니, 시스템 안에서 쓰는 “게임” 포인트로 보면 됨
    Petals는 머신러닝 연구자와 엔지니어를 위한 머신러닝 중심 프로젝트이며 금융과는 관련이 없음. 인센티브 시스템을 중앙화하기로 한 이유는 개발과 유지보수가 훨씬 쉬워서, 머신러닝 연구자에게 유용한 기능 개발에 집중할 수 있기 때문임
    https://github.com/bigscience-workshop/petals/wiki/FAQ:-Freq...

    • 여기서 말하는 AI Horde kudos는 정말 멋지고, 개인적으로는 심각하게 덜 쓰이고 있다고 봄:
      https://lite.koboldai.net/
      https://tinybots.net/artbot
      https://aihorde.net/
      사실 HN에서 특정 13B~70B 미세 조정 모델을 테스트해보고 싶은 사람이 있으면 오후에 호스팅할 수 있음:
      https://huggingface.co/models?sort=modified&search=70B+gguf
    • 그래픽 디자인 쪽에는 오래전부터 분산 렌더팜이 있었음. 포인트가 높으면 작업 우선순위가 올라가는 것 말고는 별도 인센티브가 없음
      https://www.sheepit-renderfarm.com/home
    • “공개 swarm에 모델 층을 호스팅할 동기는 무엇인가?”에 대한 답을 보면, 직접 추론과 미세 조정을 실행하는 사람은 모델 일부를 로컬에 호스팅하면 어느 정도 속도 향상을 얻음. 또 BitTorrent 사용자가 이미 내려받은 데이터를 공유해 다른 사람을 돕는 것처럼, 자신을 도와 모델을 실행하게 해준 커뮤니티에 되돌려주려는 동기도 있을 수 있음
      모두에게 충분하지 않을 수 있어, GPU 시간을 공개 swarm에 기부하는 사람을 위한 명시적 인센티브인 “bloom points”도 도입 중임. 시스템이 준비되면 웹사이트에 상위 기여자를 표시하고, 포인트를 얻은 사람은 더 높은 우선순위나 강화된 보안 보장으로 추론·미세 조정에 쓰거나, 어쩌면 다른 보상으로 교환할 수 있게 됨
      그래도 어느 정도 중앙화 토큰을 원하는 것처럼 보이긴 함
    • 이제 모든 탈중앙화 프로젝트가 암호화폐와 비교되어야 하는 건 아쉬움
    • 논리적 결론은 결국 모델들이 암호화폐 결제와 연결될 것이라는 쪽임. 여기서 Lightning이 중요해짐
      덧붙이면, Petals의 “토큰”을 결제 시스템에 연결하자는 뜻은 아님. 일반적으로 탈중앙화 여부와 무관하게 머신러닝 모델 클러스터 호출에는 인증과 결제 수단을 동시에 제공하는 암호화폐 결제가 쓰일 가능성이 높다는 뜻임
      Petals는 모델 사용을 위한 탈중앙화 연산의 좋은 구현이고 장기적으로 가치가 있을 듯함
  • 3080 Ti를 공유하고 싶었지만 시작 가이드의 명령을 실행해보니 의존성 버전 문제가 있는 듯함: https://github.com/bigscience-workshop/petals/wiki/Run-Petal...
    ImportError: cannot import name 'get_full_repo_name' from 'huggingface_hub' (~/.local/lib/python3.8/site-packages/huggingface_hub/__init__.py)

  • 자체 서버 swarm을 호스팅할 수 있는 듯함 [0]
    “비공개” Petals 클러스터의 미세 조정 성능이 대략 어느 정도인지 궁금함
    [0] https://github.com/bigscience-workshop/petals/wiki/Launch-yo...

    • 신뢰할 수 있는 환경에서 클러스터를 돌린다면 Ray나 비슷한 걸 쓰는 편이 더 효율적일 것 같음
  • 정말 멋지다. 이 분야에서 수천, 수백만 명의 개발자가 더 접근할 수 있게 해주면 좋겠음

  • 크라우드소싱이 미래라고 생각해왔음. 정보든 연산이든 마찬가지임
    사실 “자원”은 이미 있고, 배치의 문제일 뿐임

  • 예전 프로젝트에서 Petals를 써본 적이 있음. GPU도 공유했고 프로젝트용 코드도 작성했음
    Petals 부분은 내게 추상화되어 있었고, 코드를 작성하는 경험은 평범했음
    그 프로젝트를 어디에도 올려두진 않았고 이후 어떻게 됐는지도 잘 모름. 대체로 다섯 명 정도가 주도하던 일이었음