大模型应用开发学习笔记

Huggingface

下载模型:

复制代码
model_dir=r"G:\python_ws_g\code\LLMProject\session_4\day02_huggingface\transformers_test\model\uer\uer\gpt2-chinese-cluecorpussmall\models--uer--gpt2-chinese-cluecorpussmall\snapshots\c2c0249d8a2731f269414cc3b22dff021f8e07a3"
# 加载模型、分词器
model = AutoModelForCausalLM.from_pretrained(model_dir)
tokenizer = AutoTokenizer.from_pretrained(model_dir)
#

generator = pipeline("text-generation", model=model, tokenizer=tokenizer, device="cuda")

output =generator("你好,我是一款语言模型",max_length=50,num_return_sequences=2)
print(output)

模型结构:

model.safetensors huggingface的模型权重

config.json 模型的配置文件

pytorch_model.bin pytorch的模型权重

special_tokens_map.json 特殊字典

复制代码
{"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
  1. [UNK]:代表未知词(Unknown),用于表示词汇表中不存在的词。
  2. [SEP]:分隔符(Separator),用于分隔不同的句子或者声明的结束。
  3. [PAD]:填充(Padding),用于在一批序列中对较短的序列进行填充,以使它们达到相同的长度。
  4. [CLS]:分类符(Classification),通常放在文本的最前面,用于在文本分类任务中存放整个序列的表示。
  5. [MASK]:遮罩(Mask),主要用于BERT等预训练模型中的遮蔽语言模型任务,替换输入中的一些词以预测这些被替换的词。

tokenizer_config.json 字典配置

复制代码
{"do_lower_case": false, "unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]", "tokenize_chinese_chars": true, "strip_accents": null, "model_max_length": 1024}
  • do_lower_case: 如果设置为false,表示在处理文本时不将所有字符转换为小写。这对于那些大小写敏感的应用场景很重要。
  • unk_token: [UNK],代表未知词标记,用于替换词汇表之外的词。
  • sep_token: [SEP],分隔符标记,用于分隔不同的句子或者声明的结束。
  • pad_token: [PAD],填充标记,用于在一批序列中对较短的序列进行填充,以使它们达到相同的长度。
  • cls_token: [CLS],分类标记,通常放在文本的最前面,用于存放整个序列的表示,特别是在文本分类任务中。
  • mask_token: [MASK],遮罩标记,主要用于BERT等预训练模型中的遮蔽语言模型任务,替换输入中的一些词以预测这些被替换的词。
  • tokenize_chinese_chars: 如果设置为true,表示对中文字符进行标记化处理。这意味着中文字符会被视为单独的标记。
  • strip_accents: 设置为null表示不特别处理重音符号。如果设置为truefalse,则会相应地去除或保留原始文本中的重音。
  • model_max_length: 1024,指定了模型能够接受的最大序列长度。在这个例子中,最大长度设置为1024个标记。

vocab.txt 字典内容

相关推荐
Engineer邓祥浩6 分钟前
JVM学习笔记(4) 第二部分 自动内存管理 第3章 垃圾收集器与分配策略
jvm·笔记·学习
LuminousCPP9 分钟前
3 道结构体 + 位段高频错题全拆解(附表格详解)
经验分享·笔记·结构体·位段
一定要AK41 分钟前
Java流程控制
java·开发语言·笔记
chase。1 小时前
【学习笔记】基于扩散模型的运动规划学习与适应
人工智能·笔记·学习
xiaokangzhe1 小时前
MySQL主从复制读写分离笔记
笔记·mysql·adb
CheerWWW1 小时前
C++学习笔记——枚举、继承、虚函数、可见性
c++·笔记·学习
Heartache boy2 小时前
野火STM32_HAL库版课程笔记-TIM通道捕获应用之编码器模式
笔记·stm32·单片机·嵌入式硬件
老虎06272 小时前
LeetCode热题100 刷题笔记(第四天)二分 「 寻找两个正序数组的中位数」
笔记·算法·leetcode
llm大模型算法工程师weng2 小时前
在flomo中安放“不确定”:一款笔记产品如何让人“被看见”
笔记
今儿敲了吗3 小时前
51| 八皇后
c++·笔记·学习·算法·深度优先