大模型(LLMs)推理篇

大模型(LLMs)推理篇

1. 为什么大模型推理时显存涨的那么多还一直占着?

  1. 首先,序列太长了,有很多Q/K/V;
  2. 其次,因为是逐个预测next token,每次要缓存K/V加速解码。

大模型在gpu和cpu上推理速度如何?

7B量级下:

  • cpu推理速度约10token/s;
  • 单卡A6000和8核AMD的推理速度通常为 10:1。

推理速度上,int8和fp16比起来怎么样?

根据实践经验,int8模式一般推理会明显变慢(huggingface的实现)

大模型有推理能力吗?

大模型有推理能力。有下面2个方面的体现:

ChatGPT拥有in-context correction的能力,即如果说错了,给出矫正,ChatGPT能"听懂"错在哪儿了,并向正确的方向修正。in-context correction要比in-context learning难了太多,描述越详细清楚,ChatGPT回答得越好。要知道,越详细的描述,在预训练的文本里越难匹配到的。

在询问ChatGPT互联网上并不存在内容的时候,能给出较好答案(如用ChatGPT学建模);ChatGPT能通过信息猜你心中的想法;你可以制定一个全新的游戏规则让ChatGPT和你玩,ChatGPT可以理解。

大模型生成时的参数怎么设置?

生成模型预测调参建议:

建议去调整下 top_p, num_beams, repetition_renalty, temperature, do_sample=True;

数据生成有重复,调高repetition_renalty;

生成任务表达单一的,样本也不多的,可适当调低 temperature,生成的样子跟训练集的比较像;如果要复现训练集的效果,temperature=0.01即可。

以上是经验参数,具体调参根据任务而定,不是固定的。
•参数解释:

top_p=0.9,
#Moderately increase the probability threshold of nucleus sampling to increase the quantity of candidate tokens and increase generation diversity.

temperature=1.0,
#The previous low temperature parameter could lead to a severe polarization in the probability distribution of generated words, which degenerates the generation strategy into greedy decoding.


do_sample=True,
#do_sample parameter is set to False by default. After setting to True, the generation m
### 大模型的训练与推理方法 #### 训练方法概述 大模型的训练过程依赖于强大的计算资源以及高效的分布式训练框架。为了加速训练过程并充分利用硬件资源,常见的并行策略包括数据并行、模型并行和流水线并行[^2]。 - **数据并行**:通过将输入的数据划分为多个子集,在不同的设备上分别处理这些子集来实现并行化。这种方法适用于单个模型可以完全加载到单一设备内存中的情况。 - **模型并行**:当模型过大无法放入单个设备的内存时,可采用模型并行的方式,即将模型的不同部分分配给不同的设备进行计算。 - **流水线并行**:结合了数据并行和模型并行的优点,进一步优化了大型模型的训练效率。它按照层或者模块划分模型,并让不同阶段的计算重叠执行以减少等待时间。 #### 推理方法概述 对于大模型而言,除了训练之外还需要考虑如何有效地完成推理任务。这涉及到选择合适的推理框架和支持特定应用场景的技术方案。例如: - 阿里巴巴推出了 MNN 这一轻量级推理框架,特别适合用于移动端和边缘设备上的应用开发,如移动终端上的图像识别功能部署等场景[^4]。 另外还有其他多种专门面向大语言模型 (LLMs)推理框架可供选用,它们各自具备独特的优势和技术特性[^3]。 以下是快速排序算法的一个简单 Python 实现作为辅助理解代码结构的例子: ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) ``` 此段代码并非直接关联至上述讨论主题,仅作展示编程逻辑之用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值