Skip to content

Commit 3158550

Browse files
author
sangchengmeng
committed
Merge branch 'main' into add-glm-4v-fix
2 parents bb43650 + e756ee6 commit 3158550

578 files changed

Lines changed: 12389 additions & 13112 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ dist
66
.idea
77
.vscode
88
tmp/
9+
requirements-musa.txt

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ repos:
1010
rev: 6.1.0
1111
hooks:
1212
- id: flake8
13-
args: ['--max-line-length=120', '--ignore=TYP001, E722, C901, E203, E266, E402, E302, E241, E902, E731, F403, E701, F405, F401, W292, W293, W503, W606, E231']
13+
args: ['--max-line-length=120', '--ignore=TYP001, E722, C901, E203, E266, E402, E302, E241, E902, E731, F403, E701, F405, F401, W292, W293, W503, W606, E231, F541']

docs/CN/source/getting_started/installation.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Lightllm 是一个纯python开发的推理框架,其中的算子使用triton
2727
$ # 前请确保你的docker设置中已经分配了足够的共享内存,否则可能导致
2828
$ # 服务无法正常启动。
2929
$ # 1.如果是纯文本服务,建议分配2GB以上的共享内存, 如果你的内存充足,建议分配16GB以上的共享内存.
30-
$ # 2.如果是多模态服务,建议分配16GB以上的共享内存,具体可以根据实际情况进行调整.
30+
$ # 2.如果是多模态服务,建议分配16GB以上的共享内存,具体可以根据实际情况进行调整.
3131
$ # 如果你没有足够的共享内存,可以尝试在启动服务的时候调低 --running_max_req_size 参数,这会降低
3232
$ # 服务的并发请求数量,但可以减少共享内存的占用。如果是多模态服务,也可以通过降低 --cache_capacity
3333
$ # 参数来减少共享内存的占用。
@@ -38,7 +38,7 @@ Lightllm 是一个纯python开发的推理框架,其中的算子使用triton
3838
你也可以使用源码手动构建镜像并运行,建议手动构建镜像,因为更新比较频繁:
3939

4040
.. code-block:: console
41-
41+
4242
$ # 进入代码仓库的根目录
4343
$ cd /lightllm
4444
$ # 手动构建镜像, docker 目录下有不同功能场景的镜像构建文件,按需构建。
@@ -52,7 +52,7 @@ Lightllm 是一个纯python开发的推理框架,其中的算子使用triton
5252
或者你也可以直接使用脚本一键启动镜像并且运行:
5353

5454
.. code-block:: console
55-
55+
5656
$ # 查看脚本参数
5757
$ python tools/quick_launch_docker.py --help
5858
@@ -80,6 +80,10 @@ Lightllm 是一个纯python开发的推理框架,其中的算子使用triton
8080
$ # 安装lightllm的依赖 (cuda 12.4)
8181
$ pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu124
8282
$
83+
$ # 安装lightllm的依赖 (摩尔线程 GPU)
84+
$ ./generate_requirements_musa.sh
85+
$ pip install -r requirements-musa.txt
86+
$
8387
$ # 安装lightllm
8488
$ python setup.py install
8589
@@ -97,6 +101,6 @@ Lightllm 是一个纯python开发的推理框架,其中的算子使用triton
97101
.. code-block:: console
98102
99103
$ pip install -U --index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/Triton-Nightly/pypi/simple/ triton-nightly --no-deps
100-
104+
101105
具体原因可以参考:`issue <https://github.com/triton-lang/triton/issues/3619>`_ 和 `fix PR <https://github.com/triton-lang/triton/pull/3638>`_
102106

docs/CN/source/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ Lightllm 整合了众多的开源方案的优点,包括但不限于 FasterTran
5353
多模态部署 <tutorial/multimodal>
5454
奖励模型部署 <tutorial/reward_model>
5555
OpenAI 接口使用 <tutorial/openai>
56+
工具调用(Function Calling) <tutorial/function_calling>
57+
思考解析(Reasoning Parser) <tutorial/reasoning_parser>
5658
APIServer 参数详解 <tutorial/api_server_args_zh>
5759
lightllm api介绍 <tutorial/api_param>
5860

