HuggingFists:低代码玩转Hugging Face

    近年,由LLM引领的这波人工智能浪潮吸引了无数人的目光。众多专家预见,人工智能将引起一次新的科技革命。这次革命将影响到人类社会的各个层面。如今我们看到除去LLM已经有了广泛应用外,还有很多诸如图片生成,语音生成、音乐生成等应用也在逐渐成熟并改变着我们的生产、生活方式。对于学生、工程师、研究员等人工智能从业者而言,更吸引他们的是,人工智能应用背后的模型、技术以及原理。这就不得不提到人工智能界鼎鼎大名的”Hugging Face”网站了。

    Hugging Face如今已成为AI界的GitHub。全球数以万计的AI从业者通过Hugging Face向大家展示自己的研究成果,分享自己的模型及相关数据集。迄今已拥有超过45万涵盖NLP、计算机视觉、音频、多模态相关的模型,且每天仍以惊人的速度在增长。对任何人而言,Hugging Face都无疑是一个巨大的模型宝库,但从中选取到合用的模型却也需要付出巨大的时间成本。使用者需要实际调用模型,查看输出信息来判断模型是否达到预期要求。但如此数量的模型测试下来,成本可想而知。因此,如何更便捷的测试和选择模型,成为了摆到从业者面前的问题。

HuggingFists简介

     HuggingFists正是在这样的需求背景下产生的。从HuggingFists的名字也不难看出,其与HuggingFace一定存在某种渊源。事实是,开发团队为了表达对HuggingFace公司在人工智能领域为所有从业者做出的贡献,故将其命名为”HuggingFists”,并为其设计了如下的图标,以一种中国人的礼仪文化对其表达了诚挚谢意。

    HuggingFists支持通过低代码的方式使用Hugging Face网站提供的各类模型,方便从业者更便捷的了解模型的能力,从而决策是否进行深入研究和应用。伴随着人工智能应用的发展,HuggingFists也逐渐定位清晰,其是一款侧重于模型应用的低代码数据科学平台,致力于成为LangChain的低代码平替工具(加持对HuggingFace各类模型的应用能力,应该说超越了LangChain),以期能进一步节省包括LLM在内各类模型的应用成本。其通过面向算子的可视化交互,完成数据流程的定义、调试及运行。从而有效降低数据处理及模型应用的成本。效果如下图:

HuggingFists:低代码玩转Hugging Face_第1张图片

    其支持以更低的成本使用模型。用户仅需拖拽模型任务算子到流程定义面板,为算子设置合适的模型及相关参数就可使用。HuggingFists还内置了丰富的数据接入、解析、处理等算子,方便用户搭建出复杂的数据处理及模型应用场景。低代码可视化的交互方式,大大降低了对用户编程能力的要求,从而使业务型用户有机会更早的介入模型的应用。

    Hugging Face为模型提供了多种访问方式。用户可通过Inference API远程使用模型,也可将模型下载到本地,使用Hugging Face的Python接口调用。为了适应用户不同场景的应用需求。HuggingFists对各类模型按任务类型进行了远程及本地调用的支持。支持的模型任务列表如下:

任务类型

任务名称

云端

本地

自然语言处理

Text Classification

Token Classification

Zero-Shot Classification

Translation

Summarization

Conversational

Text Generation

Fill-Mask

Sentence Similarity

Image Classification

Object Detection

Image Segmentation

Image-to-Image

Video Classification

Zero-Shot Image Classification

音频识别

Text-to-Speech

Automatic Speech Recognition

Audio Classification

多模态

Feature Extraction

Text-to-Image

Image-to-Text

   

HuggingFists安装

环境要求

    >= Linux 3.1, 64位X86架构 或者 >= Windows 11

    >= 4核8G

安装步骤
Linux
  1. 从https://github.com/Datayoo/HuggingFists下载安装包。国内朋友访问GitHub可能比较慢,可以移步到夸克夸克网盘分享 下载。
  2. 下载结束,进入sengee.community.linux目录,执行安装脚本 bash install.sh。系统使用了Containerd容器。安装后,容器及镜像会固定存放到/data目录下。
  3. 脚本执行结束后,可通过curl http://localhost:38172 测试系统是否正确安装。若页面无法访问,可重启服务器再试。成功安装后,会看到如下界面
Windows

1.通过夸克网盘夸克网盘分享 下载Windows版安装包

2.按照安装向导安装Windows版软件

3.安装结束后,点击快捷方式启动HuggingFists。启动需要几分钟,启动完成后,自动弹出浏览器窗口。

HuggingFists:低代码玩转Hugging Face_第2张图片

好了,可以开启HuggingFists体验之旅了。

HuggingFists应用示例

示例视频:

玩转数据之低代码玩转HuggingFace1_哔哩哔哩_bilibili

玩转数据之低代码玩转HuggingFace2_哔哩哔哩_bilibili 

如何低代码访问云端的Hugging Face模型

    HuggingFists系统没有提供内置的Hugging Face账号,所以用户需要先去申请一个Hugging Face账号。用户可通过链接https://Hugging Face.co/join注册账号。注册成功后,通过界面右上角的个人信息->Settings->Access Tokens申请一个专属的访问令牌。

    其次,在HuggingFists右上角的个人信息->个人设置->资源账号中添加一个Hugging Face访问账号。进入资源账号界面后,选择添加资源账号,弹出如下的界面:

HuggingFists:低代码玩转Hugging Face_第3张图片

    选中Hugging Face类型,并将申请到的访问令牌填充进“访问token”输入框,填充完成后提交,创建成功。

    有时候,我们可能处于一个内网环境,无法直接访问到Hugging Face网站,那么我们可以配置一个Http代理,以方便我们跨过局域网的限制。在HuggingFists系统中,进入“环境管理”->"服务配置"模块。点击“新建服务配置”,弹出如下界面:

HuggingFists:低代码玩转Hugging Face_第4张图片

    选中“网络Http代理服务”类型,填充代理相关信息,提交保存代理配置。

    准备工作已经就绪,我们可以尝试使用Hugging Face算子来访问模型实现业务需求了。点击左侧“流程”菜单,进入流程管理界面,创建流程,构建一个使用自然语言相关模型的例子。如下图:

HuggingFists:低代码玩转Hugging Face_第5张图片

    通过交互式操作,我们构建了上图所示的流程。其含义为读取一个互联网新闻,抽取新闻中的文本内容,然后对其进行文本摘要、文本情感分类以及命名实体识别三种作业任务。图中红色框选部分为流程定义过程中可以使用的算子树;蓝色部分为流程的定义面板;绿色部分为算子的属性配置及帮助区。如图所示,选中一个Hugging Face的摘要提取算子后,右侧绿色框中显示了它的可配置属性和文档说明。属性部分的前两个框输入之前已经提前准备好的Http代理和Hugging Face账号。后面的参数框可根据算子帮助辅助完成设置。

    需要特别强调的是算子的模型名称参数。该参数内填充我们需要使用模型的名字。Hugging Face为模型提供了缺省的Inference API接口。当我们需要使用该接口时,只需以“账号名/模型名”的格式填入所需的模型,就可以访问云端模型了。Hugging Face对缺省API接口的调度频率和运行效率都有限制。因此,用户若想获得更快的访问速度,可以利用Hugging Face的Inference Endpoints技术,部署一个专有模型,然后将专有模型的完整url填充到模型名称参数位置,算子就可以访问这个专有模型了。

    以此方式拖拽和定义完流程,就可以点击蓝色区域上侧的按钮调试或执行流程了。

如何低代码使用本地的Hugging Face模型

    HuggingFists为使用Hugging Face的本地模型也准备了一套算子。这套算子与云端模型访问算子的区别为,其算子名含有”本地化”或”Pte”的字样。相较访问Hugging Face云端的模型,本地化部署模型需要的准备时间稍长,但是成本和安全性上更可控。下面我们简单介绍下,如何使用HuggingFists访问本地部署的Hugging Face模型。

    首先,我们选择一个希望本地部署的模型,然后选中模型的"Files and versions"页,如下图:

HuggingFists:低代码玩转Hugging Face_第6张图片

从图中我们可以看到模型相关的文件有很多,一般而言除了说明类文档,都是模型装载运行所需要的。所以,我们需要提前把所有相关的文件都下载本地,并将这些文件都存放在同一个文件夹下。由于Hugging Face没有提供文件的打包下载功能,所以目前只能手动,一个一个的下载(这是模型本地化部署最麻烦的地方)。

    模型下载完成后,使用模型创建数据处理流程。流程的创建及搭建方式与使用云端模型无异。唯一需要注意的内容如下图:

HuggingFists:低代码玩转Hugging Face_第7张图片

    图中可以看到在使用本地化部署的模型时,不再需要Http代理以及Hugging Face账号,取而代之的是选择一个本地的文件夹路径。文件夹内即为我们下载的模型。一般情况下,算子调用时不会再拉取其它文件,但笔者团队实验时发现,确实存在还要在运行时下载部分模型文件的情况。这种情况下,算子的启动速度就会被拖慢。另外还有两个属性Python脚本片段和计算设备值得注意。由于Hugging Face网站上的模型太多,有些模型在调用时会有细微差别,若存在无法正常启动模型的情况,可适当调整Python脚本片段确保模型可被正常加载执行。计算设备属性用于指定模型运行在本地计算机的哪个计算单元上,支持CPU和GPU两种计算单元。可以根据本地机器的情况设定该参数。算子的其它相关属性可参见算子说明进行配置。配置完成就可以驱动流程在本地使用模型了。

结语

    HuggingFists是全球目前唯一一款能够采用低代码方式使用Hugging Face模型,且能够将这些能力与LLM整合的工具。其尚处于早期开发阶段。例如,社区支持和帮助手册的完善度还有待提高。对HuggingFists感兴趣的人可以通过其GitHub主页上的教学视频及相关技术文章来学习其使用方法。

    我们坚信,随着HuggingFists的不断发展和完善,它将成为一个更加强大和易用的工具。HuggingFists所倡导的低代码使用模型理念有望在未来为广泛的模型应用和工程实践提供更加快速、经济和方便的技术支持。它不仅将简化数据科学家和工程师的工作流程,而且还将使非技术人员更容易接触和应用最前沿的AI技术。最终,HuggingFists有潜力成为连接技术专家与业务用户的桥梁,推动AI技术的广泛应用和创新。

你可能感兴趣的:(HuggingFists,低代码,HuggingFists,人工智能,HuggingFace,语言模型)