이것은 내가 영국의 아서 안데르센 사업부의 파트너인 짐 와디아를 아서 안데르센 경영진이 선택한 것보다 래리 웨인바흐를 안데르센 월드와이드의 경영 파트너로 승계하기 위해 안데르센 컨설팅 사업부(현재의 엑센츄어라고 알려져 있음)의 전 관리 파트너인 조지 샤힌에 대한 지지를 표명했을 때 가장 명백했다.
한 여자가 물 한 잔을 마시고 있다.
한 여성이 담배를 피우면서 청구서를 지불하는 것을 압도했다.
source_sentence
sentences
루이 15세의 소수 민족인 프랑스의 리젠트인 필리프 도를레앙 시대에는 악명 높은 오르가즘의 현장이었다.
필립 도린스는 루이 15세가 70대였을 때 섭정이었다.
행복한 어린 소년이 커다란 엘모 인형이 있는 의자에 앉아 있다.
필리프 도를레앙 시대에는 그곳에서 많은 유명한 오르가즘이 일어났다.
source_sentence
sentences
두 남자가 안에서 일하고 있다
국립공원에서 가장 큰 마을인 케스윅의 인구는 매년 여름 등산객, 뱃사람, 관광객이 도착함에 따라 증가한다.
두 남자가 축구 경기를 보고 간식을 먹는다.
두 남자가 집에 타일을 깔았다.
sentence-similarity
name
results
upskyy/e5-base-korean
task
dataset
metrics
type
name
semantic-similarity
Semantic Similarity
name
type
sts dev
sts-dev
type
value
name
pearson_cosine
0.8593935914692068
Pearson Cosine
type
value
name
spearman_cosine
0.8572594228080116
Spearman Cosine
type
value
name
pearson_manhattan
0.8217336375412545
Pearson Manhattan
type
value
name
spearman_manhattan
0.8280050978871264
Spearman Manhattan
type
value
name
pearson_euclidean
0.8208931119126335
Pearson Euclidean
type
value
name
spearman_euclidean
0.8277058727421436
Spearman Euclidean
type
value
name
pearson_dot
0.8187961699085111
Pearson Dot
type
value
name
spearman_dot
0.8236175658758088
Spearman Dot
type
value
name
pearson_max
0.8593935914692068
Pearson Max
type
value
name
spearman_max
0.8572594228080116
Spearman Max
upskyy/e5-base-korean
This model is korsts and kornli finetuning model from intfloat/multilingual-e5-base. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
fromsentence_transformersimportSentenceTransformer# Download from the 🤗 Hubmodel=SentenceTransformer("upskyy/e5-base-korean")# Run inferencesentences=['아이를 가진 엄마가 해변을 걷는다.','두 사람이 해변을 걷는다.','한 남자가 해변에서 개를 산책시킨다.',]embeddings=model.encode(sentences)print(embeddings.shape)# [3, 768]# Get the similarity scores for the embeddingssimilarities=model.similarity(embeddings,embeddings)print(similarities.shape)# [3, 3]
Usage (HuggingFace Transformers)
Without sentence-transformers, you can use the model like this:
First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
fromtransformersimportAutoTokenizer,AutoModelimporttorch# Mean Pooling - Take attention mask into account for correct averagingdefmean_pooling(model_output,attention_mask):token_embeddings=model_output[0]# First element of model_output contains all token embeddingsinput_mask_expanded=attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()returntorch.sum(token_embeddings*input_mask_expanded,1)/torch.clamp(input_mask_expanded.sum(1),min=1e-9)# Sentences we want sentence embeddings forsentences=["안녕하세요?","한국어 문장 임베딩을 위한 버트 모델입니다."]# Load model from HuggingFace Hubtokenizer=AutoTokenizer.from_pretrained("upskyy/e5-base-korean")model=AutoModel.from_pretrained("upskyy/e5-base-korean")# Tokenize sentencesencoded_input=tokenizer(sentences,padding=True,truncation=True,return_tensors="pt")# Compute token embeddingswithtorch.no_grad():model_output=model(**encoded_input)# Perform pooling. In this case, mean pooling.sentence_embeddings=mean_pooling(model_output,encoded_input["attention_mask"])print("Sentence embeddings:")print(sentence_embeddings)
@article{wang2024multilingual,title={Multilingual E5 Text Embeddings: A Technical Report},author={Wang, Liang and Yang, Nan and Huang, Xiaolong and Yang, Linjun and Majumder, Rangan and Wei, Furu},journal={arXiv preprint arXiv:2402.05672},year={2024}}
@inproceedings{reimers-2019-sentence-bert,title="Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",author="Reimers, Nils and Gurevych, Iryna",booktitle="Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",month="11",year="2019",publisher="Association for Computational Linguistics",url="https://arxiv.org/abs/1908.10084",}