docs/CN/source/models/add_new_model.md

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -162,19 +162,6 @@ class BloomPreAndPostLayerWeight(PreAndPostLayerWeight):
162162
self.tp_rank_: split_vob_size * (self.tp_rank_ + 1), :])
163163
self.lm_head_weight_ = self.wte_weight_
164164
return
165-
166-
def verify_load(self):
167-
errors = "weights load not ok"
168-
weights = [self.pre_norm_weight_,
169-
self.pre_norm_bias_,
170-
self.final_norm_weight_,
171-
self.final_norm_bias_,
172-
self.wte_weight_,
173-
self.lm_head_weight_]
174-
for i in range(len(weights)):
175-
assert weights[i] is not None, "index:" + str(i) + " " + errors
176-
return
177-
178165
~~~
179166

180167
***transformer_layer_weight.py***
@@ -204,30 +191,6 @@ class BloomTransformerLayerWeight(TransformerLayerWeight):
204191
self._load_qkvo_weights(weights)
205192
self._load_ffn_weights(weights)
206193
return
207-
208-
def verify_load(self):
209-
errors = "weights load not ok"
210-
weights = [self.att_norm_weight_,
211-
self.att_norm_bias_,
212-
self.q_weight_,
213-
self.k_weight_,
214-
self.v_weight_,
215-
self.q_bias_,
216-
self.k_bias_,
217-
self.v_bias_,
218-
self.o_weight_,
219-
self.o_bias_,
220-
221-
self.ffn_norm_weight_,
222-
self.ffn_norm_bias_,
223-
self.ffn_1_weight_,
224-
self.ffn_1_bias_,
225-
self.ffn_2_weight_,
226-
self.ffn_2_bias_,
227-
]
228-
for i in range(len(weights)):
229-
assert weights[i] is not None, "index:" + str(i) + " " + errors
230-
return
231194

232195
def _load_qkvo_weights(self, weights):
233196
if f"h.{self.layer_num_}.input_layernorm.weight" in weights:

docs/CN/source/tutorial/api_server_args_zh.rst renamed to docs/CN/source/tutorial/api_server_args.rst

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. _tutorial/api_server_args_zh:
1+
.. _tutorial/api_server_args:
22

33
APIServer 参数详解
44
==================
@@ -183,22 +183,6 @@ PD 分离模式参数
183183
设置为 True 时,--nccl_host 必须等于 config_server_host,--nccl_port 对于 config_server 必须是唯一的,
184184
不要为不同的推理节点使用相同的 nccl_port,这将是严重错误
185185

186-
attention类型选择参数
187-
---------------------
188-
189-
.. option:: --mode
190-
191-
模型推理模式,可以指定多个值:
192-
193-
* ``triton_int8kv``: 使用 int8 存储 kv cache,可增加 token 容量,使用 triton kernel
194-
* ``ppl_int8kv``: 使用 int8 存储 kv cache,使用 ppl 快速 kernel
195-
* ``ppl_fp16``: 使用 ppl 快速 fp16 解码注意力 kernel
196-
* ``triton_flashdecoding``: 用于长上下文的 flashdecoding 模式,当前支持 llama llama2 qwen
197-
* ``triton_gqa_attention``: 使用 GQA 的模型的快速 kernel
198-
* ``triton_gqa_flashdecoding``: 使用 GQA 的模型的快速 flashdecoding kernel
199-
* ``triton_fp8kv``: 使用 float8 存储 kv cache,目前仅用于 deepseek2
200-
201-
需要阅读源代码以确认所有模型支持的具体模式
202186

203187
调度参数
204188
--------
@@ -300,6 +284,17 @@ attention类型选择参数
300284

301285
为 ViT 构建分布式环境的 NCCL 端口列表,例如 29500 29501 29502,默认为 [29500]
302286

287+
.. option:: --vit_att_backend
288+
289+
设置 ViT 使用的注意力后端。可选值为:
290+
291+
* ``auto``: 自动选择最佳后端(默认值),优先级为 fa3 > xformers > sdpa > triton
292+
* ``fa3``: 使用 Flash-Attention 3 后端
293+
* ``xformers``: 使用 xformers 后端
294+
* ``sdpa``: 使用 sdpa 后端
295+
* ``triton``: 使用 Triton 后端
296+
297+
303298
性能优化参数
304299
------------
305300

