马斯克果真开源了296GB千亿级参数的Grok,你下载了吗?
在先容本地支配的根本知识之前,先看看演习一个大模型须要些什么吧,以Code Llama为例,Code Llama是一个由Meta开拓并公开拓布的大型措辞模型(LLMs)家族,专注于代码天生和理解。Code Llama供应了不同大小(7B、13B、34B、70B参数)和三种变体的模型:
不要试图演习大模型
Model
PART 01
1.水电花费:一个弘大的包袱
首先要考虑的是电力花费。根据Meta发布的碳足迹Carbon Footprint数据,演习所有9个Code Llama模型,在利用A100-80GB硬件和累计400,000 GPU小时的情形下,大约须要花费150,000千瓦时(kWh)的电力。这相称于一个普通家庭(每年3000度电)50年的电力花费。
还有冷却须要水资源,在假设均匀PUE为1.6的情形下,用于冷却和其他根本举动步伐的电力花费相称于总IT设备电力花费的0.6倍。因此,150,000千瓦时的电力花费将额外须要90,000千瓦时的能源用于冷却和根本举动步伐。按照每千瓦时花费100升水进行打算,这将须要花费900,000升水。
电费开销还不算阶梯电价,加上水处理用度,这是一个不现实的数字。
2.硬件投资:一个不小的寻衅
硬件投资是另一个不可忽略的问题。每台A100-80G显卡的价格假设为30万公民币,若须要仿照Meta的演习环境,至少须要100块显卡。这意味着仅显卡投资就高达3,000万公民币,更不用说其他伴随的硬件设备和掩护本钱,当然还没有打算你的数据、职员等各项其他投入。显然,这种投资规模对付许多企业来说也都是一个不小的寻衅。
3.韶光本钱:长达数月的等待
纵然你生猛,你土豪,你不顾统统地办理了电力和硬件的问题,韶光本钱同样是一个不容忽略的成分。假设你拥有100块A100-80G显卡,完成演习大约须要4,000小时,即近半年的韶光,在快速发展的AI领域,半年可能意味着从领先到掉队。即便你投入3亿买1000块显卡,一直机的情形下也须要半个多月,这还意味着在这段韶光内,你险些无法利用这些设备进行其他任何事情或研究。
4.软件技能:专业知识的壁垒
末了,不得不提的是软件和技能层面的寻衅。演习大型模型不仅须要昂贵的硬件,还须要繁芜的软件技能支持。这包括但不限于数据预处理、模型调优、以及后期的模型支配和优化等一系列高度专业化的知识和技能。对付没有深厚技能背景的个人来说,这险些是一道不可能超出的技能壁垒。
理解你手上的硬件
Hardware
PART 02
在本地支配还是要用可能实现的方案。先先容一下条记本或台式机的根本硬件知识。假设支配和运行最近很的盛行Ollama框架以及llama2-7b.gguf(5.2G)模型在一台运行Windows 11系统的机器上,对硬件有一定的最低哀求。在详细阐明硬件的事情机制和流程之前,让我们先列出所需的最低硬件配置:
最低硬件哀求
1. CPU:至少4核心8线程,推举利用Intel i5或AMD Ryzen 5以上的处理器。
2. GPU:至少4GB显存的NVIDIA GeForce GTX 1050 Ti或更高配置,推举利用NVIDIA GeForce RTX系列以得到更好的性能。
3. 内存(RAM):至少16GB,推举32GB以得到更流畅的操作体验。
4. 存储:至少有10GB的空闲存储空间,推举利用SSD以提高读写速率。
硬件的事情机制和流程
CPU(中心处理单元)
浸染:CPU是打算机的大脑,卖力处理大部分的打算任务,包括系统操作、程序运行的掌握和数据处理等。在AI模型的支配和运行中,CPU紧张卖力模型的加载、数据预处理、以及实行模型中不适宜并行打算的部分。影响:CPU的处理速率(即核心数和时钟频率)直接影响到模型运行的效率,特殊是在模型初始化和数据预处理阶段。指令解析与分发:CPU首先卖力解析运行Ollma框架和llama模型的指令,将这些指令分发给适当的硬件单元处理。这包括将数据加载任务分配给存储系统,将打算密集型任务分配给GPU。折衷与管理:CPU在全体模型运行过程中扮演着折衷者的角色,管理不同硬件资源的利用,确保数据在内存、存储和GPU之间高效流动。GPU(图形处理单元)
浸染:GPU专为并行处理设计,能同时处理成千上万的打算任务,非常适宜实行深度学习模型中的矩阵运算和浮点运算。利用GPU可以显著加快AI模型的演习和推理过程。影响:GPU的打算能力(例如CUDA核心数、时钟速率)和显存大小对付模型的演习和推理速率有决定性影响。对付大型模型,高性能的GPU可以大幅缩短处理韶光。并行处理:得益于GPU的并行处理能力,llama模型中的大量矩阵打算和浮点运算可以同时进行,极大加快了模型运行速率。高效实行深度学习运算:GPU专为实行繁芜的深度学习算法而优化,能够有效加速模型的演习和推理过程。内存(RAM)
浸染:内存是存储当前正在利用的数据和程序的临时空间。在AI模型的运行过程中,内存用于存储模型参数、中间打算结果、以及输入和输出数据。影响:内存的大小直接决定了可以同时加载和处理的数据量。足够的内存是确保模型顺畅运行的条件,尤其是在处理大型数据集或实行大型模型时。显存(GPU内存)
浸染:显存是GPU的内置存储器,用于存放GPU当前正在处理的数据,包括模型权重、激活函数、输入数据等。显存的带宽和速率对付GPU实行深度学习任务的效率至关主要。影响:显存的大小决定了GPU可以处理的模型大小和繁芜度。显存不敷可能导致模型无法加载或演习过程中涌现内存溢出错误。内存和显存协同事情事理
很多读者搞不清楚内存和显存事情时是如何协同的,这是一个繁芜的的问题,我试图用大略的方法说清楚。在Ollama框架下运行LLama2模型时,内存和显存共同承载着模型运行的主要任务,它们的协作机制对付模型的性能和效率至关主要。特殊是对付一个大型模型如LLama2(5.2GB的GGUF文件),其有效的加载和运行机制尤其主要。
内存(RAM)的角色
1. 模型加载:当LLama2模型开始运行时,CPU首先将模型从硬盘加载到RAM中。内存作为临时存储空间,能够供应快速的读写速率,确保模型加载过程的效率。
2. 数据预处理:在模型开始进行任何打算之前,所有输入数据(如文本、图片等)首先须要被CPU处理和预处理。这一步骤常日发生在RAM中,由于它须要频繁地访问和修正数据。
3. 批处理:大型模型如LLama2常日采取批处理(batch processing)的办法处理数据,这意味着同时处理多个数据样本以提高效率。内存会存储这些批处理的数据,准备好送往GPU进行打算。
显存(GPU内存)的角色
1. 模型参数存储:一旦模型和批处理数据被加载进内存,GPU接下来会将模型的参数(即权重和偏差)加载到显存中。显存供应了高速的数据访问,使得GPU能够快速读取模型参数进行打算。
2. 并行打算:GPU的强项在于并行处理能力,显存中存储的模型参数和输入数据将被用于成千上万的并行线程中。这些并行线程能够同时实行大量的矩阵运算,加速模型的前向传播和反向传播过程。
3. 缓存和优化:显存还承担着缓存的角色,存储常常访问的数据和中间打算结果,减少了数据传输的延迟。此外,一些GPU优化技能,如张量核心(tensor cores)和稠浊精度演习,也依赖显存来提高打算效率。
内存和显存在OLLAMA框架下协同事情,通过有效的数据管理和调度,最大化硬件资源的利用效率:
数据流动:内存首先吸收并处理输入数据,然后与显存共同协作,将处理好的数据和模型参数高效地传输给GPU进行打算。
动态管理:根据模型运行的须要,系统会动态地在内存和显存之间调度数据,确保打算资源的充分利用,同时避免资源摧残浪费蹂躏。
优化实行:通过风雅的内存和显存管理,OLLAMA框架可以优化模型的实行流程,比如减少数据传输次数,利用异步实行等技能来提升模型运行的效率和速率。
在这个过程中,高效的内存和显存管理对付大型模型的运行性能至关主要。它们不仅影响模型的运行速率和效率,也决定了模型能否充分利用硬件资源,展现出最佳的性能。
存储的角色
模型和数据的存储:固态硬盘(SSD)用于存储Ollma框架、llama模型文件及运行所需的数据。SSD的高速读写能力对付加快模型加载韶光和处理数据具有主要浸染。
数据持久化:在模型演习或推理过程中天生的数据须要持久化存储,以便于后续的剖析和利用。
在支配和运行如llama这样的大型AI模型时,CPU、GPU、内存和存储协同事情,确保模型可以高效运行。CPU处理指令解析、分发和折衷任务,GPU卖力实行并行打算加速模型运算,内存供应快速的数据读写空间,而存储则卖力模型和数据的长期保存。理解这些硬件的事情机制和相互之间的协作流程,对付优化模型的运行性能和处理速率具有主要意义。
用好开源模型
Opensource Model
PART 03
在AI的天下中,模型是核心。它们像大脑一样,卖力处理和天生信息。例如,基于“llama”架构的模型可能拥有高达70亿个参数,这让它能够处理非常繁芜的任务,如天生长篇文章或进行深度对话。然而,模型的大小直接影响其支配的便利性和运行的效率。因此,理解不同模型的架构、参数数量、高下文长度和嵌入向量长度等根本属性是非常必要的。
concept
模型干系名词
天生式AI大模型:利用人工智能技能,根据给定输入天生文本、图像等内容的繁芜模型。架构(arch):模型的根本构造设计,如“llama”或“nomic-bert”,决定了模型的事情办法和性能。参数(parameters):构成AI模型的变量,用于从输入数据中学习特色和模式。参数数量多寡直接影响模型的繁芜度和学习能力。高下文长度(context_length):模型能够处理的最大单词数或输入长度,影响模型理解和天生内容的能力。嵌入向量长度(embedding_length):将输入文本转换成的高维空间向量的维度,高维度有助于更好地表示和处理信息。量化(Quantization):减少模型参数位数的过程,以减小模型大小并提高运行效率,常见的如4-bit或8-bit量化。模型蒸馏(Model Distillation):一种模型压缩技能,通过演习一个小模型来仿照大模型的行为,旨在保持性能的同时减小模型大小。Embedding模型:一种用于将词汇、短语或其他类型的数据项转换为向量的高维表示的模型。这些向量捕捉到了数据项之间的关系,如语义相似性。嵌入维度(Embedding Dimension):嵌入向量的大小或长度,即模型将数据项映射到的向量空间的维度。更高的维度可以捕获更多的信息,但也增加了打算繁芜度。预演习嵌入(Pre-trained Embeddings):在大型语料库上预先演习好的嵌入向量,可用于初始化模型以加速学习过程和改进小数据集上的性能。量化(Quantization):一种减少模型大小的技能,通过减少模型权重的精度(例如,从32位浮点数到8位整数)来实现。量化有助于模型在边缘设备上的支配和运行,比如很多开源模型的GGUF格式便是量化过的。RAG(Retrieval-Augmented Generation):一种天生式AI模型的方法,它结合了信息检索和文本天生技能,通过先检索干系信息再天生内容来增强模型的输出。Transformer架构:一种常用于处理序列数据的深度学习模型架构,特殊是在自然措辞处理任务中。它的关键特性包括自把稳力机制和位置编码。自把稳力(Self-Attention):Transformer模型的一个组成部分,许可模型在处理序列的每个元素时考虑到序列中的所有其他元素,从而捕捉到繁芜的依赖关系。位置编码(Position Encoding):一种向模型输入中添加的信息,用于表示序列中各个元素的位置。这对付保持序列元素的顺序信息是必要的。多头把稳力(Multi-Head Attention):一种自把稳力机制的扩展,它将把稳力分成多个“头”,每个“头”关注输入的不同部分,然后将结果合并。这种方法可以增强模型的学习能力。Fine-tuning:在一个预演习模型的根本上,通过连续演习来调度其参数以适应特界说务的过程。Fine-tuning许可模型在保持预演习知识的同时,专注于新任务的特定细节。为什么常用后缀为GGUF类型的模型
利用GGUF类型的模型文件在本地运行AI模型,尤其是大型模型,具有明显的上风。GGUF(Generative General Universal Framework)文件是一种专为大型天生模型设计的格式,旨在优化模型的存储、加载和实行效率。下面将详细阐明GGUF的事情事理和机制,以及先容其他类型的模型文件。
GGUF的事情事理和机制
优化的存储构造:GGUF格式通过高效的数据压缩和存储策略,减少了模型文件的大小,使其更随意马虎在不同环境中支配和分发。这对付大型模型特殊主要,由于原始的模型文件可能非常弘大。
快速加载:GGUF格式设计了快速加载机制,使得模型可以迅速从硬盘加载到内存中,减少了启动韶光。这一点对付须要频繁加载不同模型的运用处景尤其有用。
高效实行:GGUF格式支持在运行时动态调度模型的精度和打算策略,以适应不同的硬件和运行条件,从而优化实行效率和资源花费。例如,它可以根据可用的GPU资源,调度利用的精度等级(如从浮点32位降到16位),以加速打算并减少显存利用。
这几种开源大模型可以理解一下
海内推举ChatGLM和qwen,不多阐明
Llama 2
Llama 2是Meta于2023年推出的最主要的开源LLM。这是一个在2万亿令牌上演习的预演习天生AI模型,支持70亿到700亿个参数。Llama 2比Llama 1多了40%的演习数据,并且支持的高下文长度多了两倍。目前,Llama 2仍旧是市场上性能最高的开源措辞模型之一,在推理、编码、闇练度和知识测试等关键基准测试中表现出色。
目前 Hugging Face Open LLM 排行榜将Llama 2-70B列为市场上第二好的LLM,均匀得分为67.35,ARC为67.32,HellaSwag为87.33,MMLU为69,83,TruthfulQA为44.92。Meta声称Llama 2 Long的70B变体在长高下文任务(如:回答问题、择要和多文档聚合等)上的性能超过了GPT3.5-16ks。
Falcon
最大的开源大措辞预演习模型
Falcon是阿拉伯联合酋长国技能创新研究所2023年发布的最大的LLM——180B。它旨在出色地完整天然措辞任务,截至2023年10月,Falcon是预演习措辞模型的Hugging Face Open LLM排行榜上排名第一的LLM,均匀得分为68.74,ARC为69.8,HellaSwag为88.95,MMLU为70.54,TruthfulQA为45.67。想要在谈天机器情面况中利用Falcon 180B,可以利用名为Falcon 180B Chat的版本,这是对谈天和指令数据进行微调的主模型的修正版本。
Code Llama
最佳代码天生LLM
Meta的另一个佳作是Code Llama,这是一个基于Llama2,并在代码数据集上演习的模型,包括5000亿个代码和代码干系数据的Token。
Code Llama支持7B、13B和34B参数,并在Python、C++,Java、PHP、Typescript(JavaScript)、C#、Bash等措辞方面进行微调,以支持天生代码并阐明代码的浸染等。
Code Llama有两个紧张的变体:Code Llama Python和Code Llama Instruct。Code Llama - Python利用额外的100B Python代码进行演习,为用户供应更好的Python编程措辞代码创建功能。
Code Llama Instruct是Code Llama的微调版本,它在50亿个人类指令的令牌上进行了演习,并已开拓用于更好地理解人类指令。
Mistral
最佳7B预演习模型
2023年9月,Mistral AI发布了Mistral 7B,这是一款小型但高性能的开源LLM,拥有70亿个参数,其开拓目的是频年夜型闭源模型能够更有效地运行,使其成为实时运用的空想选择。
Mistral 7B利用诸如分组查询把稳力之类的技能来进行更快的推理,并且利用滑动窗口把稳力(SWA)来以更低的本钱处理更长的序列。这些技能使LLM能够比资源密集型的LLM更快地处理和天生大文本,并且本钱更低。
该组织的发布公告显示,Mistral 7B在arc-e上的得分为80.0%,在HellaSwag上的得分为81.3%,在MMLU上的得分为60.1%,在HumanEval基准测试中的得分为30.5%,在每个种别中都明显优于LLama 2-7B。
Mistral AI还表示,Mistral在代码、数学和推理方面优于并超越Llama 1-34B,同时在代码任务上靠近Code Llama 7B的性能。
Vicuna
最佳尺寸输出质量LLM
Vicuna 13B 是由加州大学伯克利分校的学生和教职员工于2023年3月发布的一个开源谈天机器人。
LMSYS的研究职员基于Meta的Llama模型,采取ShareGPT.com上分享的7万个ChatGPT对话数据对其进行了微调。在这些数据上演习Llama使Vicuna能够天生详细和清晰的用户相应,其繁芜程度可与ChatGPT相媲美。
LMSYS机构的初步测试表明,Vicuna的质量达到了ChatGPT和Bard的90%,同时在90%的场景中优于Llama和斯坦福大学的Alpaca。
LLaVA
LLaVa是一个开源的多模态谈天机器人模型,通过在GPT天生的多模态指令数据上对LlamA/Vicuna模型进行微调演习而得到。它是基于transformer架构的自回归措辞模型,能够处理图像和文本等多种模态的输入。LLaVa模型最初由Haotian Liu等人在论文"Visual Instruction Tuning"中提出,后在"Improved Baselines with Visual Instruction Tuning"一文中得到改进。
该模型利用CLIP-ViT-L-336px视觉模型和MLP投影作为视觉措辞跨模态连接器,并利用120万个公开可用的多模态数据(包括面向学术任务的VQA数据)进行演习。13B参数的LLaVa模型在11个基准测试中取得了最前辈的表现,同时演习韶光和所需打算资源较少,有望使最前辈的多模态模型研究更加可及。
把稳:
以上这些模型Huggingface上都有各种尺寸的GGUF版本可供下载。个中LLaVA只有图片识别能力,没有图片天生能力。图片天生能力,即从文本描述天生相应的图像,这常日是特定于天生对抗网络(GANs)或变分自编码器(VAEs)等技能的模型,如DALL·E、Stable Diffusion等所专注的领域。虽然LLaVA模型在多模态理解上展现了前辈的技能,但没有明确的证据表明它具备直接的图片天生能力,即从文本描述直接天生图像的功能。
本地支配还须要理解Embedding模型
我们知道,ChatGPT上阐明文档用的是text-embedding-3-large,我们在本地支配一样平常用的都是nomic的一个小模型nomic-embd-text,常日效果不怎么好。
你可以在huggingface上MTEB的Leadbord上找到参数适宜你的Embedding模型,“Massive Text Embedding Benchmark (MTEB)”是一个大规模的文本嵌入基准测试,它为各种文本嵌入模型供应了评估标准。当然这里也有评估指标、测试任务和模型的干系科学研究论文。这些模型也大都有GGUF版本,可以大大提高本地文档的处理效率。
https://huggingface.co/spaces/mteb/leaderboard
你可以直接从 Hugging Face 网站 ( https://huggingface.co/models ) 手动下载模型。进入 Hugging Face 模型页面后,在“模型”右侧的搜索字段中输入“GGUF”。返回的搜索结果都是GGUF格式的模型,只要你的电脑有足够的空间,可以开始下载了。请把稳,目前 Hugging Face 有 6,426个 GGUF 格式的模型。
您可以在搜索结果中看到模型的名称、上次更新日期以及该模型的下载量和点赞数。有关模型的更多信息并访问下载文件,请单击模型名称,您将进入模型页面。
进入模型页面后,选择“文件和版本”链接(拜会下图)将带您访问可供下载的模型版本的不同量化(压缩)文件。
不才图中,您可以看到所选模型的版本和压缩列表。
有两点须要把稳:
1.“Q”表示版本的压缩量(下面的#1)。可以将其想象为已压缩为 .jpg 文件的 RAW 数码照片。天生的图像短缺一些细节,但你险些无法把稳到,而且压缩可以节省大量空间。“Q”数字表示已发生的量化量(即2 位、3 位、4 位等)。位数越低,量化越高。这会导致模型更小,推理速率更快,但可能会降落准确性。位数越高,模型越大,准确性越高,但推理速率越慢(从提示到回答的韶光)。
2. .gguf 文件格式名称 (#2)之前的字母“S”、“M”和“L”代表小型、中型和大型。您可以在文件名后看到该文件在您的打算机上须要的空间量(#3)把稳你的电脑内存容量,一样平常16G以下内存推举用5G以下的,太大会卡。一样平常来说,我的履历是 Q4 对我来说表现良好。它们在速率和准确性之间供应了良好的平衡。要下载个中一个版本,只需单击您要下载的模型右侧的下载图标 (#4)。
用好Docker
Docker
PART 04
Docker是一个开源的运用容器引擎,它许可开拓者打包他们的运用以及运用的依赖包到一个可移植的容器中,然后发布到任何机器上,也可以实现虚拟化。对付AI模型来说,Docker不仅能够简化支配过程,还能确保模型在不同环境中的同等性和可重复性。Github上很多开源的框架以及运用都能用Doceker一条命令支配,如果你想安装多个运用,每个运用都有不同的依赖环境,那么支配在Docker里是首选,这样不至于依赖环境的版本问题而涌现缺点,跑不起来。因此,节制如何利用Docker来支配AI模型是一项主要技能。
Docker紧张是在命令行中实行各种操作,关于这部分的知识这里不做太多先容。从安装到运用只要你能利用任何一个对话型的AI,基本都能办理你在利用Docker时的各种问题。比如ChatGPT,你可以截图问它各种Docker的问题,乃至是帮你天生各种安装命令,这些知识都是ChatGPT知道的。关于Docker你须要办理的最大问题是:用起来,创造问题,然后让AI办理它。
最 后
支配天生式AI大模型是一个繁芜但令人愉快的过程,它须要跨领域的知识和技能。从硬件的配置到模型的选择和优化,再到Docker的利用,每一个步骤都至关主要。希望通过本文,你能得到一个全面的视角,为你的AI支配之旅打下坚实的根本。随着技能的不断进步,相信未来在本地支配大型AI模型将会变得更加便捷和高效。