NLP-transformer学习:(1)transformer基础
学习内容:
1 transformer 地址:
transformer 目前已经被高度开发,大家用的最方便的包是这个 hugface的。
https://github.com/huggingface/transformers/blob/main/README_zh-hans.md
2 基础知识:
2.1 关键词汇
(1) sentiment-analysis 情感分析:分析给定的文本的情感极性
(2) text-generation 文本生成:根据给定的文本生成文本
(3) ner 命名实体识别:标记句子中的实体
(4) question-answering 阅读理解:给定上下文,根据上下文抽取答案
(5) fill-maks 掩码填充:天成给定文本的掩码
(6) summarization 文本摘要:
(7) translation 机器翻译:
(8) feature-extraction 特征提取:生成给定文本的张量表示
(9) conversional 对话机器人:根据用户输入文本,产生回应,与用户对话
这里有个干货网址:在用gpt翻译前可以用下:
https:///ChenVast/article/details/80719747
2.2 NLP的几个阶段
阶段1:统计模型+ 数据
example:决策树,SVM,HMM,CRF, TF-IDF,BOW
阶段2:神经网络 + 数据
example:Linear,CNN,RNN,LSTM,transformer,Word2vec, Glove
阶段3:神经网络 + 预训练模型 + (少量)数据
example:GPT,BERT,RoBERTa,ALBERT,BART,T5
阶段4:神经网络 + 更大的预训练模型 + Prompt
example:ChatGPT,Bloom,LLaMA,AIpaca,Vicuna,MOSS,文心一言,通义千问,星火(科大讯飞),KimiChat
2.3 transformer的几个重要的库
Transformers: 核心库,包含了模型加载/训练/流水线(pipline)
Tokenizer:分词器,对数据进行预处理,text(文本)到词素(token)序列的互相转换
Datasets:数据集,提供了数据的加载和处理方法,加载一些公开数据集
Evaluate:前向函数或评估函数,就是一般的前向推导
PEFT(parameter efficient tunning): 高效的微调模型库,提供高校的微调方法,训练一小部分参数去撬动打模型
Accelerate: 分布式训练,包括多卡方案
Optimum:加速优化库,主要是适配多种后端,例如Open Vino 或者 Onnxruntime
Gradio: 额可视化不书库,用于算法演示
2.4 做好的基础环境
链接是笔者做好的一个配置好相关pytorch环境的ubuntu conda环境:
笔者的GPU数量1:4070ti
2.5 学习代码
import gradio as gr
from transformers import pipeline
gr.Interface.from_pipeline(pipeline("question-answering", model="uer/roberta-base-chinese-extractive-qa")).launch()
小式牛刀: