FlagEmbedding
FlagEmbedding copied to clipboard
这里的代码是不是有问题?deocder和cls模式都去的是序号0的embedding。
def _pool(self, embeddings, attention_mask): if "mean" in self.pooling_method: embeddings = embeddings.masked_fill( ~attention_mask[..., None].bool(), 0.0) embedding = embeddings.sum( dim=1) / attention_mask.sum(dim=1, keepdim=True) elif "cls" in self.pooling_method: embedding = embeddings[:, 0] elif "decoder" in self.pooling_method: embedding = embeddings[:, 0] else: raise NotImplementedError( f"Pooling_method {self.pooling_method} not implemented!")
if "dense" in self.pooling_method:
embedding = self.dense_pooler(embedding)
return embedding
这里的代码是不是有问题?deocder和cls模式都去的是序号0的embedding。
https://github.com/FlagOpen/FlagEmbedding/blob/bc09ef57ef8bf605ed1490d985376646051ba21a/research/llm_embedder/src/retrieval/modeling_dense.py#L176
看这里的维度: https://github.com/FlagOpen/FlagEmbedding/blob/38f4bbf528c942724eeca9f694db5c9fe7513905/research/llm_embedder/src/retrieval/modeling_dense.py#L217-L223