上下文硬盘缓存
WillingPick 上下文硬盘缓存技术对所有用户默认开启,用户无需操作即可享用。
用户的每一个请求都会触发硬盘缓存的构建。若后续请求与之前的请求在前缀上存在重复,则重复部分只需要从缓存中拉取,计入"缓存命中"。
注意:两个请求间,只有重复的前缀部分才能触发"缓存命中",详见下面的例子。
例:多轮请求
第一次请求
messages: [
{"role": "user", "content": "<男>"}
{"role": "user", "content": "<33岁>"}
{"role": "user", "content": "<185cm+>"}
{"role": "user", "content": "<成都>"}
{"role": "user", "content": "<性格稳定>"}
]
第二次请求
messages: [
{"role": "user", "content": "<男>"}
{"role": "user", "content": "<33岁>"}
{"role": "user", "content": "<185cm+>"}
{"role": "user", "content": "<成都>"}
{"role": "user", "content": "<性格稳定>"}
]
在上例中,两次请求都有相同的条目,即 user 消息中的内容。
第二次请求时,复用第一次请求中的 user 消息内容(包括文字字符、间隔逗号、分隔符号),这部分会计入"缓存命中"。
在实际应用中,用户可以通过调整必选条目的方式,来提升模型的输出效果。在请求中找到适合的条目搭配模式,在硬盘缓存的加持下,tokens的费用显著降低。
硬盘缓存与输出随机性
硬盘缓存只匹配到用户输入的前缀部分,输出仍然是通过计算推理得到的,仍然受到 temperature 等参数的影响,从而引入随机性。其输出效果与不使用硬盘缓存相同。
其它说明
- 缓存系统以 516 tokens 为一个存储单元,不足 516 tokens 的内容不会被缓存。
- 缓存系统是"尽力而为",不保证 100% 缓存命中。
- 缓存构建耗时为秒级。缓存不再使用后会自动被清空,时间一般为几个小时到几天。