Baichuan-7B
Baichuan-7B copied to clipboard
是否有embeddings模型释放出来
Required prerequisites
- [X] I have read the documentation https://github.com/baichuan-inc/baichuan-7B/blob/HEAD/README.md.
- [X] I have searched the Issue Tracker and Discussions that this hasn't already been reported. (+1 or comment there if it has.)
- [x] Consider asking first in a Discussion.
Questions
你好,我想问下,是否像open ai一样,有相关的embeddings模型释放出来 最好支持批量和单个输入文本两个方法: 1、embed_documents(texts: List[str]) -> List[List[float]] 2、embed_query(text: str) -> List[float]
Checklist
- [X] I have provided all relevant and necessary information above.
- [X] I have chosen a suitable title for this issue.
如果是做 Embeddings QA的话,Embeddings 模型没必要和基础模型相同,找一个其他的开源 Embeddings 的实现就行了。
目前效果比较好的是:https://huggingface.co/moka-ai/m3e-base
你用 OpenAI的Embedding API 也可以。
开源的测试了不少了,没有一个效果能在真实产品上使用,主要有两个原因: 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 也可以。
LLM 模型的 embedding 不用单独找,本身就可以很方便的使用,就是那个 Tokenizer。
但是LLM 模型自带的 embeddings 和你想要的 embedding 是两码事,需要专门针对这个场景进行重新的训练才可以,不是直接用LLM自带的。
相关的文章:
- https://openai.com/blog/introducing-text-and-code-embeddings
- https://openai.com/blog/new-and-improved-embedding-model
这个 embedding 模型并不是大模型的副产品,它只是利用了大模型的预训练语料库而已,实际上就是一个单独的模型。
请教一下,如果我想用LLM模型获取一个句子的embedding,该如何操作得到呢?比如获取模型最后一层的hidden_states来作为embedding么?
LLM 模型的 embedding 不用单独找,本身就可以很方便的使用,就是那个 Tokenizer。 但是LLM 模型自带的 embeddings 和你想要的 embedding 是两码事,需要专门针对这个场景进行重新的训练才可以,不是直接用LLM自带的。 相关的文章:
- https://openai.com/blog/introducing-text-and-code-embeddings
- https://openai.com/blog/new-and-improved-embedding-model
这个 embedding 模型并不是大模型的副产品,它只是利用了大模型的预训练语料库而已,实际上就是一个单独的模型。
请教一下,如果我想用LLM模型获取一个句子的embedding,该如何操作得到呢?比如获取模型最后一层的hidden_states来作为embedding么?
嗯,我写这篇文章的时候理解还比较浅。
获取最后一层隐藏层就可以。encoder模型的话,可以选CLS token的向量表示,因为它具备整个句子的语义。 decoder 模型的话,可以选最后一个token或者所有token的平均。
这里有一个专门训练的模型,你看下他的实例代码。 https://huggingface.co/intfloat/e5-mistral-7b-instruct
想问一下,一般embedding模型和普通的文本类输出模型是什么关系?是训练一个好的embedding基座,之后的chat 模型可以基于这个embedding模型进行微调吗?