首页 > 其他分享 >Transformers-pipline

Transformers-pipline

时间:2024-12-14 17:44:08浏览次数:6  
标签:end preds word entity start score Transformers pipline

HF Transformers Pipelines

Pipelines接口方式

任务名称 参数名称 参数描述
sentiment-analysis model 指定使用的模型名称或路径。
tokenizer 指定使用的分词器名称或路径。
framework 选择使用的深度学习框架,"pt" 表示 PyTorch,"tf" 表示 TensorFlow。
device 设置使用的设备,-1 表示使用 CPU,0 表示使用第一个 GPU。
text-generation model 指定使用的模型名称或路径。
tokenizer 指定使用的分词器名称或路径。
max_length 生成文本的最大长度。
do_sample 是否随机采样生成文本。
top_p 控制生成文本的多样性。
translation_en_to_fr model 指定使用的模型名称或路径。
tokenizer 指定使用的分词器名称或路径。
src_lang 输入文本的语言。
tgt_lang 期望输出的语言。
question-answering model 指定使用的模型名称或路径。
tokenizer 指定使用的分词器名称或路径。
context 提供上下文的文本。
question 需要回答的问题。
text-classification model 指定使用的模型名称或路径。
tokenizer 指定使用的分词器名称或路径。
return_all_scores 是否返回所有类别的得分,默认为 False
topk 返回得分最高的前 k 个类别,默认为 1
                 |

Pipelines 已支持的完整任务列表:https://huggingface.co/docs/transformers/task_summary

transformers 自定义模型下载的路径

在transformers自定义模型下载的路径方法,调用pipeline会缓存模型.下面配置缓存路径

import os

os.environ['HF_HOME'] = '/mnt/new_volume/hf'
os.environ['HF_HUB_CACHE'] = '/mnt/new_volume/hf/hub'

默认模型对中文理解不好,以下输出可能存在问题

from transformers import pipeline

# 仅指定任务时,使用默认模型(不推荐)
pipe = pipeline("sentiment-analysis")
pipe("哈尔滨好冷")

输出:

    [{'label': 'NEGATIVE', 'score': 0.8832131028175354}]

接口示例

pipe("这道菜味道不错")

输出:

    [{'label': 'NEGATIVE', 'score': 0.8870086669921875}]
# 替换为英文后,文本分类任务的表现立刻改善
pipe("You learn things really quickly. You understand the theory class as soon as it is taught.")

输出:

    [{'label': 'POSITIVE', 'score': 0.9961802959442139}]
pipe("Today haerbin is really cold.")

输出:

[{'label': 'NEGATIVE', 'score': 0.999659538269043}]

批处理调用模型推理

text_list = [
    "哈尔滨冰雪大世界很好玩",
    "I like Harbin",
    "You are very good at playing ball."
]

pipe(text_list)

输出:

    [{'label': 'NEGATIVE', 'score': 0.84312504529953},
     {'label': 'POSITIVE', 'score': 0.6818807125091553},
     {'label': 'POSITIVE', 'score': 0.999847412109375}]
from transformers import pipeline

classifier = pipeline(task="ner")

