深度学习-74-大语言模型LLM之基于API与llama.cpp启动的模型进行交互

devtools/2024/12/21 18:56:19/

文章目录

  • 1 大模型量化方法
    • 1.1 GPTQ(后训练量化)
    • 1.2 GGUF(支持CPU)
    • 1.3 AWQ(后训练量化)
  • 2 llama.cpp
    • 2.1 功能
      • 2.1.1 Chat(聊天)
      • 2.1.2 Completion(补全)
    • 2.2 运行开源LLM
      • 2.2.1 下载安装llama.cpp
      • 2.2.2 下载gguf格式的模型
      • 2.2.3 运行大模型
  • 3 API访问
    • 3.1 调用补全
    • 3.2 调用聊天
    • 3.3 提取结果信息
    • 3.4 模拟聊天
  • 4 参考附录

1 大模型量化方法

语言模型的参数通常以高精度浮点数存储,这导致模型推理需要大量计算资源。

量化技术通过将高精度数据类型存储的参数转换为低精度数据类型存储, 可以在不改变模型参数量和架构的前提下加速推理过程。这种方法使得模型的部署更加经济高效,也更具可行性。

1.1 GPTQ(后训练量化)

GPTQ: Post-Training Quantization for GPT Models

GPTQ是一种4位量化的训练后量化(PTQ)方法,主要关注GPU推理和性能。

该方法背后的思想是,尝试通过最小化该权重的均方误差将所有权重压缩到4位。在推理过程中,它将动态地将其权重去量化为float16,以提高性能。

GPTQ常用4bit,8bit量化。

1.2 GGUF(支持CPU)

GGUF:GPT-Generated Unified Format

GGUF(以前称为GGML)是一种量化方法,允许用户使用CPU来运行LLM,但也可以将其某些层加载到GPU以提高速度。

虽然使用CPU进行推理通常比使用GPU慢,但对于那些在CPU或苹果设备上运行模型的人来说,这是一种非常好的格式。

1.3 A


http://www.ppmy.cn/devtools/144152.html

相关文章

【学习笔记】深入浅出详解Pytorch中的View, reshape, unfold,flatten等方法。

文章目录 一、写在前面二、Reshape(一)用法(二)代码展示 三、Unfold(一)torch.unfold 的基本概念(二)torch.unfold 的工作原理(三) 示例代码(四&a…

[SZ901]JTAG高速下载设置(53Mhz)

SZ901最高支持JTAG 53MHz的时钟频率,下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1,将JTAG0 分频系数修改为3 2,设置参数,更新参数。(完成) 打开VIVADO VIVADO 正常识别FPGA,速…

【ArcGIS Pro】做个宽度渐变的河流符号

如上图如示,河流线的宽度是渐变的,上游细下游粗,可以很好的表达水量。 准备数据: 准备河流线图层如下: 实现方法: 1、点击线符号,在符号系统中,选择【属性-结构-图层-添加图层】&a…

深入探索Flink的复杂事件处理CEP

深入探索Flink的复杂事件处理CEP 引言 在当今大数据时代,实时数据处理变得愈发关键。Apache Flink作为一款强大的流处理框架,其复杂事件处理(CEP)组件为我们从海量实时数据中提取有价值信息提供了有力支持。本文将详细介绍Flink…

向量的叉乘+Vector3补充+四元数

反三角函数相关知识: float a Mathf.Asin(0.5f) * Mathf.Rad2Deg; Debug.Log("a:" a); 运行结果如下: 向量的叉乘 几何角度:两个向量叉乘,得到一个新的向量,新向量跟原始两个向量都垂直,也就…

深度学习的可解释性研究

深度学习的可解释性研究是一个多维度、跨学科的领域,旨在提高模型的透明度和理解性,以便更好地服务于人类社会。这一研究方向不仅在理论上具有重要意义,而且在实际应用中也具有广泛的价值,特别是在信息推送、医疗研究、金融和信息…

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用 DeepSeek-V2的架构及其优势 DeepSeek-V2的架构及其优势可以从几个关键方面进行深入探讨: 1. 架构设计 DeepSeek-V2是一个基于Mixture-of-Experts(MoE&#xff0…

leetcode链表

链表中随机访问第k个元素需要一个一个的遍历,链表随机访问的性能没有数组好,需要 O(n) 的时间复杂度。 链表插入、删除比较快,O(1) 单链表 循环链表 双向链表的插入删除更高效 如果你熟悉 Java 语言,你肯…