thunlp / InfLLM

The code of our paper "InfLLM: Unveiling the Intrinsic Capacity of LLMs for Understanding Extremely Long Sequences with Training-Free Memory"
MIT License
269 stars 21 forks source link

内存占用会不会很大 #14

Closed MrJiangZhongZheng closed 5 months ago

lemyx commented 5 months ago

global_blocks = [(global_block_k, global_block_v)], 每个 global_block_k/v 的形状为 [1, 8, 128, 128], 数据类型为 torch.bfloat16, 占据内存大小为 0.5 MB, 即每个长度为 128 的 block 占据 0.5 MB 内存, 每两个 block 占据 1MB 内存, 262,144长度的 block 总计对应 1GB 内存, 不知道这么算对不对~

guyan364 commented 5 months ago

你好,目前所有的 kv cache 都会放在内存中。对于 Mistral-7b, @DyiShiou 的计算是正确的,最后的结果还需要乘 layer 数量 32。推理 128k 文本需要大于 16G 内存,之后我们会尝试对 kv cache 进行压缩。

Minami-su commented 5 months ago

你好,目前所有的 kv cache 都会放在内存中。对于 Mistral-7b, @DyiShiou 的计算是正确的,最后的结果还需要乘 layer 数量 32。推理 128k 文本需要大于 16G 内存,之后我们会尝试对 kv cache 进行压缩。

能否将所有的kv缓存存到faiss向量数据库里,以节省gpu显存达到无限上下文长度,具体可以参考https://github.com/Victorwz/LongMem