Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

  • client

  • 网络

  • compute_base

  • blog

  • growth

  • java

  • C&C++

  • ai

    • base

    • tools

    • local-llm

    • nlp基础

      • token
      • 向量
      • rnn
      • HuggingFace
        • 一、HuggingFace 是什么
          • 1.1 定位
          • 1.2 核心价值
        • 二、核心组成
        • 三、Transformers 库详解
          • 3.1 核心概念
          • 3.2 快速上手
          • 3.3 支持的任务类型
          • 3.4 本地模型加载
        • 四、Hub 模型仓库
          • 4.1 常用命令
          • 4.2 Python SDK 操作
          • 4.3 模型页面结构
        • 五、与 Ollama 的关系与区别
          • 5.1 核心关系
          • 5.2 详细对比
          • 5.3 什么情况用哪个?
          • 5.4 配合使用最佳实践
        • 六、典型使用场景
          • 6.1 加载预训练模型做推理
          • 6.2 微调开源模型
          • 6.3 下载/上传数据集
          • 6.4 部署 Demo 应用(Spaces + Gradio)
        • 七、常见问题
          • 7.1 下载模型太慢怎么办?
          • 7.2 模型太大,显存不够怎么办?
          • 7.3 Hugging Face 模型能直接用 Ollama 跑吗?
          • 7.4 私有模型怎么托管?
        • 八、学习资源
        • 九、总结
  • secure

  • cms

  • english

  • 生活

  • 金融学

  • more

  • other
  • ai
  • nlp基础
Jacky
2025-05-11
目录

HuggingFace

# HuggingFace 完整指南

AI 开源平台,NLP/ML 开发者几乎绕不开的工具生态。被誉为「AI 界的 GitHub」。

官网:https://huggingface.co


# 一、HuggingFace 是什么

# 1.1 定位

HuggingFace 是一个AI 模型平台 + 开发工具生态,提供:

  • 模型仓库:几十万个开源模型托管下载
  • 开发库:Transformers、Diffusers、Datasets 等
  • 在线服务:Inference API、Spaces 应用托管
  • 社区:模型讨论、评测、论文复现

# 1.2 核心价值

价值 说明
模型统一入口 不用到处找模型,一个平台搞定
标准化接口 所有模型用同一套 API 加载
开源协作 模型、数据集、代码都可以开源共享
快速部署 Spaces 一键部署 AI 应用

# 二、核心组成

项目 功能 适用场景
🤗 Transformers 主流 NLP/ML 模型库,一行代码加载模型 文本生成、分类、翻译等
🏛️ Hub 模型 & 数据集托管 + API 下载/上传模型、数据集
📊 Datasets 数据集加载和处理库 训练数据准备
🧪 Accelerate 多卡/多机训练工具 大模型分布式训练
🧪 PEFT 参数高效微调(LoRA 等) 低成本微调大模型
🎨 Diffusers 文生图模型库(Stable Diffusion) 图像生成
📦 CLI & SDK 登录、上传、下载、推理工具 命令行操作
🚀 Spaces 快速部署 AI Web 应用 Demo 展示、产品原型
🤖 Inference API 在线模型推理服务 不用本地部署直接调用
⚡ Optimum 模型推理优化工具 量化、剪枝、加速

# 三、Transformers 库详解

# 3.1 核心概念

Transformers 库提供了统一的模型加载接口,支持几百种模型架构。

三大核心类:

  • AutoTokenizer:自动加载分词器
  • AutoModel:自动加载模型
  • pipeline:高级封装,一行代码完成任务

# 3.2 快速上手

from transformers import pipeline

# 方式一:pipeline 高级封装(最简单)
classifier = pipeline("sentiment-analysis")
print(classifier("Hugging Face is amazing!"))
# [{'label': 'POSITIVE', 'score': 0.9998}]

# 文本生成
generator = pipeline("text-generation", model="gpt2")
print(generator("Hello, I'm", max_length=50))

