当前位置: 首页 > wzjs >正文

厦门建站服务推广文案

厦门建站服务,推广文案,网站建设与实训,wordpress 内容插件前言: 在人工智能领域,语言模型的高效部署和推理一直是研究热点。随着模型规模的不断扩大,如何在有限的硬件资源上实现快速、高效的推理,成为了一个关键问题。llama.cpp框架以其出色的性能和灵活性,为这一问题提供了有…

前言:

在人工智能领域,语言模型的高效部署和推理一直是研究热点。随着模型规模的不断扩大,如何在有限的硬件资源上实现快速、高效的推理,成为了一个关键问题。`llama.cpp`框架以其出色的性能和灵活性,为这一问题提供了有效的解决方案。其中,GGUF格式和模型量化参数是实现高效推理的重要技术手段。本文将对`llama.cpp`框架下的GGUF格式及量化参数进行详细解析,帮助读者更好地理解和应用这些技术,提升模型的部署效率和推理性能。

1:GGUF格式是什么?

GGUF「GPT-Generated Unified Format」)是推理框架llama.cpp 中使用的一种专为大语言模型设计的二进制文件格式,旨在实现模型的快速加载和保存,同时易于读取。GGUF格式的特点:

  • 「单文件部署」:模型可以轻松分发和加载,不需要任何外部文件来提供额外信息。

  • 「可扩展性」:可以在不破坏与现有模型的兼容性的情况下,向基于GGML的执行器添加新功能或向GGUF模型添加新信息。

  • 「mmap兼容性」:可以使用mmap加载模型,以实现快速加载和保存。

  • 「易于使用」:可以使用少量代码轻松加载和保存模型,无论使用何种语言,无需外部库。

  • 「完整信息」:加载模型所需的所有信息都包含在模型文件中,用户无需提供任何额外信息。

GGUF文件的结构如下图所示: 

 

以下是对文件结构的重新描述:

1. 文件头部(Header):

包含文件类型标识(GGUF)、版本信息以及张量的数量。

2. 元数据区(Metadata):

采用类似JSON的格式存储模型相关的信息,以键值对的形式组织。

3. 张量数据区(Tensors):

根据量化方式存储模型的权重数据。

文件整体遵循在`general.alignment`元数据字段中定义的全局对齐规则,必要时,文件会通过添加0x00字节来填充至`general.alignment`指定的对齐边界。除非特别指明,所有字段(包括数组)都将按顺序连续写入文件,且不进行额外的对齐操作。模型数据默认采用小端字节序,但为了兼容大端字节序的计算机系统,它们也可以以大端字节序的形式存储,在这种情况下,包括元数据和张量在内的所有数据都将采用大端字节序。

2:GGUF命名约定

GGUF遵循<BaseName><SizeLabel><FineTune><Version><Encoding><Type><Shard>.gguf的命名约定,其中每个组件由-分隔(如果存在),这种命名方式的最终目的是为了让人们能够快速了解模型的关键信息。

每个组件的含义如下:

  1. 「BaseName」:模型基础类型或架构的描述性名称。

    • 1可以从gguf元数据general.basename派生,将空格替换为连字符。

  2. 「SizeLabel」:参数权重类别(在排行榜中有用),表示为<专家数量>x<数量><量级前缀>

    • Q:千万亿参数。

    • T:万亿参数。

    • B:十亿参数。

    • M:百万参数。

    • K:千参数。

    • 如果可用,可以从gguf元数据general.size_label派生,如果缺失则进行计算。

    • 支持带有单个字母量级前缀的十进制点的四舍五入,以帮助显示浮点指数,如下所示:

    • 可以根据需要附加额外的-<属性><数量><量级前缀>以指示其他感兴趣的属性。

  3. 「FineTune」:模型微调目标的描述性名称(例如ChatInstruct等)。

    • 可以从gguf元数据general.finetune派生,将空格替换为连字符。

  4. 「Version」:表示模型版本号,格式为v<主版本>.<次版本>

    • 如果模型缺少版本号,则假设为v1.0(首次公开发布)。

    • 可以从gguf元数据general.version派生。

  5. 「Encoding」:指示应用于模型的权重编码方案。内容、类型混合和排列由用户代码决定,可以根据项目需求而有所不同。

  6. 「Type」:指示gguf文件的类型及其预期用途。

    • 如果缺失,则文件默认为典型的gguf张量模型文件。

    • LoRA:GGUF文件是LoRA适配器。

    • vocab:仅包含词汇数据和元数据的GGUF文件。

  7. 「Shard」:(可选)指示模型已被拆分为多个分片,格式为<分片编号>-of-<总分片数>

    • 分片编号始终从00001开始(例如,第一个分片总是从00001-of-XXXXX开始,而不是00000-of-XXXXX)。

    • 「分片编号」:此模型中的分片位置。必须用零填充为5位数字。

    • 「总分片数」:此模型中的总分片数。必须用零填充为5位数字。

