拓冰建站拓冰建站
首页 / 资讯中心 / 正文

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

前言在自然语言处理NLP领域Transformers 模型已经成为了主流技术之一。无论是文本分类、情感分析还是机器翻译Transformers 都展现了强大的性能。今天我们来详细解析一下 Transformers Pipelines 的运行原理帮助大家更好地理解其内部机制。一、基本流程Transformers Pipeline 的运行流程主要分为四个阶段Tokenization、Model Inference、Post-Processing 和 Prediction。下面我们详细讲解每一个阶段的具体作用并通过代码示例进行演示。1. Tokenization分词原始文本Raw Text首先会经过Tokenizer进行处理。Tokenizer的任务是将输入的自然语言文本转换为模型能够理解的输入格式。这一过程包括分词将句子拆分成一个个单词或子词。映射到ID将这些单词或子词映射到预定义的词汇表中的唯一标识符Token IDs。代码示例fromtransformersimportBertTokenizer# 初始化BERT的TokenizertokenizerBertTokenizer.from_pretrained(bert-base-uncased)# 输入句子sentenceThis course is amazing!# 使用Tokenizer进行分词和映射到Token IDsinput_idstokenizer.encode(sentence,add_special_tokensTrue)print(fToken IDs:{input_ids})在这个示例中我们使用BERT的Tokenizer对句子进行处理得到的Token IDs如下Token IDs:[101,2023,2607,2003,6429,999,102]2. Model Inference模型推理接下来Token IDs 会被输入到预训练的Transformers模型中。这一阶段的主要任务是通过模型的多层神经网络结构计算出每个Token的特征表示。模型的输出通常是Logits即每个类别的未归一化的概率值。代码示例importtorchfromtransformersimportBertModel# 初始化BERT模型modelBertModel.from_pretrained(bert-base-uncased)# 将Token IDs转化为Tensorinput_idstorch.tensor([input_ids])# 模型推理得到输出withtorch.no_grad():outputsmodel(input_ids)# 获取最后一层的隐状态last_hidden_statesoutputs.last_hidden_stateprint(fLast Hidden States:{last_hidden_states})在这个示例中我们将Token IDs输入到BERT模型中得到最后一层的隐状态即Logits。3. Post-Processing后处理在得到Logits之后需要对其进行后处理。在大多数情况下后处理过程包括将Logits转化为实际的概率值通过Softmax函数并根据具体任务进行进一步的处理。代码示例fromtorch.nn.functionalimportsoftmax# 假设模型的输出是logitslogitstorch.tensor([-4.3630,4.6859])# 对logits进行Softmax处理probabilitiessoftmax(logits,dim-1)print(fProbabilities:{probabilities})在这个示例中我们对Logits进行Softmax处理得到每个类别的概率值。4. Prediction生成结果最后一步是生成最终的预测结果。根据后处理得到的概率值选择概率最高的类别作为最终的预测结果。例如对于情感分析任务可能会输出正面和负面情感的概率值POSITIVE: 99.89%NEGATIVE: 0.11%代码示例fromtorch.nn.functionalimportsoftmax# 假设模型的输出是logitslogitstorch.tensor([-4.3630,4.6859])# 对logits进行Softmax处理probabilitiessoftmax(logits,dim-1)print(fProbabilities:{probabilities})在这个示例中我们根据概率值选择了概率最高的类别作为最终的预测结果。二、具体示例让我们通过一个具体的例子来更好地理解这个过程输入句子“This course is amazing!”经过Tokenizer处理得到Token IDs [101, 2023, 2607, 2003, 6429, 999, 102]。将Token IDs输入模型得到Logits [-4.3630, 4.6859]。通过后处理将Logits转化为概率值。最终预测结果POSITIVE 99.89%NEGATIVE 0.11%。完整代码示例fromtransformersimportBertTokenizer,BertForSequenceClassificationimporttorchfromtorch.nn.functionalimportsoftmax# 初始化BERT的Tokenizer和模型tokenizerBertTokenizer.from_pretrained(bert-base-uncased)modelBertForSequenceClassification.from_pretrained(bert-base-uncased,num_labels2)# 输入句子sentenceThis course is amazing!# 分词和映射到Token IDsinput_idstokenizer.encode(sentence,add_special_tokensTrue)input_idstorch.tensor([input_ids])# 模型推理得到logitswithtorch.no_grad():outputsmodel(input_ids)logitsoutputs.logits# 对logits进行Softmax处理probabilitiessoftmax(logits,dim-1)# 定义类别labels[NEGATIVE,POSITIVE]# 获取概率最高的类别predicted_labellabels[torch.argmax(probabilities)]print(fPrediction:{predicted_label})在这个完整的代码示例中我们一步步地完成了从原始文本到最终预测结果的整个过程。三、总结通过以上详细解析和代码示例我们可以看出Transformers Pipelines的运行过程是高度模块化的每个阶段都承担着特定的任务。理解这些过程不仅能帮助我们更好地使用这些模型还能为我们在实际应用中优化模型提供指导。最后的最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门