zjunlp / IEPile

[ACL 2024] IEPile: A Large-Scale Information Extraction Corpus
http://oneke.openkg.cn/
Other
169 stars 16 forks source link

huggingface上的这个代码示例有点问题 #6

Closed iris-qq closed 7 months ago

iris-qq commented 7 months ago

` model = AutoModelForCausalLM.from_pretrained( model_path, config=config, load_in_4bit=True, device_map="auto", quantization_config=quantization_config, torch_dtype=torch.bfloat16, trust_remote_code=True, )

`

我在做量化加载的时候按照示例代码就会一直报错 ValueError: You can't passload_in_4bitorload_in_8bitas a kwarg when passingquantization_configargument at the same time. 看了好几眼都是有这个参数的,后来查阅,发现quantization_config里使用load_in_4bit即可,需要删除模型加载里的load_in_4bit=True即可正常加载,hf没有issues,就发在这好了

guihonghao commented 7 months ago

感谢您的提醒,我们将作出相应的修改。

iris-qq commented 7 months ago

有个关于模型效果的问题,我在测试的时候发现似乎是有点过拟合的现象,无论我怎么调整prompt,模型都不能按照我要的格式来返回 'REzh': """你是专门进行关系抽取的专家。请从input中抽取出符合schema定义的关系三元组,不存在的关系返回空列表。请按照JSON字符串的格式回答。 例如:周星驰在1970年导演了《功夫》,同时兼任主演,schema:["导演", "主演"]。返回:[{"head":"周星驰", "relation":"导演", "tail":"功夫"},{"head":"周星驰", "relation":"主演", "tail":"功夫"}]。""" 其返回的结果一直都是这种格式 { "code": 0, "msg": "", "output": "{\"合适剂量\": [{\"subject\": \"阿司匹林\", \"object\": \"50~650 mg/d\"}, {\"subject\": \"阿司匹林\", \"object\": \"75~ 150 mg/d\"}], \"抑制\": [], \"平均剂量\": []}" }

chatgpt给出的结果是这样 image 这个结果是我需要的那种类型,请问有什么方式,我可以让baichuan13b+lora这个返回类似的效果呢,请赐教

guihonghao commented 7 months ago

我们的训练数据中只涉及了一种输出格式,即

{\"合适剂量\": [{\"subject\": \"阿司匹林\", \"object\": \"50~650 mg/d\"}, {\"subject\": \"阿司匹林\", \"object\": \"75~ 150 mg/d\"}], \"抑制\": [], \"平均剂量\": []}" } 

这种格式,且每种任务使用的指令也只有一种,例如关系抽取的指令是:“你是专门进行关系抽取的专家。请从input中抽取出符合schema定义的关系三元组,不存在的关系返回空列表。请按照JSON字符串的格式回答。”。

因此可能对于指令存在过拟合现象,不能很好的改变输出格式。建议使用固定的指令模版。我们的下一版本模型已针对这一问题进行改进。

iris-qq commented 7 months ago

好的,期待新版本,close了