0
点赞
收藏
分享

微信扫一扫

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习


前言

资料:昇思大模型平台

https://xihe.mindspore.cn/projects/Helloyouth2024/gpt_basic_experiments/tree

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_MindNLP


本文内容:

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_tokenizer_02



GPT论文阅读与笔记分享

  1. openAI GPT系列(GPT1 ~ GPT4)经典文献:

Improving Language Understanding by Generative Pre-Training
Language Models are Unsupervised Multitask Learners
Language Models are Few-Shot Learners
GPT-4 Technical Report


  1. 说明

       OpenAI的GPT系列的相关文献和实验是学习大模型的一个基础,而它本身的基础是Transformer(推荐:Transformer学习与基础实验)。
现在大模型、多模态技术层出不穷,但基本都离不开Transformer,本文希望通过比较系统地学习LLM的基础的、经典的模型以及相关基础实验,提升对LLM的认知,为后续学习和研究打下基础。

  1. GPT1阅读(Improving Language Understanding by Generative Pre-Training

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_03


笔记标注后的文档位于gpt_basic_experiments/GPTdocuments

使用的工具:PDF Annotator


MindNLP推荐

MindNLP是一个基于MindSpore的开源的NLP库,它提供了丰富的NLP任务和模型支持,支持如BERT、RoBERTa、GPT等多种预训练模型,并提供了简单易用的API,方便用户快速学习使用和构建自己的NLP应用。

MindNLP兼容Hugging Face生态,支持大量数据集和模型,便于用户进行模型训练和推理。MindNLP充分利用了MindSpore的动态图特性和优化能力,提高了模型的训练和推理效率尤其是基于国产处理器:昇腾处理器Ascend


github链接:https://github.com/mindspore-lab/mindnlp.git

官方文档:https://mindnlp.cqu.ai/


Mindnlp 0.4特性:

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_GPT_04


来源:bilibili:【MindSpore NLP SIG 】MindNLP 0.4新特性解读


后续会在本公众号针对mindnlp的以上特性的基础部分给出相应的实验例子合集(文档+代码+应用)。


transformers的tokenizer为LLM准备数据——以openai-gpt为例

文档资料:tokenizer_usage.ipynb

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_transformers_05



加载与保存

可从本地加载 tokenizer或者直接从 Hugging Face Model Hub (或者其镜像站)加载,后者会将其cache保存在本地的.mindnlp文件夹中。

加载:

保存:

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_MindNLP_06



修改一些特殊token

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_07


以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_GPT_08




查看词典相关信息

当前词汇表大小(含所有特殊token):len(tokenizer.get_vocab())

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_09



# 查看特殊标记字典

tokenizer.get_added_vocab()

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_transformers_10


句子分词

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_transformers_11


分词例子:

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_transformers_12


Token /id/string 序列转换

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_13


编码

tokenizer.encode(......)

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_14


以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_15


encode_plus返回更多相关信息、input ids、token_type_ids(区分不同句子)、attention_mask(标记pad)

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_16


以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_GPT_17



批量对多个句子进行encode(比循环操作快,内部进行了优化):

tokenizer.batch_encode_plus

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_transformers_18



其实更常用的调用是直接调用tokenizer(......),结合了单个encode和batch_encode_plus,理解了上述基本用法,实际使用中直接掌握这个调用进行句子编码即可。

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_MindNLP_19


解码

可看作是encode操作的反向操作

以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_tokenizer_20



类似地,同样有批量操作:tokenizer.batch_decode



一个中文文本数据处理的tokenizer

google-bert/bert-base-chinese


以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_MindNLP_21



以mindnlp为实验工具的GPT_GPT2基础实验1——mindnlp推荐与GPT的学习_昇思大模型_22


参考文献

  1. GPT系列论文粗读 - 知乎https://zhuanlan.zhihu.com/p/614957283
  2. [transformers]——Tokenizer的用法
  3. Transformers从零到精通教程——Tokenizer
  4. 【MindSpore NLP SIG 】MindNLP 0.4新特性解读

https://www.bilibili.com/video/BV13USLYFERU/?spm_id_from=333.337.search-card.all.click&vd_source=c71f418d51a7ad5d451aecfdbfeaff77


下一篇:以mindnlp为实验工具的GPT_GPT2基础实验2——文本情感识别和自然语言推理(NLI)


举报

相关推荐

0 条评论