Baichuan-7B 是否有embeddings模型释放出来

ha5z0ras  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(111)

所需先决条件

问题

你好,我想问一下,是否像open ai一样,有相关的embeddings模型释放出来
最好支持批量和单个输入文本两个方法:
1、embed_documents(texts: List[str]) -> List[List[float]]
2、embed_query(text: str) -> List[float]

待办事项

  • 我已在上面提供了所有相关且必要的信息。
  • 我已为这个问题选择了合适的标题。
ibrsph3r

ibrsph3r1#

如果要进行 Embeddings QA,那么 Embeddings 模型并不需要与基础模型相同,可以选择其他开源的 Embeddings 实现。目前效果较好的是:https://huggingface.co/moka-ai/m3e-base。你也可以使用 OpenAI 的 Embedding API。

hkmswyz6

hkmswyz62#

开源的测试了不少了,没有一个效果能在真实产品上使用,主要有两个原因:
1、几乎开源的都是句子级别的Embeddings
2、相似度排序效果上都存在一些问题,肉眼看着比较像的句子排序在top3之后
有记录的测试包括以下模型
shibing624/text2vec-base-chinese
GanymedeNil/text2vec-large-chinese
moka-ai/m3e-small
moka-ai/m3e-base
nghuyong/ernie-3.0-nano-zh
nghuyong/ernie-3.0-base-zh
效果明显高出一大截的还是openai的Embeddings,但是无法本地化
期待大模型的副产品Embeddings模型也释放出来
如果是做 Embeddings QA的话,Embeddings 模型没必要和基础模型相同,找一个其他的开源 Embeddings 的实现就行了。
目前效果比较好的是: https://huggingface.co/moka-ai/m3e-base
你用 OpenAI的Embedding API 也可以。

jogvjijk

jogvjijk3#

LLM 模型的 embedding 不需要单独找,本身就可以很方便地使用,就是那个 Tokenizer。但是 LLM 模型自带的 embeddings 和你想要的 embedding 是两码事,需要专门针对这个场景进行重新的训练才可以,不是直接用 LLM 自带的。

相关的文章:

这个 embedding 模型并不是大模型的副产品,它只是利用了大模型的预训练语料库而已,实际上就是一个单独的模型。

请教一下,如果我想用 LLM 模型获取一个句子的 embedding,该如何操作得到呢?比如获取模型最后一层的 hidden_states 来作为 embedding 么?

inn6fuwd

inn6fuwd4#

LLM 模型的 embedding 不需要单独找,本身就可以很方便地使用,就是那个 Tokenizer。但是 LLM 模型自带的 embeddings 和你想要的 embedding 是两码事,需要专门针对这个场景进行重新的训练才可以,不是直接用 LLM 自带的。

相关的文章:

这个 embedding 模型并不是大模型的副产品,它只是利用了大模型的预训练语料库而已,实际上就是一个单独的模型。

请教一下,如果我想用 LLM 模型获取一个句子的 embedding,该如何操作得到呢?比如获取模型最后一层的 hidden_states 来作为 embedding 么?

嗯,我写这篇文章的时候理解还比较浅。获取最后一层隐藏层就可以。encoder 模型的话,可以选 CLS token 的向量表示,因为它具备整个句子的语义。decoder 模型的话,可以选最后一个 token 或者所有 token 的平均。这里有一个专门训练的模型,你看下他的示例代码。

cbjzeqam

cbjzeqam5#

想问一下,一般embedding模型和普通的文本类输出模型是什么关系?是训练一个好的embedding基座,之后的chat 模型可以基于这个embedding模型进行微调吗?

相关问题