模型:
hkunlp/instructor-xl
任务:
句子相似度语言:
en其他:
t5 text-embedding embeddings information-retrieval beir 文本分类 language-model text-clustering text-semantic-similarity text-evaluation prompt-retrieval text-reranking 特征提取 English Sentence Similarity natural_questions ms_marco fever hotpot_qa mteb Eval Results Sentence+Similarity text-generation-inference预印本库:
arxiv:2212.09741许可:
apache-2.0我们介绍了 Instructor ??,一种经过指导微调的文本嵌入模型,可以通过简单提供任务说明(例如分类、检索、聚类、文本评估等)和领域(例如科学、金融等),生成适合任何任务和领域的文本嵌入。Instructor? 实现了 70 个多样的嵌入任务中的sota!该模型很容易使用,配合我们定制的 sentence-transformer 库使用。更多详情,请查看 our paper 和 project page !
**************************** 更新 ****************************
pip install InstructorEmbedding
然后,您可以像这样使用模型来计算领域特定和任务感知的嵌入:
from InstructorEmbedding import INSTRUCTOR model = INSTRUCTOR('hkunlp/instructor-xl') sentence = "3D ActionSLAM: wearable person tracking in multi-floor environments" instruction = "Represent the Science title:" embeddings = model.encode([[instruction,sentence]]) print(embeddings)
如果您想为特定的句子计算自定义嵌入,可以按照统一的模板来编写指令:
Represent the domain text_type for task_objective :
您还可以使用模型计算两组句子之间的相似度,使用自定义嵌入。
from sklearn.metrics.pairwise import cosine_similarity sentences_a = [['Represent the Science sentence: ','Parton energy loss in QCD matter'], ['Represent the Financial statement: ','The Federal Reserve on Wednesday raised its benchmark interest rate.']] sentences_b = [['Represent the Science sentence: ','The Chiral Phase Transition in Dissipative Dynamics'], ['Represent the Financial statement: ','The funds rose less than 0.5 per cent on Friday']] embeddings_a = model.encode(sentences_a) embeddings_b = model.encode(sentences_b) similarities = cosine_similarity(embeddings_a,embeddings_b) print(similarities)
您还可以使用自定义嵌入进行信息检索。
import numpy as np from sklearn.metrics.pairwise import cosine_similarity query = [['Represent the Wikipedia question for retrieving supporting documents: ','where is the food stored in a yam plant']] corpus = [['Represent the Wikipedia document for retrieval: ','Capitalism has been dominant in the Western world since the end of feudalism, but most feel[who?] that the term "mixed economies" more precisely describes most contemporary economies, due to their containing both private-owned and state-owned enterprises. In capitalism, prices determine the demand-supply scale. For example, higher demand for certain goods and services lead to higher prices and lower demand for certain goods lead to lower prices.'], ['Represent the Wikipedia document for retrieval: ',"The disparate impact theory is especially controversial under the Fair Housing Act because the Act regulates many activities relating to housing, insurance, and mortgage loans—and some scholars have argued that the theory's use under the Fair Housing Act, combined with extensions of the Community Reinvestment Act, contributed to rise of sub-prime lending and the crash of the U.S. housing market and ensuing global economic recession"], ['Represent the Wikipedia document for retrieval: ','Disparate impact in United States labor law refers to practices in employment, housing, and other areas that adversely affect one group of people of a protected characteristic more than another, even though rules applied by employers or landlords are formally neutral. Although the protected classes vary by statute, most federal civil rights laws protect based on race, color, religion, national origin, and sex as protected traits, and some laws include disability status and other traits as well.']] query_embeddings = model.encode(query) corpus_embeddings = model.encode(corpus) similarities = cosine_similarity(query_embeddings,corpus_embeddings) retrieved_doc_id = np.argmax(similarities) print(retrieved_doc_id)
使用自定义嵌入对文本进行聚类。
import sklearn.cluster sentences = [['Represent the Medicine sentence for clustering: ','Dynamical Scalar Degree of Freedom in Horava-Lifshitz Gravity'], ['Represent the Medicine sentence for clustering: ','Comparison of Atmospheric Neutrino Flux Calculations at Low Energies'], ['Represent the Medicine sentence for clustering: ','Fermion Bags in the Massive Gross-Neveu Model'], ['Represent the Medicine sentence for clustering: ',"QCD corrections to Associated t-tbar-H production at the Tevatron"], ['Represent the Medicine sentence for clustering: ','A New Analysis of the R Measurements: Resonance Parameters of the Higher, Vector States of Charmonium']] embeddings = model.encode(sentences) clustering_model = sklearn.cluster.MiniBatchKMeans(n_clusters=2) clustering_model.fit(embeddings) cluster_assignment = clustering_model.labels_ print(cluster_assignment)