ymcui / Chinese-LLaMA-Alpaca-2

中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)
Apache License 2.0
7k stars 570 forks source link

什么导致chinese-alpaca-2-7b推理存在大量重复生成情况 呢 #568

Closed fxb392 closed 1 month ago

fxb392 commented 1 month ago

提交前必须检查以下项目

问题类型

None

基础模型

Chinese-Alpaca-2 (7B/13B)

操作系统

Linux

详细描述问题

# 请在此处粘贴
 伦敦地铁早高峰时段的拥堵情况?

伦敦地铁早高峰时段的拥堵情况? 伦敦地铁早高峰时段的拥堵情况是:
伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁早高峰时段的拥堵情况是:伦敦地铁
======================================
25 神圣的凯撒面对了什么样的危机?

神圣的凯撒面对了什么样的危机?凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的危机。凯撒在公元前48年的罗马共和国中,面临着一个巨大的

依赖情况(代码类问题务必提供)

accelerate                         0.29.3
alabaster                          0.7.12
anaconda-client                    1.9.0
anaconda-project                   0.10.1
anyio                              2.2.0
appdirs                            1.4.4
argh                               0.26.2
argon2-cffi                        20.1.0
arrow                              0.13.1
asn1crypto                         1.4.0
astroid                            2.6.6
astropy                            4.3.1
async-generator                    1.10
atomicwrites                       1.4.0
attrs                              21.2.0
autopep8                           1.5.7
Babel                              2.9.1
backcall                           0.2.0
backports.functools-lru-cache      1.6.4
backports.shutil-get-terminal-size 1.0.0
backports.tempfile                 1.0
backports.weakref                  1.0.post1
beautifulsoup4                     4.10.0
binaryornot                        0.4.4
bitarray                           2.3.0
bkcharts                           0.2
black                              19.10b0
bleach                             4.0.0
bokeh                              2.4.1
boto                               2.49.0
Bottleneck                         1.3.2
brotlipy                           0.7.0
cached-property                    1.5.2
certifi                            2021.10.8
cffi                               1.14.6
chardet                            4.0.0
charset-normalizer                 2.0.4
click                              8.0.3
cloudpickle                        2.0.0
clyent                             1.2.2
colorama                           0.4.4
conda-content-trust                0+unknown
conda-pack                         0.6.0
conda-package-handling             1.7.3
conda-repo-cli                     1.0.4
conda-verify                       3.4.2
contextlib2                        0.6.0.post1
cookiecutter                       1.7.2
cryptography                       3.4.8
cycler                             0.10.0
Cython                             0.29.24
cytoolz                            0.11.0
daal4py                            2021.3.0
dask                               2021.10.0
debugpy                            1.4.1
decorator                          5.1.0
defusedxml                         0.7.1
diff-match-patch                   20200713
distributed                        2021.10.0
docutils                           0.17.1
einops                             0.8.0
entrypoints                        0.3
et-xmlfile                         1.1.0
fastcache                          1.1.0
filelock                           3.3.1
flake8                             3.9.2
Flask                              1.1.2
fonttools                          4.25.0
fsspec                             2024.3.1
future                             0.18.2
gevent                             21.8.0
glob2                              0.7
gmpy2                              2.0.8
greenlet                           1.1.1
h5py                               3.3.0
HeapDict                           1.0.1
html5lib                           1.1
huggingface-hub                    0.22.2
idna                               3.2
imagecodecs                        2021.8.26
imageio                            2.9.0
imagesize                          1.2.0
importlib-metadata                 4.8.1
inflection                         0.5.1
iniconfig                          1.1.1
intervaltree                       3.1.0
ipykernel                          6.4.1
ipython                            7.29.0
ipython-genutils                   0.2.0
ipywidgets                         7.6.5
isort                              5.9.3
itsdangerous                       2.0.1
jdcal                              1.4.1
jedi                               0.18.0
jeepney                            0.7.1
Jinja2                             3.0.0
jinja2-time                        0.2.0
joblib                             1.1.0
json5                              0.9.6
jsonschema                         3.2.0
jupyter                            1.0.0
jupyter-client                     6.1.12
jupyter-console                    6.4.0
jupyter-core                       4.8.1
jupyter-server                     1.4.1
jupyterlab                         3.2.1
jupyterlab-pygments                0.1.2
jupyterlab-server                  2.8.2
jupyterlab-widgets                 1.0.0
keyring                            23.1.0
kiwisolver                         1.3.1
lazy-object-proxy                  1.6.0
libarchive-c                       2.9
llvmlite                           0.37.0
locket                             0.2.1
lxml                               4.6.3
MarkupSafe                         2.1.5
matplotlib                         3.4.3
matplotlib-inline                  0.1.2
mccabe                             0.6.1
mistune                            0.8.4
mkl-fft                            1.3.1
mkl-random                         1.2.2
mkl-service                        2.4.0
mock                               4.0.3
more-itertools                     8.10.0
mpmath                             1.2.1
msgpack                            1.0.2
multipledispatch                   0.6.0
munkres                            1.1.4
mypy-extensions                    0.4.3
navigator-updater                  0.2.1
nbclassic                          0.2.6
nbclient                           0.5.3
nbconvert                          6.1.0
nbformat                           5.1.3
nest-asyncio                       1.5.1
networkx                           2.6.3
nltk                               3.6.5
nose                               1.3.7
notebook                           6.4.5
numba                              0.54.1
numexpr                            2.7.3
numpy                              1.23.1
numpydoc                           1.1.0
olefile                            0.46
openpyxl                           3.0.9
packaging                          21.0
pandas                             1.3.4
pandocfilters                      1.4.3
parso                              0.8.2
partd                              1.2.0
path                               16.0.0
pathlib2                           2.3.6
pathspec                           0.7.0
patsy                              0.5.2
peft                               0.10.0
pep8                               1.7.1
pexpect                            4.8.0
pickleshare                        0.7.5
Pillow                             8.4.0
pip                                21.2.4
pkginfo                            1.7.1
pluggy                             0.13.1
ply                                3.11
poyo                               0.5.0
prometheus-client                  0.11.0
prompt-toolkit                     3.0.20
protobuf                           5.26.1
psutil                             5.8.0
ptyprocess                         0.7.0
py                                 1.10.0
pycodestyle                        2.7.0
pycosat                            0.6.3
pycparser                          2.20
pycurl                             7.44.1
pydocstyle                         6.1.1
pyerfa                             2.0.0
pyflakes                           2.3.1
Pygments                           2.10.0
PyJWT                              2.1.0
pylint                             2.9.6
pyls-spyder                        0.4.0
pyodbc                             4.0.0-unsupported
pyOpenSSL                          21.0.0
pyparsing                          3.0.4
pyrsistent                         0.18.0
PySocks                            1.7.1
pytest                             6.2.4
python-dateutil                    2.8.2
python-lsp-black                   1.0.0
python-lsp-jsonrpc                 1.0.0
python-lsp-server                  1.2.4
python-slugify                     5.0.2
pytz                               2021.3
PyWavelets                         1.1.1
pyxdg                              0.27
PyYAML                             6.0
pyzmq                              22.2.1
QDarkStyle                         3.0.2
qstylizer                          0.1.10
QtAwesome                          1.0.2
qtconsole                          5.1.1
QtPy                               1.10.0
regex                              2021.8.3
requests                           2.26.0
rope                               0.19.0
Rtree                              0.9.7
ruamel-yaml-conda                  0.15.100
safetensors                        0.4.3
scikit-image                       0.18.3
scikit-learn                       0.24.2
scikit-learn-intelex               2021.20210714.170444
scipy                              1.7.1
seaborn                            0.11.2
SecretStorage                      3.3.1
Send2Trash                         1.8.0
sentencepiece                      0.2.0
setuptools                         58.0.4
simplegeneric                      0.8.1
singledispatch                     3.7.0
sip                                4.19.13
six                                1.16.0
sniffio                            1.2.0
snowballstemmer                    2.1.0
sortedcollections                  2.1.0
sortedcontainers                   2.4.0
soupsieve                          2.2.1
Sphinx                             4.2.0
sphinxcontrib-applehelp            1.0.2
sphinxcontrib-devhelp              1.0.2
sphinxcontrib-htmlhelp             2.0.0
sphinxcontrib-jsmath               1.0.1
sphinxcontrib-qthelp               1.0.3
sphinxcontrib-serializinghtml      1.1.5
sphinxcontrib-websupport           1.2.4
spyder                             5.1.5
spyder-kernels                     2.1.3
SQLAlchemy                         1.4.22
statsmodels                        0.12.2
sympy                              1.9
tables                             3.6.1
TBB                                0.2
tblib                              1.7.0
terminado                          0.9.4
testpath                           0.5.0
text-unidecode                     1.3
textdistance                       4.2.1
threadpoolctl                      2.2.0
three-merge                        0.1.1
tifffile                           2021.7.2
tinycss                            0.4
tokenizers                         0.19.1
toml                               0.10.2
toolz                              0.11.1
torch                              1.13.1+git7d2dd01.abi1.dtk2310
torchvision                        0.14.1+gitf78f29f.abi1.dtk2310.torch1.13
tornado                            6.1
tqdm                               4.62.3
traitlets                          5.1.0
transformers                       4.40.1
typed-ast                          1.4.3
typing-extensions                  3.10.0.2
ujson                              4.0.2
unicodecsv                         0.14.1
Unidecode                          1.2.0
urllib3                            1.26.7
watchdog                           2.1.3
wcwidth                            0.2.5
webencodings                       0.5.1
Werkzeug                           2.0.2
wheel                              0.37.0
whichcraft                         0.6.1
widgetsnbextension                 3.5.1
wrapt                              1.12.1
wurlitzer                          2.1.1
xlrd                               2.0.1
XlsxWriter                         3.0.1
xlwt                               1.3.0
xmltodict                          0.12.0
yapf                               0.31.0
zict                               2.0.0
zipp                               3.6.0
zope.event                         4.5.0
zope.interface                     5.4.0

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
ymcui commented 1 month ago

