大模型微调实战演练:使用代码剖析 Transformers Pipelines工作原理

NLP 入门:使用 Hugging Face Transformers Pipelines 自然语言处理 (NLP) 的进步为企业从文本数据中获取价值提供了前所未有的机会。自然语言处理可用于广泛的应用,包括文本摘要、命名实体识别(例如人和地点)、情感分类、文本分类、翻译和问答。在许多情况下,可以从之前在大型文本数据集上训练的机器学习模型中获得高质量的结果。其中许多预先训练的模型都可以在开源中找到,并且可以免费使用。Hugging Face是这些模型的一个重要来源,他们的变形金刚库是一个易于使用的工具,用于应用模型并使它们适应您自己的数据。也可以使用对您自己的数据进行微调来调整这些模型。 阅读详情

前言

在自然语言处理(NLP)领域,Transformers 模型已经成为了主流技术之一。无论是文本分类、情感分析,还是机器翻译,Transformers 都展现了强大的性能。今天,我们来详细解析一下 Transformers Pipelines 的运行原理,帮助大家更好地理解其内部机制。

一、基本流程

Transformers Pipeline 的运行流程主要分为四个阶段:Tokenization、Model Inference、Post-Processing 和 Prediction。下面我们详细讲解每一个阶段的具体作用,并通过代码示例进行演示。

1. Tokenization(分词)

原始文本(Raw Text)首先会经过Tokenizer进行处理。Tokenizer的任务是将输入的自然语言文本转换为模型能够理解的输入格式。这一过程包括:

  • 分词: 将句子拆分成一个个单词或子词。

  • 映射到ID:将这些单词或子词映射到预定义的词汇表中的唯一标识符(Token IDs)。

代码示例:

from transformers import BertTokenizer

# 初始化BERT的Tokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

# 输入句子
sentence = "This course is amazing!"

# 使用Tokenizer进行分词和映射到Token IDs
input_ids = tokenizer.encode(sentence, add_special_tokens=True)

print(f"Token IDs: {input_ids}")

在这个示例中,我们使用BERT的Tokenizer对句子进行处理,得到的Token IDs如下:

Token IDs: [101, 2023, 2607, 2003, 6429, 999, 102]

2. Model Inference(模型推理)

接下来,Token IDs 会被输入到预训练的Transformers模型中。这一阶段的主要任务是通过模型的多层神经网络结构,计算出每个Token的特征表示。模型的输出通常是Logits,即每个类别的未归一化的概率值。

代码示例:

import torch
from transformers import BertModel

# 初始化BERT模型
model = BertModel.from_pretrained('bert-base-uncased')

# 将Token IDs转化为Tensor
input_ids = torch.tensor([input_ids])

# 模型推理,得到输出
with torch.no_grad():
    outputs = model(input_ids)

# 获取最后一层的隐状态
last_hidden_states = outputs.last_hidden_state

print(f"Last Hidden States: {last_hidden_states}")

在这个示例中,我们将Token IDs输入到BERT模型中,得到最后一层的隐状态(即Logits)。

3. Post-Processing(后处理)

在得到Logits之后,需要对其进行后处理。在大多数情况下,后处理过程包括将Logits转化为实际的概率值(通过Softmax函数),并根据具体任务进行进一步的处理。

代码示例:

from torch.nn.functional import softmax

# 假设模型的输出是logits
logits = torch.tensor([-4.3630, 4.6859])

# 对logits进行Softmax处理
probabilities = softmax(logits, dim=-1)

print(f"Probabilities: {probabilities}")

在这个示例中,我们对Logits进行Softmax处理,得到每个类别的概率值。

4. Prediction(生成结果)

最后一步是生成最终的预测结果。根据后处理得到的概率值,选择概率最高的类别作为最终的预测结果。例如,对于情感分析任务,可能会输出正面和负面情感的概率值:

  • POSITIVE: 99.89%

  • NEGATIVE: 0.11%

代码示例:

from torch.nn.functional import softmax

# 假设模型的输出是logits
logits = torch.tensor([-4.3630, 4.6859])

# 对logits进行Softmax处理
probabilities = softmax(logits, dim=-1)

print(f"Probabilities: {probabilities}")

在这个示例中,我们根据概率值选择了概率最高的类别作为最终的预测结果。

二、具体示例

让我们通过一个具体的例子来更好地理解这个过程:

  1. 输入句子:“This course is amazing!”

  2. 经过Tokenizer处理,得到Token IDs [101, 2023, 2607, 2003, 6429, 999, 102]。

  3. 将Token IDs输入模型,得到Logits [-4.3630, 4.6859]。

  4. 通过后处理,将Logits转化为概率值。

  5. 最终预测结果:POSITIVE 99.89%,NEGATIVE 0.11%。

