综合介绍
Petals 是一个由 BigScience Workshop 开发的开源项目,旨在通过分布式计算的方式运行大型语言模型(LLMs)。用户可以在家中使用消费级 GPU 或 Google Colab 运行和微调 LLMs,如 Llama 3.1、Mixtral、Falcon 和 BLOOM。Petals 采用类似 BitTorrent 的方式,将模型的不同部分分布在多个用户的设备上,从而实现高效的推理和微调。
功能列表
- 运行大型语言模型:支持 Llama 3.1(最高 405B)、Mixtral(8x22B)、Falcon(40B+)和 BLOOM(176B)等模型。
- 分布式推理:通过分布式网络运行模型,单批次推理速度可达 6 tokens/sec(Llama 2 70B)和 4 tokens/sec(Falcon 180B)。
- 快速微调:支持用户对模型进行快速微调,适用于各种任务。
- 社区驱动:依赖社区用户共享 GPU 资源,用户可以贡献自己的 GPU 来增加 Petals 的计算能力。
- 灵活的 API:提供类似 PyTorch 和 Transformers 的灵活 API,支持自定义路径和查看隐藏状态。
- 隐私保护:数据处理通过公共网络进行,用户可以设置私有网络以保护敏感数据。
使用帮助
安装与使用
- 安装依赖:
- Linux + Anaconda:
conda install pytorch pytorch-cuda=11.7 -c pytorch -c nvidia pip install git+https://github.com/bigscience-workshop/petals python -m petals.cli.run_server meta-llama/Meta-Llama-3.1-405B-Instruct
- Windows + WSL:请参考 Wiki。
- Docker:
sudo docker run -p 31330:31330 --ipc host --gpus all --volume petals-cache:/cache --rm \ learningathome/petals:main \ python -m petals.cli.run_server --port 31330 meta-llama/Meta-Llama-3.1-405B-Instruct
- macOS + Apple M1/M2 GPU:
brew install python python3 -m pip install git+https://github.com/bigscience-workshop/petals python3 -m petals.cli.run_server meta-llama/Meta-Llama-3.1-405B-Instruct
- Linux + Anaconda:
- 运行模型:
- 选择任意可用模型,例如:
from transformers import AutoTokenizer from petals import AutoDistributedModelForCausalLM model_name = "meta-llama/Meta-Llama-3.1-405B-Instruct" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoDistributedModelForCausalLM.from_pretrained(model_name) inputs = tokenizer("A cat sat", return_tensors="pt")["input_ids"] outputs = model.generate(inputs, max_new_tokens=5) print(tokenizer.decode(outputs[0]))
- 选择任意可用模型,例如:
- 贡献 GPU:
- 用户可以通过连接 GPU 来增加 Petals 的计算能力,具体操作请参考 Model Hub。
主要功能操作流程
- 选择模型:访问 Petals 网站,选择所需的模型。
- 加载模型:根据上述安装步骤,加载并运行模型。
- 微调模型:使用 Petals 提供的 API 对模型进行微调,适用于各种任务。
- 生成文本:通过分布式网络生成文本,适用于聊天机器人和交互式应用。