下面是对几个GGUF模型文件名的注解:

  • Mixtral-8x7B-v0.1-KQ2.gguf

    • 模型名称:Mixtral

    • 专家数量:8

    • 参数数量:7B

    • 版本号:v0.1

    • 权重编码方案:KQ2

  • Hermes-2-Pro-Llama-3-8B-F16.gguf

    • 模型名称:Hermes 2 Pro Llama 3

    • 专家数量:0

    • 参数数量:8B

    • 版本号:v1.0

    • 权重编码方案:F16

    • 分片:不适用

  • Grok-100B-v1.0-Q4_0-00003-of-00009.gguf

    • 模型名称:Grok

    • 专家数量:0

    • 参数数量:100B

    • 版本号:v1.0

    • 权重编码方案:Q4_0

    • 分片:3 out of 9 total shards

 GGUF命名规则约定所有模型文件都应该有基本名称、大小标签和版本,以便能够轻松验证其是否符合GGUF命名约定。例如,如果省略版本号,那么编码很容易被误认为是微调。

3:GGUF格式转换

GGUF格式是推理框架llama.cpp使用的格式,但是通常模型是使用PyTorch之类的训练框架训练的,保存的格式一般使用HuggingFacesafetensors格式,因此使用llama.cpp进行推理之前需要把其他格式的模型转换为GGUF格式。

首先从魔搭社区(或HuggingFace)下载模型:

pip install modelscope
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local_dir DeepSeek-R1-Distill-Qwen-7B下载好的模型是以safetensors格式存放的,可以调用llama.cpp的转换脚本把模型转换为GGUF格式:

# 安装python依赖库
pip install -r requirements.txt
# 转换模型
python convert_hf_to_gguf.py DeepSeek-R1-Distill-Qwen-7B/

转换成功后,在该目录下会生成一个FP16精度、GGUF格式的模型文件DeepSeek-R1-Distill-Qwen-7B-F16.gguf

http://www.dtcms.com/wzjs/32142.html

相关文章:

  • 曰本真人性做爰视频网站名字微信指数查询入口
  • 为什么做网站还要续费核心关键词如何优化
  • 郑州网站建设网站网络营销文案实例
  • 重庆企业的网站建设三亚百度推广开户
  • 图片无版权网站济南做网站公司哪家好
  • 网站怎么优化关键词广告策划
  • 北京网站设计数据分析师就业前景
  • 做h5网站pc加手机版要多少钱品牌策划是做什么的
  • 已有网站怎么做后台品牌推广百度seo
  • 深圳做网站推广公司网络营销有哪些
  • 1g网站空间价格排名优化网站建设
  • 网站建设资金申请报告google play store
  • 全国的网站建设长沙哪里有网站推广优化
  • 做地方特产的网站如何搭建网站平台
  • 自己做视频网站用cdn那个便宜最新百度关键词排名
  • 广告公司做的网站字体侵权武汉seo网站推广培训
  • .net cms网站管理系统seo关键词排名技巧
  • 手机网站 收录能让手机流畅到爆的软件
  • 电子商务网站技术方案数据分析师报考官网
  • 青岛品牌设计公司武汉seo排名扣费
  • 完爆网站开发经典实例网络广告策划书模板范文
  • 网站制作网站建设单位百度竞价推广开户多少钱
  • 网站开发的价格最新热点新闻事件素材
  • 莱芜网站建设怎么样大数据营销平台那么多
  • 买个网站域名要多少钱一年广告投放收费标准
  • 太仓网站建设tcbaidu北京seo代理公司
  • 企业网站建设重要性百度有专做优化的没
  • 电商网站建设功能米拓建站
  • wordpress中文建站网站媒体推广
  • 做网站 前途日本进口yamawa