我不确定所有的事情都会涉及到什么,但是有一些事情正在引起关注,那就是“自扩展”。在这种情况下,似乎有可能使模型在比它们最初设计更大的上下文尺寸中工作。
在一个假设的结果中,如果模型在请求的上下文大于训练的上下文时自动进行自我扩展,那将是非常惊人的。
一些相关的链接:
https://www.reddit.com/r/LocalLLaMA/comments/194mmki/selfextend_works_for_phi2_now_looks_good/
ggerganov/llama.cpp#4889
7条答案
按热度按时间wi3ka0sx1#
+1 对我也是
bn31dyow2#
+1给我,我很想得到更多关于Phi-2的信息。
fzsnzjdm3#
ggerganov/llama.cpp#4963似乎支持在llama.cpp的main和server中。
nfeuvbwi4#
根据最新的发布说明,(标记此提交 72b12c3 )llama.cpp已升级到 b1999 ,这是上周的版本,其中在3周前添加了自扩展支持。因此,看来支持的基础已经存在。
那么问题是,它是否会通过我的模型文件中的参数集传递?还是每个参数都需要特定的编码?
在这里有更详细的描述:ggerganov/llama.cpp#4886 (评论)
首先,将-c设置为您想要实现的上下文,例如-c 8192。
接下来,考虑到模型的原始训练上下文为T(假设T = 2048),您希望将G >= 8192 / T,因此在此情况下:--grp-attn-n 4 或 --grp-attn-n 8。
--grp-attn-w对应于论文中的W。我认为作者通常使用512,但我认为您可以将其提高到T/2 - 因此在此情况下--grp-attn-w 1024。
此外,G必须是W的倍数。
请查看 selfextend for mistral 0.1 的实现,我们得到以下参数:
ChatGPT说:
根据提供的推理,您可以使用以下公式计算上下文大小:
上下文大小 = G x T
g_size
),在这种情况下,( G = 2 )和( T = 8192 ),因此计算出的上下文大小将是:
上下文大小 = 2 x 8192 = 16384
因此,使用
g_size=2
并在校正上下文窗口中训练了一个8192个令牌的模型,结果上下文大小将为16384个令牌。xn1cxnb45#
此外,根据之前显示的添加内容,相对容易地添加所需的参数:#276 Configurable Rope Frequency Parameters
gywdnpxw6#
任何人都有一个Go环境,想要为这个创建一个PR吗?感谢@cognitivetech提供的参考。
xpcnnkqh7#
好的,我做了一些进一步的调查。首先,这些文件现在已经移动到这里:
https://github.com/ollama/ollama/blob/main/api/types.go
https://github.com/ollama/ollama/blob/main/llm/llama.go
其次,在
types.go
中有两处添加了选项。https://github.com/sdan/selfextend/blob/master/configuration_mistral.py
这是用于存储 [
MistralModel
] 配置的配置类。根据指定的参数示例化一个Mistral模型,定义模型架构。使用默认值示例化一个配置将产生类似于Mistral-7B-v0.1或Mistral-7B-Instruct-v0.1的配置。我认为这意味着在将模型加载到内存时设置了运行器选项