# 方式二:手动加载 Tokenizer + Model(更灵活)
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")

inputs = tokenizer("Hello, I'm", return_tensors="pt")
outputs = model.generate(**inputs, max_length=50)
print(tokenizer.decode(outputs[0]))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 3.3 支持的任务类型

任务类型 pipeline 名称 说明
文本分类 text-classification / sentiment-analysis 情感分析、主题分类
文本生成 text-generation 大语言模型对话
问答 question-answering 阅读理解问答
翻译 translation_xx_to_yy 机器翻译
摘要 summarization 文本摘要
命名实体识别 ner / token-classification 实体抽取
语音识别 automatic-speech-recognition 语音转文字
图像分类 image-classification 图片分类
目标检测 object-detection 物体检测

# 3.4 本地模型加载

# 从本地目录加载
tokenizer = AutoTokenizer.from_pretrained("./local-model")
model = AutoModelForCausalLM.from_pretrained("./local-model")

# 加载时指定设备(GPU/CPU)
model = AutoModelForCausalLM.from_pretrained("gpt2", device_map="auto")

# 加载量化模型(节省显存)
model = AutoModelForCausalLM.from_pretrained(
    "model-name",
    load_in_4bit=True  # 4bit 量化
)
1
2
3
4
5
6
7
8
9
10
11
12

# 四、Hub 模型仓库

# 4.1 常用命令

# 安装 CLI
pip install huggingface_hub

# 登录(需要 token)
huggingface-cli login

# 下载模型
huggingface-cli download <model-name>

# 下载到指定目录
huggingface-cli download <model-name> --local-dir ./models/model-name

# 上传模型
huggingface-cli upload <repo> <local-path>

# 搜索模型
huggingface-cli search <keyword>

# 查看模型信息
huggingface-cli repo info <model-name>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 4.2 Python SDK 操作

from huggingface_hub import hf_hub_download, list_models

# 下载单个文件
path = hf_hub_download(repo_id="gpt2", filename="config.json")

# 列出所有模型
models = list(list_models(search="llama", limit=10))
for m in models:
    print(m.id, m.downloads)
1
2
3
4
5
6
7
8
9

# 4.3 模型页面结构

每个模型页面包含:

  • Model card:模型介绍、使用方法、评测结果
  • Files:模型文件、配置、分词器
  • Community:讨论区、问题反馈
  • Spaces:基于该模型的应用

# 五、与 Ollama 的关系与区别

# 5.1 核心关系

Hugging Face(模型源头,几十万个模型)
    ↓ 转换为 GGUF 量化格式
Ollama 模型库(几百个热门模型)
    ↓ 一键运行
本地推理服务
1
2
3
4
5

关键点:

  1. Ollama 的模型很多源自 Hugging Face(经过 GGUF 量化转换)
  2. Hugging Face 是「模型超市」,Ollama 是「微波炉」
  3. 两者格式不兼容,需要转换才能互通

# 5.2 详细对比

对比项 Hugging Face Ollama
本质 模型平台 + 开发库 本地运行工具
模型格式 PyTorch / safetensors GGUF 量化
模型数量 几十万个 几百个热门
上手难度 高(需要写代码、配环境) 极低(一行命令)
硬件优化 一般(需自己配置) 优秀(自动量化+加速)
推理速度 原版快但吃显存 量化后省资源,速度快
API 服务 Inference API(在线) 本地 API(兼容 OpenAI)
模型微调 ✅ 生态完善 ❌ 不支持
适合人群 开发者 / 研究者 普通用户 / 快速应用

# 5.3 什么情况用哪个?

场景 推荐 原因
快速本地跑模型聊天 Ollama 简单、快速、省资源
模型微调 / 训练 Hugging Face 生态完善,工具齐全
搜索最新模型 Hugging Face 模型最全,更新最快
生产环境本地 API Ollama 自带 API,部署简单
研究模型结构 / 源码 Hugging Face 完整实现,可定制
低配置电脑跑大模型 Ollama 量化优化,省内存

