拥抱AI未来:Hugging Face平台使用指南与实战技巧

学习目标

  • 掌握huggingface平台使用

🍔 huggingface介绍

Huggingface总部位于纽约,是一家专注于自然语言处理、人工智能和分布式系统的创业公司。他们所提供的聊天机器人技术一直颇受欢迎,但更出名的是他们在NLP开源社区上的贡献。Huggingface一直致力于自然语言处理NLP技术的平民化(democratize),希望每个人都能用上最先进(SOTA, state-of-the-art)的NLP技术,而非困窘于训练资源的匮乏。同时Hugging Face专注于NLP技术,拥有大型的开源社区。尤其是在github上开源的自然语言处理,预训练模型库 Transformers,已被下载超过一百万次,github上超过24000个star。Transformers 提供了NLP领域大量state-of-art的 预训练语言模型结构的模型和调用框架。

🍔 使用步骤

  • 第一步: 在https://huggingface.co/join上创建一个帐户
  • 第二步: 在可视化界面登陆用户
  • 第三步: 在huggingface上创建模型仓库
  • 第四步: 通过git把本地模型,上传到HuggingFace平台的模型仓库中
  • 第五步: 通过git clone进行模型下载
  • 第六步: 加载下载的模型

2.1 创建一个帐户

https://huggingface.co/join上创建一个帐户

7f8ed7e813bd4738bbffd858e576c684.png

d4dbc89f47c9447d993cac951cb1ee3b.png

2.2 登录

c7b20c071ebf4e0aa76d94503f2487f5.png

2.3 在huggingface上创建模型仓库

  • 在huggingFace平台上注册完毕后,会弹出欢迎页面: https://huggingface.co/welcome 该页面显示了详细的上传模型,下载模型的方法。
  • 详细如下:

f14ce4f79aa84833ada78303601c5165.png

  • 通过界面在huggingface上创建模型仓库

  • 点击个人头像,点击创建模型命令【new Mode】

16a9770364c74db0ba88109c515171ed.png

  • 输入【自己名称】、【模型名称】

906bc8923c63486d8d084b89a18bf64a.png

  • 显示自己创建的模型

fe61ee2ed24e48c8bf5b458e65a662b0.png

2.4 上传本地模型到平台

通过git把本地模型,上传到HuggingFace平台的模型仓库中

1 页面发布步骤介绍

f19956ff48dd426fa4ea926e368dd387.png

2 git clone操作

先通过git clone操作把huggingface服务器上的文件目录给“拉”下来在本地路径下,执行如下命令:

# xxx/mymodel04 --> 这个是你在huggingface上创建的代码仓库, 根据自己的情况适当更换一下.
git clone https://huggingface.co/xxx/mymodel04

注意点:

  • 在本地会出现一个mymodel04文件夹

  • 在执行git clone之前确保本地文件夹是否已经存在mymodel04,避免本地文件被覆盖。或者把已经存在的mymodel04目录修改名字.

a7865e60b9e341788ba825a59042242e.png

3 把我们要上传的模型文件copy到本地mymodel04文件夹中
  • 先将目录先切换至mymodel04文件夹中
cd mymodel04

  • 根据目录结构,选中把bert_finetuning_test目录下的模型文件上传到huggingFace平台,需要把bert_finetuning_test目录下的模型文件,copy到mymodel04目录下。
cp -r /root/transformers/examples/pytorch/text-classification/bert-base-uncased-finetuning  . 

4 上传本地mymodel04文件夹中的模型文件,到服务器mymodel04中
git add .       # 把本地待上传的模型文件与hugging平台建立关联
git commit -m "commit from $USER" # 添加评注
git push    # 向huggingface平台上传模型文件

注意点: git push 向服务器上传模型文件,需要两次输入密码

ca598e7037d941a2ac8801883ddea2f4.png

5 确认模型是否已经上传到HuggingFace平台上

488a169925c54ffaba15612100dc08d6.png

2.5 通过git clone进行模型下载

git clone https://huggingface.co/xxx/mymodel4

2.6 加载下载的模型

import torch
from transformers import AutoModel, AutoTokenizer

# 网络加载
tokenizer = AutoTokenizer.from_pretrained('xxx/mymodel4')
model = AutoModel.from_pretrained('xxx/mymodel4')

index = tokenizer.encode("Talk is cheap", "Please show me your code!")
# 102是bert模型中的间隔(结束)符号的数值映射
mark = 102

# 找到第一个102的索引, 即句子对的间隔符号
k = index.index(mark)

# 句子对分割id列表, 由0,1组成, 0的位置代表第一个句子, 1的位置代表第二个句子
segments_ids = [0]*(k + 1) + [1]*(len(index) - k - 1)
# 转化为tensor
tokens_tensor = torch.tensor([index])
segments_tensors = torch.tensor([segments_ids])

