Sentence Transformers: multi-qa-mpnet-base-dot-v1
Sentence Transformers multi-qa-mpnet-base-dot-v1 koduje pytania i fragmenty w wektory o 768 wymiarach do wyszukiwania semantycznego. Używa agregacji CLS i nieznormalizowanych osadzeń do oceniania iloczynem skalarnym, z limitem wejścia 512 fragmentów słów.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
multi-qa-mpnet-base-dot-v1 to model Sentence Transformers zaprojektowany do wyszukiwania fragmentów tekstu dla pytania lub zapytania. W treningu wykorzystano około 215 milionów par pytanie–odpowiedź. Każde wejście staje się gęstym wektorem o 768 wymiarach, a agregacja CLS i ocenianie iloczynem skalarnym definiują to konkretne wydanie.
Przygotuj pytanie i proponowane fragmenty
Zapisz zapytanie jako potrzebę informacyjną i przygotuj wpisy korpusu jako czytelne fragmenty tekstu. Na przykład pytanie o zmianę adresu dostawy można porównać z osobnymi akapitami o zmianie adresu, anulowaniu zamówienia i śledzeniu dostawy. Zachowaj istotne warunki we fragmencie zmiany adresu, w tym informację, czy zamówienie zostało już wysłane.
Koduj zapytanie i fragmenty tym samym modelem. Opublikowany przykład robi to bezpośrednio, bez prefiksu query/document, i sortuje fragmenty według ocen iloczynu skalarnego. Zachowaj każdy wektor powiązany z oryginalnym fragmentem i identyfikatorem dokumentu, aby uporządkowany wynik mógł pokazać rzeczywiście zindeksowany materiał.
Agregacja CLS i wydanie z iloczynem skalarnym
Referencyjna receptura modelu bierze reprezentację pierwszego tokenu, co określa się jako agregację CLS. Tabela techniczna wyraźnie podaje, że osadzenia nie są normalizowane, i wskazuje iloczyn skalarny jako odpowiednią funkcję oceniania. Zachowaj tę recepturę podczas przygotowywania zbioru i strony zapytań.
Normalizowanie tych wektorów metodą L2 zmienia geometrię oceniania. Znormalizowany profil all-mpnet-base-v2 używa innej receptury i jest osobnym punktem kontrolnym, mimo wspólnej rodziny MPNet i wyjścia o 768 składowych. Zachowaj dokładne wydanie i funkcję porównania z przechowywanym zbiorem, zamiast wybierać je na podstawie samej długości wektora.
Limit długości i dłuższe fragmenty
Podany limit wejścia wynosi 512 fragmentów słów; dłuższy tekst jest przycinany. Producent zaznacza również, że wejścia treningowe sięgały jedynie 250 fragmentów słów i że dłuższy tekst może działać słabiej. Długość wejścia akceptowana przez tokenizer i zastrzeżenie dotyczące długości wejść treningowych opisują więc różne praktyczne granice.
Dla dużego artykułu pomocy przygotuj krótkie sekcje odpowiadające na konkretne pytania. Zachowaj nagłówek, gdy identyfikuje temat, i regułę z wyjątkiem potrzebnym do poprawnego odczytania. Jedno wejście obejmujące całą stronę może stracić późniejszy materiał przez przycięcie, a zbyt mały fragment — warunek, który czyni go użytecznym.
Wykorzystaj ranking w wyszukiwaniu i RAG
Gęste wektory wspierają pierwszy etap wyszukiwania. Zwróć proponowane fragmenty z najwyższymi ocenami i odniesieniami do źródeł, a następnie sprawdź, czy odpowiadają na rzeczywiste pytanie. W procesie RAG dostarcz je do etapu pisania odpowiedzi jako materiał źródłowy; samo wyszukiwanie nie pisze odpowiedzi.
Używaj reprezentatywnych pytań ze znanymi istotnymi fragmentami do wyboru liczby wyników i oceny rankingu. Uwzględnij przykłady o podobnym słownictwie, ale różnej intencji, na przykład modyfikację adresu i wyświetlenie aktualnego adresu. Interpretuj oceny względem kandydatów przy tym samym modelu i konfiguracji oceniania, a nie jako skalibrowane prawdopodobieństwa poprawności.
Użyteczne wyjście tego punktu kontrolnego to przestrzeń osadzeń pytań i fragmentów do wyszukiwania semantycznego. Nieznormalizowane wektory, agregacja CLS, ocena iloczynem skalarnym i opublikowane zastrzeżenie dotyczące długiego wejścia to szczegóły, które należy zachować przy przygotowaniu i używaniu wyników.
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings sentence-transformers/multi-qa-mpnet-base-dot-v1
sentence-transformers/multi-qa-mpnet-base-dot-v1
sentence-transformers/multi-qa-mpnet-base-dot-v1Start
Sentence Transformers multi-qa-mpnet-base-dot-v1 koduje pytania i fragmenty w wektory o 768 wymiarach do wyszukiwania semantycznego. Używa agregacji CLS i nieznormalizowanych osadzeń do oceniania iloczynem skalarnym, z limitem wejścia 512 fragmentów słów.
- Akceptowane dane wejściowe
- Tekst · token_ids
- Wyniki
- embedding
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings
- Wejście
text,token_ids- Wyjście
embedding- Format wyjściowy
- json
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity sentence-transformers/multi-qa-mpnet-base-dot-v1 | Domyślnie— |
Poleinput | Typstring|string[]|integer[]|integer[][] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 Warunki: Niepusta, jednorodna partia danych. Identyfikatory tokenów są nieujemnymi liczbami całkowitymi. Budżet wejścia: Maksimum: 512 · Jednostka tekstu: bajty UTF8 · Jednostka tokenów: elementy tablicy tokenów | Domyślnie— |
Poleencoding_format | Typstring | WymaganieOpcjonalne | Wartości i limity float | Domyślniefloat |
Poledimensions | Typinteger | WymaganieNieobsługiwane | Wartości i limity Minimum: 1 | Domyślnie— |
Poleuser | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Polesession_id | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poletrace | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poleprovider | Typobject | WymaganieOpcjonalne | Wartości i limity Warunki: Odrzucono provider.options | Domyślnie— |
Kombinacje materiałów wejściowych
text_to_embedding
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, input |
Parametrinput_shapes | Kontraktstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parametrencoding_format | Kontraktfloat |
Parametrdimensions_override | Kontraktfalse |
Parametrmax_input_budget_units | Kontrakt512 |
Parametrmultimodal_objects | Kontraktfalse |
Parametrmaterial_types | Kontrakttext, token_ids |
Cykl życia: synchronous_json
Zachowaj indeks i liczbę wymiarów każdego wektora.
Nawet jeśli nazwa modelu wskazuje na multimodalność, ta konkretna ścieżka nie obsługuje obiektów obrazów.
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
| Konfiguracja | Tabela stawek | Opłata |
|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Opłata Wejście · Tokeny wejściowe $0.00001 / 1K tokenów Wyjście · Tokeny wyjściowe $0 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Reprezentacje wektorowe
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "sentence-transformers/multi-qa-mpnet-base-dot-v1", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='sentence-transformers/multi-qa-mpnet-base-dot-v1',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
Odbieranie i zapisywanie wyników
Ailoot Ultra · Reprezentacje wektorowe
json
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj każdy wektor wraz z jego indeksem. Liczba wektorów musi być równa liczbie elementów wejściowych; wszystkie wektory muszą mieć tę samą liczbę wymiarów.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Nie wprowadzono endpointu zadań generowania osadzeń.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleobject | Typstring |
Polemodel | Typstring |
Poledata[].index | Typinteger |
Poledata[].embedding | Typfinite float[] |
Poleusage | Typobject |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra sentence-transformers/multi-qa-mpnet-base-dot-v1
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Sentence Transformers: multi-qa-mpnet-base-dot-v1
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:text,token_ids→embedding- Jakich pól używa żądanie?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:model,input,encoding_format,provider- Jakie limity obowiązują?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:input.budget.maximum:512(bajty UTF8);input.min_items:1