完整代码示例:

from transformers import BertTokenizer, BertForSequenceClassification
import torch
from torch.nn.functional import softmax

# 初始化BERT的Tokenizer和模型
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)

# 输入句子
sentence = "This course is amazing!"

# 分词和映射到Token IDs
input_ids = tokenizer.encode(sentence, add_special_tokens=True)
input_ids = torch.tensor([input_ids])

# 模型推理,得到logits
with torch.no_grad():
    outputs = model(input_ids)
logits = outputs.logits

# 对logits进行Softmax处理
probabilities = softmax(logits, dim=-1)

# 定义类别
labels = ["NEGATIVE", "POSITIVE"]

# 获取概率最高的类别
predicted_label = labels[torch.argmax(probabilities)]

print(f"Prediction: {predicted_label}")

在这个完整的代码示例中,我们一步步地完成了从原始文本到最终预测结果的整个过程。


三、总结

通过以上详细解析和代码示例,我们可以看出Transformers Pipelines的运行过程是高度模块化的,每个阶段都承担着特定的任务。理解这些过程不仅能帮助我们更好地使用这些模型,还能为我们在实际应用中优化模型提供指导。

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

本地部署 pyvideotrans(视频翻译配音工具) 语音识别选择faster-whisper(本地),模型选择预先下载并保存的medium,然后选择好要处理的视频以及保存到的位置,这里我选择了一个名为why not的英文演讲视频,保存在桌面_vedio_out文件下。将附件中faster-medium.7z 和 faster-small.7z解压到项目中的models目录下, 解压后,目录中应该存在 models--Systran--faster-whisper-small。en.m4a|.wav = 原始视频中的音频文件(包含所有背景音和人声) 阅读详情

相关推荐

CubeMX实战:ETH+LWIP+FreeRTOS网络工程从零搭建与AC6编译优化

本文手把手教你使用STM32CubeMX从零搭建集成以太网(ETH)、LWIP协议栈和FreeRTOS的嵌入式网络工程。文章详细解析了外设配置、协议栈调优、任务规划等关键步骤,并重点分享了如何解决ARM Compiler 6(AC6)的兼容性问题,实现编译速度与稳定性的双重提升,助你快速构建稳定的网络应用原型。

n2o3p4的博客 410

Transformers实战(一)快速入门命名实体识别、多项选择

Transformers实战(一)快速入门命名实体识别、多项选择

qq_44665283的博客 3308

飞书多维表格省钱攻略:1个专业版账号,全员合规用、权限全掌控

像运动馆、 托管班、作业辅导、少儿美术、书法、口才班等等。对于大多数中小团队而言,飞书多维表格的核心需求是“协作高效、数据可控、成本可控”,而“1个专业版账号+多联系人”的模式,恰好完美契合这三点——既不用为不必要的席位付费,又能解锁全部专业功能,还能通过精细化权限管控保障数据安全。尤其是餐饮店、乒乓球训练馆这类个体经营或小型团队,人员分工清晰、权限需求明确,采用这种模式能最大化节省成本,同时提升管理效率。无需复杂的配置,无需额外的技术支持,5分钟就能搭建起全员协作的省钱体系。

涛涛讲AI 2217

动手实战 | 使用 Transformers 包进行概率时间序列预测

正如时间序列研究人员所知,人们对“将基于 Transformer 的模型应用于时间序列”问题很感兴趣。传统 vanilla Transformer 只是众多基于注意力 (Attention) 的模型之一,因此需要向库中补充更多模型。目前没有什么能妨碍我们继续探索对多变量时间序列进行建模,但是为此需要使用多变量分布头来实例化模型。目前已经支持了对角独立分布,后续会增加其他多元分布支持。请继续关注未来的博客文章以及其中的教程。

Python数据挖掘 4323

20240128 C#与SCPI协议实战:轻量级仪器控制库ScpiNet应用指南

本文详细介绍了轻量级C#库ScpiNet在仪器控制中的应用。相较于传统的NI-VISA,ScpiNet无需安装庞大运行时,通过纯C#实现直接与USB或以太网设备通信,支持跨厂商SCPI仪器。文章提供了从快速连接到实战封装、错误处理的完整指南,帮助开发者构建简洁高效的自动化测试系统。

h9j8k7l6m5n的博客 548

从原理到落地:Java+TensorRT打造YOLO模型GPU极致推理方案

