模型介绍
快速开始
Pipelie
from modelscope.pipelies import pipelie
model = 'damo/zero-shot-classify-SSTuig-XLM-R'
pipe = pipelie('zero-shot-classify-sstuig', model=model, model_revisio='v1.0')
text = "I love this place! The food is always so fresh ad delicious."
list_label = ["egative", "positive"]
output = pipe(text,list_label = list_label)
prit(output)
# {'predictio': 'positive.', 'probability': '99.84%'}
pytho
from modelscope import AutoTokeizer, AutoModelForSequeceClassificatio, sapshot_dowload
import torch, strig, radom
model_dir = sapshot_dowload("damo/zero-shot-classify-SSTuig-XLM-R", revisio='v1.0')
tokeizer = AutoTokeizer.from_pretraied(model_dir)
model = AutoModelForSequeceClassificatio.from_pretraied(model_dir)
text = "I love this place! The food is always so fresh ad delicious."
list_label = ["egative", "positive"] #The umber of labels should be 2 ~ 20.
device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
list_ABC = [x for x i strig.ascii_uppercase]
def check_text(model, text, list_label, shuffle=False):
list_label = [x+'.' if x[-1] != '.' else x for x i list_label]
list_label_ew = list_label + [tokeizer.pad_toke]* (20 - le(list_label))
if shuffle:
radom.shuffle(list_label_ew)
s_optio = ' '.joi(['('+list_ABC[i]+') '+list_label_ew[i] for i i rage(le(list_label_ew))])
text = f'{s_optio} {tokeizer.sep_toke} {text}'
model.to(device).eval()
ecodig = tokeizer([text],trucatio=True, max_legth=512,retur_tesors='pt')
item = {key: val.to(device) for key, val i ecodig.items()}
logits = model(**item).logits
logits = logits if shuffle else logits[:,0:le(list_label)]
probs = torch..fuctioal.softmax(logits, dim = -1).tolist()
predictios = torch.argmax(logits, dim=-1).item()
probabilities = [roud(x,5) for x i probs[0]]
prit(f'predictio: {predictios} => ({list_ABC[predictios]}) {list_label_ew[predictios]}')
prit(f'probability: {roud(probabilities[predictios]*100,2)}%')
check_text(model, text, list_label)
# predictio: 1 => (B) positive.
# probability: 99.84%
相关论文以及引用信息
@iproceedigs{acl23/SSTuig,
author = {Chaoqu Liu ad
Wexua Zhag ad
Guizhe Che ad
Xiaobao Wu ad
Ah Tua Luu ad
Chip Hog Chag ad
Lidog Big},
title = {Zero-Shot Text Classificatio via Self-Supervised Tuig},
booktitle = {Fidigs of the Associatio for Computatioal Liguistics: ACL 2023},
year = {2023},
url = {https://arxiv.org/abs/2305.11442},
}
点击空白处退出提示
评论