# 使用评估模式
with torch.no_grad():
    # 使用模型预测获得结果
    result = model(tokens_tensor, token_type_ids=segments_tensors)
    # 打印预测结果以及张量尺寸
    print(result)
    print(result[0].shape)

  • 输出效果:
(tensor([[[-0.1591,  0.0816,  0.4366,  ...,  0.0307, -0.0419,  0.3326],
         [-0.3387, -0.0445,  0.9261,  ..., -0.0232, -0.0023,  0.2407],
         [-0.0427, -0.1688,  0.5533,  ..., -0.1092,  0.1071,  0.4287],
         ...,
         [-0.1800, -0.3889, -0.1001,  ..., -0.1369,  0.0469,  0.9429],
         [-0.2970, -0.0023,  0.1976,  ...,  0.3776, -0.0069,  0.2029],
         [ 0.7061,  0.0102, -0.4738,  ...,  0.2246, -0.7604, -0.2503]]]), tensor([[-3.5925e-01,  2.0294e-02, -2.3487e-01,  4.5763e-01, -6.1821e-02,
          2.4697e-02,  3.8172e-01, -1.8212e-01,  3.4533e-01, -9.7177e-01,
          1.1063e-01,  7.8944e-02,  8.2582e-01,  1.9020e-01,  6.5513e-01,
         -1.8114e-01,  3.9617e-02, -5.6230e-02,  1.5207e-01, -3.2552e-01,
          ...
          1.4417e-01,  3.0337e-01, -6.6146e-01, -9.6959e-02,  8.9790e-02,
          1.2345e-01, -5.9831e-02,  2.2399e-01,  8.2549e-02,  6.7749e-01,
          1.4473e-01,  5.4490e-01,  5.9272e-01,  3.4453e-01, -8.9982e-02,
         -1.2631e-01, -1.9465e-01,  6.5992e-01]]))
torch.Size([1, 12, 768])

🍔 小结

学习了通过微调脚本微调后模型的使用步骤:

  • 第一步: 在https://huggingface.co/join上创建一个帐户

  • 第二步: 在可视化界面登陆用户

  • 第三步: 在huggingface上创建模型仓库

  • 第四步: 通过git把本地模型,上传到HuggingFace平台的模型仓库中

  • 第五步: 通过git clone进行模型下载

  • 第六步: 加载下载的模型

1a2ee062c9ad4a89aae366fa0dde5f47.gif

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

5.免费获取

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码或者点击以下链接都可以免费领取【保证100%免费】

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

在这里插入图片描述

### 使用Hugging Face模型进行推理和训练 #### 推理过程 为了利用Hugging Face库中的预训练模型执行推理操作,首先需要安装`transformers`包以及所选框架(如PyTorch或TensorFlow)。加载特定于任务的管道可以简化这一流程。下面是一个简单的例子来展示如何实现这一点: ```python from transformers import pipeline # 加载情感分析pipeline nlp = pipeline("sentiment-analysis") # 对输入文本进行预测 result = nlp("I love using the Hugging Face library!") print(result) ``` 这段代码创建了一个用于情感分类的任务管道,并对给定句子进行了正面/负面情绪评估[^1]。 对于更复杂的场景,则可能涉及到自定义配置文件、调整超参数设置或是处理多模态数据等情况下的具体需求。此时就需要直接实例化相应的编码器(tokenizer)解码器(model),以便获得更大的灵活性。 #### 训练过程 当打算基于现有架构进一步优化性能时,可以通过微调(fine-tuning)的方式来进行针对性改进。这通常意味着在目标领域内收集足够的标注样本集合之后,在此基础上继续迭代更新权重直至收敛满意为止。以下是采用PyTorch框架下完成此工作的基本步骤概述: ```python import torch from datasets import load_dataset from transformers import AutoTokenizer, Trainer, TrainingArguments, BertForSequenceClassification dataset = load_dataset('imdb') # 假设我们正在使用IMDB评论作为我们的数据源 tokenizer = AutoTokenizer.from_pretrained('bert-base-cased') def tokenize_function(examples): return tokenizer(examples['text'], padding='max_length', truncation=True) tokenized_datasets = dataset.map(tokenize_function, batched=True) small_train_dataset = tokenized_datasets['train'].shuffle(seed=42).select([i for i in list(range(300))]) small_eval_dataset = tokenized_datasets['test'].shuffle(seed=42).select([i for i in list(range(100))]) model = BertForSequenceClassification.from_pretrained('bert-base-cased', num_labels=2) training_args = TrainingArguments(output_dir='./results', evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=3, weight_decay=0.01) trainer = Trainer( model=model, args=training_args, train_dataset=small_train_dataset, eval_dataset=small_eval_dataset ) trainer.train() ``` 上述脚本展示了怎样准备并启动一次完整的BERT序列分类器微调实验,其中包含了从获取原始语料到最终保存最佳版本等一系列必要环节[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值