Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

embedding #1

Open
yangliuIOC opened this issue Apr 18, 2023 · 16 comments
Open

embedding #1

yangliuIOC opened this issue Apr 18, 2023 · 16 comments

Comments

@yangliuIOC
Copy link

为什么 我换成 sber的取embedding 效果差很多,

@yuanzhoulvpi2017
Copy link
Owner

  1. 可能是因为你的sbert的pool层不对。改一改pool层的参数,效果基本上就一样了
  2. 模型是不是也有差异

@yangliuIOC
Copy link
Author

其实 ,这就类似于用 sber进行召回,在排序,再用glm问答,感觉 主要是在召回这里 和排序,怎么能够更加准确,

@hjing100
Copy link

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

@yuanzhoulvpi2017
Copy link
Owner

其实 ,这就类似于用 sber进行召回,在排序,再用glm问答,感觉 主要是在召回这里 和排序,怎么能够更加准确,

是的,就是这个意思

@yangliuIOC
Copy link
Author

我看您直接去的第一列【:,0】,但是我用了 meanpooling 效果比这个要差。。

@yuanzhoulvpi2017
Copy link
Owner

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

  1. sbert对于【非sbert预训练模型】做的操作,也就是加了pool层。
  2. 本质都差不多的

@yuanzhoulvpi2017
Copy link
Owner

我看您直接去的第一列【:,0】,但是我用了 meanpooling 效果比这个要差。。

确实,meanpooling效果比较差,之前也是试过

@hjing100
Copy link

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

  1. sbert对于【非sbert预训练模型】做的操作,也就是加了pool层。
  2. 本质都差不多的

这样子啊,那如果换成sbert预训练的,或许效果会更好。
有一点疑问:如果 sbert对于【非sbert预训练模型】做的操作,这么做的意义在哪里?

@hjing100
Copy link

想顺便请教一下,在用pypdf包读取pdf文件时,遇到过GBK-EUC-H的warning吗

@yangliuIOC
Copy link
Author

我发现很多召回的句子里有问题的答案,也回答不出来了。,。。 不知道是不是因为您对text2chatglm 这里面的都已经去除标点符号了,加上了换行。

@yangliuIOC
Copy link
Author

想顺便请教一下,在用pypdf包读取pdf文件时,遇到过GBK-EUC-H的warning吗

没有

@yuanzhoulvpi2017
Copy link
Owner

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

  1. sbert对于【非sbert预训练模型】做的操作,也就是加了pool层。
  2. 本质都差不多的

这样子啊,那如果换成sbert预训练的,或许效果会更好。 有一点疑问:如果 sbert对于【非sbert预训练模型】做的操作,这么做的意义在哪里?

  1. 换成sbert并不会更好。sbert本质就是Transformers + pool层,我这里做的是一摸一样的。
  2. 建议你可以看看我之前写的知乎文章:Sentence Embedding 现在的 sota 方法是什么?
  3. 建议阅读sbert源码

@yangliuIOC
Copy link
Author

我把您的代码里面的去除标点符号那个删除了之后,发现好多都变好了。。。。

@yuanzhoulvpi2017
Copy link
Owner

yuanzhoulvpi2017 commented Apr 18, 2023

我发现很多召回的句子里有问题的答案,也回答不出来了。,。。 不知道是不是因为您对text2chatglm 这里面的都已经去除标点符号了,加上了换行。

这个说起来复杂:

  1. 转向量的时候,去掉特殊字符。
  2. 向上索引的时候,会向上索引整个段落。

看你需求吧,你觉得去掉好一点,就去掉。但是不建议去掉

@hjing100
Copy link

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

  1. sbert对于【非sbert预训练模型】做的操作,也就是加了pool层。
  2. 本质都差不多的

这样子啊,那如果换成sbert预训练的,或许效果会更好。 有一点疑问:如果 sbert对于【非sbert预训练模型】做的操作,这么做的意义在哪里?

  1. 换成sbert并不会更好。sbert本质就是Transformers + pool层,我这里做的是一摸一样的。
  2. 建议你可以看看我之前写的知乎文章:Sentence Embedding 现在的 sota 方法是什么?
  3. 建议阅读sbert源码

好的,感觉是基于bert预训练模型 只用了Sbert的pool操作,具体我再看看。
想之后试试shibing624/text2vec-base-chinese预训练模型

@yuanzhoulvpi2017
Copy link
Owner

看代码里好像是基于bert得到的embedding表示,不是Sbert预训练模型,或者可以试试Cosent

  1. sbert对于【非sbert预训练模型】做的操作,也就是加了pool层。
  2. 本质都差不多的

这样子啊,那如果换成sbert预训练的,或许效果会更好。 有一点疑问:如果 sbert对于【非sbert预训练模型】做的操作,这么做的意义在哪里?

  1. 换成sbert并不会更好。sbert本质就是Transformers + pool层,我这里做的是一摸一样的。
  2. 建议你可以看看我之前写的知乎文章:Sentence Embedding 现在的 sota 方法是什么?
  3. 建议阅读sbert源码

好的,感觉是基于bert预训练模型 只用了Sbert的pool操作,具体我再看看。 想之后试试shibing624/text2vec-base-chinese预训练模型

可以换试一试,后面可以同步一下效果

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants