wangyuxinwhy / uniem

unified embedding model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

embedder 引入了 新的参数 model_class,但没有正确的在Finetuner中传递。

FFengIll opened this issue · comments

🐛 bug 说明

embedder 引入了 新的参数 model_class,但没有正确的在Finetuner中传递。

Python Version

None

是的,这个是我在设计的时候刻意这么做的。我当时的决策是这样的:

  1. model_class 参数的引入,是为了兼容没有办法通过 AutoModel.from_pretrianed 来加载的模型,通过这个参数就可以显式的指定模型类别。
  2. Finetuner 主要的场景是微调 m3e-basem3e-small ,这两个模型都是可以通过 AutoModel.from_pretrianed 来加载的,为了减少用户的认知负担,所以没有进行传递。

请问,您是在使用的时候需要传递这个参数吗?我在做以上决策的时候是非常武断的,如果您有需求,我可以支持传递这个参数。

我从uniem发布开始,大致细看过3个版本,前后分别是加入了一段T5的判断,和修改成model_class
我之前很多代码是在 Sentence Transformers 上的,uniem比较吸引我的是包装了数据处理等流程。

如果说Finetuner着重于m3e,那我表示理解。

但如果uniem希望建立一套sentence transformers之上的工具,或许可以考虑更开放的模型支持(因为从实现上,这里的微调和从头训练已经很接近了)。

我尝试在decoder-only上做一些embedding的工作,所以做了些改动,更新时看到了model_class参数,故而提了这个issue。

以上可供您参考。

明白您的需求了,目前 uniem 的训练脚本 其实是可以直接训练 SGPT 的,只需要设置 model_class 和 bitfit 的参数。所以对于 uniem 现在的设计来讲,想要兼容 decoder-only 或者更多的模型,其实是没有什么大的困难。

您的建议非常好,我会尽快把这个参数加到 FineTuner 中。另外,我接下来也会优化这部分的设计,尽量让 uniem 在保持在低学习成本的约束下,兼容更多模型。

哈哈,主要 uniem 欠了好多债,SGPT 没测完,ReRaking 的模型没训练完,详细文档没有写。听说你有兴趣使用 uniem 来做你的工作,那太好了! 有啥问题和进展,直接和我说就好~

我写了一个最初版的实现在 finetuner-model-class 分支上,但是想要真正支持 sentence_transformers ,还是需要进一步开发~

我从uniem发布开始,大致细看过3个版本,前后分别是加入了一段T5的判断,和修改成model_class。 我之前很多代码是在 Sentence Transformers 上的,uniem比较吸引我的是包装了数据处理等流程。

如果说Finetuner着重于m3e,那我表示理解。

但如果uniem希望建立一套sentence transformers之上的工具,或许可以考虑更开放的模型支持(因为从实现上,这里的微调和从头训练已经很接近了)。

我尝试在decoder-only上做一些embedding的工作,所以做了些改动,更新时看到了model_class参数,故而提了这个issue。

以上可供您参考。

uniem 0.3.0 已经支持 sentence-transformers 了,整体代码的灵活性有了提升~ 如有问题,可以进一步沟通