Java+TensorRT的YOLO模型GPU加速方案,核心是通过JNI桥接实现Java与TensorRT的高效交互,结合TensorRT的底层优化能力,最大化GPU算力。该方案既保留了Java后端的工程化优势(如易维护、生态完善),又解决了AI模型推理的性能瓶颈,可落地于实时视频分析、智能监控、工业质检等场景。基于TensorRT Dynamic Shape实现多尺寸输入的自适应优化;结合Java的协程(Virtual Thread)提升异步推理的并发效率;

2601_94871597的博客 766

【超详细】【原理篇&实战篇】一文读懂Transformer

Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,它在2017年由Vaswani等人首次提出。Transformer架构引入了自注意力机制(self-attention mechanism),这是一个关键的创新,使其在处理序列数据时表现出色。

艰难困苦,玉汝于成。 68万+

openpi 入门教程(二)droid libero 训练、推理

OpenPI是由物理智能团队发布的机器人领域开源模型与软件平台,提供基于流扩散式(π₀)和自回归式(π₀-FAST)两类视觉-语言-动作模型。平台支持在DROID、ALOHA、UR5等多种机器人系统上部署,包含预训练检查点(1万+小时数据)和微调示例。文档详细说明了各平台部署流程:DROID需启动策略服务器并配置摄像头;ALOHA提供真实机器人任务(取吐司、叠毛巾等)的检查点和场景设置建议;UR5示例展示自定义数据转换方法。实验性验证显示π₀-FAST在LIBERO基准测试中平均得分85.5。平台强调模型适

2506_90492529的博客 1023

huggingface.transformers速成笔记:Pipeline推理和AutoClass

本部分首先介绍如何使用pipeline()进行快速推理,然后介绍AutoClass:用AutoModel加载预训练模型、用tokenizer将文本转化为模型的数字输入、用AutoConfig来改变模型超参、用AutoFeatureExtractor加载预训练的feature extractor、用AutoProcessor加载预训练的processor。

诸神缄默不语的博客 9413

有效Dk值提取方法的仿真分析

通过本文的仿真对比分析,提取有效Dk值方面,TDR技术在一些固定的场景下,依然有其参考应用价值,而随着VNA功能的不断增强和高精度测量手段的不断更新,双端口Delta-L技术才是主流评估方法,而单端口Delta-L技术则可以作为其降本增效的方案补充。

一只豌豆象的博客 1827

骑砍Ⅱ霸主MOD开发(5)-2D界面

本文介绍了2D界面开发的技术框架,主要包括以下内容: 2D界面架构:由多个GauntletLayer(菜单/对话框/定制页面)和SceneLayer(3D页面)组成,支持屏幕切换和管理。 GauntletLayer实现:采用Movie(HTML页面)+ViewModel(动态数据)模式,支持优先级管理、焦点控制和事件响应。 2D控件系统:包括颜色字体、坐标布局、背景图(Sprite/Texture)等配置方式,支持自定义控件开发。 定制化页面开发:详细说明了游戏菜单和对话框的实现方法,包括状态管理、事件回调

骑砍战团&霸主MOD开发 1183

大模型微调(PEFT)

利用PEFT包微调大模型

蜡笔小晴 1479

Python 爬虫实战:共享单车数据采集全流程与市场洞察深度剖析

本文介绍了如何利用Python爬虫技术获取和分析共享单车运营数据。文章从项目背景出发,详细阐述了系统架构设计,包括数据抓取、清洗存储、分析和可视化模块。通过Scrapy、BeautifulSoup等工具实现数据采集,使用Pandas进行数据清洗,并借助Matplotlib进行可视化分析。实战部分展示了爬虫代码示例和城市分布、使用频率等分析案例。最终指出数据驱动分析有助于了解行业现状和市场趋势,未来可结合机器学习等方法进行深入洞察。该技术方案为共享单车行业研究提供了有效的数据支持。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2232

【大模型微调学习6】-实战Hugging Face Transformers工具库

从0开始掌握Hugging Face的基本使用,通过每一个样例进行实战学习

m0_61222152的博客 1370

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Transformers实战01-开箱即用的 pipelines

Transformers 是由 Hugging Face 开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用,官网地址。它提供了各种预训练的 Transformer 模型,包括 BERT、GPT、RoBERTa、DistilBERT 等。

liaomin416100569的专栏 2207

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

从零开始:如何使用 Hugging Face Transformers 进行大模型开发

