InternLM / InternLM/lmdeploy

使用turbomind部署CodeQwen1.5模型,推理效果变差

Open
#1,580 5 comments 0 reactions 1 assignee Claimed by @lvhan028 View on GitHub
Dominant language
Python
Stars
8.1k
Forks
748
Avg merge
6d 2h
Merged PRs (30d)
54

Description

本地环境:
cuda: 11.8
python: 3.11
transformers: 4.39.3
lmdeploy: 0.4.0
torch: 2.2.1

----------------------------------------------------------------

问题描述:
我使用以下命令启动部署了CodeQwen1.5-7b模型的服务,在测试的过程中发现。模型推理生成的回复相较于从本地直接使用huggingface transformers加载推理的结果,效果肉眼可见的变差,推理生成的回复中频繁出现循环重复的情况。
启动命令:
`lmdeploy serve api_server ./CodeQwen1.5-7B/ --server-name 0.0.0.0 --server-port 8001 --session-len 4096 --max-batch-size 10 --tp 2`

--------------------------------------------------------------------

对比实例如下:
输入:
```
prompt = """
def bubble_sort(nums):
#获取数组的长度"""
```

方式1:使用huggingface transformers 本地加载推理
结果:
```
length = len(nums)
# 遍历数组的长度
for i in range(length-1):
# 遍历当前元素到最后一个
for j in range(length-i-1):
# 如果当前元素大于后面的元素, 进行交换
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums

arr = [6, 7, 2, 9, 11, 1, 8]
bubble_sort(arr)
print(arr)
```

方式2:使用lmdeploy serve api_server命令部署服务,并用APIClient调用做推理,推理参数如下:
```
for item in api_client.completions_v1(
prompt=prompt,
model="qwen",
max_tokens=128,
temperature=0.8,
top_p=0.85,
top_k=1,
stream=False,
session_id=-1,
ignore_eos=False,
n=1,
):
........
```

结果:
```
length = len(nums)
# 遍历数组
for i in range(length):
#遍历数组
for j in range(length):
# 获取数组
if j < length:
# 获取数组
if j < length:
#获取数组
if j < length:
#获取数组
if j < length:
#获取数组
.......
```

-----------------------------------------------------

我另使用codellam-7b模型在同样的环境下,同样的命令,同样的调用方式做了对比,不会像CodeQwen1.5-7b模型一样出现循环重复的情况,我使用多个例子做了测试,结果多有类似上面的情况。
以上即是问题描述,盼回复,谢谢~

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.