
Hugging Face
文章平均质量分 79
Hugging Face中 transformers, datasets 等库的使用方式整理汇总
彬彬侠
基于 Python 的 AI 算法工程师
展开
-
【Hugging Face】PEFT 库中的 get_peft_model() 函数:将基础模型转换为支持参数高效微调(PEFT)的模型
在 Hugging Face 的 PEFT 库中,get_peft_model() 函数是用于将基础模型(通常是 Hugging Face Transformers 模型)转换为支持参数高效微调(PEFT)的模型的关键函数。它通过应用指定的 PEFT 配置(如 LoraConfig、PromptTuningConfig 等)为模型添加适配器(adapters),从而实现高效微调。原创 2025-04-21 10:25:41 · 1012 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 VeraConfig 常用参数和说明
在 Hugging Face 的 PEFT 库中,VeraConfig 是用于配置 VeRA(Vector-based Random Matrix Adaptation)方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。r:指定低秩矩阵的秩(rank),控制适配器的表达能力。target_modules:指定应用 VeRA 的模型模块。projection_prng_key:指定生成共享低秩矩阵 A 和 B 的随机种子。save_projection:是否在保存模型时存储共享低原创 2025-04-21 10:25:26 · 796 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 LoftQConfig 常用参数和说明
在 Hugging Face 的 PEFT 库中,LoftQConfig 是用于配置 LoftQ(Low-Rank Decomposition with Quantization)方法的类。LoftQ 是一种结合量化和低秩分解(LoRA)的参数高效微调技术,旨在通过初始化 LoRA 权重来最小化量化误差,从而提高量化模型在微调时的性能。loftq_bits:指定量化的位数。iter:指定 LoftQ 初始化时的迭代次数。replace_callback:一个回调函数,在替换每个模块的权重后调用,用于验证 L原创 2025-04-21 10:25:13 · 596 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 IA3Config 常用参数和说明
在 Hugging Face 的 PEFT 库中,IA3Config 是用于配置 (IA)^3(Infused Adapter by Inhibiting and Amplifying Inner Activations)方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。target_modules:指定应用 (IA)^3 的模型模块(通常是 Transformer 层的子模块)。feedforward_modules:指定前馈层模块(feedforward layers),用原创 2025-04-21 10:25:00 · 823 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 P-tuningConfig 常用参数和说明
在 Hugging Face 的 PEFT 库中,P-tuningConfig 是用于配置 P-Tuning 方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。num_virtual_tokens:指定添加到输入序列中的虚拟提示 token 数量。prompt_encoder_type:指定提示嵌入的编码器类型,用于生成连续提示。encoder_hidden_size:指定提示编码器(LSTM 或 MLP)的隐藏层大小。encoder_num_layers:指定提示编码器(LS原创 2025-04-21 10:24:49 · 874 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 PrefixTuningConfig 常用参数和说明
在 Hugging Face 的 PEFT 库中,PrefixTuningConfig 是用于配置 Prefix Tuning 方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。num_virtual_tokens:指定每个 Transformer 层添加的前缀 token 数量。prefix_projection:是否对前缀向量进行投影(通过 MLP 或线性层处理)。num_layers:指定应用前缀的 Transformer 层数。modules_to_save:指定需要全原创 2025-04-21 10:24:06 · 865 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 PromptTuningConfig 常用的参数和说明
在 Hugging Face 的 PEFT 库中,PromptTuningConfig 是用于配置 Prompt Tuning 方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。num_virtual_tokens:指定添加到输入序列中的虚拟 token 数量。prompt_tuning_init:指定虚拟 token 嵌入的初始化方式。prompt_tuning_init_text:当 prompt_tuning_init="TEXT" 时,指定用于初始化的文本。tokeni原创 2025-04-20 19:39:04 · 891 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 AdaLoraConfig 常用的参数和说明
在 Hugging Face 的 PEFT 库中,AdaLoraConfig 是用于配置 AdaLoRA(Adaptive Low-Rank Adaptation)方法的类。task_type:指定任务类型,帮助 PEFT 确定模型结构和用途。r:初始低秩矩阵的秩(rank),表示所有层的最大秩。lora_alpha:缩放因子,调整低秩矩阵对原始权重的贡献,lora_dropout:AdaLoRA 适配器中的 Dropout 概率,用于正则化。target_modules:指定应用 AdaLoRA 的模型模原创 2025-04-20 19:33:11 · 715 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 LoraConfig 常用的参数和说明
在 Hugging Face 的 PEFT 库中,LoraConfig 是用于配置 LoRA(Low-Rank Adaptation)方法的类。 LoraConfig 的主要参数有:task_type:指定任务类型,帮助 PEFT 确定模型的结构和用途。r:LoRA 低秩矩阵的秩(rank)。lora_alpha:LoRA 的缩放因子,用于调整低秩矩阵对原始权重的贡献。lora_dropout:LoRA 适配器中的 Dropout 概率,用于正则化,防止过拟合。target_modules:指定应用 LoR原创 2025-04-20 19:26:31 · 1107 阅读 · 0 评论 -
【Hugging Face】PEFT 库中的 PeftConfig 列举和说明
在 Hugging Face 的 PEFT 库中,PeftConfig 是用于配置不同参数高效微调方法的基类。每个 PEFT 方法都有对应的配置类,继承自 PeftConfig,用于指定该方法的超参数和行为。PEFT 库中支持的主要 PeftConfig 类的有:LoraConfig、AdaLoraConfig、PromptTuningConfig、PrefixTuningConfig、P-tuningConfig、IA3Config、LoftQConfig、AdaLoraConfig、VeraConfig原创 2025-04-20 19:11:53 · 711 阅读 · 0 评论 -
【Hugging Face】PEFT 库:高效微调大型预训练模型的工具库
Hugging Face 的 PEFT 库是一个专门为高效微调大型预训练模型设计的工具库。它通过减少需要更新的参数数量,显著降低微调过程中的计算和存储成本,非常适合资源受限的场景,同时保持与全参数微调相当的性能。常见的 PEFT 方法包括:LoRA:在权重矩阵上添加低秩分解矩阵来微调模型。QLoRA:LoRA 的量化版本。Prompt Tuning:仅调整输入的提示(prompt)嵌入,而不修改模型权重。Prefix Tuning:为模型添加可训练的前缀向量。Adapter:在模型层中插入小型适配器模块,仅原创 2025-04-20 16:17:01 · 754 阅读 · 0 评论 -
【Hugging Face】adapters 库:参数高效的微调(PEFT)方法库,专注于适配器(Adapters)技术
adapters 库是一个基于 Hugging Face 的 transformers 库的扩展工具,专注于参数高效的微调(Parameter-Efficient Fine-Tuning, PEFT)方法,特别适合适配器(Adapters)技术。它允许用户在冻结预训练模型参数的情况下,通过添加少量可训练层(适配器)来高效微调大型语言模型,适用于 NLP、跨语言迁移学习和多任务学习等场景。原创 2025-04-19 15:57:47 · 943 阅读 · 0 评论 -
【Hugging Face】TGI(Text Generation Inference):高性能大语言模型推理框架
Hugging Face TGI,全称 Text Generation Inference,是 Hugging Face 推出的 高性能大语言模型推理框架,专为 部署、服务和推理大语言模型(LLMs) 而优化,支持 多 GPU、推理加速、量化、并发访问、OpenAI API 接口 等功能。主要用于将 Hugging Face 上的模型部署为可访问的 API 服务。它为以下目标而设计:高效、低延迟的文本生成推理,支持多种模型格式(如 transformers、GGUF、Optimum),多用户并发,可部署为本原创 2025-04-13 12:30:56 · 949 阅读 · 0 评论 -
【Hugging Face】PEFT 库:大语言模型参数高效微调
PEFT(Parameter-Efficient Fine-Tuning)是 Hugging Face 推出的一个专门用于大语言模型参数高效微调的库,目标是在只训练少量参数的同时保持模型性能,显著减少显存消耗和训练成本。它支持以下主流的参数高效微调技术:LoRA、Prefix Tuning、Prompt Tuning、P-Tuning v2、AdaLoRA。原创 2025-04-05 18:21:50 · 805 阅读 · 0 评论 -
【Hugging Face】Be aware, overflowing tokens are not returned for the setting you have chosen, i.e. s
Be aware, overflowing tokens are not returned for the setting you have chosen, i.e. sequence pairs with the 'longest_first' truncation strategy. So the returned list will always be empty even if some tokens have been removed.原创 2025-03-29 19:02:34 · 451 阅读 · 0 评论 -
【Hugging Face】datasets.DatasetDict 类:管理多个 Dataset 子集(如 “train“、“test“、“validation“)的字典容器结构
DatasetDict 是 Hugging Face datasets 库中用于 管理多个 Dataset 子集(如 "train"、"test"、"validation")的字典容器结构。它是一个继承自 Python dict 的对象,其中每个 key 对应一个 datasets.Dataset 对象。DatasetDict 是使用 Hugging Face 数据训练模型时的推荐数据结构,特别适合在 训练/验证/测试阶段统一管理数据。原创 2025-03-27 00:22:45 · 405 阅读 · 0 评论 -
【Hugging Face】datasets.Dataset 类:结构化的 NLP 数据集
datasets.Dataset 是 Hugging Face datasets 库中的 核心数据结构,用于表示 结构化的 NLP 数据集,支持高效的数据处理、转换、筛选、格式化、保存与加载等操作。每个 Dataset 类似于一个增强版的 pandas.DataFrame,但设计为支持大规模、高性能、可流式处理的训练数据集。原创 2025-03-27 00:17:04 · 465 阅读 · 0 评论 -
【Hugging Face】BertModel 的 forward() 方法及参数说明
BertModel的forward方法计算Transformer编码后的隐藏状态,适用于文本表示、特征提取、相似度计算。主要参数input_ids→tokenID,attention_mask→掩码(0=填充,1=有效),token_type_ids→句子对任务的区分,output_hidden_states=True→获取所有层隐藏状态,output_attentions=True→获取注意力权重,return_dict=False→返回一个元组。主要输出:last_hidden_state→每个toke原创 2025-03-15 18:09:15 · 602 阅读 · 0 评论 -
【Hugging Face】tokenizer.batch_encode_plus() 方法:批量编码文本(返回 input ids、attention mask、token type IDs)
batch_encode_plus是批量处理多个文本的方法,它比encode和encode_plus更适合大规模数据处理,适用于文本分类、翻译、问答等NLP任务。常见用法:tokenizer.batch_encode_plus(texts)→批量编码,tokenizer.batch_encode_plus(texts,max_length=10,truncation=True)→处理超长文本,tokenizer.batch_encode_plus(texts,padding="max_length")→填充原创 2025-03-13 11:56:45 · 662 阅读 · 0 评论 -
【Hugging Face】tokenizer.encode_plus() 方法:文本编码(返回 input ids、attention mask、token type IDs)
tokenizer.encode_plus是Hugging Face提供的文本编码方法,相比tokenizer.encode,它返回更丰富的编码信息,如attentionmask、tokentypeIDs,适用于文本分类、问答、NER等NLP任务。常见用法:tokenizer.encode_plus(text)→编码文本,tokenizer.encode_plus(text,add_special_tokens=False)→不加[CLS][SEP],tokenizer.encode_plus(text,m原创 2025-03-13 11:50:29 · 489 阅读 · 0 评论 -
【Hugging Face】tokenizer.encode() 方法:将文本转换为 token ID
tokenizer.encode方法用于将文本转换为tokenID,适用于BERT、GPT、T5等Transformer模型的输入预处理。常见用法:tokenizer.encode(text)→转换为tokenID,tokenizer.encode(text,add_special_tokens=False)→不加[CLS]和[SEP],tokenizer.encode(text,max_length=10,truncation=True)→截断,tokenizer.encode(text,return_t原创 2025-03-13 11:43:46 · 363 阅读 · 0 评论 -
【Hugging Face】transformers.optimization 模块:优化器(Optimizer)和学习率调度器(LR Scheduler)
transformers.optimization提供了优化器(Optimizer)和学习率调度器(LRScheduler),用于微调Transformer模型。优化器:AdamW(model.parameters(),lr=5e-5,weight_decay=0.01)。学习率调度器:get_scheduler(name,optimizer,num_warmup_steps,num_training_steps),"linear"(线性衰减)推荐默认,"cosine"(余弦退火),"constant_wi原创 2025-03-12 13:05:26 · 648 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 BertModel 常用方法和属性
BertModel是BERT基础模型(不带特定任务的分类头),它仅输出隐藏状态(hiddenstates),适用于文本表示、特征提取、迁移学习等任务。如果需要文本分类、问答、NER任务,建议使用BertForSequenceClassification或BertForQuestionAnswering。常见属性:model.embeddings嵌入层,model.encoderTransformer编码器,model.pooler池化层([CLS]向量),model.config获取模型超参数,model.原创 2025-03-12 12:42:36 · 302 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 BertTokenizer 常用方法和属性
BertTokenizer是BERT模型专用的分词器,用于文本预处理、分词、转换为tokenID、解码tokenID。BertTokenizer主要基于WordPiece分词法,适用于文本分类、问答、命名实体识别等NLP任务。常见方法:tokenizer.tokenize(text)→分词,tokenizer.encode(text)→转换为ID,tokenizer.decode(ids)→解码,tokenizer.batch_encode_plus(texts)→批量编码,tokenizer.conver原创 2025-03-12 12:36:40 · 530 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 BertConfig 常用的方法和属性
BertConfig是transformers库中的BERT模型配置类,用于定义BERT模型的结构、超参数,如隐藏层维度、注意力头数、最大序列长度、dropout比例等。常见属性:config.hidden_size隐藏层维度,config.num_attention_heads注意力头数,config.num_hidden_layersTransformer层数,config.vocab_size词汇表大小,config.max_position_embeddings最大序列长度,config.hidde原创 2025-03-12 12:28:44 · 407 阅读 · 0 评论 -
【Hugging Face】transformers.optimization 中的 get_scheduler() 函数: 学习率调度器
get_scheduler 是 Hugging Face transformers.optimization 模块中的一个 学习率调度器(LR Scheduler)获取函数,用于 根据训练步数和策略调整学习率,适用于 Transformer 模型的优化。常见调度器:"linear":线性衰减(推荐默认),"cosine":余弦退火,"cosine_with_restarts":周期性重置学习率,"constant_with_warmup":预热后固定,"polynomial":自定义多项式衰减。如果你的训练原创 2025-03-11 12:28:42 · 320 阅读 · 0 评论 -
【Hugging Face】Optimum 库的常用方法和属性
Optimum 是 Hugging Face 优化 Transformer 训练和推理的库,适用于 ONNX Runtime、TensorRT、OpenVINO、Habana Gaudi、Intel Neural Compressor 等高效计算框架,可 提高推理速度、降低显存占用、支持量化和加速训练。原创 2025-03-11 10:10:44 · 421 阅读 · 0 评论 -
【Hugging Face】Optimum 库:优化 Transformer 训练和推理的库
Optimum是Hugging Face提供的优化和加速工具,用于高效推理、量化、图优化、多硬件支持,适用于CPU、GPU、TPU、NPU和专用AI硬件(如HabanaGaudi,IntelNeuralCompressor,OpenVINO,ONNXRuntime,TensorRT)。常见方法:ORTModelForSequenceClassification.from_pretrained(model_id,export=True)使用ONNXRuntime,TRTModelForSequenceClas原创 2025-03-11 10:08:19 · 658 阅读 · 0 评论 -
【Hugging Face】accelerate 库的常用方法和属性
accelerate 是 Hugging Face 提供的 分布式训练库,用于 加速 PyTorch 训练、自动优化多 GPU、TPU、混合精度训练,简化 数据并行、模型并行 的设置,适用于 大规模 NLP 和深度学习任务。常见方法:accelerator.prepare(model, optimizer, dataloader) 自动处理设备分配,accelerator.backward(loss) 自动管理梯度计算,accelerator.save(model, path) 保存模型,accelerat原创 2025-03-11 09:35:00 · 574 阅读 · 0 评论 -
【Hugging Face】datasets 库的常用方法和属性
datasets 是 Hugging Face 提供的 高效数据处理库,用于 加载、转换、处理、筛选、格式化和保存数据集,特别适用于 文本分类、机器翻译、摘要、问答等 NLP 任务。常见方法:load_dataset(name) 加载数据集,map() 转换数据,filter() 筛选数据,set_format() 转换数据格式,save_to_disk() 保存数据集,load_from_disk() 加载数据集,train_test_split() 拆分数据,concatenate_datasets()原创 2025-03-11 09:34:34 · 474 阅读 · 0 评论 -
【Hugging Face】evaluate 库的常用方法和属性
evaluate是Hugging Face提供的独立评估库,用于计算NLP任务的标准评估指标,如准确率(accuracy)、F1分数(f1)、BLEU、ROUGE,适用于文本分类、机器翻译、摘要、问答等任务。常见方法:evaluate.list_evaluation_modules()获取所有指标,evaluate.load(metric_name)加载指标,metric.compute(predictions,references)计算指标,metric.add(prediction,reference)原创 2025-03-11 09:34:10 · 378 阅读 · 0 评论 -
【Hugging Face】transformers 库中 Trainer 常用方法和属性
Trainer 是 Hugging Face transformers 提供的 高层 API,用于 简化 PyTorch Transformer 模型的训练、评估和推理,支持 多 GPU 训练、梯度累积、混合精度训练 等。常用方法:trainer.train() 进行 训练,trainer.evaluate() 进行 评估,trainer.predict(test_dataset) 进行 推理,trainer.save_model(path) 保存模型,trainer.log(metrics) 记录日志,t原创 2025-03-10 15:34:04 · 469 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 config 常用方法和属性
config代表Transformer模型的配置对象,包含模型架构、隐藏层维度、注意力头数、激活函数等超参数。可以使用AutoConfig直接加载模型配置,而不加载权重。常用属性:config.hidden_size隐藏层维度,config.num_attention_heads注意力头数,config.num_hidden_layersTransformer层数,config.vocab_size词汇表大小,config.max_position_embeddings最大序列长度,常用方法:config.原创 2025-03-10 15:31:18 · 342 阅读 · 0 评论 -
【Hugging Face】transformers 库中 model 的常用方法和属性
在transformers库中,model代表预训练的Transformer模型,可用于文本分类、问答、文本生成等任务。不同任务的model可能会有不同的方法和属性,但它们共享许多常见功能。常用方法:model(...)进行前向传播,model.generate()进行文本生成,model.to(device)移动模型到GPU,model.eval()进入推理模式,model.train()进入训练模式,model.save_pretrained(path)保存模型,model.num_parameters原创 2025-03-10 15:26:02 · 682 阅读 · 0 评论 -
【Hugging Face】transformers 库中 tokenizer 常用的方法和属性
tokenizer在transformers库中用于文本预处理,主要包括分词、编码、解码、特殊标记处理等功能,适用于NLP任务(文本分类、翻译、摘要、问答等)。tokenizer常见属性:tokenizer.pad_token、tokenizer.cls_token、tokenizer.sep_token。tokenizer常用方法:tokenizer.tokenize(text)→分词,tokenizer.encode(text)→转换为ID,tokenizer.decode(ids)→解码,tokeni原创 2025-03-10 15:20:48 · 1136 阅读 · 0 评论 -
【Hugging Face】transformers 库中 save_pretrained() 和 save_model() 的区别
在 Hugging Face transformers 库中,save_pretrained 和 save_model 都用于 保存模型,但它们的用途、适用范围和存储内容有所不同。推荐 save_pretrained,更通用,适用于 Hugging Face 生态,save_model 仅适用于 Trainer 训练的模型原创 2025-03-10 15:10:29 · 546 阅读 · 0 评论 -
【Hugging Face】transformers 库中 model.generate() 方法:自回归模型的文本生成方法
model.generate是transformers库中的文本生成(Text Generation)方法,适用于自回归模型(如GPT-2、T5、BART、LLAMA),用于生成文本、摘要、翻译、问答等。generate是Hugging Face提供的文本生成方法,适用于GPT、T5、BART等模型。支持多种生成策略:temperature控制创造性,top_k限制候选词,top_p选择最优词,do_sample=True进行随机采样。适用于多种NLP任务:文本生成(GPT-2,LLaMA),机器翻译(T5原创 2025-03-10 15:04:45 · 694 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 from_pretrained 和 save_pretrained:加载和保存模型及分词器
在 transformers 库中,from_pretrained 和 save_pretrained 是 加载和保存模型及分词器的核心方法,用于 加载预训练模型 或 保存和本地加载已微调的模型。from_pretrained 用于加载模型和分词器,可以从 Hugging Face Hub 或本地路径加载。save_pretrained 用于保存模型,适用于 微调后模型的存储和再加载。支持 GPU 加速,可以在 from_pretrained 之后 .to(torch.device("cuda"))。可结合原创 2025-03-10 13:09:39 · 518 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 logging: 日志管理模块
transformers.logging 是 Hugging Face transformers 库提供的 日志管理模块,用于 控制日志级别、调试信息、抑制冗余输出,适用于 模型加载、训练、推理等场景。支持 debug、info、warning、error 等日志级别,可以 减少不必要的日志输出。可与 Python logging 结合使用,实现 日志管理和文件存储。在 Trainer 训练时,可以设置 logging_steps 控制日志频率。原创 2025-03-10 13:08:07 · 511 阅读 · 0 评论 -
【Hugging Face】transformers 库中的 convert_graph_to_onnx:将预训练的 Transformer 模型转换为 ONNX 格式
convert_graph_to_onnx 是 transformers.convert_graph_to_onnx 提供的一个工具,用于 将 Hugging Face 预训练的 Transformer 模型转换为 ONNX 格式,以便在 高性能推理框架(如 ONNX Runtime, TensorRT, OpenVINO) 中使用。ONNX 可以提高推理速度,适用于 ONNX Runtime、TensorRT、OpenVINO 等高性能推理框架。支持命令行和 Python API,可以方便地转换 BERT原创 2025-03-10 13:02:58 · 589 阅读 · 0 评论