PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
12.11k stars 2.94k forks source link

neural_search ranking里的model_name_or_path 和params_path可以只设置一个吗? #3819

Closed MengZou0905 closed 1 year ago

MengZou0905 commented 1 year ago

你好,我试着运行了代码。指定了model_name_or_path后,代码会自动下载对应的模型到默认路径里,下载的模型通过from_pretrained方法被加载。为什么随后还要设置params_path呢?并且这个params_path会通过set_dict加载到模型里。

不明白model_name_or_path 和params_path分别是做什么的,对应需要提供什么文件。代码例子见:https://github.com/PaddlePaddle/PaddleNLP/blob/develop/applications/neural_search/ranking/cross_encoder/predict.py

w5688414 commented 1 year ago

是可以的,确保model_name_or_path里面需要包含model_config.json, vocab.txt等文件

MengZou0905 commented 1 year ago

可是,我打印了加载model_name_or_path后的模型参数,以及加载了model_name_or_path和params_path的模型参数,发现参数是不一样的。。。 我可不可以理解成model_name_or_path对应的文件是训练起点模型的参数,params_path对应的文件才真正在特定任务上finetune之后的参数?

w5688414 commented 1 year ago

可是,我打印了加载model_name_or_path后的模型参数,以及加载了model_name_or_path和params_path的模型参数,发现参数是不一样的。。。 我可不可以理解成model_name_or_path对应的文件是训练起点模型的参数,params_path对应的文件才真正在特定任务上finetune之后的参数?

可以的,model_name_or_path用来加载模型的配置和tokenizer的配置,params_path是加载训练好的模型的参数

MengZou0905 commented 1 year ago

可是,我打印了加载model_name_or_path后的模型参数,以及加载了model_name_or_path和params_path的模型参数,发现参数是不一样的。。。 我可不可以理解成model_name_or_path对应的文件是训练起点模型的参数,params_path对应的文件才真正在特定任务上finetune之后的参数?

可以的,model_name_or_path用来加载模型的配置和tokenizer的配置,params_path是加载训练好的模型的参数

如果把model_name_or_path设置成“ernie-3.0-medium-zh”,不设置params_path,这时候模型的参数会被设置成ernie-3.0-medium-zh对应的参数吗?还是说仅仅将模型的层数,大小等配置设置成和ernie-3.0-medium-zh一样,但是参数是随机的?(毕竟没有设置params_path)

w5688414 commented 1 year ago

可是,我打印了加载model_name_or_path后的模型参数,以及加载了model_name_or_path和params_path的模型参数,发现参数是不一样的。。。 我可不可以理解成model_name_or_path对应的文件是训练起点模型的参数,params_path对应的文件才真正在特定任务上finetune之后的参数?

可以的,model_name_or_path用来加载模型的配置和tokenizer的配置,params_path是加载训练好的模型的参数

如果把model_name_or_path设置成“ernie-3.0-medium-zh”,不设置params_path,这时候模型的参数会被设置成ernie-3.0-medium-zh对应的参数吗?还是说仅仅将模型的层数,大小等配置设置成和ernie-3.0-medium-zh一样,但是参数是随机的?(毕竟没有设置params_path)

会初始化相应的参数,训练的时候参数会被设置成跟ernie-3.0-medium-zh一样的,预测的时候也会初始化一遍参数,不过参数又会被params_path的模型参数覆盖

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 60 days with no activity. 当前issue 60天内无活动,被标记为stale。

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale. 当前issue 被标记为stale已有14天,即将关闭。