zjunlp / IEPile

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

模型的合并 #14

Closed wuQi-666 closed 6 months ago

wuQi-666 commented 6 months ago

你好,想要使用发布的基于IEPile训练的两个模型baichuan2-13b-iepile-lora 和 llama2-13b-iepile-lora 直接部署使用,这两个文件是微调后的lora文件,想借助firefly框架中的合并方式,将lora微调后的文件和原基座模型进行合并,但是出现如下的错误, image

guihonghao commented 6 months ago
tokenizer = AutoTokenizer.from_pretrained(
        adapter_name_or_path,
        trust_remote_code=True,
        # llama不支持fast
        use_fast=False if config.model_type == 'llama' else True
    )

这个应该是

tokenizer = AutoTokenizer.from_pretrained(
        model_name_or_path,
        trust_remote_code=True,
        # llama不支持fast
        use_fast=False if config.model_type == 'llama' else True
    )

我们新开源的信息抽取底座大模型模型 https://github.com/zjunlp/DeepKE/blob/main/example/llm/OneKE.md 效果更好,功能更强,HuggingFace, ModelScope, WiseModel 支持在三大开源平台下载,欢迎使用。

wuQi-666 commented 6 months ago

谢谢,请问提供的新开源的信息抽取底座模型OneKE,是否有已经微调好的模型,和是否有对外提供api方式的代码?

wuQi-666 commented 6 months ago

想使用一下

wuQi-666 commented 6 months ago

firefly框架中合并基座模型和lora微调后模型中的代码如下所示 image 项目链接:https://github.com/yangjianxin1/Firefly

guihonghao commented 6 months ago

谢谢,请问提供的新开源的信息抽取底座模型OneKE,是否有已经微调好的模型,和是否有对外提供api方式的代码?

OneKE已经经过大量的信息抽取指令数据微调(全参数微调),相当于合并lora后的模型,,支持直接使用和部署。

guihonghao commented 6 months ago

你可以参考 https://github.com/zjunlp/KnowLM/blob/main/README_ZH.md#12-%E6%A8%A1%E5%9E%8B%E4%BD%BF%E7%94%A8 💻1.2 模型使用 2. 预训练模型使用 部署网页版使用 vllm部署请参考 4. vLLM API服务

wuQi-666 commented 6 months ago

好的,谢谢你的帮助,我尝试使用OneKE的效果

wuQi-666 commented 6 months ago

你好,请教一个问题,我使用IEPile数据集在这个项目上使用qwen1.5-14b-chat的基座模型进行微调的,微调后使用得到的checkpoint进行和基座模型合并,借助的是firefly中的合并代码,代码如上所示,运行仍然报错 Qwen1.5-14B-Chat-v1/checkpoint-79505 does not appear to have a file named config.json. 把基座模型qwen1.5-14b-chat中的config.json文件放在checkpoint中仍然不能正常运行,请问这个错误是什么原因?

guihonghao commented 6 months ago

从之前的截图看,是在加载tokenizer中出了问题,你把保存tokenizer那行代码去掉,把关于tokenizer的文件手动复制过去。

wuQi-666 commented 6 months ago

谢谢你,按照你这个方式进行修改,问题已经解决 `tokenizer = AutoTokenizer.from_pretrained( model_name_or_path, trust_remote_code=True,

llama不支持fast

    use_fast=False if config.model_type == 'llama' else True
)`