随着人工智能技术的迅猛发展,机器学习和深度学习逐渐成为各行各业的热门话题。然而,对于许多没有专业背景的初学者来说,如何上手这些复杂的技术成了一个难题。幸运的是,Hugging Face Transformers 库的出现,极大地降低了大模型开发的门槛,使得每个人都能轻松地参与到 AI 项目的开发中来。在这篇文章中,我们将详细介绍 Hugging Face Transformers 库的独特价值和核心功能模块。

Android23333的博客 1050

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Hugging Face 的 Transformers 库快速入门 (一)开箱即用的 pipelines

Transformers是由Hugging Face开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用,因此熟悉 Transformers 库的使用方法很有必要。

liu_chengwei的博客 7801

transformers 完整指南:400+ 预训练模型一行接入与微调的 3 步实战

还在每个新模型出来都重写一遍模型代码?`transformers` 是 HuggingFace 的开源模型定义框架,文本、视觉、音频、多模态共 400 多个预训练模型,一行 `pipeline` 就能推理,同一套代码直接做微调和部署。 ## 你拿到的东西:transformers 四类任务能力速览 它把"模型定义"标准化了——模型在 [src/transformers/models/](htt

gitblog_01143的博客 326

transformer上手(3) —— 开箱即用的 pipelines

可以看到,pipeline 自动选择了预训练好的 distilbart-cnn-12-6 模型来完成任务。与文本生成类似,我们也可以通过 max_length 或 min_length 参数来控制返回摘要的长度。

哦豁灬 1万+

大模型实验管道化:SageMaker Pipelines与MLflow协同实践

大模型实验管理本质上是MLOps工程问题,核心在于解决可复现性、可审计性与可规模化验证三大挑战。其原理依赖于将数据版本、代码提交、超参配置、硬件环境等关键要素统一纳入不可篡改的实验快照,并通过声明式流水线实现端到端编排。该技术显著提升LLM微调研发效率与交付可信度,支撑金融、法律、医疗等强合规场景下的模型迭代与A/B测试。典型应用包括PEFT参数自动化调优、跨环境训练结果比对、生产级模型注册与血缘追踪——本文即基于AWS SageMaker Pipelines与MLflow深度集成的真实落地经验展开。

weixin_33860553的博客 374

Transformers 快速入门:从 pipeline 推理、AutoClass 加载到 Trainer 微调的完整技术路线

本文以 Transformers 官方文档的"快速入门"为主线,带你完整走通该库的四大核心能力:用 `pipeline` 一行代码完成推理、用 `AutoClass` 加载预训练模型与分词器并手动前向、用 `Trainer`/`TrainingArguments` 快速微调,以及用 `AutoConfig` 从零构建自定义模型。读完后,你将掌握一个预训练模型从"下载—调用—替换—保存—训练"的完整

gitblog_00611的博客 362

一文彻底搞懂大模型 - Hugging Face Transformers

Hugging Face Transformers是一个开源的预训练模型库,旨在将NLP领域的最新进展向更广泛的机器学习社区开放。该库包含了经过精心设计的最先进的Transformer架构,并提供了易于使用的API,使得研究人员和开发者能够轻松地加载、微调和使用这些模型。

bugyinyin的博客 1901

低成本大模型微调实战:魔塔社区方案解析

大模型微调是AI应用落地的关键技术,但传统方法依赖高端GPU硬件,存在显存占用高、计算资源消耗大等问题。参数高效微调(PEFT)和模型量化技术通过降低计算精度和仅微调关键参数,实现了资源消耗的大幅优化。这些技术在NLP、CV等领域具有广泛应用价值,特别适合中小企业和个人开发者。魔塔社区(ModelScope)整合了LoRA微调、混合精度训练等前沿方案,使得在消费级显卡甚至CPU上完成大模型微调成为可能。以情感分析任务为例,仅需普通显卡和少量数据即可达到商用级准确率,显著降低了AI技术应用门槛。

weixin_34221775的博客 663

Transformers 快速上手:507 个模型架构,3 行代码跑通推理

Transformers 是一个统一的模型定义框架,覆盖文本、视觉、音频与多模态模型的推理和训练,内置 507 个模型架构,统一 API 一次接入,熟悉 PyTorch 的开发者 3 行代码即可完成推理。装好之后,同一套写法可以复用到文本生成、语音识别、图像分类等任务,本文带你从零完成环境搭建、跑通推理并调通关键参数。 [![Transformers 目标检测与图像分类任务使用的 COCO 测试

gitblog_00446的博客 705
上一篇: 书籍下载 |《掌握Transformer:从零开始构建SOTA模型》
下一篇: 从零开始:如何使用 Hugging Face Transformers 进行大模型开发
Agent学习路线
博客等级 码龄6年 1万+粉丝 1903原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值