我使用的是带有M1芯片的MacBook Pro,我很难让aitextgen识别它的GPU--它寻找的是CUDA GPU,而苹果硅Mac电脑不使用。它的工作原理不使用GPU,但当然是慢。
下面是我运行的代码:
# Info on GPT Neo Models: https://huggingface.co/models?other=gpt_neo
import numpy as np
import pandas as pd
from aitextgen.TokenDataset import TokenDataset
from aitextgen.tokenizers import train_tokenizer
from aitextgen.utils import GPT2ConfigCPU
from aitextgen import aitextgen
# This code is from Apple and it invokes MPS : https://developer.apple.com/metal/pytorch/
import torch
if torch.backends.mps.is_available():
mps_device = torch.device("mps")
x = torch.ones(1, device=mps_device)
print (x)
else:
print ("MPS device not found.")
ai = aitextgen(model="EleutherAI/gpt-neo-1.3b", to_gpu=True)
字符串
下面是Python的输出:
tensor([1.],device ='mps:0')Generate config GenerationConfig {"_from_model_config ":true,"bos_token_id":50256,"eos_token_id":50256,"transformers_version":"4.28.1 "}从aitextgen/models--EleutherAI--gpt-neo-1.3b/snapshots/8282180b53cba30a1575e49de1530019e5931739/vocab的缓存加载文件vocab.json。jsonloading file merges.txt from cache at aitextgen/models--EleutherAI--gpt-neo-1.3b/snapshots/8282180b53cba30a1575e49de1530019e5931739/merges. txt从aitextgen/models--EleutherAI--gpt-neo-1.3b/snapshots/8282180b53cba30a1575e49de1530019e5931739/special_tokens_map. json从aitextgen/models--EleutherAI-gpt-neo-1.3b/snapshots/8282180b53cba30a1575e49de1530019e5931739/special_tokens_map. json从aitextgen/models--EleutherAI-gpt-neo-1.3b/snapshots/8282180b53cba30a1575e49de1530019e5931739/tokenizer_config.json从aitextgen/models未安装CUDA。
看起来aitextgen不支持苹果的MPS GPU框架。有人在苹果硅Mac上使用aitextgen和Huggingface模型吗?
2条答案
按热度按时间hlswsv351#
您可以在代码中看到,无法显式设置任意设备:
https://github.com/minimaxir/aitextgen/blob/master/aitextgen/aitextgen.py
如果你想让它工作,你可以自己修改代码(也许向他们提交PR)。
0vvn1miw2#
你有没有考虑过直接使用拥抱脸库?这并不能保证任何一种模式都能奏效,但至少你有机会让它奏效。我的经验是,大多数模型都需要MPS体系结构中没有实现的功能。
字符串
如果你得到任何MPS错误,简单地“到”设备到“CPU”。
这一点:
型
变成:
型
我用我的例子在我的英特尔Mac上测试了运行模型,它在CPU上运行得很好。