笔记---Hugging Face 新手学习教程:查找开源大模型 + 网页在线试用
1 介绍HuggingFace一句话概括AI 领域的 GitHub全球最大开源 AI 模型共享社区 开发平台官网https://huggingface.co⚠️重要提示国内直连访问不稳定需要合规网络环境部分大厂模型Llama 系列需要申请权限才能使用两种在线试用方式①模型主页内置推理组件最简单②Spaces 现成可视化聊天界面体验更好1.1 基础背景Hugging Face 既是美国 AI 公司名称也是网站平台名称。2016 年创立最早做聊天机器人后来凭借 Transformers 开源 Python 库爆火成为开源大模型生态核心阵地。1.2 网站四大核心板块网页上主要功能Models【模型仓库最重要】相当于 AI 模型 “应用商店”存放上百万开源预训练 AI 模型包含大语言模型Llama、通义千问 Qwen、Mistral、AI 绘画 Stable Diffusion、语音识别、翻译、图片分类等任何人可以下载、在线试用、二次微调、上传自己训练的模型所有主流开源大模型基本都会第一时间发布在这里。Datasets【数据集仓库】海量公开训练数据文本、图片、音频数据集AI 训练专用。Spaces【在线演示平台普通人最容易上手】无需本地配置电脑开发者上传代码在线生成可直接体验的 AI 网页 DemoAI 聊天、绘画、语音克隆、视频生成工具都在这里。点开就能网页试用。文档、社区、企业服务提供全套 AI 开发工具教程同时有付费企业版用于商用部署模型。1.3 配套王牌工具代码层面TransformersPython 库行业标准工具包几行代码就能加载网站上任意模型兼容 PyTorch、TensorFlow开发大模型必备。1.4 普通人 / 开发者分别能用它做什么✅ 普通爱好者打开 Spaces免费体验各类开源 AI 绘画、开源聊天大模型、语音工具。✅ AI 开发者 / 算法工程师下载现成模型不用从零训练 AI在本地电脑 / 显卡运行大模型微调模型、上传自己训练成果、快速搭建网页 Demo。1.5 重要补充知识点区分开源 / 闭源平台只是托管场所有些模型免费商用有些只能个人学习如部分 Llama 系列下载前看清许可证。网络访问官网境外站点国内直连访问不稳定国内替代平台魔搭 ModelScope阿里、智谱开放平台、HuggingFace 镜像站。和 ChatGPT 区别ChatGPT 是闭源成品 AI 服务 GitHub 存放程序代码。Hugging Face 是模型开源社区提供原材料模型你可以自己部署、改造Hugging Face 存放 AI 模型、AI 训练数据。2 注册 登录账号打开官网右上角点击 Sign Up 注册填写邮箱、密码设置用户名勾选协议创建账号去邮箱接收验证邮件点击链接激活账号返回网页右上角 Log in 登录3 使用3.1 进入模型市场搜索开源大模型顶部导航栏点击 Models进入模型仓库模型超市搜索方式方式 A精准搜索推荐顶部搜索框直接输入模型名称举例常用中文开源模型Qwen通义千问开源、Llama 3、Mistral、Yi零一万物、ChatGLM方式 B筛选查找左侧筛选栏Tasks任务 → 选择 Text Generation文本生成 / 聊天大模型 可以勾选语言Chinese筛选中文模型排序选 Most Downloaded下载最多/Trending热门优先选热度高、稳定的模型小提示名字带 Instruct 的版本是对话微调版适合直接聊天不带的是基础预训练模型。3.2 进入模型主页在线试用3.2.1 方法 1模型内置推理窗口3.2.1.1 以任意开源对话模型举例搜索结果点击模型名称进入 Model Card模型卡片主页页面右侧找到 Inference Widget在线推理组件✅能看到这个窗口 支持直接网页试用在输入框写提示词点击 Submit 发送直接在线运行大模型3.2.1.2 常见踩坑说明提示 Gated model受限模型Meta Llama3 等解决下拉页面填写信息申请访问权限等待审批通过才能使用报错加载失败免费公共算力有限、超时、负载过高换一个模型重试部分小模型没有内置推理窗口 → 使用下面 Spaces 方案。3.2.2 方法 2Spaces 可视化聊天 Demo更好的体验强烈推荐新手很多开发者把模型封装成网页聊天界面像 ChatGPT 一样使用不用调试参数顶部导航点击 Spaces搜索关键词Qwen chat、Llama3 chat、ChatGLM webui点开对应 Space 链接直接出现聊天窗口输入对话即可注意免费 CPU 启动很慢部分 Space 需要排队长时间闲置页面会休眠刷新重启即可。3.3关键基础参数解释调整生成效果在线界面经常看到这些选项新手参考Temperature 温度0~1越高回答越有创意日常聊天推荐 0.6~0.8Max new tokens限制单次最大输出字数Top P默认 0.9 即可不用改动新手友好入门模型推荐中文可用大多无需复杂权限Qwen/Qwen2-7B-Instruct阿里通义千问开源中文优秀THUDM/chatglm3-6b智谱清言开源01-ai/Yi-6B-Chat零一万物3.4 高频问题避坑一直转圈、无法生成 免费公共推理资源有限高峰拥堵解决方案换模型、或者本地下载模型运行。模型申请权限一直不通过 Llama系列属于 Meta 受限模型填写申请理由尽量写学术 / 个人研究用途。页面打不开、加载缓慢网络环境问题。不要商用留意每个模型页面的 License 协议部分开源模型禁止商业使用。4 HuggingFace Transformers 本地部署完整教程目标Python transformers 库电脑本地跑开源大模型Qwen/ChatGLM/Yi 等4.1 前置说明硬件参考最低6B 模型推荐 ≥16G 内存有 NVIDIA GPU ≥8G 显存最佳没有显卡纯 CPU速度非常慢仅适合测试只支持 NVIDIA 显卡CUDAAMD 显卡需要额外方案ROCm环境Python 3.9 ~ 3.11最稳定不推荐 3.12 踩坑4.2 环境安装创建虚拟环境可选但强烈推荐# windows/mac通用python-mvenv hf-env# Windows 激活hf-env\Scripts\activate# Mac/Linux激活sourcehf-env/bin/activate安装依赖包# 核心库pipinstalltransformers accelerate torch sentencepiece protobuf# 可选加速加载模型、量化节省显存pipinstallbitsandbytes# 可选pipinstalltransformers accelerate torch sentencepiece protobuf bitsandbytes gradioaccelerate自动适配 GPU/CPUbitsandbytes 用来 4/8bit 量化显存不够必备重点安装 PyTorch CUDA 版本先查看自己显卡是否支持 CUDA去pytorch.org复制对应命令示例CUDA12.1pip3installtorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1214.3 运行方案示范模型Qwen/Qwen2-7B-Instruct中文效果好新手首选如果你想跑 ChatGLM3、Yi只需要更换模型名称4.3.1 基础标准版自动检测 GPU简单易懂新建 run_llm.pyfromtransformersimportAutoTokenizer,AutoModelForCausalLM# 模型名称huggingface上的模型地址model_nameQwen/Qwen2-7B-Instruct# 加载分词器tokenizerAutoTokenizer.from_pretrained(model_name)# 加载模型自动放到GPUmodelAutoModelForCausalLM.from_pretrained(model_name,device_mapauto,# 自动分配显卡内存trust_remote_codeTrue)# 对话模板messages[{role:system,content:你是一名乐于助人的AI助手},{role:user,content:简单介绍一下Hugging Face}]# 编码输入texttokenizer.apply_chat_template(messages,tokenizeFalse,add_generation_promptTrue)inputstokenizer([text],return_tensorspt).to(cuda)# 生成回答outputsmodel.generate(**inputs,max_new_tokens512,temperature0.7)# 打印结果resulttokenizer.decode(outputs[0][len(inputs[input_ids][0]):],skip_special_tokensTrue)print(result)4.3.2 显存不足解决方案重要7B 模型直接加载需要大量显存开启4bit 量化显存占用直接减半修改模型加载代码modelAutoModelForCausalLM.from_pretrained(model_name,device_mapauto,trust_remote_codeTrue,load_in_4bitTrue,# 开启4bit量化)⚠️ load_in_4bit 需要安装 bitsandbytesWindows 部分版本兼容会报错4.3.3 模型下载问题国内最大痛点直接运行代码会尝试从 hf 官网下载速度极慢 / 失败方法 A设置镜像源推荐运行代码前在终端设置环境变量# Windows cmdsetHF_ENDPOINThttps://hf-mirror.com# Mac / LinuxexportHF_ENDPOINThttps://hf-mirror.com再执行 python run_llm.py会走国内镜像加速下载方法 B手动提前下载模型使用工具 huggingface-hubpipinstallhuggingface-hub# 镜像下载模型setHF_ENDPOINThttps://hf-mirror.com huggingface-cli download Qwen/Qwen2-7B-Instruct --local-dir ./Qwen2-7B-Instruct代码中直接读取本地文件夹下载模型到本地文件夹model_name./Qwen2-7B-Instruct# 本地路径不再联网下载4.3.5 受限模型说明Llama3 等如果你要运行 Meta Llama 3HuggingFace 网页申请模型访问权限在本地登录你的 huggingface 账号huggingface-cli login粘贴你的 HF Token才能正常下载、加载模型。4.3.6 常见报错排查OutOfMemoryError 显存爆了✅ 开启 load_in_4bitTrue或者换更小模型Qwen2-1.5B-Instructtrust_remote_code 报错✅ 加上参数 trust_remote_codeTrue运行速度很慢全程 CPU 跑✅ 确认 cuda 版本正确执行下面代码测试 torch 是否识别显卡importtorchprint(torch.cuda.is_available())#输出True才算成功启用GPU下载模型中断✅ 使用 hf 镜像或者手动 cli 下载4.4 新手推荐起步模型硬件门槛低轻量测试Qwen/Qwen2-1.5B-Instruct 低配置电脑可跑均衡性能Qwen/Qwen2-7B-Instruct中文首选4.5 Gradio 网页 UI 版本浏览器聊天界面fromtransformersimportAutoTokenizer,AutoModelForCausalLMimportgradioasgr# 配置区 model_pathQwen/Qwen2-7B-Instructload_4bitTruemax_new_tokens512temperature0.7# print(正在加载模型...)tokenizerAutoTokenizer.from_pretrained(model_path,trust_remote_codeTrue)modelAutoModelForCausalLM.from_pretrained(model_path,device_mapauto,trust_remote_codeTrue,load_in_4bitload_4bit).eval()defpredict(message,history):messages[{role:system,content:你是一个乐于助人的AI助手。}]# 拼接历史对话foruser_msg,bot_msginhistory:messages.append({role:user,content:user_msg})messages.append({role:assistant,content:bot_msg})messages.append({role:user,content:message})prompttokenizer.apply_chat_template(messages,tokenizeFalse,add_generation_promptTrue)inputstokenizer([prompt],return_tensorspt).to(cuda)outputsmodel.generate(**inputs,max_new_tokensmax_new_tokens,temperaturetemperature,do_sampleTrue)answertokenizer.decode(outputs[0][len(inputs[input_ids][0]):],skip_special_tokensTrue)returnanswer# 启动网页界面demogr.ChatInterface(fnpredict,title本地大模型聊天,description基于Transformers Qwen2 本地部署,)if__name____main__:# server_name0.0.0.0 局域网其他设备也能访问demo.launch(server_name0.0.0.0,shareFalse)运行python chat_webui.py启动成功后会输出地址浏览器打开http://127.0.0.1:7860未完待续后续更新…