Jacky's blog
首页
  • Android
  • Web
  • Server
  • Python
  • iOS
  • Java
  • Vue
  • 计算机基础
  • AI
  • 全部工具
  • CLI 工具
  • 编辑器
  • 开发工具
  • 构建工具
  • 版本控制
  • 调试工具
  • 网络工具
  • 个人成长
  • 博客
  • 分类
  • 标签
  • 归档
收藏
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • Android
  • Web
  • Server
  • Python
  • iOS
  • Java
  • Vue
  • 计算机基础
  • AI
  • 全部工具
  • CLI 工具
  • 编辑器
  • 开发工具
  • 构建工具
  • 版本控制
  • 调试工具
  • 网络工具
  • 个人成长
  • 博客
  • 分类
  • 标签
  • 归档
收藏
GitHub (opens new window)
  • 基础

  • AI 工具

  • 本地大模型

  • NLP 基础

    • 分词与 Token
    • 向量表示与 Embedding
    • RNN 循环神经网络
    • Hugging Face 开发指南
      • 一、HuggingFace 是什么
        • 1.1 定位
        • 1.2 核心价值
      • 二、核心组成
      • 三、Transformers 库详解
        • 3.1 核心概念
        • 3.2 快速上手
        • 3.3 支持的任务类型
        • 3.4 本地模型加载
      • 四、Hub 模型仓库
        • 4.1 常用命令
        • 4.2 Python SDK 操作
        • 4.3 模型页面结构
      • 五、与 Ollama 的关系与区别
      • 六、典型使用场景
        • 6.1 加载预训练模型做推理
        • 6.2 微调开源模型
        • 6.3 下载/上传数据集
        • 6.4 部署 Demo 应用(Spaces + Gradio)
      • 七、常见问题
        • 7.1 下载模型太慢怎么办?
        • 7.2 模型太大,显存不够怎么办?
        • 7.3 Hugging Face 模型能直接用 Ollama 跑吗?
        • 7.4 私有模型怎么托管?
      • 八、学习资源
      • 九、总结
  • ai
  • nlp
Jacky
2025-05-11
目录

Hugging Face 开发指南

# 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 的关系与区别

Hugging Face 侧重模型、数据集与开发生态,Ollama 侧重模型运行与服务。导入格式、架构支持与本地运行步骤集中维护在 Ollama:Hugging Face 模型导入,不以“模型来自哪个网站”判断能否运行。


# 六、典型使用场景

# 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 跑吗?

先确认架构和格式是否受支持。部分 Safetensors 权重与 GGUF 都有导入路径,具体限制见 Ollama 导入说明 (opens new window),本地操作见 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#guide
上次更新: 2026/10/18, 22:14:48
RNN 循环神经网络

← RNN 循环神经网络

最近更新
01
Codex 使用与会话管理指南
10-17
02
Tailscale 入门:让自己的设备跨网络互联
10-15
03
GitHub CLI(gh)工作流与 CI 排查
10-08
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式