拓冰建站拓冰建站
首页 / 资讯中心 / 正文

hugging face 入门----[Part1]模型使用

目录背景介绍引言Hugging Face的核心技术行业影响Hugging Face的生态系统扩展模型的使用在线调用本地调用下载model到本地调用本地model背景介绍引言Hugging Face 是一家成立于2016年的美国科技公司总部位于纽约。最初以开发聊天机器人应用起家后转型为专注于自然语言处理NLP和开源人工智能工具的平台。其名称为“Hugging Face”源于表情符号象征友好与开放协作的社区文化。Hugging Face的核心技术Hugging Face 的核心产品是Transformers 库一个基于 PyTorch 和 TensorFlow 的开源库提供预训练模型如 BERT、GPT的快速部署和微调功能。此外平台还提供以下服务Model Hub共享和下载预训练模型的中心化平台涵盖 NLP、计算机视觉等多领域。Datasets 库高效访问和预处理公开数据集。Spaces允许用户快速部署和演示 AI 应用如 Gradio 集成。行业影响Hugging Face 降低了 AI 技术的使用门槛成为 NLP 领域的基础设施之一。其平台简化了从研究到生产的流程推动了生成式 AI如 ChatGPT 替代方案的普及。Hugging Face的生态系统扩展探讨Hugging Face生态系统的扩展工具如Gradio快速构建交互式应用、Accelerate分布式训练优化和Inference API云端模型部署。分析这些工具如何提升开发效率。-------------------------------------以上为AI 生成的hugging face 背景介绍 --------------------------------------模型的使用hugging face的model需要登录才能调用所以需要注册账号并生成一个token这个token是唯一的认证方法而且只有在生成的时候才会看到所以需要自己本地保存一份如果忘记了就需要重新生成一份toekn。token申请的menu在setting--Access Tokens--Create new token在线调用hugging face提供了API可以在线调用模型而不用将模型下载到本地但是会存在经常调用失败的情况大部分情况下是先把模型下载到本地然后再调用。在线调用方法为 使用huggingface hub调用hugging face在线model from huggingface_hub import InferenceClient client InferenceClient( api_keyhuggingface API Key, ) completion client.chat.completions.create( modelQwen/Qwen3.8-27B:featherless-ai, messages[ { role: user, content: [ { type: text, text: Describe this image in one sentence. }, { type: image_url, image_url: { url: https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg } } ] } ], ) print(completion.choices[0].message.content)本地调用下载model到本地本地调用之前需要把model下载下来下载模型的时候不需要token针对不同的模型import 对应的模型下载包这里下载的是gpt2所以导入的是LLM结尾的包。#将模型下载到本地使用 from transformers import AutoModelForCausalLM, AutoTokenizer # 将模型和分词器下载到本地并指定保存路径 model_name uer/gpt2-chinese-cluecorpussmall cache_dir model/uer/gpt2-chinese-cluecorpussmall # 下载模型 AutoModelForCausalLM.from_pretrained(model_name,cache_dircache_dir) # 下载分词工具 AutoTokenizer.from_pretrained(model_name,cache_dircache_dir) print(f模型分词器已下载到{cache_dir})模型会被下载到cahe_dir中这里是设置到项目目录下完整现在的model目录结构如图下载的model目录内容为:config.jsonmodel的基本信息pytorch_model.bin模型本体special_tokens_map.json包含特殊字符和不能识别的字符的信息tokenizer_config.json模型中的字符的信息vocab.txt模型中包含的字符的详细信息其中config.json 中包含的信息需要关注一下词表大小和生成文本的最大长度具体如下{ activation_function: gelu_new, architectures: [ GPT2LMHeadModel ], attn_pdrop: 0.1, embd_pdrop: 0.1, gradient_checkpointing: false, initializer_range: 0.02, layer_norm_epsilon: 1e-05, model_type: gpt2, n_ctx: 1024, n_embd: 768, n_head: 12, n_inner: null, n_layer: 12, n_positions: 1024, output_past: true, resid_pdrop: 0.1, task_specific_params: { text-generation: { do_sample: true, max_length: 320 // 生成文本的最大长度 } }, tokenizer_class: BertTokenizer, vocab_size: 21128 // GPT2的词表大小 }调用本地modelmode_dir需要指定到包含bin文件的目录 从本地加载模型并调用模型 from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline # 设置包含config.json的目录 mode_dir rC:\code\huggingface_demo\transFormers_test\model\uer\gpt2-chinese-cluecorpussmall\models--uer--gpt2-chinese-cluecorpussmall\snapshots\c2c0249d8a2731f269414cc3b22dff021f8e07a3 # 加载模型和分词器 model AutoModelForCausalLM.from_pretrained(mode_dir) tokenizer AutoTokenizer.from_pretrained(mode_dir) # 使用加载的模型和分词器创建生成文本的pipline generator pipeline(text-generation, modelmodel, tokenizertokenizer) # 生成文本 output generator( 你好我是一个小学生, #输入文本生成的种子文本 max_length100, #生成文本的最大长度50表示最多包含50个标记(tokens) num_return_sequences2, #执行返回多少个独立生成的文本序列值为1表示只生成并返回1段文本 truncationFalse, # 该参数表示是否截断文本以此来适应最大文本长度 temperature0.9, #该参数表示生成文本的随机性值越低表示生成的文本越保守值越高生成的文本越多样性 top_k50, #该参数表示只从概率最高的k个词中选择下一个词这里k为50 top_p0.9, #进一步限制选词范围该参数表示选择一组累计概率达到p的集合中采样 clean_up_tokenization_spacesFalse #是否清除生成文本中的空格 ) print(output)可以调整generator的参数来微调模型输出输出如下[{generated_text: 你好我是一个小学生 你 好 我 是 一 个 小 学 生 。 我 是 一 个 小 学 生 你 好 我 是 一 个 小 学 生 。 你 好 我 是 一 个 小 学 生 。 你 好 我 是 一 个 小 学 生 。 你 好 我 是 一 个 小 学 生 。 你 好 我 是 一 个 小 学 生 。 你 好 我 是 一 个 小 学 生 。 你 好 }, {generated_text: 你好我是一个小学生 想 起 以 前 在 学 校 里 和 同 学 聊 天 的 时 候 学 校 里 和 班 里 的 同 学 聊 天 我 们 不 会 忘 了 他 们 但 是 他 们 总 不 忘 记 我 们 在 聊 什 么 那 么 我 们 就 来 看 看 小 学 生 的 聊 天 究 竟 是 怎 样 一 个 表 情 和 动 作 1 、 学 习 }]到这里模型调用就成功完成了。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门