先把问题背景描述清楚,都不知道你用什么工具做的推理,运行的命令是什么。

fxb392 commented 1 month ago

model_name_or_path="./chinese-alpaca-2-7b/" test_data_path="./test_datas2.jsonl" inference_datas="./output/test_data_chinese-alpaca-2_base.xlsx" temperature=None top_p=None do_sample=False use_adapter=False def init_model(use_adapter=use_adapter): print("init model ...") tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="auto", trust_remote_code=True, torch_dtype=torch.float16) model = model.eval()

if use_adapter:
    model=PeftModel.from_pretrained(model,adapter_name_or_path)
return model, tokenizer

def get_test_data(file_path): datas_list=[] with open(file_path,'r',encoding='utf-8') as f: for row in f: row_json=json.loads(row) datas_list.append(row_json['instruction'])

return datas_list

def inference(): model, tokenizer = init_model() print(model.device) print("data_path:",test_data_path) datas_test=get_test_data(test_data_path) datas_test_response=[] for i,prompt in enumerate(datas_test): print(i,prompt)

----------------AI-ModelScope/chinese-alpaca-2-7b start---------------------

    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

    # outputs = model.generate(**inputs, max_new_tokens=50)
    outputs = model.generate(**inputs,max_new_tokens=1024)
    response=tokenizer.decode(outputs[0], skip_special_tokens=True)
    print()
    #------------------AI-ModelScope/chinese-alpaca-2-7b end---------------------
    print(response)

