flax-sentence-embeddings/st-codesearch-distilroberta-base
flax-sentence-embeddings
Similitud de oraciones
Este es un modelo de sentence-transformers: mapas de oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y se puede usar para tareas como agrupación o búsqueda semántica. Fue entrenado en el conjunto de datos code_search_net y se puede utilizar para buscar código de programa dado un texto.
Como usar
from sentence_transformers import SentenceTransformer, util
# Esta lista define los diferentes códigos de programa
code = ["""def sort_list(x):
return sorted(x)""",
"""def count_above_threshold(elements, threshold=0):
counter = 0
for e in elements:
if e > threshold:
counter += 1
return counter""",
"""def find_min_max(elements):
min_ele = 99999
max_ele = -99999
for e in elements:
if e < min_ele:
min_ele = e
if e > max_ele:
max_ele = e
return min_ele, max_ele"""]
model = SentenceTransformer("flax-sentence-embeddings/st-codesearch-distilroberta-base")
# Codificar nuestro código en el espacio vectorial
code_emb = model.encode(code, convert_to_tensor=True)
# Demo interactiva: Ingrese consultas, y el método devuelve la mejor función de las
# 3 funciones que definimos
while True:
query = input("Consulta: ")
query_emb = model.encode(query, convert_to_tensor=True)
hits = util.semantic_search(query_emb, code_emb)[0]
top_hit = hits[0]
print("Cossim: {:.2f}".format(top_hit['score']))
print(code[top_hit['corpus_id']])
print("\n\n")
Funcionalidades
- Transformadores de oraciones
- Espacio vectorial denso de 768 dimensiones
- Tareas de agrupación
- Búsqueda semántica
- Entrenado en el conjunto de datos code_search_net
Casos de uso
- Agrupación de oraciones
- Búsqueda semántica
- Extracción de características
- Emparejamiento de oraciones
- Búsqueda de código de programa