Views
No views yet
all-mpnet-base-v2 as a ColBERT.pip install neural-cherche1from neural_cherche import models, retrieve
2import torch
3
4device = "cuda" if torch.cuda.is_available() else "cpu"
5batch_size = 32
6
7documents = [
8 {"id": 0, "document": "Food"},
9 {"id": 1, "document": "Sports"},
10 {"id": 2, "document": "Cinema"},
11]
12
13queries = ["Food", "Sports", "Cinema"]
14
15model = models.ColBERT(
16 model_name_or_path="raphaelsty/neural-cherche-colbert",
17 device=device,
18)
19
20retriever = retrieve.ColBERT(
21 key="id",
22 on=["document"],
23 model=model,
24)
25
26documents_embeddings = retriever.encode_documents(
27 documents=documents,
28 batch_size=batch_size,
29)
30
31retriever = retriever.add(
32 documents_embeddings=documents_embeddings,
33)
34
35queries_embeddings = retriever.encode_queries(
36 queries=queries,
37 batch_size=batch_size,
38)
39
40scores = retriever(
41 queries_embeddings=queries_embeddings,
42 batch_size=batch_size,
43 k=3,
44)
45
46scores1from neural_cherche import models, rank, retrieve
2import torch
3
4device = "cuda" if torch.cuda.is_available() else "cpu"
5batch_size = 32
6
7documents = [
8 {"id": "doc1", "title": "Paris", "text": "Paris is the capital of France."},
9 {"id": "doc2", "title": "Montreal", "text": "Montreal is the largest city in Quebec."},
10 {"id": "doc3", "title": "Bordeaux", "text": "Bordeaux in Southwestern France."},
11]
12
13queries = [
14 "What is the capital of France?",
15 "What is the largest city in Quebec?",
16 "Where is Bordeaux?",
17]
18
19retriever = retrieve.TfIdf(
20 key="id",
21 on=["title", "text"],
22)
23
24model = models.ColBERT(
25 model_name_or_path="raphaelsty/neural-cherche-colbert",
26 device=device,
27)
28
29ranker = rank.ColBERT(
30 key="id",
31 on=["title", "text"],
32 model=model
33)
34
35retriever_documents_embeddings = retriever.encode_documents(
36 documents=documents,
37)
38
39retriever.add(
40 documents_embeddings=retriever_documents_embeddings,
41)
42
43ranker_documents_embeddings = ranker.encode_documents(
44 documents=documents,
45 batch_size=batch_size,
46)
47
48retriever_queries_embeddings = retriever.encode_queries(
49 queries=queries,
50)
51
52ranker_queries_embeddings = ranker.encode_queries(
53 queries=queries,
54 batch_size=batch_size,
55)
56
57candidates = retriever(
58 queries_embeddings=retriever_queries_embeddings,
59 k=1000,
60)
61
62scores = ranker(
63 documents=candidates,
64 queries_embeddings=ranker_queries_embeddings,
65 documents_embeddings=ranker_documents_embeddings,
66 k=100,
67 batch_size=32,
68)
69
70scores