MedLM API

MedLM ist eine Familie von Foundation Models, die für die Gesundheitsbranche optimiert wurden. Med-PaLM 2 ist eines der von Google Research entwickelten textbasierten Modelle, die MedLM unterstützen. Es war das erste KI-System, das den Level menschlicher Experten in Sachen Antworten auf USMLE (US Medical Licensing Examination)-Fragen erreichte. Die Entwicklung dieser Modelle wurde durch bestimmte Kundenanforderungen bestimmt, darunter die Beantwortung medizinischer Fragen und das Erstellen von Zusammenfassungen.

MedLM-Modellkarte

Die MedLM-Modellkarte enthält die Modelldetails, z. B. die vorgesehene Verwendung von MedLM, eine Datenübersicht und Sicherheitsinformationen. Klicken Sie auf den folgenden Link, um eine PDF-Version der MedLM-Modellkarte herunterzuladen:

MedLM-Modellkarte herunterladen

Anwendungsfälle

  • Fragen beantworten: Hier können Sie als Reaktion auf medizinische Fragen eine Antwort in Textform entwerfen.
  • Zusammenfassung: Entwerfen Sie eine kürzere Version eines Dokuments (z. B. eine Zusammenfassung oder einen Verlauf der Visite und eine Notiz physischen Untersuchung), in der die relevanten Informationen aus dem Originaltext enthalten sind.

Weitere Informationen zum Entwerfen von Text-Prompts finden Sie unter Text-Prompts entwerfen.

HTTP-Anfrage

MedLM-medium (medlm-medium):

POST https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-medium:predict

MedLM-large (medlm-large):

POST https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-large:predict

Weitere Informationen finden Sie unter predict-Methode.

Modellversionen

MedLM bietet die folgenden Modelle:

  • MedLM-medium (medlm-medium)
  • MedLM-Large (medlm-large)

Die folgende Tabelle enthält die verfügbaren stabilen Modellversionen:

medlm-medium model Veröffentlicht
medlm-medium 13. Dezember 2023
medlm-large model Veröffentlicht
medlm-large 13. Dezember 2023

MedLM-medium und MedLM-large haben separate Endpunkte und bieten Kunden zusätzliche Flexibilität für ihre Anwendungsfälle. MedLM-medium bietet Kunden bessere Durchsätze und enthält neuere Daten. MedLM-large ist das gleiche Modell aus der Vorschauphase. Beide Modelle werden über den gesamten Produktlebenszyklus aktualisiert. Auf dieser Seite bezieht sich "MedLM" auf beide Modelle.

Weitere Informationen finden Sie unter Modellversionen und Lebenszyklus.

MedLM-Sicherheitsfilter und -Attribute

Über die MedLM API verarbeitete Inhalte werden anhand einer Liste von Sicherheitsattributen bewertet, einschließlich „schädlichen Kategorien“ und Themen, die als sensitiv eingestuft werden können. Wenn Sie eine Fallback-Antwort sehen, z. B. "Ich kann dir nicht helfen, da ich nur ein Sprachmodell bin", bedeutet das, dass entweder Prompt oder Antwort einen Sicherheitsfilter ausgelöst haben.

Sicherheitsgrenzwerte

Bei der Verwendung von Vertex AI Studio können Sie einen anpassbaren Schwellenwert für Sicherheitsfilter verwenden, um festzustellen, wie wahrscheinlich es ist, dass Sie Antworten sehen, die möglicherweise schädlich sind. Modellantworten werden auf der Grundlage der Wahrscheinlichkeit blockiert, dass sie Diskriminierung, gefährliche oder sexuell explizite Inhalte enthält. Die Sicherheitsfiltereinstellung befindet sich auf der rechten Seite des Prompt-Felds von Vertex AI Studio. Sie können zwischen drei Optionen wählen: block most, block some und block few.

Grafik: Console

Konfidenz- und Schweregradschwellenwerte testen

Sie können die Sicherheitsfilter von Google testen und für Ihr Unternehmen geeignete Konfidenzgrenzwerte definieren. Über diese Grenzwerte können Sie umfassende Maßnahmen ergreifen, um Inhalte zu erkennen, die gegen die Nutzungsrichtlinien oder Nutzungsbedingungen von Google verstoßen, und entsprechende Maßnahmen zu ergreifen.

