个人博客:https://liuqianglong.com
公众号:自刘地
这篇文章介绍了Hugging Face平台和它的核心产品。演示了如何在AWS EC2实例上,从Hugging Face Hub下载并运行Qwen2-0.5B-Instruct模型。最后,还展示了如何用Gradio图形化界面与Qwen LLM进行聊天对话。
一、Hugging Face 简介
Hugging Face是一家美国公司,成立于2016年,起初是为青少年开发聊天机器人应用程序。后来,Hugging Face转型为专注于机器学习的平台公司,推出了多款促进NLP(自然语言处理)技术发展的产品。主要产品有:
- 预训练模型:Hugging Face提供了一系列优秀的预训练NLP模型,如BERT、GPT、RoBERTa等,这些模型在多项任务中表现出色。
- Transformers库:Hugging Face开发了名为
transformers
的Python库,支持PyTorch和TensorFlow等深度学习框架,提供了加载、微调和使用预训练模型的便捷工具。 - NLP工具:他们提供了多种NLP相关工具,如文本生成、文本分类和命名实体识别,帮助开发者快速构建NLP应用。
- Hugging Face Hub:这是一个集中式的Web平台,类似于GitHub,托管基于Git的代码仓库、模型和数据集,并支持项目讨论和拉取请求。
- Hugging Face Spaces:Hugging Face Spaces是一个允许用户轻松部署和分享AI应用的平台。。它提供了一个易于使用的GUI,使用户能够快速创建和部署Web托管的ML应用。2021年底,Hugging Face宣布收购了Gradio。Gradio是一个开源Python包,允许用户快速为机器学习模型、API或任何Python函数构建交互式演示或Web应用程序,无需编写HTML、CSS或JavaScript代码。
二、大模型竞技场与排名
另外在Hugging Face可以查看各个大模型的排行榜,例如下面的开源大模型排行榜 [1]。
由LMSYS维护的大模型聊天竞技场,收集人类对大模型聊天回复的反馈,进行排名 [2]。
发送的问题会同时给两个模型进行回复,根据回复内容进行投票,一共4个选项,A胜、B胜、平手或者都不行。投票后会显示回复的大模型版本。
三、Hugging Face Spaces 使用
Hugging Face Spaces是一个允许用户轻松部署和分享AI应用的平台,很多大模型都会在Spaces上发布不同版本的模型,为大家提供测试。例如下面是Qwen的Spaces空间https://huggingface.co/Qwen [3]。
点击进入Qwen2-72B-Instruct Chat
,可以进行聊天测试。
四、EC2 本地运行 Qwen2-0.5B-Instruct 模型
这部分演示一下,通过EC2下载和启动Qwen2-0.5B-Instruct
模型。我选择Deep Learning类型的AMI,这个类型的AMI已经预先安装了英伟达的驱动。
选择Ubuntu或者Amazon Linux2023都可以,这里我选择Ubuntu22.04版本的镜像。
选择g4dn.xlarge
,带有1个NVIDA T4显卡,共有16GB GPU,这是带有英伟达显卡最便宜的实例。
实例已经预装了英伟达驱动,启动之后通过nvidia-smi
命令查看一下GPU信息。
进入Qwen2-0.5B-Instruct页面https://huggingface.co/Qwen/Qwen2-0.5B-Instruct,拷贝模型链接 [5]。
要下载模型文件,需要先安装git-lfs
,否则不会下载项目中的大型文件。
Git LFS(Large File Storage)是一个Git扩展工具,用于高效管理大文件。它通过将大文件存储在单独的LFS存储库中,避免了Git仓库体积过大,提升了项目管理效率。Git LFS特别适用于需要处理大型文件的项目,如音乐、图片、视频等。该工具易于安装和配置,并且在多个平台上有良好的支持。
下载模型文件
查看模型文件
安装python包依赖,这三个python包都比较大,下载时间较长。
国内可以指定pip安装源。
拷贝官方提供的快速启动脚本,这里我修改模型的路径为绝对路径"/root/Qwen2-0.5B-Instruct"
,Prompt修改为"你是谁?"
,增加了打印响应结果。
运行脚本,查看模型返回结果。
查看GPU消耗。
Qwen Gradio 图形化界面
命令行进行对话并不方便,可以使用官方提供的web_demo.py
脚本 [6],通过图形化页面进行对话,脚本网址是https://github.com/QwenLM/Qwen2/blob/main/examples/demo/web_demo.py。
安装脚本所需要的依赖,前面已经安装过transformers torch accelerate
这三个库了,这里只需要安装gradio
即可。
运行脚本,-- server-name 0.0.0.0
允许所有地址进行访问,--checkpoint-path /root/Qwen2-0.5B-Instruct
指定模型文件所在目录。
使用公网地址加上8000端口打开网页查看。
五、文档链接
- [1] 开源大模型排行榜:https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard
- [2] 大模型聊天竞技场: https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard
- [3] Qwen 的 Spaces 空间:https://huggingface.co/Qwen
- [4] Qwen2-72B-Instruct Spaces 空间:https://huggingface.co/spaces/Qwen/Qwen2-72B-Instruct
- [5] Qwen2-0.5B-Instruct 模型下载地址: https://huggingface.co/Qwen/Qwen2-0.5B-Instruct
- [6] Qwen2 网页demo代码 https://github.com/QwenLM/Qwen2/blob/main/examples/demo/web_demo.py