在家中运行大型语言模型,类似于BitTorrent的方式。
微调和推理速度比离线加载快最多10倍。
使用分布式的 Llama 3.1(高达405B)、Mixtral(8x22B)、Falcon(40B+)或 BLOOM(176B)生成文本,并在您的桌面计算机或Google Colab上为您的任务微调它们:
from transformers import AutoTokenizer
from petals import AutoDistributedModelForCausalLM
# 选择任何在 https://health.petals.dev 可用的模型
model_name = "meta-llama/Meta-Llama-3.1-405B-Instruct"
# 连接到托管模型层的分布式网络
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoDistributedModelForCausalLM.from_pretrained(model_name)
# 像在本地计算机上一样运行模型
inputs = tokenizer("一只猫坐", return_tensors="pt")["input_ids"]
outputs = model.generate(inputs, max_new_tokens=5)
print(tokenizer.decode(outputs[0])) # 一只猫坐在垫子上...
🦙 想要运行Llama? 请求访问它的权重,然后在加载模型前在终端中运行 huggingface-cli login
。或者,只需在我们的聊天机器人应用中试用。
🔏 隐私。 您的数据将在公共网络中与其他人一起处理。了解更多隐私信息,请点击这里。对于敏感数据,您可以在信任的人之间设置一个私有网络。
💬 有问题吗? 在我们的Discord上联系我们!
连接您的GPU并增加Petals容量
Petals是一个社区驱动的系统——我们依靠人们共享他们的GPU。您可以帮助服务于其中一个可用模型或从🤗 模型库托管一个新模型!
例如,以下是如何在您的GPU上托管部分Llama 3.1 (405B) Instruct模型:
🦙 想要托管Llama? 请求访问它的权重,然后在加载模型前在终端中运行 huggingface-cli login
。
🐧 Linux + Anaconda. 对于NVIDIA GPU运行以下命令(或者按照这个指南为AMD GPU设置):
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. 为NVIDIA GPU运行我们的Docker镜像(或者按照这个指南为AMD GPU设置):
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. 安装Homebrew,然后运行以下命令:
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
📚 了解更多(如何使用多个GPU,在启动时运行服务器等)
🔒 安全性。 托管服务器不会允许其他人在您的计算机上运行自定义代码。了解更多信息。
💬 有问题吗? 在我们的Discord上联系我们!
🏆 感谢您! 一旦您加载并托管了10个以上的区块,我们可以在网络监控器上显示您的姓名或链接,以示感谢。您可以使用 --public_name YOUR_NAME
指定它们。
这是如何工作的?
- 您加载模型的一小部分,然后加入网络以服务于其他部分。对于 Llama 2(70B),单批次推理速度最高为6个标记/秒,对于 Falcon(180B)则最高为4个标记/秒——这足以用于聊天机器人和交互式应用程序。
- 您可以使用任何微调和采样方法,执行自定义路径,或查看其隐藏状态。您将享受API的便利性以及PyTorch和🤗 Transformers的灵活性。
📚 教程、示例及更多
基础教程:
实用工具:
- 聊天机器人Web应用(通过HTTP/WebSocket端点连接到Petals):源代码
- 公共网络的监控器:源代码
高级指南:
- 启动私有网络:[指南](https://