首页 / 资讯中心 / 文章详情

HuggingFace介绍

HuggingFace介绍 ★ FEATURED ARTICLE
HuggingFace是一家技术公司他拥有一个著名的开源社区维护了几乎所有Transformer架构的开源模型和一系列强大的开源库和工具这些开源工作极大地简化了深度学习模型的开发、训练和部署过程。HuggingFace的社区非常活跃包括Meta、Google、DeepSeek、Ali Qwen等再内的超过5000家组织机构都在为HuggingFace开源社区贡献代码、数据集和模型这种开放的文化和协作精神使得HuggingFace成为了深度学习领域的GitHub。虽然HuggingFace的很多工具和代码都是开源、免费的但他也提供了一些商业服务和产品例如AutoNLP和Inference API这些服务可以帮助企业更容易地集成和部署NLP模型。网站https://huggingface.co/如何下载模型在HuggingFace上下载模型需要设置镜像需要设置环境变量export HF_ENDPOINThttps://hf-mirror.com也可以配置在代码里import os os.environ[HF_ENDPOINT]https://hf-mirror.com从Huggingface下载模型需要安装huggingface_hub库pip install -U huggingface_hub之后可以使用huggingface-cli download命令下载huggingface-cli download bert-based-chinese --resume-download --local-dir ${your_local_dir}或者使用python脚本下载from huggingface_hub import snapshot_download # 下载模型 snapshot_download(repo_idbert-base-chinese, local_dir/path/to/local/directory)如果在HuggingFace下载模型遇到困难也可以到魔搭社区 (modelscope) 去寻找对应的模型。首先需要安装modelscope:pip install -U modelscope可以通过modelscope hub下载模型from modelscope.hub.snapshot_download import snapshot_download # 下载模型到指定目录 model_dir snapshot_download(damo/nlp_xlmr_named-entity-recognition_viet-ecommerce-title, cache_dirpath/to/local/dir)或者通过命令行下载模型modelscope download --model damo/nlp_xlmr_named-entity-recognition_viet-ecommerce-title --local_dir path/to/local/dir主流的模型文件格式PyTorch bin文件是pyTorch模型权重的存储格式它是一种二进制文件用于保存PyTorch模型的参数。这种格式由PyTorch的torch.save方法生成并且可以通过torch.load方法加载。.onnx ONNX是一种开放的模型格式支持多种深度学习框架之间的模型转换和共享即可以将模型从一个框架导出然后在另一个框架中加载和使用。ONNX文件中包含了网络的计算拓扑结构因此ONNX Runtime可以直接加载ONNX文件进行推理无需额外的代码。.safetensors: 是HuggingFace开发的一种高效、安全且易于使用的深度学习模型存储格式专门用于存储和加载张量。Safetensors不包含可执行代码因此不会执行潜在的恶意代码。此外SafeTensors的加载速度快支持多种语言和平台是HuggingFace首选的模型文件格式。Transformers库介绍Transformers是HuggingFace开源的用于Transformer架构模型训练和推理的库。github地址GitHub - huggingface/transformers: Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training. · GitHub Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training. - GitHub - huggingface/transformers: Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.https://github.com/huggingface/transformersHuggingFace网站上有Transformers的文档。1.Tokenizer文档https://huggingface.co/docs/transformers/main_classes/tokenizerTokenizer负责将文本转化为模型输入。Tokenizer需要做的事情包括将文本切分成token序列每个token用id来表示。在token序列中根据预训练模型的要求添加特殊token。2.AutoTokenizerAutoTokenizer用于自动加载与特定训练模型相关联的分词器 (tokenizer)。它能够根据模型的名称或路径自动识别并加载对应的分词器配置和词汇表文件使得用户无需手动指定分词器的具体类型从而简化了分词器的使用过程。从预训练模型名称加载分词器from transformers import AutoTokenizer # 指定预训练模型的名称 model_name bert-base-chinese # 自动加载对应的分词器 tokenizer AutoTokenizer.from_pretrained(model_name) # 使用分词器对文本进行编码 texts [梯度检查点Gradient Checkpointing在上述两种方式之间取了一个平衡。] encoded_input tokenizer(texts, return_tensorspt) print(encoded_input) # BertTokenizer同时可以输入两个句子 sentence1 梯度检查点Gradient Checkpointing在上述两种方式之间取了一个平衡。 sentence2 它通过在反向传播过程中重新计算某些输出的方式减少显存的使用量。 encoded_input tokenizer( textsentence1, text_pairsentence2, add_special_tokensTrue, # 添加[CLS]和[SEP] return_tensorpt #返回PyTorch Tensor )Tokenizer的主要接口tokenizer.encode: 将文本编码为标记ID列表encoded_ids tokenizer.encode(text) print(encoded_ids)tokenizer.encode_plus : 将文本编码为标记ID列表并返回额外的信息 (例如注意力掩码)encoded_plus tokenizer.encode_plus(text, return_tensorspt) print(encoded_plus)tokenizer.__call__: 支持对多个文本进行编码encoded tokenizer(text, return_tensorspt) print(encoded)tokenizer.decode : 将标记ID列表解码为原始文本decoded_text tokenizer.decode(encoded_ids, skip_special_tokensTrue) print(decoded_text)3.AutoModelAutoModel提供了一种自动加载预训练模型的机制。AutoModel及其子类能够根据模型名称自动加载相应的预训练模型架构和权重。以下是一些常见的AutoModel类类名描述AutoModel加载预训练的基础模型不包含任何特定任务的输出层AutoModelForCausalLM加载用于因果解码 LLM架构的模型AutoModelForMaskedLM加载用于MLM预训练任务的模型AutoModelForSeq2SeqLM加载适用于Seq2Seq任务的模型AutoModelForQuestionAnswering加载适用于问答任务的模型AutoModelForTokenClassification加载用于序列标注任务的模型AutoModelForSequenceClassification加载用于序列分类任务的模型以下是一个使用AutoModel的示例代码from transformers import AutoTokenizer, AutoModel # 指定模型名称 model_name bert-base-chinese # 加载 Tokenizer 和模型 tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModel.from_pretrained(model_name) # 输入文本 input_text AutoModel是Hugging Face的Transformers库中的一个非常实用的类它属于自动模型选择的机制。 # 编码输入 inputs tokenizer(input_text, return_tensorspt) # 获取模型输出 with torch.no_grad(): outputs model(**inputs) # 获取最后一层隐藏状态 last_hidden_states outputs.last_hidden_state # 输出维度 print(fLast hidden state shape: {last_hidden_states.shape})
阅读完成 · 觉得有帮助?
咨询建站