CANN/ge LLM缓存pull_cache API
# pull_cache【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Atlas A2 推理系列产品支持Atlas A2 训练系列产品不支持函数功能根据CacheKey从对应的Prompt节点拉取KV到本地KV Cache仅当LLMRole为DECODER时可调用。函数原型pull_cache(cache_key: Union[CacheKey, CacheKeyByIdAndIndex], kv_cache: KvCache, batch_index: int 0, size: int -1, **kwargs)参数说明参数名称数据类型取值说明cache_keyUnion[CacheKey, CacheKeyByIdAndIndex]需要被拉取的CacheKey。该CacheKey需要和allocate_cache的CacheKey保持一致。通过req_idprefix_idmodel_id拉取则传入CacheKey。通过cache_idbatch_index拉取则传入CacheKeyByIdAndIndex。kv_cacheKvCache目标KV Cache。batch_indexint表示目标KV Cache的batch index默认为0。sizeint默认为-1。设置为0的整数表示要拉取的tensor大小。或设置为-1表示完整拷贝本地单个KV的大小减去dst_cache_offset大小。**kwargsNA这个是Python函数的可扩展参数通用写法一般通过keyvalue的方式直接传入参数。可选参数的详细信息请参考表1。表 1**kwargs的可选参数参数名称数据类型取值说明src_layer_rangeOptional[range]可选参数用于按层pull kv场景。传输源的layer的范围step只支持1。不设置时为传输所有layer。需要注意这里是layer的index而不是tensor的index即1个layer对应连续N个tensor(K/V)这里要求分配内存时必须是KV,...,KV排布不支持其他场景。N为tensor_num_per_layer的取值默认为2。dst_layer_rangeOptional[range]可选参数用于按层pull kv场景。传输目标的layer的范围step只支持1。不设置时为传输所有layer。需要注意这里是layer的index而不是tensor的index即1个layer对应连续N个tensor(K/V)这里要求分配内存时必须是KV,...,KV排布不支持其他场景。N为tensor_num_per_layer的取值默认为2。src_cache_offsetOptional[int]设置0的整数。表示从src_cache tensor的offset位置拉取size大小的数据dst_cache_offsetOptional[int]设置0的整数。表示将源数据拉取到dst_cache tensor的offset起始位置tensor_num_per_layerOptional[int]可选参数表示每层的tensor的数量默认值是2取值范围是[1,cache的tensor总数]。当src_layer_range或dst_layer_range取值为非默认值时 tensor_num_per_layer可以保持默认值也可以输入其他值输入其他值的时tensor_num_per_layer的取值还需要被当前cache的tensor总数整除。调用示例from llm_datadist import * ... cache_keys [CacheKey(1, req_id1), CacheKey(1, req_id2)] kv_cache_manager.pull_cache(cache_keys[0], cache, 0) # 使能layer_range功能 kv_cache_manager.pull_cache(cache_keys[1], cache, 1, src_layer_rangerange(0,2), dst_layer_rangerange(2,4)) # 使能offset功能 kv_cache_manager.pull_cache(cache_keys[1], cache, src_cache_offset0, dst_cache_offset0)返回值正常情况下无返回值。参数错误可能抛出TypeError或ValueError。执行时间超过sync_kv_timeout配置会抛出LLMException异常。约束说明使用同一条链路时不支持该接口和transfer_cache_async接口并发。本接口不支持并发调用。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考