当前位置:   article > 正文

huggingface 笔记:PretrainModel_huggingface model from pretrained

huggingface model from pretrained

1 from_pretrained

  • 从预训练模型配置中实例化一个 PyTorch 预训练模型
  • 默认情况下,模型使用 model.eval() 设置为评估模式(Dropout 模块被禁用)
    • 要训练模型,应该首先使用 model.train() 将其设置回训练模式

1.1 主要参数

pretrained_model_name_or_path

需要加载的模型,可以是:

  • 一个字符串,huggingface.co 上一个模型库中的预训练模型ID。
  • 一个目录路径,包含使用 save_pretrained() 保存的模型权重,例如 ./my_model_directory/
from_tf

(bool, 可选,默认为 False) -

从 TensorFlow 检查点保存文件中加载模型权重

force_download

(bool, 可选,默认为 False) -

是否强制(重新)下载模型权重和配置文件,覆盖已存在的缓存版本

local_files_only(bool, 可选,默认为 False) - 是否只查看本地文件(即,不尝试下载模型)

1.1.1 大模型推理相关主要参数

torch_dtype

(str 或 torch.dtype, 可选) — 覆盖默认的 torch.dtype,并在特定的数据类型下加载模型

  • torch.float16 或 torch.bfloat16 或 torch.float:在指定的数据类型下加载
  • "auto" - 将尝试使用模型的 config.json 文件中的 torch_dtype 条目。如果没有找到此条目,则检查checkpoint中第一个浮点类型的权重的数据类型,并使用该数据类型加载模型。
device_map
  • 指定每个子模块应该去的设备的映射
quantization_config

huggingface 笔记:AutoTokenizer,AutoClass-CSDN博客

一个量化配置参数字典

1.2 举例

  1. from transformers import LlamaModel
  2. m=LlamaModel.from_pretrained('meta-llama/Meta-Llama-3-8B')
  3. m

2 can_generate

  • 该模型是否能够使用 .generate() 方法生成序列。
  • 该函数返回一个布尔值,指示该模型是否支持使用 .generate() 方法来生成序列。
  • 这通常用于判断某个模型是否具备生成文本的能力,例如语言模型或文本到文本的转换模型。
  1. m.can_generate()
  2. #False

3 get_input_embeddings

返回模型的输入嵌入,即将词汇映射到隐藏状态的 PyTorch 模块

  1. m.get_input_embeddings()
  2. #Embedding(128256, 4096)

get_memory_footprint

获取模型的内存占用(以字节为单位)

  1. m.get_memory_footprint()
  2. #30019706880

get_output_embeddings

返回模型的输出嵌入,即将隐藏状态映射到词汇的 PyTorch 模块

init_weights

初始化权重

7 resize_token_embeddings

resize_token_embeddings(new_num_tokens)
  • 嵌入矩阵中的新令牌数量。
    • 增加大小将在末尾添加新初始化的向量。
    • 减少大小将从末尾移除向量。
    • 如果未提供或为 None,则只返回指向模型的输入令牌 torch.nn.Embedding 模块的指针,不进行任何操作。

8 set_input_embeddings

set_input_embeddings(value: nn.Module)

自定义模型的输入嵌入层,通过提供一个新的 nn.Module 来替换默认的输入嵌入

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号