【大模型】-Hugging Face生态

文章目录

官网: https://huggingface.co/

Hugging Face 是一个开源的 AI 社区网站,站内几乎囊括了所有常见的 AI 开源模型,号称:一网打尽,应有尽有,全部开源

常用模型类型介绍

1 编码器模型 (Encoder-only)

  • 代表: BERT, RoBERTa, DistilBERT

  • 用途: 文本分类、命名实体识别、情感分析

  • 特点: 理解文本含义

2 解码器模型 (Decoder-only)

  • 代表: GPT系列

  • 用途: 文本生成、对话系统

  • 特点: 生成连贯文本

3 编码器-解码器模型 (Encoder-Decoder)

  • 代表: T5, BART

  • 用途: 翻译、文本摘要

  • 特点: 序列到序列任务

核心组件

Hugging Face生态:

  • transformers: 核心模型库
  • datasets: 数据集管理
  • tokenizers: 分词器
  • accelerate: 分布式训练

与Hugging Face区别ModelScope 🏮:概览 · 魔搭社区

  • 定位: 阿里巴巴推出的中文AI模型社区
  • 核心价值: 专注于中文场景,提供丰富的中文预训练模型
  • 特点: 对中文用户更友好,文档和模型更适合中文任务

ModelScope生态:

  • modelscope: 核心库
  • transformers(兼容): 可以无缝使用

1.环境准备

bash 复制代码
# 安装Hugging Face核心库 (安装这个就行)
pip install transformers datasets tokenizers
 
# 或者安装ModelScope核心库
pip install modelscope
 
# 如果使用GPU,还需要安装PyTorch(需要这个,不然环境运行不起来,或者直接安装pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple/)
pip install torch torchvision torchaudio

如果网络不通,就国内镜像源 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple/

1. 分词器代码

python 复制代码
##Hugging 链接不同,用镜像源访问,也可以全局配置,这里直接导入
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
# 1. 导入必要的库
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from datasets import load_dataset

# 2. 定义数据集名称和任务类型:使用的是 imdb 影评数据集
dataset_name = "imdb"
task = "sentiment-analysis"

# 3. 下载数据集并打乱数据
dataset = load_dataset(dataset_name)
dataset = dataset.shuffle()

# 4. 初始化分词器和模型
model_name = "bert-base-cased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# 5. 将文本编码为模型期望的张量格式
inputs = tokenizer(dataset["train"]["text"][:10], padding=True, truncation=True, return_tensors="pt")

# 6. 将编码后的张量输入模型进行预测
outputs = model(**inputs)

# 7. 获取预测结果和标签
predictions = outputs.logits.argmax(dim=-1)
labels = dataset["train"]["label"][:10]

# 8. 打印预测结果和标签
for i, (prediction, label) in enumerate(zip(predictions, labels)):
    prediction_label = "正面评论" if prediction == 1 else "负面评论"
    true_label = "正面评论" if label == 1 else "负面评论"
    print(f"Example {i+1}: Prediction: {prediction_label}, True label: {true_label}")

##输出结果
Example 1: Prediction: 正面评论, True label: 正面评论
Example 2: Prediction: 正面评论, True label: 负面评论
Example 3: Prediction: 正面评论, True label: 负面评论
Example 4: Prediction: 正面评论, True label: 正面评论
Example 5: Prediction: 正面评论, True label: 负面评论
Example 6: Prediction: 正面评论, True label: 负面评论
Example 7: Prediction: 正面评论, True label: 负面评论
Example 8: Prediction: 正面评论, True label: 正面评论
Example 9: Prediction: 正面评论, True label: 负面评论
Example 10: Prediction: 正面评论, True label: 正面评论

模型对10个样本进行了预测

预测准确率约为60%(6个正确,4个错误)

所有预测结果都偏向正面评论,这可能是因为模型未经针对性训练

相关推荐
【建模先锋】2 小时前
基于CNN-SENet+SHAP分析的回归预测模型!
人工智能·python·回归·cnn·回归预测·特征可视化·shap 可视化分析
拾贰_C2 小时前
【python | pytorch | 】.报错怎么找到问题所在?
开发语言·pytorch·python
青铜弟弟2 小时前
WOFOST学习笔记4
笔记·python·学习·spring·作物模型·wofost
znhy_232 小时前
day41打卡
python
晨光32112 小时前
Day34 模块与包的导入
java·前端·python
知行合一。。。2 小时前
Python--01--核心基础
android·java·python
深蓝海拓2 小时前
QT,sys.argv支持的核心内置参数
python·pyqt
superman超哥2 小时前
仓颉语言中循环语句(for/while)的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
冷雨夜中漫步2 小时前
Java类加载机制——双亲委派与自定义类加载器
java·开发语言·python