From ef89201e5b6a12c93b0023f4aa0abe1d2154edb7 Mon Sep 17 00:00:00 2001 From: shiyu22 Date: Tue, 20 Jun 2023 18:51:57 +0800 Subject: [PATCH] Update README Signed-off-by: shiyu22 --- README.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++- rerank.py | 4 +-- result.png | Bin 0 -> 47924 bytes 3 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 result.png diff --git a/README.md b/README.md index bfb4515..b76441f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,86 @@ -# rerank +# Rerank QA Content +## Description + +The Rerank operator is used to reorder the list of relevant documents for a query. It uses the [MS MARCO Cross-Encoders](https://www.sbert.net/docs/pretrained_cross-encoders.html#ms-marco) model to get the relevant scores and then reorders the documents. + +
+ + + +## Code Example + +- Run with ops + +```Python +from towhee import ops + +op = ops.rerank() +res = op('What is Towhee?', + ['Towhee is Towhee is a cutting-edge framework to deal with unstructure data.', 'I do not know about towhee', 'Towhee has many powerful operators.', 'The weather is good' ], + 0) +``` + +- Run a pipeline + +```python +from towhee import ops, pipe, DataCollection + +p = (pipe.input('query', 'doc', 'threshold') + .map(('query', 'doc', 'threshold'), ('doc', 'score'), ops.rerank()) + .flat_map(('doc', 'score'), ('doc', 'score'), lambda x, y: [(i, j) for i, j in zip(x, y)]) + .output('query', 'doc', 'score') + ) + +DataCollection(p('What is Towhee?', + ['Towhee is Towhee is a cutting-edge framework to deal with unstructure data.', 'I do not know about towhee', 'Towhee has many powerful operators.', 'The weather is good' ], + 0) + ).show() +``` + + + +
+ + + +## Factory Constructor + +Create the operator via the following factory method + +***towhee.rerank(model_name: str = 'cross-encoder/ms-marco-MiniLM-L-12-v2')*** + +**Parameters:** + + ***model_name***: str + +​ The model name of CrossEncoder, you can set it according to the [Model List](https://www.sbert.net/docs/pretrained-models/ce-msmarco.html#models-performance). + +
+ + + +## Interface + +This operator is used to sort the documents of the query content and return the score, and can also set a threshold to filter the results. + +**Parameters:** + + ***query***: str + + The query content. + +​ ***docs***: list + + A list of sentences to check the correlation with the query content. + +​ ***threshold***: float + +​ The threshold for filtering with score, defaults to none, i.e., no filtering. + + +
+ +**Return**: List[str], List[float] + +The list of documents after rerank and the list of corresponding scores. \ No newline at end of file diff --git a/rerank.py b/rerank.py index 59acaa6..ff8f233 100644 --- a/rerank.py +++ b/rerank.py @@ -6,7 +6,7 @@ from towhee.operator import NNOperator class ReRank(NNOperator): - def __init__(self, model_name: str = 'cross-encoder/ms-marco-MiniLM-L-6-v2'): + def __init__(self, model_name: str = 'cross-encoder/ms-marco-MiniLM-L-12-v2'): super().__init__() self._model_name = model_name self._model = CrossEncoder(self._model_name, max_length=1000) @@ -20,4 +20,4 @@ class ReRank(NNOperator): else: re_docs = [docs[i] for i in re_ids if scores[i] >= threshold] re_scores = [scores[i] for i in re_ids if scores[i] >= threshold] - return re_docs, re_scores \ No newline at end of file + return re_docs, re_scores diff --git a/result.png b/result.png new file mode 100644 index 0000000000000000000000000000000000000000..d8416e5b23bc34735d562d1a732f5c1dabcfdc56 GIT binary patch literal 47924 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 z zYNOF}V21BA*99DbP`DK4>uSYH_$WUd_YnD33!fCNdQY^YBtkrtgp2mAYtt(56W4t8 z`G8&Qn1Ii;u2uB4n#xNWXJ&r6clS&MC~o}lO3z(SqLjWmkqE)sxYx6NKk_<^E34DJ zuhmTDL}%;2sMXd*S_LEYb;>|PEzE@awL|pU2W1!FCN%`VW3j$F)vL8V{D*IJSmsA~ zJUAEXesjOZP6-xg)@Zwjx2hgLTwBY(lr%Yv`rs${y|)2%n_pr=4IVz^;o%O#Vig2jK%Jt;zqaql+7BRnhrB5(5spu=^@(G4LH*&7ybh8>=Wm)SEC;PNji@1K)x< z4bwL@JpSlY(XL%1xTne&qsv__bqMJ><>hx_sH5)!GD+Sg+SAiQf~_T|`*ZEn_7QBW zW&F_}gh&a-E)uie^=v=g+ugOu;rWuMO{tMWl)buY)*ev5R`KyyyG8K`J%{^t<6Q8u z30`dNd+UwS-2&Zm^f%{vuz#Bcu2*Z;?~Yp;d;|FYYus7ruQiIw#`JTu;8diCUkI|J zL6z{d-h+NI^lZi=vb^73J~Nrtf2ZAX*Efu1=G`=4F5C*ws4rIU=_>0>L8#nYQBxQL z0(@4#K`c6EYUL@l##0m}Citx+x>oER=W4YZ%)K&C$3!4$#T!U zu$;A|j=>p0S^+e?8v?Vpvq1XPSP1pYnm=}yNP`5(rfPC+Q~oOu#oQaOtLcAfu<6-f zIa!GcDos}cyb`WEQ%=agiT#S>!5?WJetXV;aVr@?S+W|}7&(EQEL-F^W&Gs%@2~qk zc-`DZI)w$yRZoEK>2FeH%_2?4qd%OVpMmPuKk;3Cx&U$GT=8Qn)$=b_WX~7FsCWMr zUS^j^{QTcQF}(Z$6q9K72Oj-bd{%ma4Ccdk7cVD^*g9Gp1OI&Vf3@Uu09BR4L&f*d#h` ntNJ7Va~pL3Pr4%XocI=Qi8vvc`w