Open treya-lin opened 1 year ago
Quick update:
请问如下布局正确吗?LexiLaw_finetune 目录放进 model, 改名 LexiLaw;LexiLaw_lora 目录改名为adapter 放进 model下, LexiLaw_ptuning 目录改名 ptuning,放在主目录下?
# tree -L 1 model/LexiLaw ptuning model/adapter
model/LexiLaw
├── config.json
├── configuration_chatglm.py
├── generation_config.json
├── ice_text.model
├── modeling_chatglm.py
├── pytorch_model-00001-of-00002.bin
├── pytorch_model-00002-of-00002.bin
├── pytorch_model.bin.index.json
├── quantization.py
├── test_modeling_chatglm.py
├── tokenization_chatglm.py
├── tokenizer_config.json
└── trainer_state.json
ptuning
└── pytorch_model.bin
model/adapter
├── adapter_config.json
└── adapter_model.bin
另外: 运行前记得先修改环境变量!
export PYTHONPATH=$PWD/src:$PYTHONPATH
我不确定ptuning和lora我的运行方法是否有误,ptuning目前报错,lora感觉效果比文档差。
python inference_finetune.py
运行成功
推理结果和文档比较相近。
Input: 谁可以申请撤销监护人的监护资格?
谁可以申请撤销监护人的监护资格? 根据《民法典-总则》的规定,未成年人的父母是未成年人的监护人。未成年人的父母已经死亡或者没有监护能力的,由下列有监护能力的人按顺序担任监护人:(一)祖父母、外祖父母;(二)兄、姐;(三)其他愿意担任监护人的个人或者组织,但是须经未成年人住所地的居民委员会、村民委员会或者民政部门同意。对监护人的确定有争议的,由被监护人住所地的居民委员会、村民委员会或者民政部门指定监护人,有关当事人对指定不服的,可以向人民法院申请指定监护人;有关当事人也可以直接向人民法院申请指定监护人。居民委员会、村民委员会、民政部门或者人民法院应当尊重被监护人的真实意愿,按照最有利于被监护人的原则在依法具有监护资格的人中指定监护人。监护人被指定后,不得擅自变更;擅自变更的,不免除被指定的监护人的责任。
Input: 施工方超过国家规定标准排放噪声,是否应当承担责任?
施工方超过国家规定标准排放噪声,是否应当承担责任? 根据《中华人民共和国环境保护法》和《中华人民共和国建筑法》等相关法律法规,施工方超过国家规定标准排放噪声,应当承担相应的法律责任。具体责任大小需要根据实际情况进行判断,建议相关当事人寻求专业法律意见。
python inference_ptuning.py
not yet
Error log
# python inference_ptuning.py
===================================BUG REPORT=================================== Welcome to bitsandbytes. For bug reports, please run
python -m bitsandbytes
bin /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda116.so
/opt/conda/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py:145: UserWarning: WARNING: The following directories listed in your path were found to be non-existent: {PosixPath('/usr/local/nvidia/lib'), PosixPath('/usr/local/nvidia/lib64')}
warn(msg)
/opt/conda/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py:145: UserWarning: /usr/local/nvidia/lib:/usr/local/nvidia/lib64 did not contain ['libcudart.so', 'libcudart.so.11.0', 'libcudart.so.12.0'] as expected! Searching further paths...
warn(msg)
CUDA_SETUP: WARNING! libcudart.so not found in any environmental path. Searching in backup paths...
/opt/conda/lib/python3.10/site-packages/bitsandbytes/cuda_setup/main.py:145: UserWarning: Found duplicate ['libcudart.so', 'libcudart.so.11.0', 'libcudart.so.12.0'] files: {PosixPath('/usr/local/cuda/lib64/libcudart.so'), PosixPath('/usr/local/cuda/lib64/libcudart.so.11.0')}.. We'll flip a coin and try one of these, in order to fail forward.
Either way, this might cause trouble in the future:
If you get CUDA error: invalid device function
errors, the above might be the cause and the solution is to make sure only one ['libcudart.so', 'libcudart.so.11.0', 'libcudart.so.12.0'] in the paths that we search based on your env.
warn(msg)
CUDA SETUP: CUDA runtime path found: /usr/local/cuda/lib64/libcudart.so
CUDA SETUP: Highest compute capability among GPUs detected: 8.0
CUDA SETUP: Detected CUDA version 116
CUDA SETUP: Loading binary /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda116.so...
The argument trust_remote_code
is to be used with Auto classes. It has no effect here and is ignored.
Loading checkpoint shards: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:06<00:00, 3.37s/it]
Some weights of the model checkpoint at model/LexiLaw were not used when initializing ChatGLMForConditionalGeneration: ['lm_head.0.weight']
python inference_lora.py
可以运行,但是模型的输出和文档里面的差别较大,
Input: 谁可以申请撤销监护人的监护资格?
谁可以申请撤销监护人的监护资格? 被监护人的父母、子女、配偶、成年近亲属、监护人、组织或有关个人,以及民政部门可以申请撤销监护人的监护资格。被撤销监护人资格的父母,应当另行确定监护人。
Input: 施工方超过国家规定标准排放噪声,是否应当承担责任? 施工方超过国家规定标准排放噪声,是否应当承担责任? 根据《社会法-特种设备安全监督检查办法》第十九条规定,违反本办法第八十九条的规定,违反本办法第十九条的规定,违反本办法第十九条的规定,构成犯罪的,依法追究刑事责任。因此,施工方应当承担违反国家规定标准排放噪声的法律责任。
lora这个推理结果好像不如文档里显示的好,知道是为什么吗?是我运行的方式有问题吗?
另外,我之前没有用过lora,请教一下,请问这种运行方式,从这个脚本的参数看:
argparser.add_argument("--base_model", type=str, default="model/LexiLaw") argparser.add_argument("--adapter", type=str, default="model/adapter")
是指将 lexilaw_finetune 模型作为base_model,lexilaw_lora 作为 adapter吗?我这样放是对的吗?还是说我其实应该将 chatglm-6b作为base,然后adapter用lexilaw_lora 才对...
alright, 我试了一下 inference_lora.py 以 chatglm-6b 为base,这次好像好多了,但是法条的引用还是和文档不太一样呢。
$ python inference_lora.py --base_model model/chatglm-6b Input: 谁可以申请撤销监护人的监护资格? 谁可以申请撤销监护人的监护资格? 1、被撤销监护人的,自撤销监护人资格之日起,由监护人依法向人民法院申请撤销监护人资格。2、法律依据:《中华人民共和国民法通则》第一百四十九条被撤销监护人的,自撤销监护人资格之日起,由监护人依法向人民法院申请撤销监护人资格。
Input: 施工方超过国家规定标准排放噪声,是否应当承担责任? 施工方超过国家规定标准排放噪声,是否应当承担责任? 施工方超过国家规定标准排放噪声,属于违反《中华人民共和国环境噪声法》的相关规定,应当承担相应的法律责任。根据《中华人民共和国环境噪声法》第一条规定,“环境噪声污染是中华人民共和国公民、法人和其他组织共同面临的严重问题,必须依法予以解决。任何组织和个人不得非法干扰、破坏生态环境,不得非法排放、处置、利用噪声。任何组织和个人不得非法收集、利用噪声。任何组织和个人不得非法向环境噪声污染的排放源、排放点排放噪声,不得向噪声排放源、排放点排放含有高噪声的固体、液体、气体、流体等噪声源的固体、液体、气体、流体等噪声。任何组织和个人不得以任何形式向噪声排放源、排放点排放含有高噪声的固体、液体、气体、流体等噪声源的固体、液体、气体、流体等噪声。任何组织和个人不得以任何形式向噪声排放源、排放点排放含有高噪声的固体、液体、气体、流体等噪声源的固体、液体、气体、流体等噪声。任何组织和个人不得以任何形式向噪声排放源、排放点排放含有高噪声的固体、液体、气体、流体等噪声源的固体、液体、气体、流体等噪声
问题有点多,谢谢!
没事,lora应该是chatglm-6B作为推导,inference_ptuning好像有点问题,我之后再检查更新一下
没事,lora应该是chatglm-6B作为推导,inference_ptuning好像有点问题,我之后再检查更新一下
好的,所以lora的正确用法是这样吗?
python inference_lora.py --base_model model/chatglm-6b
同时 model/chatglm-6b 和 model/adapter(实为 lexilaw_lora) 里面是这样的内容,对吗?
model/chatglm-6b
|-- LICENSE
|-- MODEL_LICENSE
|-- README.md
|-- config.json
|-- configuration_chatglm.py
|-- ice_text.model
|-- modeling_chatglm.py
|-- pytorch_model-00001-of-00008.bin
|-- pytorch_model-00002-of-00008.bin
|-- pytorch_model-00003-of-00008.bin
|-- pytorch_model-00004-of-00008.bin
|-- pytorch_model-00005-of-00008.bin
|-- pytorch_model-00006-of-00008.bin
|-- pytorch_model-00007-of-00008.bin
|-- pytorch_model-00008-of-00008.bin
|-- pytorch_model.bin.index.json
|-- quantization.py
|-- test_modeling_chatglm.py
|-- tokenization_chatglm.py
`-- tokenizer_config.json
model/adapter
|-- adapter_config.json
`-- adapter_model.bin
没事,lora应该是chatglm-6B作为推导,inference_ptuning好像有点问题,我之后再检查更新一下
好的,所以lora的正确用法是这样吗?
python inference_lora.py --base_model model/chatglm-6b
同时 model/chatglm-6b 和 model/adapter(实为 lexilaw_lora) 里面是这样的内容,对吗?
model/chatglm-6b |-- LICENSE |-- MODEL_LICENSE |-- README.md |-- config.json |-- configuration_chatglm.py |-- ice_text.model |-- modeling_chatglm.py |-- pytorch_model-00001-of-00008.bin |-- pytorch_model-00002-of-00008.bin |-- pytorch_model-00003-of-00008.bin |-- pytorch_model-00004-of-00008.bin |-- pytorch_model-00005-of-00008.bin |-- pytorch_model-00006-of-00008.bin |-- pytorch_model-00007-of-00008.bin |-- pytorch_model-00008-of-00008.bin |-- pytorch_model.bin.index.json |-- quantization.py |-- test_modeling_chatglm.py |-- tokenization_chatglm.py `-- tokenizer_config.json model/adapter |-- adapter_config.json `-- adapter_model.bin
你好,请问是不是要装chatglm-6b进去项目里面才能使用。
没事,lora应该是chatglm-6B作为推导,inference_ptuning好像有点问题,我之后再检查更新一下
好的,所以lora的正确用法是这样吗?
python inference_lora.py --base_model model/chatglm-6b
同时 model/chatglm-6b 和 model/adapter(实为 lexilaw_lora) 里面是这样的内容,对吗?
model/chatglm-6b |-- LICENSE |-- MODEL_LICENSE |-- README.md |-- config.json |-- configuration_chatglm.py |-- ice_text.model |-- modeling_chatglm.py |-- pytorch_model-00001-of-00008.bin |-- pytorch_model-00002-of-00008.bin |-- pytorch_model-00003-of-00008.bin |-- pytorch_model-00004-of-00008.bin |-- pytorch_model-00005-of-00008.bin |-- pytorch_model-00006-of-00008.bin |-- pytorch_model-00007-of-00008.bin |-- pytorch_model-00008-of-00008.bin |-- pytorch_model.bin.index.json |-- quantization.py |-- test_modeling_chatglm.py |-- tokenization_chatglm.py `-- tokenizer_config.json model/adapter |-- adapter_config.json `-- adapter_model.bin
你好,请问是不是要装chatglm-6b进去项目里面才能使用。
Hi. 如果是使用lexilaw_lora方法的话需要也下载chatglm-6b模型。如果是用lexilaw_finetune的话不需要另外下载chatglm-6b
@treya-lin
python inference_ptuning.py
的方式,我也遇到类似的问题,把https://github.com/CSHaitao/LexiLaw/blob/main/inference_ptuning.py#L44-L56
改为下面这种方式应该就能运行了,你可以试试。
config = AutoConfig.from_pretrained(args.base_model, trust_remote_code=True)
config.pre_seq_len = 128
config.prefix_projection = True
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_path, config=config, trust_remote_code=True)
new_prefix_state_dict = {}
prefix_state_dict = torch.load(args.ptuning)
for k, v in prefix_state_dict.items():
new_prefix_state_dict[k[len("transformer.prefix_encoder."):]] = v
model.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)
同问,模型文件不知道咋放的,大佬解决没?麻烦告知下。
没事,lora应该是chatglm-6B作为推导,inference_ptuning好像有点问题,我之后再检查更新一下
好的,所以lora的正确用法是这样吗?
python inference_lora.py --base_model model/chatglm-6b
同时 model/chatglm-6b 和 model/adapter(实为 lexilaw_lora) 里面是这样的内容,对吗?
model/chatglm-6b |-- LICENSE |-- MODEL_LICENSE |-- README.md |-- config.json |-- configuration_chatglm.py |-- ice_text.model |-- modeling_chatglm.py |-- pytorch_model-00001-of-00008.bin |-- pytorch_model-00002-of-00008.bin |-- pytorch_model-00003-of-00008.bin |-- pytorch_model-00004-of-00008.bin |-- pytorch_model-00005-of-00008.bin |-- pytorch_model-00006-of-00008.bin |-- pytorch_model-00007-of-00008.bin |-- pytorch_model-00008-of-00008.bin |-- pytorch_model.bin.index.json |-- quantization.py |-- test_modeling_chatglm.py |-- tokenization_chatglm.py `-- tokenizer_config.json model/adapter |-- adapter_config.json `-- adapter_model.bin
你好,请问是不是要装chatglm-6b进去项目里面才能使用。
Hi. 如果是使用lexilaw_lora方法的话需要也下载chatglm-6b模型。如果是用lexilaw_finetune的话不需要另外下载chatglm-6b
啊,我用的是lexilaw_finetune的模型然后运行的lora🤣,先看看效果吧,不行我就换chatglm-6b的模型
大佬们解决了吗
Hi,可以分享一下你的 model 下的目录文件层级具体是怎样吗?如果可以直接
tree -L 2 model/LexiLaw
看一下开发者本地文件层级是怎样就好了,谢谢!我目前是这样:
文档里说的我有点没太明白。
意思是 LexiLaw_finetune 文件里我需要放入 chatglm-6b内除bin文件以外的所有文件吗?那么另外两个 LexiLaw_ptuning 和 LexiLaw_lora 呢?
另外,
model/LexiLaw
主目录下还需要别的什么文件吗?