llama.cpp下8K context支持(实验性) #696
Replies: 7 comments 6 replies
-
绝了 |
Beta Was this translation helpful? Give feedback.
-
GPU推理和微调 可以支持8K吗 |
Beta Was this translation helpful? Give feedback.
-
位置插值那篇论文吗?可否提供一个python对RotaryEmbedding修改的示例?还是说像 https://kaiokendev.github.io/til#extending-context-to-8k 这里一样,简单的对t除以8或者4就可以。 |
Beta Was this translation helpful? Give feedback.
-
真是让人惊喜。 |
Beta Was this translation helpful? Give feedback.
-
理论上chinese-llama和chinese-alpaca,context都可以通过scale拓展到8k甚至更长吧?alpaca是经过sft训练过的,不知道scale会不会对效果有影响。 |
Beta Was this translation helpful? Give feedback.
-
Update: transformers下支持4K+ context的代码请参考#705 |
Beta Was this translation helpful? Give feedback.
-
根据在测试集上测试结果,仅根据当前的seq_len缩放会比在初始化时就缩放的ppl低 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Update
2023/7/3 transformers下支持4K+ context的代码请参考#705
正文
主要针对以下几个问题进行讨论:
已知本项目提出的中文LLaMA和Alpaca模型训练时的长度为512,而原版LLaMA的长度是2048,那么我们的模型是否支持2048(2K)context?
近期关于扩展大模型context长度的讨论很多,有没有“无创升级”模型的方案?
本讨论针对llama.cpp项目中的一个讨论里提到的方法进行了实验验证,探索在llama.cpp下进一步加长context长度的方法。
修改方法
整体修改方法很简单,多数用户只需执行第一步代码替换和重新编译。
找到以下语句:
替换为(以防万一,建议是注释原实现,而不是删除):
该文件中一共有4处相关定义,建议全部修改。
powf
函数需要改为pow
。实验结果
以下是原RoPE方法和新方法在不同context length下的PPL对比。以下以LLaMA-Plus-7B-Q6_K(效果与FP16相差0.1%以内)为测试模型,评测中文文本数据上的PPL。
./perplexity -m zh-llama-models/p7b/ggml-model-q6_k.bin -f text.txt -ngl 1 -c $CTX_SIZE
结论和建议
Beta Was this translation helpful? Give feedback.
All reactions