togethercomputer/m2-bert-80M-2k-retrieval
Un checkpoint de 80M de M2-BERT, preentrenado con una longitud de secuencia de 2048, y ajustado para la recuperación de contexto largo. Consulta el documento Monarch Mixer: Una arquitectura GEMM basada en Sub-Cuadrática Simple y nuestra publicación en el blog sobre recuperación para más detalles de cómo entrenamos este modelo para secuencias largas.
Como usar
Puedes cargar este modelo usando Hugging Face AutoModel:
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"togethercomputer/m2-bert-80M-2k-retrieval",
trust_remote_code=True
)
Debes esperar ver un gran mensaje de error sobre parámetros no utilizados para FlashFFTConv.
Si deseas cargar el modelo con FlashFFTConv, puedes consultar nuestro GitHub.
Este modelo genera embeddings para recuperación. Los embeddings tienen una dimensionalidad de 768:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
max_seq_length = 2048
testing_string = "Every morning, I make a cup of coffee to start my day."
model = AutoModelForSequenceClassification.from_pretrained(
"togethercomputer/m2-bert-80M-2k-retrieval",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(
"bert-base-uncased",
model_max_length=max_seq_length
)
input_ids = tokenizer(
[testing_string],
return_tensors="pt",
padding="max_length",
return_token_type_ids=False,
truncation=True,
max_length=max_seq_length
)
outputs = model(**input_ids)
embeddings = outputs['sentence_embedding']
También puedes obtener embeddings de este modelo usando la API de Together de la siguiente manera (puedes encontrar tu clave API aquí):
import os
import requests
def generate_together_embeddings(text: str, model_api_string: str, api_key: str):
url = "https://api.together.xyz/api/v1/embeddings"
headers = {
"accept": "application/json",
"content-type": "application/json",
"Authorization": f"Bearer {api_key}"
}
session = requests.Session()
response = session.post(
url,
headers=headers,
json={
"input": text,
"model": model_api_string
}
)
if response.status_code != 200:
raise ValueError(f"Request failed with status code {response.status_code}: {response.text}")
return response.json()['data'][0]['embedding']
print(generate_together_embeddings(
'Hello world',
'togethercomputer/m2-bert-80M-2k-retrieval',
os.environ['TOGETHER_API_KEY'])[:10]
)
Funcionalidades
- Preentrenado con longitud de secuencia de 2048
- Optimizado para recuperación de contexto largo
- Genera embeddings con una dimensionalidad de 768
Casos de uso
- Recuperación de contexto largo