推广 热搜: 百度  搜索引擎  可以  企业  使用  选择  上海  page  技术  货运 

Hugging Face 介绍 & 快速搭建模型服务

   日期:2024-12-26     作者:lwqo5    caijiyuan  
核心提示:你可以在这个网站找到各种类型的模型 Tasks - Hugging Face以Image To Text这个类别为例,其主要由以下几个部分构成࿱

你可以在这个网站找到各种类型的模型

Tasks - Hugging Face

以Image To Text这个类别为例,其主要由以下几个部分构成

  • 类别介绍
  • 模型尝试
  • 模型列表

隶属于 库,不仅可以下载模型、数据,还可以可以登录huggingface、上传模型、数据等。

安装依赖

注意:huggingface_hub 依赖于 Python>=3.8,此外需要安装 0.17.0 及以上的版本,推荐0.19.0+。

基本用法

这个命令是使用Hugging Face的命令行工具(huggingface-cli)来下载一个模型。让我一步一步详细介绍

  1. : 这是Hugging Face提供的一个命令行工具,用于管理和下载模型、数据集等NLP资源。
  2. : 这个命令告诉huggingface-cli你想要下载一个资源。
  3. : 这个标志允许你在下载被中断后继续下载,如果之前的下载尚未完成,这个标志会尝试从之前下载的位置继续下载。
  4. : 这是你要下载的模型的名称。在这种情况下,你正在下载一个由Salesforce发布的名为"blip2-opt-2.7b"的模型。这个模型可能用于自然语言处理(NLP)任务。
  5. : 这个标志指定了下载后资源的本地目录。在这里,你将下载的模型资源保存到了本地目录"D:HuggingFacehubblip2-opt-2.7b"中。

镜像站 https://hf-mirror.com。

设置方法

Windows Powershell

 

Linux

 

Python

 

注意得在import huggingface库相关语句之前执行。

直接在代码中应用模型的本地路径即可,这里需要注意的是,下载模型的时候,要把huggingface上的所有文件全部下载下来。

参考代码如下

 

这里我使用了Gradio做前端展示

如上。

但是每次启动脚本的时候,都会出现一个问题,就是加载模型需要很久很久很久……

使用 Transformers 加载大型模型确实可能需要一些时间,尤其是在首次启动时。这是因为模型通常很大,需要从远程服务器下载到本地,之后还要在本地进行初始化。为了优化这一过程,你可以考虑以下几个策略

  1. 使用持久化存储:在首次下载模型后,可以将其保存在本地硬盘上。这样,在之后的使用中就可以直接从本地加载模型,而无需再次从远程服务器下载。
  2. 使用 Flask 或 FastAPI:这两种框架都可以用来创建一个服务,该服务在启动时加载模型,并在之后的请求中重用已加载的模型。这意味着模型只需在服务启动时加载一次。
    • Flask:Flask 是一个轻量级的 Web 应用框架。它简单易用,适合小到中型项目,以及在单个或少数几个服务器上运行的应用程序。
    • FastAPI:FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。它基于标准 Python 类型提示,支持异步编程,通常适合需要高性能和并发处理的场景。

选择 Flask 还是 FastAPI 取决于你的具体需求。如果你需要快速、简单地搭建一个 API,且不需要处理大量并发请求,Flask 可能是更好的选择。如果你的应用需要处理大量并发请求,或者你希望利用 Python 的异步特性,那么 FastAPI 可能更合适。

我会提供一个简单的例子,展示如何使用 Flask 或 FastAPI 来部署一个模型服务。这个服务将在启动时加载模型,并在之后的请求中重用已加载的模型。

使用 Flask

先来看一个 Flask 的例子。假设我们正在部署一个 Transformer 模型(例如 BERT)来执行某种任务(比如文本分类)。

 

这个 Flask 应用在启动时会加载模型和分词器。当接收到 POST 请求 ,它会对提供的文本进行预测,并返回预测的类别。

使用 FastAPI

下面是一个使用 FastAPI 的例子。FastAPI 通常提供更快的性能和自动生成的 API 文档。

 

这个 FastAPI 应用与 Flask 示例类似,它在启动时加载模型和分词器,并在接收到 POST 请求 时处理预测。

注释

在这两个例子中,都使用了 库来加载预训练的 BERT 模型及其分词器。这些模型在应用启动时加载,并在处理请求时重复使用。请求中的文本数据经过分词器处理后输入到模型中,模型的输出用于生成预测响应。

请注意,这些示例代码假设你已经安装了所需的依赖项(如 , , ,并且你的环境能够运行这些模型。此外,这些示例仅作为基本演示,可能需要根据你的具体应用场景进行调整和优化。

接下来,我将解释如何从客户端调用刚刚创建的 Flask 或 FastAPI 服务来获取模型预测。这通常涉及向服务发送一个包含所需数据的 HTTP 请求,并接收返回的响应。

调用 Flask 服务

假设 Flask 服务正在本地运行,并且监听的端口是默认的 5000 端口。你可以使用 Python 的 库来调用该服务。下面是一个例子

 

在这个例子中,我们首先导入 ,然后指定 Flask 服务的 URL。接着,我们创建一个字典 ,包含我们想要模型进行预测的文本。之后,我们使用 方法向 Flask 服务发送 POST 请求,并将 作为 JSON 数据发送。最后,我们打印出从服务接收到的响应。

调用 FastAPI 服务

假设 FastAPI 服务正在本地运行,并且监听的端口是 8000 端口。调用方法与 Flask 类似

 

这个例子与 Flask 的例子非常相似。主要区别在于服务的 URL 可能不同,因为它们运行在不同的端口上。

注意事项

  • 确保 Flask 或 FastAPI 服务正在运行,否则你的请求将失败。
  • 如果服务部署在不同的主机或端口上,请相应地更改 URL。
  • 这些示例代码假设你已经安装了 库。如果没有安装,可以通过运行 来安装它。
  • 这些调用示例仅用于演示基本的服务调用,可能需要根据实际情况进行调整和扩展。
本文地址:http://ww.kub2b.com/tnews/1684.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号