Konfidenzwerte sind nur Vorhersagen. Sie sollten diese Werte nicht als absolut zuverlässig oder genau ansehen. Google ist nicht dafür verantwortlich, diese Werte für Geschäftsentscheidungen zu interpretieren oder zu verwenden.

Um diese Technologie sicher und verantwortungsvoll zu nutzen, ist es wichtig, neben den integrierten technischen Sicherheitsmaßnahmen weitere Risiken zu berücksichtigen, die für Anwendungsfall, Nutzer und Geschäftskontext spezifisch sind.

Wir empfehlen Folgendes:

  1. Bewerten Sie die Sicherheitsrisiken Ihrer Anwendung.
  2. Passen Sie Anpassungen an, um Sicherheitsrisiken zu minimieren.
  3. Führen Sie für Ihren Anwendungsfall geeignete Sicherheitstests durch.
  4. Holen Sie Nutzerfeedback ein und überwachen Sie Inhalte.

Weitere Informationen finden Sie in den Empfehlungen von Google zu verantwortungsbewusster KI.

Anfragetext

{
  "instances": [
    {
      "content": string
    }
  ],
  "parameters": {
    "temperature": number,
    "maxOutputTokens": integer,
    "topK": integer,
    "topP": number
  }
}

Verwenden Sie folgende Parameter für die Modelle medlm-medium und medlm-large. Weitere Informationen finden Sie unter Chat-Prompts erstellen.

Parameter Beschreibung Zulässige Werte

content

Texteingabe zum Generieren einer Modellantwort. Prompts können Fragen, Vorschläge, Anleitungen oder Beispiele enthalten. Text

temperature

Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

0.0–1.0

Default: 0.2

maxOutputTokens

Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für potentiell längere Antworten an.

1–8192 für medlm-medium

1–1024 für medlm-large

topK

Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von 3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

1–40

Default: 40

topP

Der Wert „Top-P“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und C als Kandidaten ausschließen.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

0.0–1.0

Default: 0.8

Beispielanfrage

Bei Verwendung der MedLM API ist es wichtig, das Prompt-Engineering zu implementieren. Wir empfehlen Ihnen dringend, zu Beginn jedes Prompts eine geeignete aufgabenspezifische Anleitung anzugeben. Weitere Informationen finden Sie unter Einführung in das Prompt-Design.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • MEDLM_MODEL: Das MedLM-Modell, entweder medlm-medium oder medlm-large.

HTTP-Methode und URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict

JSON-Text der Anfrage:

{
  "instances": [
    {
      "content": "Question: What causes you to get ringworm?"
    }
  ],
  "parameters": {
    "temperature": 0,
    "maxOutputTokens": 256,
    "topK": 40,
    "topP": 0.95
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

cat > request.json << 'EOF'
{
  "instances": [
    {
      "content": "Question: What causes you to get ringworm?"
    }
  ],
  "parameters": {
    "temperature": 0,
    "maxOutputTokens": 256,
    "topK": 40,
    "topP": 0.95
  }
}
EOF

Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

@'
{
  "instances": [
    {
      "content": "Question: What causes you to get ringworm?"
    }
  ],
  "parameters": {
    "temperature": 0,
    "maxOutputTokens": 256,
    "topK": 40,
    "topP": 0.95
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict" | Select-Object -Expand Content
 

Antworttext

{
  "predictions": [
    {
      "content": string,
      "citationMetadata": {
        "citations": [
          {
            "startIndex": integer,
            "endIndex": integer,
            "url": string,
            "title": string,
            "license": string,
            "publicationDate": string
          }
        ]
      },
      "logprobs": {
        "tokenLogProbs": [ float ],
        "tokens": [ string ],
        "topLogProbs": [ { map<string, float> } ]
      },
      "safetyAttributes": {
        "categories": [ string ],
        "blocked": boolean,
        "scores": [ float ],
        "errors": [ int ]
      }
    }
  ],
  "metadata": {
    "tokenMetadata": {
      "input_token_count": {
        "total_tokens": integer,
        "total_billable_characters": integer
      },
      "output_token_count": {
        "total_tokens": integer,
        "total_billable_characters": integer
      }
    }
  }
}
Antwortelement Beschreibung
content Das aus dem Eingabetext generierte Ergebnis.
categories Die Anzeigenamen von mit den generierten Inhalten verknüpften Sicherheitsattributkategorien. Die Reihenfolge entspricht den Scores.
scores Ein Konfidenzwert für die einzelnen Kategorien; ein höherer Wert bedeutet mehr Vertrauen.
blocked Ein Flag, das angibt, ob die Ein- oder Ausgabe des Modells blockiert wurde.
errors Ein Fehlercode, der angibt, warum die Ein- oder Ausgabe blockiert wurde. Eine Liste der Fehlercodes finden Sie unter Sicherheitsfilter und -attribute.
startIndex Gibt in der Vorhersageausgabe an, wo das Zitat beginnt (einschließlich). Muss größer oder gleich 0 und kleiner als end_index sein.
endIndex Gibt in der Vorhersageausgabe an, wo das Zitat endet (exklusiv). Der Wert muss größer als start_index und kleiner als len(output) sein.
url Mit diesem Zitat verknüpfte URL. Sofern vorhanden, verweist diese URL auf die Webseite der Quelle dieses Zitats. Mögliche URLs sind unter anderem Nachrichtenwebsites oder GitHub-Repositories.
title Titel, der mit diesem Zitat verknüpft ist. Wenn vorhanden, bezieht er sich auf den Titel der Quelle des Zitats. Mögliche Titel sind beispielsweise Nachrichtentitel oder Buchtitel.
license Mit dieser Rezitation verknüpfte Lizenz. Falls vorhanden, bezieht sie sich auf die Lizenz der Quelle dieses Zitats. Mögliche Lizenzen sind Codelizenzen wie MIT-Lizenzen.
publicationDate Veröffentlichungsdatum, das mit dem Zitat verknüpft ist. Falls vorhanden, bezieht sich dies auf das Datum, an dem die Quelle des Zitats veröffentlicht wurde. Mögliche Formate sind JJJJ, JJJJ-MM, JJJJ-MM-TT.
input_token_count Anzahl der Eingabetokens. Dies ist die Gesamtzahl der Tokens für alle Eingabeaufforderungen, Präfixe und Suffixe.
output_token_count Anzahl der Ausgabetokens. Dies ist die Gesamtzahl der Tokens in content für alle Vorhersagen.
tokens Die Stichprobentokens.
tokenLogProbs Die Logwahrscheinlichkeit der Stichprobentokens.
topLogProb Die wahrscheinlichsten Tokens und ihre Logwahrscheinlichkeit bei jedem Schritt
logprobs Ergebnisse des Parameters „logprobs”. 1:1-Zuordnung zu "Kandidaten".

Beispielantwort

{
  "predictions": [
    {
      "citationMetadata": {
        "citations": []
      },
      "content": "\n\nAnswer and Explanation:\nRingworm is a fungal infection of the skin that is caused by a type of fungus called dermatophyte. Dermatophytes can live on the skin, hair, and nails, and they can be spread from person to person through direct contact or through contact with contaminated objects.\n\nRingworm can cause a variety of symptoms, including:\n\n* A red, itchy rash\n* A raised, circular border\n* Blisters or scales\n* Hair loss\n\nRingworm is most commonly treated with antifungal medications, which can be applied to the skin or taken by mouth. In some cases, surgery may be necessary to remove infected hair or nails.",
      "safetyAttributes": {
        "scores": [
          1
        ],
        "blocked": false,
        "categories": [
          "Health"
        ]
      }
    }
  ],
  "metadata": {
    "tokenMetadata": {
      "outputTokenCount": {
        "totalTokens": 140,
        "totalBillableCharacters": 508
      },
      "inputTokenCount": {
        "totalTokens": 10,
        "totalBillableCharacters": 36
      }
    }
  }
}

Streamantwort von Modellen der generativen KI.

Die Parameter für Streaming- und Nicht-Streaming-Anfragen an die APIs sind identisch.

Beispiele für die Verwendung von REST API-Beispielanfragen und -Antworten finden Sie unter Beispiele, die die REST-API verwenden.

Um Beispielcodeanfragen und -antworten mit dem Vertex AI SDK für Python anzuzeigen, lesen Sie Beispiele, die Vertex AI SDK für Python verwenden.