输出:

    No model was supplied, defaulted to dbmdz/bert-large-cased-finetuned-conll03-english and revision 4c53496 (https://huggingface.co/dbmdz/bert-large-cased-finetuned-conll03-english).
    Using a pipeline without specifying a model name and revision in production is not recommended.
preds = classifier("Hugging Face is a French company based in New York City.")
preds = [
    {
        "entity": pred["entity"],
        "score": round(pred["score"], 4),
        "index": pred["index"],
        "word": pred["word"],
        "start": pred["start"],
        "end": pred["end"],
    }
    for pred in preds
]
print(*preds, sep="\n")

输出:

    {'entity': 'I-ORG', 'score': 0.9968, 'index': 1, 'word': 'Hu', 'start': 0, 'end': 2}
    {'entity': 'I-ORG', 'score': 0.9293, 'index': 2, 'word': '##gging', 'start': 2, 'end': 7}
    {'entity': 'I-ORG', 'score': 0.9763, 'index': 3, 'word': 'Face', 'start': 8, 'end': 12}
    {'entity': 'I-MISC', 'score': 0.9983, 'index': 6, 'word': 'French', 'start': 18, 'end': 24}
    {'entity': 'I-LOC', 'score': 0.999, 'index': 10, 'word': 'New', 'start': 42, 'end': 45}
    {'entity': 'I-LOC', 'score': 0.9987, 'index': 11, 'word': 'York', 'start': 46, 'end': 50}
    {'entity': 'I-LOC', 'score': 0.9992, 'index': 12, 'word': 'City', 'start': 51, 'end': 55}

合并实体

classifier = pipeline(task="ner", grouped_entities=True)
classifier("Hugging Face is a French company based in New York City.")
[{'entity_group': 'ORG',
  'score': 0.96746373,
  'word': 'Hugging Face',
  'start': 0,
  'end': 12},
 {'entity_group': 'MISC',
  'score': 0.99828726,
  'word': 'French',
  'start': 18,
  'end': 24},
 {'entity_group': 'LOC',
  'score': 0.99896103,
  'word': 'New York City',
  'start': 42,
  'end': 55}]

Question Answering

from transformers import pipeline

question_answerer = pipeline(task="question-answering")
No model was supplied, defaulted to distilbert-base-cased-distilled-squad and revision 626af31 (https://huggingface.co/distilbert-base-cased-distilled-squad).
Using a pipeline without specifying a model name and revision in production is not recommended.
preds = question_answerer(
    question="What is the name of the repository?",
    context="The name of the repository is huggingface/transformers",
)
print(
    f"score: {round(preds['score'], 4)}, start: {preds['start']}, end: {preds['end']}, answer: {preds['answer']}"
)

输出:

score: 0.9327, start: 30, end: 54, answer: huggingface/transformers
preds = question_answerer(
    question="What is the capital of China?",
    context="On 1 October 1949, CCP Chairman Mao Zedong formally proclaimed the People's Republic of China in Tiananmen Square, Beijing.",
)
print(
    f"score: {round(preds['score'], 4)}, start: {preds['start']}, end: {preds['end']}, answer: {preds['answer']}"
)

输出:

score: 0.9458, start: 115, end: 122, answer: Beijing
pre {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    font-family: 'Courier New', Courier, monospace;
    padding: 10px;
}

标签:end,preds,word,entity,start,score,Transformers,pipline
From: https://www.cnblogs.com/menkeyi/p/18605927

相关文章

  • TransCenter: Transformers with DenseRepresentations for Multiple-Object Tracking
    论文阅读笔记5——TransCenter:TransformerswithdensequeriesforMOT-CSDN博客TransCenter:TransformerswithDenseQueriesforMultiple-ObjectTracking-CSDN博客多目标跟踪TransCenter解读-CSDN博客简介:时间:2022期刊:TPAMI作者:YihongXu,YutongBan,Guill......
  • 深入解析 Transformers 框架(五):嵌入(Embedding)机制和 Word2Vec 词嵌入模型实战
    通过前面几篇关于Transformers框架的技术文章,我们探讨了大模型的配置、分词器和BPE(Byte-PairEncoding)分词算法。这些技术帮助我们将一段文本序列处理成一个Token(词元)列表,并为每个Token分配一个唯一的TokenID。然而,这仅仅是大模型输入层工作的第一步。接下来,我们将深入探......
  • Transformers 框架 Pipeline 任务详解(三):词元分类(token-classification)和命名实体识别
    微信公众号:老牛同学公众号标题:Transformers框架Pipeline任务详解(三):词元分类(token-classification)和命名实体识别公众号链接:https://mp.weixin.qq.com/s/r2uFCwPZaMeDL_eiQsEmIQ在自然语言处理(NLP)领域,Token-Classification(词元分类)任务是一项关键的技术,这项技术广泛应用于......
  • 在FreeBSD系统使用pkg安装Pytorch和Transformers
    以前在FreeBSD下也安装过Pytorch,当时pkg安装有问题,所以最终是使用的conda安装,非常复杂繁琐。现在pkg安装已经非常简单方便了。以前FreeBSD下用conda安装pytorch:python安装pytorch@FreeBSD_failedtobuildpytorch-CSDN博客FreeBSD下安装Transformers:python安装transformers......
  • SpectralFormer: Rethinking Hyperspectral Image Classification with Transformers
    摘要:高光谱(HS)图像以其连续的光谱信息而著称,能够通过捕捉细微的光谱差异来精细识别物质。由于其出色的局部上下文建模能力,卷积神经网络(CNNs)已被证明是HS图像分类中的强大特征提取器。然而,由于其固有网络骨架的限制,CNNs未能很好地挖掘和表示光谱签名的序列属性。为了解决这......
  • DETR:End-to-End Object Detection with Transformers
    【DETR论文精读【论文精读】-哔哩哔哩】https://b23.tv/Iy9k4O2 摘要:将目标检测看作一个集合预测的问题任务:给定一张图片,预测一组框,每个框需要得到坐标信息和包含的物体类别信息,将框可以视为集合,不同图片所对应的框不同,则所对应的集合就不同去除:NMS、生成anchor创新:......
  • transformers和bert实现微博情感分类模型提升
    关于深度实战社区我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万+粉丝,拥有2篇国家级人工智能发明专利。社区特色:深度实战算法创新获取全部完整项目......
  • Transformer从入门到精通的实战指南看这本书就够了—《Transformers in Action》(附PDF
    前言TransformersinAction将革命性的Transformers架构添加到您的AI工具包中。您将深入了解模型架构的基本细节,通过易于理解的示例和巧妙的类比解释所有复杂的概念-从袜子分类到滑雪!即使是复杂的基础概念也从实际应用开始,因此您永远不必为抽象理论而苦恼。这本书包括一个广......
  • 【弱监督时间动作定位】Weakly-Supervised Temporal Action Localization with Multi-
    Weakly-SupervisedTemporalActionLocalizationwithMulti-ModalPlateauTransformers论文阅读Abstract1.Introduction2.RelatedWork3.TheProposedMethod3.1.PreliminaryandMotivation3.2.BaseModel3.3.Multi-ModalPlateauTransformers3.3.1Multi-Mo......
  • 【代码分析1-视频目标分割AOT-数据处理部分】Associating Objects with Transformers
    AOT代码分析前置阅读代码模块代码分析1静态数据处理1.1引入包1.2继承Dataset类1.3数据初始化1.4获取数据长度1.5获取数据2视频数据处理2.1数据初始化-父类VOSTrain2.2数据初始化-子类DAVIS2017_Train2.3获得数据长度2.4获得数据前置阅读papergithub文献......