pd.DataFrame(datas_test_response).to_excel(inference_datas)`

上面是有关的代码。 在曙光DCU上做的推理,使用代码参考了modelscope仓库中的示例(https://www.modelscope.cn/models/AI-ModelScope/chinese-alpaca-2-7b/summary) 改动了model.generate(**inputs,max_new_tokens=1024)中的max_new_tokens,从50改为了1024. 运行命令直接 写了main函数 python 文件名.py 抱歉,上面代码我调不好格式。

ymcui commented 1 month ago

你指向的:https://www.modelscope.cn/models/AI-ModelScope/chinese-alpaca-2-7b/summary 并不是我们的官方目录。 我们自己的inference脚本在,正常推理一般不会出现你列出的问题:https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/blob/main/scripts/inference/inference_hf.py 说明在:https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/wiki/inference_with_transformers_zh

至于是不是DCU的问题,需要你们自己debug了。

fxb392 commented 1 month ago

ok,感谢您!

Wilmido commented 1 month ago

我推测此问题出在你使用的是alpaca模型,所以在推理前缺少prompt模板 可以尝试在prompt之前加上generate_prompt合并模板

def generate_prompt(instruction, system_prompt=DEFAULT_SYSTEM_PROMPT):
    return TEMPLATE.format_map({'instruction': instruction,'system_prompt': system_prompt})
input = generate_prompt(instruction=prompt)
fxb392 commented 1 month ago

确实是这个原因,文档中也有说明,感谢! --with_prompt:是否将输入与prompt模版进行合并。如果加载Alpaca模型,请务必启用此选项!