Views
No views yet
1from sentence_transformers import SentenceTransformer, util
2
3
4#This list the defines the different programm codes
5code = ["""def sort_list(x):
6 return sorted(x)""",
7"""def count_above_threshold(elements, threshold=0):
8 counter = 0
9 for e in elements:
10 if e > threshold:
11 counter += 1
12 return counter""",
13"""def find_min_max(elements):
14 min_ele = 99999
15 max_ele = -99999
16 for e in elements:
17 if e < min_ele:
18 min_ele = e
19 if e > max_ele:
20 max_ele = e
21 return min_ele, max_ele"""]
22
23
24model = SentenceTransformer("flax-sentence-embeddings/st-codesearch-distilroberta-base")
25
26# Encode our code into the vector space
27code_emb = model.encode(code, convert_to_tensor=True)
28
29# Interactive demo: Enter queries, and the method returns the best function from the
30# 3 functions we defined
31while True:
32 query = input("Query: ")
33 query_emb = model.encode(query, convert_to_tensor=True)
34 hits = util.semantic_search(query_emb, code_emb)[0]
35 top_hit = hits[0]
36
37 print("Cossim: {:.2f}".format(top_hit['score']))
38 print(code[top_hit['corpus_id']])
39 print("\n\n")pip install -U sentence-transformers1from sentence_transformers import SentenceTransformer
2sentences = ["This is an example sentence", "Each sentence is converted"]
3
4model = SentenceTransformer('flax-sentence-embeddings/st-codesearch-distilroberta-base')
5embeddings = model.encode(sentences)
6print(embeddings)MultiDatasetDataLoader.MultiDatasetDataLoader of length 5371 with parameters:{'batch_size': 256}sentence_transformers.losses.MultipleNegativesRankingLoss.MultipleNegativesRankingLoss with parameters:{'scale': 20, 'similarity_fct': 'dot_score'}{
"callback": null,
"epochs": 1,
"evaluation_steps": 0,
"evaluator": "NoneType",
"max_grad_norm": 1,
"optimizer_class": "<class 'transformers.optimization.AdamW'>",
"optimizer_params": {
"lr": 2e-05
},
"scheduler": "warmupconstant",
"steps_per_epoch": 10000,
"warmup_steps": 500,
"weight_decay": 0.01
}SentenceTransformer(
(0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: RobertaModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
(2): Normalize()
)