# 5.4 配合使用最佳实践

  1. 去 Hugging Face 找模型:看评测、找论文、选模型
  2. 用 Ollama 跑模型:简单快速,验证效果
  3. 需要微调时回 Hugging Face:用 Transformers + PEFT 微调

# 六、典型使用场景

# 6.1 加载预训练模型做推理

from transformers import pipeline

# 情感分析
classifier = pipeline("sentiment-analysis")
result = classifier("这个产品太棒了!")
print(result)

# 文本摘要
summarizer = pipeline("summarization")
text = "长文本..."
print(summarizer(text, max_length=100))
1
2
3
4
5
6
7
8
9
10
11

# 6.2 微调开源模型

# 使用 PEFT 进行 LoRA 微调(节省显存)
from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: 0.1% || all params: 100%
1
2
3
4
5
6
7
8
9
10
11
12
13

# 6.3 下载/上传数据集

from datasets import load_dataset

# 加载公开数据集
dataset = load_dataset("imdb")
print(dataset["train"][0])

# 加载本地数据集
dataset = load_dataset("csv", data_files="data.csv")
1
2
3
4
5
6
7
8

# 6.4 部署 Demo 应用(Spaces + Gradio)

# app.py
import gradio as gr
from transformers import pipeline

generator = pipeline("text-generation", model="gpt2")

def generate(text):
    return generator(text, max_length=100)[0]["generated_text"]

demo = gr.Interface(fn=generate, inputs="text", outputs="text")
demo.launch()
1
2
3
4
5
6
7
8
9
10
11

上传到 Spaces 后自动部署,获得公网访问链接。


# 七、常见问题

# 7.1 下载模型太慢怎么办?

# 方法一:使用镜像站(国内)
export HF_ENDPOINT=https://hf-mirror.com

# 方法二:使用 hf_transfer 加速
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1

# 方法三:用 huggingface-cli 支持断点续传
huggingface-cli download <model> --resume-download
1
2
3
4
5
6
7
8
9

# 7.2 模型太大,显存不够怎么办?

# 4bit 量化加载
model = AutoModelForCausalLM.from_pretrained(
    "model-name",
    load_in_4bit=True,
    device_map="auto"
)

# 或者用 Ollama 跑量化版本
# ollama run model-name
1
2
3
4
5
6
7
8
9

# 7.3 Hugging Face 模型能直接用 Ollama 跑吗?

不能直接用,需要转换格式:

  1. Hugging Face 模型是 PyTorch/safetensors 格式
  2. Ollama 使用 GGUF 量化格式
  3. 需要用 llama.cpp 的工具转换,过程较复杂
  4. 建议先在 Ollama 模型库搜索,通常热门模型已有转换好的版本

# 7.4 私有模型怎么托管?

  • Hugging Face 支持私有仓库(免费版有数量限制)
  • 可以自建 Hugging Face 企业版
  • 或者用 MinIO 等对象存储自建模型仓库

# 八、学习资源

  • 官方文档:https://huggingface.co/docs
  • Transformers 文档:https://huggingface.co/docs/transformers
  • 课程:https://huggingface.co/learn
  • 模型库:https://huggingface.co/models
  • 数据集:https://huggingface.co/datasets
  • Spaces:https://huggingface.co/spaces

# 九、总结

维度 说明
定位 AI 模型平台 + 开发工具生态
核心优势 模型全、接口统一、生态完善
适合人群 AI 开发者、研究者
与 Ollama 关系 互补,Hugging Face 是模型源头,Ollama 是运行工具
学习曲线 中等,pipeline 简单,底层定制复杂

一句话:Hugging Face 是「AI 模型的世界」,想深入做 AI 开发必须掌握;只是想本地跑模型聊天,用 Ollama 就够了。

#AI#NLP#LLM
上次更新: 2026/09/10, 20:52:09
rnn
逆向

← rnn 逆向→

最近更新
01
direnv
09-09
02
nvim
09-09
03
wget
09-09
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式