标签:大模型,AI,显存优化,技术分享 时间:2023-12-03T17:15:31
在AI领域,大型模型如GPT-3等因其强大的性能和广泛的应用前景而备受关注。然而,部署这些模型往往需要庞大的计算资源,特别是显存。本文将详细介绍如何在仅有24GB显存的显卡上部署一个具有340亿参数的大型模型,这一过程涉及到环境搭建、模型下载、显存优化、模型量化等多个步骤。
首先,需要安装Python和CUDA,这是运行大多数AI模型的基础。接着,下载并设置Python虚拟环境,安装所需的依赖包:
# 下载工具包 git clone https://github.com/turboderp/exui cd exui # 创建并激活Python虚拟环境 python -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt
确保安装了flash attention 2,这是一个优化显存使用的关键库。
flash attention 2
下载340亿参数的模型,确保是3-4bpw(bits per word)的Yi 200K模型量化版本,而不是基础的Yi base 32K模型。可以使用这个工具进行下载:HuggingFaceModelDownloader。
Yi 200K
Yi base 32K
在exui中载入模型时,使用8-bit缓存以减少显存占用。
实验不同的上下文大小。例如,在一个空闲的3090显卡上,可以适应47K的上下文大小在4bpw,以及75K在3.1bpw,但这取决于你的操作系统和剩余显存。如果设置过大,模型在加载时会立即oom(Out of Memory),需要重启UI。
对于Yi模型,使用低温度设置,因为Yi模型运行时会产生较高的温度。个人推荐运行时温度设为0.8,MinP设为0.05,并禁用其他采样器,但也可以使用Mirostat与低Tau。此外,将重复惩罚设置在1.05到1.2左右。
在处理初始提示时,可能需要较长时间,但之后提示会被缓存,速度会变快。如果处理时间超过约20秒,可能需要在exui UI中切换标签页。
在如此低的bpw下,用于量化模型的数据非常重要。可以查找使用与你用例相似数据的量化版本。我个人在我的3090上使用“最大化”数据大小量化自己的模型,并上传了一些模型和高质量量化的命令:CapyTessBorosYi-34B-200K-DARE-Ties-exl2-4bpw-fiction。
此外,还可以查看这些不错的校准数据集:calibration datasets。
我会禁用我的3090上的显示输出,并使用从主板运行到同一个显示器的第二根电缆来节省显存。一个空闲的GPU是最好的GPU,因为节省的每一个兆字节都可以让你获得更多的上下文大小。
必须使用200K Yi模型。目前我运行的是我知道的3个主要微调合并:Airoboros, Tess和Nous-Capybara。
在16GB显卡上可能实现长上下文,大约在2.65bpw?如果有人想测试这个,可以联系我,我会自己量化一个模型。
为了在所有机器学习任务中获得性能和便利,我运行CachyOS linux。它是一个性能优化的Arch衍生版,但仍与Arch基础包兼容。我特别喜欢他们为AVX512和AVX2构建的Python版本,以及其他许多优秀的特性:CachyOS。
我倾向于运行PyTorch Nightly,并自己构建flash attention 2。设置MAX_JOBS为3,因为flash attention构建会使用大量RAM。
我使用’—symlinks —use-system-site-packages’标志来设置Python虚拟环境,以节省磁盘空间,并尽可能使用CachyOS的本地构建的python C包。
通过以上步骤,即使是在仅有24GB显存的显卡上,也能成功部署和运行具有340亿参数的大型模型。这需要对模型进行细致的量化和显存优化,同时也需要考虑操作系统和硬件配置的影响。希望这篇文章能帮助对大模型部署感兴趣的技术人员和研究者。
导致Sam离职风波背后的OpenAI最近的技术突破——Q*项目信息汇总
DataLearnerAI发布中国国产开源大模型生态概览统计:国产开源大模型都有哪些?现状如何?
大模型泛化能力详解:大模型泛化能力分类、泛化能力来源和泛化研究的方向
大模型如何使用长上下文信息?斯坦福大学最新论文证明,你需要将重要的信息放在输入的开始或者结尾处!
需要多少GPU显存才能运行预训练大语言模型?大语言模型参数规模与显存大小的关系估算方法~
又一个国产开源大模型发布:前腾讯创始人创业公司元象发布XVERSE-13B,超过Baichuan-13B,与ChatGLM2-12B齐平!但免费商用授权!
国产开源大模型再添重要玩家:BAAI发布开源可商用大模型Aquila
目前业界支持中文大语言模型开源和商用许可协议总结
百度文心一言发布,功能尝鲜概览
能否用85000美元从头开始训练一个打败ChatGPT的模型,并在浏览器中运行?
2022年必读的AI论文——100个AI领域被引最多的论文分析
2022年被引次数最多的AI论文列表
生成式AI平台的玩家都有哪些?
斯坦福2022年度AI指数报告简介及下载链接
亚马逊最新发布Feature Store简介
Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
回归模型中的交互项简介(Interactions in Regression)
贝塔分布(Beta Distribution)简介及其应用
矩母函数简介(Moment-generating function)
使用R语言进行K-means聚类并分析结果
普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
H5文件简介和使用
深度学习技巧之Early Stopping(早停法)
手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署
Wishart分布简介