尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

GPTFast 快速上手:3 步给 Hugging Face 模型提速 7.6-9 倍

GPTFast 快速上手:3 步给 Hugging Face 模型提速 7.6-9 倍 GPTFast 快速上手3 步给 Hugging Face 模型提速 7.6-9 倍【免费下载链接】GPTFastAccelerate your Hugging Face Transformers 7.6-9x. Native to Hugging Face and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/gp/GPTFastGPTFast 是一个专为 Hugging Face Transformers 模型打造的 PyTorch 推理加速库。它把静态 KV 缓存、torch.compile 编译和投机解码组合起来让 Llama-2-7b 这类模型的推理速度提升 7.6~9 倍且不需要你改动 HF 模型的任何代码。一、GPTFast 是什么一个能白拿 9 倍速的推理加速库它的目标很直接让 HF 生态里的开源模型推理得更快。PyTorch 团队最初只为 Llama-2-7b 做了这类优化GPTFast 把它泛化到了所有 HF 因果语言模型。从版本演进能看出加速的含金量版本关键能力实测加速0.1.xtorch.compile int8 量化 投机解码7x0.2.x全 HF 模型静态 KV 缓存8.5x0.3.xGPTQ int4 量化 优化 int4 matmul 内核9x适合人群手里有 HF 模型、用 GPU 跑推理、嫌生成速度太慢的开发者。你不需要懂底层优化细节调一个函数就能用。二、代码地图核心逻辑都藏在 GPTFast/Core 里整个项目按功能分组组织看懂下面这张表基本就摸清了结构路径职责GPTFast/Core/GPTFast.pygpt_fast()总入口按量化 → KV 缓存 → 投机解码 → 编译顺序串起全部优化GPTFast/Core/KVCache/静态 KV 缓存会直接改写模型 forward 的源码把缓存焊进去GPTFast/Core/Decode/投机解码小模型先猜、大模型批量校验GPTFast/Core/Compile/一键 torch.compile 封装GPTFast/Core/Quantize/GPTQ int4 与 INT8 两套量化器GPTFast/Helpers/源码字符串改写工具改函数块、缩进等和timed计时器Examples/5 个可直接运行的完整样例gpt2、opt、gpt-neo含 GPTQ 版Tests/针对编译、缓存、解码、量化的单元测试setup.py安装入口把项目打包成gptfast发布到 pip一个有意思的设计KV 缓存不是靠继承实现的而是靠 Helpers 里的字符串工具直接改写模型源码文本再重新编译成方法。这就是它能让任意结构gpt2、opt、gpt-neo都受益的原因。三、GPTFast 安装教程pip 一条命令加一个脚本 前提Python ≥ 3.10 一块 CUDA GPUTriton 内核决定了 CPU 上没意义。第 1 步装包pip install gptfast第 2 步用 Examples/gpt2.py 的思路写一个最小脚本GPTQ 量化可参考 Examples/gpt2_gptq.pyimport torch from transformers import AutoTokenizer from GPTFast.Core import gpt_fast torch._dynamo.reset() device cuda if torch.cuda.is_available() else cpu def argmax(probabilities): # 采样函数取概率最大的 token return torch.argmax(probabilities, dim-1).view(1, 1) tokenizer AutoTokenizer.from_pretrained(gpt2) input_tokens tokenizer.encode(Write me a short story., return_tensorspt).to(device) model gpt_fast(gpt2, None, quantize_config{quantization_mode: None}, # 不量化 sample_functionargmax, cache_configcache_config, devicedevice) res model.generate(cur_tokensinput_tokens, max_tokens50) print(tokenizer.decode(res[0]))cache_config的完整写法直接抄 Examples/gpt2.py 即可。想让速度再上一个台阶加一个draft_model_namegpt2配合更大的主模型就能开启投机解码。四、配置怎么改没有配置文件全靠代码里的三个 dict这个项目没有 JSON/YAML 配置文件所有配置都通过gpt_fast()的参数传入主要有三处1.cache_config必给—— 决定 KV 缓存怎么接进模型model_config.path_to_blocks从模型到 Transformer 层的属性路径如[transformer, h]attn_config.cache_update_configKV 更新触发条件和 key/value 变量名imports改写后编译源码需要的 import 列表不同架构gpt2 / opt / gpt-neo的写法在 Examples/ 里各有一份可对照修改。2.quantize_config—— 决定量化策略quantization_modeNone不量化、INT8或GPTQGPTQ 时可配groupsize、skipped_layers通常跳过lm_head选 GPTQ 必须传一个calibration_data_function提供校准数据3.sample_function—— 决定采样行为接收概率张量、返回 shape 为(1, 1)的 token。想换 temperature/top-k 策略就改这个函数参考示例里的argmax_variation。环境变量只有一个值得记os.environ[TOKENIZERS_PARALLELISM] false避免 tokenizer 多进程警告。五、避坑指南与扩展方向⚠️装不上 / 版本冲突setup.py 锁了不少精确版本numpy1.26.3、safetensors0.4.1等和已有环境极易打架。务必先建独立 venv 再安装。⚠️没有 GPU 别跑依赖 Triton 和 CUDA 内核CPU 上不仅没加速部分内核还会直接报错。⚠️投机解码的隐藏条件draft 模型必须与主模型共用同一个 tokenizer且体积明显更小如 gpt2-xl 配 gpt2。不满足就别传draft_model_name。⚠️以 Examples 为准README 标注了 0.3.0 起文档弃用旧文档里的gpt_fast()签名和现在不一致——新代码以 Examples/ 为准。扩展方向给cache_config写一套新模型的适配项等于让 GPTFast 支持一个新架构换sample_function实现温度采样、top-p 等策略大模型上 GPTQ int4Examples/gpt2_gptq.py是完整模板关注路线图Medusa、AWQ/QoQ/GGUF、PagedAttentionvLLM集成都在规划中跑通第一个脚本之后建议你拿同一个提示词对比一下原生transformers.generate的耗时——亲眼看到 9 倍的差距比任何 benchmark 都直观。【免费下载链接】GPTFastAccelerate your Hugging Face Transformers 7.6-9x. Native to Hugging Face and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/gp/GPTFast创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表