Umieszczanie w interfejsie Gemini API

Usługa umieszczania w interfejsie Gemini API generuje najnowocześniejsze wektory dystrybucyjne pod kątem słów, wyrażeń i zdań. Uzyskane wektory dystrybucyjne mogą być następnie wykorzystywane do zadania związane z przetwarzaniem języka naturalnego (NLP), takie jak wyszukiwanie semantyczne, tekst; klasyfikację i grupowanie.

Na tej stronie omawiamy pokrótce reprezentacje właściwościowe i wyróżniamy najważniejsze przypadki użycia która pomoże Ci zacząć.

Czym są wektory dystrybucyjne?

Wektory dystrybucyjne tekstu to technika przetwarzania języka naturalnego (NLP), która polega na konwertowaniu tekstu na współrzędne liczbowe (nazywane wektorami), które można przedstawić w przestrzeni n-wymiarowej. Dzięki temu możesz traktować fragmenty tekstu jako danych relacyjnych, na których możemy trenować modele.

Wektory dystrybucyjne rejestrują znaczenie semantyczne i kontekst, w wyniku którego tekst tworzy się w przypadku podobnych znaczeń i zbliżonych reprezentacji właściwościowych. Na przykład zdanie „Brzmi do weterynarza” i „Zabrałem kota do weterynarza”. ma wektory dystrybucyjne, które są blisko siebie w przestrzeni wektorowej, ponieważ obie opisują podobne i dodaje kontekst.

Dzięki wektorom dystrybucyjnym możesz porównywać różne teksty i dowiedzieć się, jak są one powiązane z nimi. Jeśli na przykład wektory dystrybucyjne tekstu „kot” i „pies” są blisko możesz wywnioskować, że te słowa są podobne pod względem znaczenia lub kontekstu, i jednym, i drugim. Umożliwia to stosowanie różnych przypadków użycia opisanych w następnej sekcji.

Przypadki użycia

Wektory dystrybucyjne tekstu są wykorzystywane w wielu zastosowaniach NLP, na przykład:

  • Pobieranie informacji: wektory dystrybucyjne mogą służyć do pobierania danych semantycznych podobny tekst dla danych wejściowych. Można korzystać z różnych aplikacji, obsługiwane przez system pobierania informacji, taki jak wyszukiwanie semantyczne, przez odpowiadanie na pytania czy streszczenie.
  • Klasyfikacja: możesz wytrenować model przy użyciu wektorów dystrybucyjnych do klasyfikowania dokumenty w kategoriach. Jeśli na przykład chcesz sklasyfikować użytkownika negatywnych lub pozytywnych, możesz skorzystać z usługi wektorów dystrybucyjnej, aby reprezentację wektorową każdego komentarza w celu trenowania klasyfikatora.
  • Grupowanie: porównywanie wektorów tekstu pozwala określić, czy są podobne lub różne. którymi są. Tej funkcji można użyć do wytrenowania modelu grupowania, który grupuje podobnych tekstów lub dokumentów oraz wykrywania anomalii w danych.
  • Baza danych wektorowych: wygenerowane wektory dystrybucyjne możesz przechowywać w postaci do zwiększania dokładności i wydajności aplikacji NLP. Zapoznaj się z poniższym samouczkiem, aby dowiedzieć się, jak używać wektorowej bazy danych do przekształcać prompty tekstowe na wektory liczbowe.

Modele wektorów dystrybucyjnych Gemini

Gemini API udostępnia 2 modele, które generują wektory dystrybucyjne tekstu: Tekst Wektory dystrybucyjne oraz Umieszczanie. Umieszczanie tekstu to zaktualizowana wersja modelu wektora dystrybucyjnego, która oferuje elastyczne rozmiary wektora dystrybucyjnego wymiary 768. Elastyczne wektory dystrybucyjne generują mniejsze wymiary wyjściowe potencjalnie zaoszczędzić na kosztach mocy obliczeniowej i pamięci masowej przy niewielkiej utracie wydajności.

Zastosowanie umieszczania tekstu w nowych projektach lub aplikacjach. Aplikacja powinna modelu umieszczania używaj tylko wtedy, gdy nie możesz przeprowadzić jego migracji do korzystania z tego modelu.

Generowanie wektorów dystrybucyjnych za pomocą interfejsu Gemini API

Do generowania wektorów dystrybucyjnych tekstu używaj metody embedContent:

Python

result = genai.embed_content(
    model="models/text-embedding-004",
    content="What is the meaning of life?",
    task_type="retrieval_document",
    title="Embedding of single string")

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')

Zapoznaj się z instrukcjami dla początkujących samouczek , aby uzyskać pełny przykład uruchomienia.

Przeczytaj

ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)

Zapoznaj się z instrukcjami dla początkujących samouczek dla pełny przykład z możliwością uruchomienia.

Node.js

const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);

async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});

const text = "The quick brown fox jumps over the lazy dog."

const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}

run();

Zapoznaj się z instrukcjami dla początkujących samouczek , aby uzyskać pełny przykład uruchomienia.

Rzutki (Flutter)

final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);

Zapoznaj się z instrukcjami dla początkujących samouczek , aby uzyskać pełny przykład uruchomienia.

curl

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
     "content": {
     "parts":[{
     "text": "Hello world"}]}, }' 2> /dev/null | head

Zapoznaj się z naszym krótkim wprowadzeniem do umieszczania treści na stronie za pomocą książki kucharskiej REST: GitHub , aby uzyskać pełny przykład uruchomienia.

Co dalej?