[toc]
简介
paka 是一种多功能的 LLMOps 工具,只需一个命令即可简化大型语言模型 (LLM) 应用的部署和管理。
一、核心优势
- 与云无关的资源预置:Paka 首先打破了云供应商锁定的障碍,目前支持 EKS,并计划扩展到更多云服务。
- 优化模型执行:paka 专为提高效率而设计,可在 CPU 和 Nvidia GPU 上运行 LLM 模型,确保最佳性能。根据 CPU 使用率、请求速率和延迟自动扩展模型副本。
- 可扩展的批处理作业管理:paka 擅长管理动态横向扩展和横向扩展的批处理作业,无需人工干预即可满足不同的工作负载需求。
- 无缝应用程序部署:paka 支持将 Langchain 和 LlamaIndex 应用程序作为函数运行,提供零和备份的可扩展性,以及滚动更新以确保不会停机。
- 全面的监控和跟踪:嵌入了对通过 Prometheus 和 Grafana 收集指标的内置支持,以及通过 Zipkin 进行跟踪。
1.运行时推理 : 当前的运行时推理是通过出色的 llama.cpp 和 llama-cpp-python 项目完成的。vLLM 支持即将推出。每个模型都在单独的模型组中运行。每个模型组都可以有自己的节点类型、副本和自动缩放策略。
2.无服务化容器 : 使用 knative 将应用程序部署为无服务器容器。但是,用户也可以将其应用程序部署到原生云产品,例如 Lambda、Cloud Run 等。
3.并行执行:可以为 celery 作业配置可选的 redis 代理。作业工作人员会根据队列长度自动缩放。
4.向量数据库:向量存储是用于存储嵌入的键值存储。Paka 支持配置 qdrant。
5.监控:Paka 内置了对监控和跟踪的支持。指标是通过 Prometheus 和 Grafana 收集的,跟踪是通过 Zipkin 完成的。用户还可以启用 Prometheus Alertmanager 进行警报。
6.持续化部署:Paka 支持通过滚动更新进行持续部署,以确保不会停机。应用程序可以构建,推送到容器注册表,并使用单个命令进行部署。
7.构建:应用程序、作业代码是使用 buildpack 构建的。无需编写 Dockerfile。但是,用户仍然需要安装 docker 运行时。
二、部署使用
1.安装paka
pip install paka
2.构建集群配置文件
aws:
cluster:
name: example
region: us-west-2
nodeType: t2.medium
minNodes: 2
maxNodes: 4
modelGroups:
- nodeType: c7a.xlarge
minInstances: 1
maxInstances: 3
name: llama2-7b
resourceRequest:
cpu: 3600m
memory: 6Gi
autoScaleTriggers:
- type: cpu
metadata:
type: Utilization
value: "50"
3.构建集群
paka cluster up -f cluster.yaml -u
4.部署应用
创建Profile文件和.cnignore文件,在 Procfile 中,添加用于启动应用程序的命令。例如,对于 flask 应用程序,它将是 web: gunicorn app:app。 在 .cnignore 中,添加要在生成过程中忽略的文件。
若要固定语言运行时的版本,请添加带有版本号的runtime.txt文件。例如,对于 python,它可以是 python-3.11.*。
对于 python 应用程序,需要 requirements.txt 文件。
要部署应用程序,请运行 'paka function deploy --name --source --entrypoint 。例如:
paka function deploy --name langchain-server --source . --entrypoint serve
5.销毁集群
paka cluster down -f cluster.yaml
小节
本节我们介绍了paka以及paka的使用,Paka 使用单命令方法简化了大型语言模型 (LLM) 应用程序的部署和管理,为大语言模型的开发和部署,管理提供了更好的管理方式,本节只对paka作了简单介绍,后面我们会逐步深入学习。
小编是一名热爱人工智能的专栏作者,致力于分享人工智能领域的最新知识、技术和趋势。这里,你将能够了解到人工智能的最新应用和创新,探讨人工智能对未来社会的影响,以及探索人工智能背后的科学原理和技术实现。欢迎大家点赞,评论,收藏,让我们一起探索人工智能的奥秘,共同见证科技的进步!