AIHub: 模型和数据集的私有云存储库

AIStor 的最新功能之一是广受欢迎的开源项目 Hugging Face 的私有云版本。这篇文章详细介绍了 AIStor 的 AIHub 如何有效地创建一个完全由企业控制的 API 兼容的私有云版本的 Hugging Face。在我们开始之前,介绍 Hugging Face 是有意义的。Hugging Face 是面向 AI 工程师的领先开放平台。它的使命是使机器学习大众化,并成功创建了一个用于共享模型和数据集的云平台。许多在模型研发方面处于领先地位的大型科技公司 - 特别是在大型语言模型 (LLMs - 都为 Hugging Face 做出了贡献。这是一件大事,因为 LLMs 的训练时间和金钱成本很高。当共享像 LLMs,没有资源从头开始构建 LLMs可以使用 AI 向前发展,如果没有 Hugging Face 提供的共享,这是不可能的。此外,对真正的开放 AI 感兴趣的技术领导者也将开源用于训练他们开源模型的数据。模型的好坏取决于用于训练它们的数据。允许共享训练数据意味着社区可以审查它是否存在潜在的偏差和其他缺点。如果发现问题,则可以找到新数据来纠正问题,还可以共享新数据。Hugging Face 还提供用于共享数据集的产品。Hugging Face 进一步发展 AI 的努力并不止于模型和数据共享。他们还创建了用于减少操作模型和数据所需的代码量的库。您可以将这些库视为封装模型和数据复杂性的抽象层。这些库已被社区直接大量使用。以下是更流行的 Hugging Libraries 的列表和简短描述。

Transformers - Transformers 提供 API 和工具来下载和训练最先进的预训练模型。预先训练的模型可以降低您的计算成本和碳足迹,并节省从头开始训练模型所需的时间和资源。

数据集 - 数据集是一个库,用于轻松访问和共享表格、音频、计算机视觉和自然语言处理 (NLP) 任务的数据集。

扩散器 - 扩散器库是由 Hugging Face 开发的一个 Python 库,用于处理扩散模型,扩散模型是一种可以创建高质量图像、音频和其他数据的生成模型。

Sentence Transformers - 是用于访问、使用和训练最先进的文本和图像嵌入模型的首选 Python 模块。它可用于使用 Sentence Transformer 模型计算嵌入,或使用 Cross-Encoder 模型计算相似性分数。

使用 Hugging Face 库构建的生态系统

特别有趣的是,其他 AI 工具也依赖于 Hugging Face 的库,并使用它们来提供其功能。例如,许多推理服务器使用 Hugging Face 作为查找和部署模型的中心。以下是使用 Hugging Face API 的常见推理服务器、编排库和微调库的简短列表。

vLLM - vLLM 推理服务器是适用于大型语言模型 (LLMs。它优化了内存使用和并行化,以实现快速响应时间和高吞吐量。它旨在支持基于 Transformer 的模型,包括 Hugging Face 模型。vLLM - vLLM 推理服务器是适用于大型语言模型 (LLMs。它优化了内存使用和并行化,以实现快速响应时间和高吞吐量。它旨在支持基于 Transformer 的模型,包括 Hugging Face 模型。

Nvidia Triton 推理服务器 - NVIDIA Triton 推理服务器是 NVIDIA AI 平台的一部分,可与 NVIDIA AI Enterprise 一起使用,是一款开源软件,可标准化每个工作负载中的 AI 模型部署和执行。

Ollama - Ollama 是一个轻量级的可扩展框架,用于在本地计算机上构建和运行语言模型。它支持 macOS、Linux 和 Windows。

LangChain - LangChain 是一个框架,用于构建由 LLMs。它旨在帮助开发人员编排工作流,包括数据摄取、数据检索、提示创建和推理等任务。

隐私和控制问题

在理想情况下,所有通过微调改进的模型也将与用于改进它们的数据一起共享。不幸的是,情况并非总是如此。对于某些组织,隐私和控制优先于共享。对于在受到严格监管的行业中运营的组织以及负责个人身份信息 (PII) 的组织来说尤其如此。对于希望使用公共 AIHub 作为起点,但在数据集增加敏感信息并且模型已根据这些新数据进行微调后需要隐私和控制的组织,以下是典型的工作流程。

许多希望使用 Hugging Face 模型和数据集作为其 AI 计划的起点的组织可能已经使用蛮力实施了上述逻辑。这通常是使用网络共享作为伪集线器来完成的。遗憾的是,使用网络共享作为中心不是一个可缩放或高性能的解决方案。此外,Hugging Face API 不包含在下载之前在本地中心内查找所请求模型(或数据集)版本的逻辑。这需要手动覆盖所有下载功能,这很容易出错。暴力破解方法的最后一个问题是,默认情况下,Hugging Face API 中的所有上传函数和方法都配置为将模型和数据集发送回 Hugging Face。很容易意外地将私有数据或使用私有数据训练的模型发送回公共 Hugging Face Hub。需要的是一种简单的方法,使用配置来循环使用上面显示的逻辑,同时允许开发人员使用 Hugging Face API - 或构建在 Hugging Face API 之上的任何其他库。

AIHub 简介

AIHub 以 Hugging Face API 为目标,并实现了与这些 API 完全兼容的代理服务器。无需更改代码,应用程序开发人员可以使用现有的 Hugging Face 库从 Hugging Face 下载现有模型并将其保存到 MinIO 存储桶中。对同一模型的后续请求将导致 Hugging Face 库从 MinIO 中提取模型。如果模型被增强或微调,新版本将被推送到 MinIO 并与原始版本一起保存。数据集的工作方式相同。最重要的是,工程师可以使用 AIHub 通过熟悉的工具在本地保存模型和数据。

让我们检查一下 Python 客户端、Hugging Face Hub 和 AIHub 之间的关系,如下图所示,以更好地了解 AIHub 的工作原理。请注意,AIHub 包括 AIHub 服务器和 AIStor 存储桶,两者均如图所示。

AIHub 服务器是一个代理服务器,可以拦截来自 Hugging Face API 的所有请求。它还包含上一节中所示的工作流中显示的逻辑。也就是说,如果 AIStor 存储桶中已经存在模型或数据集,那么这就是将从 Hugging Face 下载 API 返回的模型。如果 AIStor 存储桶中不存在,则将从 Hugging Face 下载它并自动保存在存储桶中。AIStor 存储桶是 MinIO 中的一个存储桶,它是一个可扩展且高性能的对象存储。最后,AIHub 服务器将所有保存和推送请求发送到 AIStor 存储桶。模型和数据集永远不会发送回 Hugging Face。

设置和使用 AIHub

由于 AIHub 服务器需要连接到 AIStor 实例中的存储桶,因此其配置需要所有必要的信息才能连接到 AIStor 并找到所需的存储桶。下面是 AIStor UI,显示了 AIHub 服务器连接到 AIstor 并找到将充当本地集线器的存储桶所需的六个环境变量。

多个 AIHub 可以托管在单个 AIStor 租户中。管理员可以使用 AIStor 控制台用户界面对其进行配置。AIHub 实例也可以使用 YAML 以声明方式指定,然后通过 AIStor 控制台上传到 AIStor 租户。想要使用 AIHub 的 ML 工程师只需在工作流程开始时设置一个环境变量。下面是一个代码片段,其中显示了必须设置的环境变量。这就是使用 AIHub 所需要做的全部工作。如果 ML 工程师使用 Jupyter Notebook,则应将此变量设置为 Jupyter Notebook 环境设置的一部分。

import os
os.environ['HF_ENDPOINT'] = 'https://ai-hub.aistor.company.com'

结论

处于 AI 早期阶段的组织可以转到 Hugging Face 并找到模型来引导他们的计划。Hugging Face 使组织能够轻松地使用开放模型和数据集构建 AI。但是,Hugging Face 上的所有内容都是开放的,许多组织需要将最初从 Hugging Face 下载的模型保存到本地安全中心。他们还需要使用私有且完全由他们控制的数据来微调这些模型。AIHub 是旨在应对这些挑战的统包式解决方案。使用 AIHub,客户可以将其模型和数据集安全地存储在 AIStor 租户中,完全由他们控制。这一切都发生在让工程师使用 Hugging Face 的模型或数据集的初始版本开始他们的 ML 管道时。此外,不需要新的库。现有的 Hugging Face 库和依赖于 Hugging Face 的任何其他库将按原样工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/916142.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

激增400%!GPS欺骗成全球大患,此题何解?

据网络安全研究人员称,GPS欺骗这种可使商用客机偏离航线的数字攻击形式近期激增400%。数据显示,在今年部分时间里,甚至有多达1350架航班遭遇GPS“欺骗”。 GPS欺骗 — 关键是时间,而不仅仅是位置 GPS系统作为目前使用时间最长、应…

二维费用背包问题

1. 一和零 474. 一和零 题目中是在一个字符串数组中找出一个最大子集,满足 0 和 1 的个数不超过给定的值,这和之前的背包问题不一样的是,这里有两个限制条件,也就是二维费用背包问题,同时,这道题也是一道 …

React Query在现代前端开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 引言 React Query …

【EmbeddedGUI】脏矩阵设计说明

脏矩阵设计说明 背景介绍 一般情况下,当屏幕内容绘制完毕后,实际应用通常需要更新屏幕中的一部分内容,而不是单纯显示一个静态图片在那。 如下图所示,屏幕中有一个图片控件(Img2)和一个文本控件&#xf…

【stable diffusion模型】Stability AI出官方教程了,带你轻松玩转Stable Diffusion 3.5

前言 提示(prompt)是有效使用生成式 AI 图像模型的关键技巧。提示的结构直接影响生成的图像的质量、创造力和准确性。 今日凌晨,Stability AI 发布了 Stable Diffusion 3.5 的提示指南。该指南提供了 Stable Diffusion 3.5 的实用提示技巧&a…

docker安装到D盘

双击安装docker默认是安装在c盘,并且安装时我们没法选择位置,如果我们要安装在其他盘可以通过命令行安装 1、下载docker https://docs.docker.com/desktop/setup/install/windows-install/ Docker Desktop 可以使用 WSL 和 Hyper-V任意一种架构&#xf…

11.11机器学习_介绍和定义

一、 机器学习介绍与定义 1. 机器学习定义 机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。 机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep…

ssm111基于MVC的舞蹈网站的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,舞蹈网站当然也不能排除在外。舞蹈网站是以实际运用为开发背景,运用软件工程开发方法,采用Java技…

蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵!!! 关注博主,更多蓝桥杯nice题目静待更新:) 搜索与查找 一、九宫格 【问题描述】 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三 …

【Windows 常用工具系列 20 -- MobaXterm 登录 WSL】

文章目录 MobaXterm 登录 WSL MobaXterm 登录 WSL 在 WSL 启动之后,打开 MobaXterm: 在 Distribution 中选择自己本地安装的 ubuntu 版本,我这里使用的是ubuntu-20.4,然后在 runmethod 中选择 Localhost connection. 连接成功之…

ReactPress 安装指南:从 MySQL 安装到项目启动

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 ReactPress 是一个基于 React 的开源发布平台,适用于搭建博客、网站或内容管理系统(CMS)。本文将详细介绍如何安装 ReactPress,包括…

STM32 使用 STM32CubeMX HAL库实现低功耗模式

STM32 使用 HAL 库的低功耗模式测试使用 ...... 矜辰所致前言 上次画了一个 STM32L010F4 最小系统的板子,也做了一些基本测试,但是最重要的低功耗一直拖到现在,以前在使用 STM32L151 的时候用标准库做过低功耗的项目,现在都使…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理设备接入:海康NVR 3.0提示不在线如何处理?

在视频监控领域,设备的兼容性和互操作性一直是用户关注的重点。海康NVR管理平台EasyNVR作为一款轻量级的视频监控平台,凭借其强大的兼容性、可扩展性和丰富的功能,成为了公共安全领域“云平台”解决方案的杰出代表。然而,在实际应…

【C语言】Union

一.Union的用法 1.什么是Union? union 共用体名{ 成员列表 }; union,“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。 2.为什么使用union&#xff1…

2023_Spark_实验十五:SparkSQL进阶操作

实验目标 通过实践掌握Spark SQL中复杂查询(包括子查询、窗口函数、联接等)的实现方式。了解如何通过合理的数据分区和缓存策略进行性能优化。实现一个基于Spark SQL的ETL数据处理流程,应用相关优化技巧。 实验背景 在本实验中&#xff0c…

PaoluGPT——窥视未知

上一题已经得到一个flag,还有一个flag 根据题目信息,说明还有一些聊天记录是没有公开的,另一个flag就在这些未公开的聊天记录中 下载题目附件看看,发现里面有个main.py: 可以看到有两条SQL查询语句,猜测应该…

初识C++ (三)

如果很迷茫的话,就学习吧 引用 一. 引用的概念 “引用(Reference)是 C 相对于C语言的又一个扩充。引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。 具体是什么意思呢? 我们这里来举个例子 比如:李逵&#xff0…

南京观海微电子----驱动电路中误导通及应对方法

驱动电路中的误导通 功率器件如 MOSFET、IGBT 可以看作是一个受门极电压控制的开关。当门极电压大于开通阈值时,功率器件就会 被开通,而当门极电压低于开通阈值时就会被关断。但是在实际的应用中,由于器件及外围线路寄生参数的影响&#xff0…

C++ —— 哈希详解 - 开散列与闭散列

目录 1. 哈希的概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因子 1.4 哈希函数 1.4.1 除法散列法/除留余数法 1.4.2 乘法散列法 1.4.3 全域散列法 1.5 处理哈希冲突 1.5.1 开放定址法(闭散列) 1. 线性探测(挨着查找) 2.…

NVR批量管理软件EasyNVR大华NVR管理平台如何在Linux环境下部署?

随着视频监控技术的不断进步,NVR(网络视频录像机)批量管理软件在维护公共安全、提升管理效能方面发挥着越来越重要的作用。EasyNVR作为一款功能强大的NVR批量管理软件,凭借其高效的视频处理能力、灵活的设备接入能力和智能分析功能…