@@ -326,18 +321,28 @@ attention类型选择参数
326321
.. option:: --enable_decode_microbatch_overlap
327322

328323
推理后端将为解码使用微批次重叠模式
329-
330-
.. option:: --enable_flashinfer_prefill
331324

332-
推理后端将为预填充使用 flashinfer 的注意力 kernel
333-
334-
.. option:: --enable_flashinfer_decode
325+
.. option:: --llm_prefill_att_backend
326+
327+
设置预填充(Prefill)阶段使用的注意力后端。可选值为:
328+
329+
* ``auto``: 自动选择最佳后端(默认值),优先级为 fa3 > flashinfer > triton
330+
* ``fa3``: 使用 Flash-Attention 3 后端
331+
* ``flashinfer``: 使用 FlashInfer 后端
332+
* ``triton``: 使用 Triton 后端
333+
334+
.. option:: --llm_decode_att_backend
335+
336+
设置解码(Decode)阶段使用的注意力后端。可选值为:
335337

336-
推理后端将为解码使用 flashinfer 的注意力 kernel
338+
* ``auto``: 自动选择最佳后端(默认值),优先级为 fa3 > flashinfer > triton
339+
* ``fa3``: 使用 Flash-Attention 3 后端
340+
* ``flashinfer``: 使用 FlashInfer 后端
341+
* ``triton``: 使用 Triton 后端
337342

338-
.. option:: --enable_fa3
343+
.. option:: --llm_kv_type
339344

340-
推理后端将为预填充和解码使用 fa3 注意力 kernel
345+
推理后端使用什么类型的数据存储kv cache, 可选值为 "None", "int8kv", "int4kv", "fp8kv"
341346

342347
.. option:: --disable_cudagraph
343348

@@ -373,17 +378,14 @@ attention类型选择参数
373378
.. option:: --quant_type
374379

375380
量化方法,可选值:
376-
377-
* ``ppl-w4a16-128``
378-
* ``flashllm-w6a16``
379-
* ``ao-int4wo-[32,64,128,256]``
380-
* ``ao-int8wo``
381-
* ``ao-fp8w8a16``
382-
* ``ao-fp6w6a16``
381+
383382
* ``vllm-w8a8``
384383
* ``vllm-fp8w8a8``
385384
* ``vllm-fp8w8a8-b128``
385+
* ``deepgemm-fp8w8a8-b128``
386386
* ``triton-fp8w8a8-block128``
387+
* ``awq``
388+
* ``awq_marlin``
387389
* ``none`` (默认)
388390

389391
.. option:: --quant_cfg
@@ -395,13 +397,7 @@ attention类型选择参数
395397
.. option:: --vit_quant_type
396398

397399
ViT 量化方法,可选值:
398-
399-
* ``ppl-w4a16-128``
400-
* ``flashllm-w6a16``
401-
* ``ao-int4wo-[32,64,128,256]``
402-
* ``ao-int8wo``
403-
* ``ao-fp8w8a16``
404-
* ``ao-fp6w6a16``
400+
405401
* ``vllm-w8a8``
406402
* ``vllm-fp8w8a8``
407403
* ``none`` (默认)
@@ -447,10 +443,12 @@ MTP 多预测参数
447443

448444
.. option:: --mtp_mode
449445

450-
支持的 mtp 模式,建议使用 deepseekv3_eagle获得更好的性能体验,可选值:
446+
支持的 mtp 模式,建议使用 eagle_with_att获得更好的性能体验,可选值:
451447

452-
* ``deepseekv3_vanilla``
453-
* ``deepseekv3_eagle``
448+
* ``vanilla_with_att``
449+
* ``eagle_with_att``
450+
* ``vanilla_no_att``
451+
* ``eagle_no_att``
454452
* ``None``: 不启用 mtp(默认)
455453

456454
.. option:: --mtp_draft_model_dir

0 commit comments

Comments
 (0)