KubeCon + CloudNativeCon 2023 大会部分LLM相关分享
大会感想
Kubnetes是现在的事实上的云上操作系统,LLM 如何在云上更好的和其他架构协同工作,是构建智能产品系统的核心和关键,是必须解决面对的问题.
现在的技术越来越复杂,需要各种合适的技术组合在一起才能更好的构建生产系统.
云原生技术和大型语言模型(LLM)的结合代表了如今构建智能产品系统的关键趋势。 将云原生的灵活性、可伸缩性和弹性与强大的LLM 大模型能力相结合,为构建复杂的智能应用提供了新的机会和挑战。
云原生技术Kubernetes是现在的事实上的云上操作系统,提供了高度自动化的容器编排和管理,使应用程序能够更轻松地在云中部署、伸缩和管理。这对于托管和运行大型语言模型尤其重要,因为它们通常需要大量的计算资源。Kubernetes的弹性和自动伸缩功能可以确保在需要时分配足够的资源,并在负载减轻时回收资源,从而节省成本。
嘉宾们分享的项目都在重点围绕降低多种大模型集成使用的门槛,降低其部署成本,让工程师能够专注在业务开发上。但是这一切的工作依然还是围绕和构建在云原生技术之上。
AI智能化数据化是未来的趋势,技术会围绕支持各种规模的企业和个体完成这种AI智能化数据化的迁移,所以云原生和大模型的结合会是技术发展的核心重点之一。
BentoML
Building the Bridge: BentoML
https://www.bentoml.com/
BentoML是一个开源平台,用于构建、部署和扩展人工智能应用程序。它提供了一系列工具和框架,用于简化AI应用程序的开发和部署过程。以下是BentoML的主要组成部分和功能:
🔨 构建
🍱 BentoML:统一的AI应用程序框架,用于构建和封装AI模型。
🦾 OpenLLM:用于在生产环境中运行大型语言模型(LLMs)的工具和库。
🖼️ OneDiffusion:用于轻松运行任何稳定扩散模型和微调权重的工具。
🤲 Transformer-NLP-Service:用于Transformer NLP模型的在线推理API服务。
👁 CLIP-API-service:用于视觉理解和推理任务的CLIP服务。
🚢 部署和扩展
☁️ BentoCloud:用于AI的无服务器云平台,用于部署和扩展AI应用程序。
🦄 Yatai:用于在Kubernetes上部署和扩展BentoML的可扩展部署工具。
🚀 bentoctl:用于快速将模型部署到任何云平台的工具。
BentoML旨在简化AI应用程序的构建、部署和管理,并提供了一系列工具和服务,使开发人员能够更轻松地将其AI模型转化为实际应用程序。
github 地址:https://github.com/bentoml
Deploying the Bridge: BentoML on Kubernetes
https://github.com/bentoml/Yatai
https://github.com/bentoml/Yatai-image-builder
https://github.com/bentoml/Yatai-deployment
打包bento镜像推送到镜像中心
Case Study: OpenLLM
https://github.com/bentoml/openllm
支持多种模型
Install OpenLLM
Install OpenLLM by using pip
as follows:
pip install openllm
openllm start llama --quantize gptq
openllm start llama --backend vllm
To verify the installation, run:
$ openllm -h
Usage: openllm [OPTIONS] COMMAND [ARGS]...
██████╗ ██████╗ ███████╗███╗ ██╗██╗ ██╗ ███╗ ███╗
██╔═══██╗██╔══██╗██╔════╝████╗ ██║██║ ██║ ████╗ ████║
██║ ██║██████╔╝█████╗ ██╔██╗ ██║██║ ██║ ██╔████╔██║
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║██║ ██║ ██║╚██╔╝██║
╚██████╔╝██║ ███████╗██║ ╚████║███████╗███████╗██║ ╚═╝ ██║
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚══════╝╚═╝ ╚═╝.
An open platform for operating large language models in production.
Fine-tune, serve, deploy, and monitor any LLMs with ease.
Options:
-v, --version Show the version and exit.
-h, --help Show this message and exit.
Commands:
build Package a given models into a Bento.
embed Get embeddings interactively, from a terminal.
import Setup LLM interactively.
instruct Instruct agents interactively for given tasks, from a...
models List all supported models.
prune Remove all saved models, (and optionally bentos) built with...
query Ask a LLM interactively, from a terminal.
start Start any LLM as a REST server.
start-grpc Start any LLM as a gRPC server.
Extensions:
build-base-container Base image builder for BentoLLM.
dive-bentos Dive into a BentoLLM.
get-containerfile Return Containerfile of any given Bento.
get-prompt Get the default prompt used by OpenLLM.
list-bentos List available bentos built by OpenLLM.
list-models This is equivalent to openllm models...
playground OpenLLM Playground.
Challenges of Productionizing LLMs
使用 bento 控制模型部署置云
用户请求处理依赖于 K8S 生态的处理
RoboPilot
机器人的整体发展–逐步走向 AI 智能化
机器人与 LLM 结合的机遇与挑战
打造边云协同的具身智能系统
- https://github.com/kubeedge/kubeedge
1.在用户交互的 ui 界面,输入 prompt 和云节点对话
2.云节点自身存储了专业知识领域的向量知识库,通过知识搜索,获取知识输入 LLM => 云上大模型理解后,拆分机器人要具体执行的动作,再将对应的动作指令生成 python code
3.具体能够驱动机器人的代码下发到边缘节点机器人的主板芯片上,机器人按照指令执行
4.机器人执行结果反馈到云上大模型
未来大展望
github 地址: https://github.com/kubeedge/community/tree/master/sig-robotics
边缘节点机器人的算力和存储都有限,所以将大模型扩展到云上,可以突破算力的限制,但是带来了延时问题
开源 AIGC 工作台— AIGC-Gateway
1.使用 nginx ingress 作为网关,实现用户鉴权和资源管理
2.通过请求拉起或关闭工作引擎
3.通过云分布式缓存文件系统,如 Fluid+JuiceFS 来实现将冷的对象云存储中的模型数据缓存到计算节点,加速计算操作
4.对象存储 存储数据或模型相关的数据
github 地址: https://github.com/CloudNativeGame/aigc-gateway
AIGC-Gateway概述
2023年,AIGC的潮流引爆了泛娱乐内容的生产力革命。文生图、文生音频、文生视频等AIGC范式成为了各大公司争相投入和落地生产的主要场景。目前AIGC领域主要分为两个大的场景,一个是面向终端客户的场景,例如:Midjourney或者Hugging Face;另外一个是面向内容生产者的场景,例如:Stable Diffusion。前者更多的是面向AIGC的服务化与商业化,而后者更多的面向企业内部数字资产生成与提效。大部分企业会通过第二种形态在企业内部落地AIGC的能力。
相比传统的互联网型业务而言,AIGC引擎的使用与运维具有如下特性:
-
运行时间碎片且弹性
通常 AIGC引擎的使用时间与内容生产者的使用周期是强相关的。因为目前为止,AIGC引擎生成内容的质量需要人进行评估与交互式的调整。这会导致从单个内容生产者的角度而言,使用的时间会非常碎片,而且使用的时间周期性区间会非常确定。一般情况下,只有在工作日的4-6个小时是AIGC引擎集中使用的时间,而有效的使用时长会更短暂,工作日的晚上与双休日正常情况下也是没有任何使用时长的。
-
数字资产隔离与安全
对于很多以内容生产为主体的行业与公司而言,AIGC引擎中的自训练模型是数字核心资产。不同的内容生产者之间是非主动不自动共享模型的。而且不同的内容生产者之间,生成的内容需要做到访问隔离、防止篡改、数据隔离。
-
多种资源类型与弹性
AIGC引擎对GPU的异构算力是强依赖。但是,GPU的种类丰富,不同类型的GPU在成本和效率上的差异非常大。以Stable Diffusion为例,A100 40G显存与A100 80G显存在生成图片的效率上相差1s左右,但是成本上会相差1倍以上。此外,很多早期就涉足AIGC的公司在本地机房中都会有比较多的消费卡(例如:NV3090)。在企业内部落地AIGC引擎的时候,需要考虑如何将这些资源利用起来,并统一管理和提效。
-
引擎种类与版本繁多
AIGC引擎的迭代速度非常快,不同版本之间会存在一定的不兼容。而作为数字资产生成的工具,通常为了保障模型的稳定运行,一旦投入生产,大部分时间不会轻易变更版本。而不同的内容生产者之间依赖的版本极有可能也会有所不同。所以,多个版本如何统一的管理和升级,也是企业内部落地AIGC的时候需要考虑的事情。