MedLM API

MedLM adalah sekumpulan model dasar yang disesuaikan untuk industri layanan kesehatan. Med-PaLM 2 adalah salah satu model berbasis teks yang dikembangkan oleh Tim Riset Google yang mendukung MedLM, dan merupakan sistem AI pertama yang mencapai tingkat pakar manusia dalam menjawab pertanyaan bergaya US Medical Licensing Examination (USMLE). Pengembangan model ini didasarkan pada kebutuhan pelanggan tertentu seperti menjawab pertanyaan medis dan membuat draf ringkasan.

Kartu model MedLM

Kartu model MedLM menguraikan detail model, seperti penggunaan yang dimaksudkan MedLM, ringkasan data, dan informasi keamanan. Klik link berikut untuk mendownload kartu model MedLM versi PDF:

Mendownload kartu model MedLM

Kasus penggunaan

  • Penjawaban pertanyaan: Memberikan draf jawaban atas pertanyaan terkait medis, yang diberikan sebagai teks.
  • Ringkasan: Membuat draf versi dokumen yang lebih pendek (seperti Ringkasan Setelah Kunjungan atau catatan Riwayat dan Pemeriksaan Fisik) yang menggabungkan informasi yang relevan dari teks asli.

Untuk mengetahui informasi selengkapnya tentang cara mendesain perintah teks, lihat Mendesain perintah teks.

Permintaan HTTP

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

Lihat metode predict untuk informasi selengkapnya.

Versi model

MedLM menyediakan model berikut:

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

Tabel berikut berisi versi model stabil yang tersedia:

model medlm-medium Tanggal rilis
medlm-medium 13 Desember 2023
model medlm-large Tanggal rilis
medlm-large 13 Desember 2023

MedLM-medium dan MedLM-large memiliki endpoint terpisah dan memberikan fleksibilitas tambahan kepada pelanggan untuk kasus penggunaan mereka. MedLM-medium memberikan throughput yang lebih baik kepada pelanggan dan menyertakan data yang lebih baru. MedLM-large adalah model yang sama dari fase pratinjau. Kedua model tersebut akan terus diperbarui selama siklus proses produk. Di halaman ini, "MedLM" mengacu pada kedua model.

Untuk mengetahui informasi selengkapnya, baca Versi dan siklus proses model.

Filter dan atribut keamanan MedLM

Konten yang diproses melalui MedLM API dinilai berdasarkan daftar atribut keamanan, termasuk "kategori berbahaya" dan topik yang dapat dianggap sensitif. Jika Anda melihat respons penggantian, seperti "Saya tidak dapat membantu, karena saya hanya model bahasa", artinya prompt atau respons memicu filter keamanan.

Nilai minimum keamanan

Saat menggunakan Vertex AI Studio, Anda dapat menggunakan nilai minimum filter keamanan yang dapat disesuaikan untuk menentukan seberapa besar kemungkinan Anda melihat respons yang dapat berbahaya. Respons model diblokir berdasarkan probabilitas bahwa konten tersebut berisi pelecehan, ujaran kebencian, konten berbahaya, atau konten seksual vulgar. Setelan filter keamanan terletak di sisi kanan kolom perintah di Vertex AI Studio. Anda dapat memilih dari tiga opsi: block most, block some, dan block few.

Console-image

Menguji nilai minimum keyakinan dan tingkat keparahan

Anda dapat menguji filter keamanan Google dan menentukan nilai minimum keyakinan yang tepat untuk bisnis Anda. Dengan menggunakan nilai minimum ini, Anda dapat mengambil tindakan yang komprehensif untuk mendeteksi konten yang melanggar kebijakan penggunaan atau persyaratan layanan Google dan mengambil tindakan yang sesuai.

Skor keyakinan hanyalah prediksi, dan Anda tidak boleh bergantung pada skor tersebut dalam hal keandalan atau akurasi. Google tidak bertanggung jawab untuk menafsirkan atau menggunakan skor ini untuk keputusan bisnis.

Untuk memanfaatkan teknologi ini dengan aman dan bertanggung jawab, penting juga untuk mempertimbangkan risiko lain yang spesifik untuk kasus penggunaan, pengguna, dan konteks bisnis Anda, selain memanfaatkan perlindungan teknis bawaan.

Anda sebaiknya melakukan langkah-langkah berikut ini:

  1. Menilai risiko keamanan aplikasi Anda.
  2. Mempertimbangkan penyesuaian untuk mengurangi risiko keselamatan.
  3. Melakukan pengujian keamanan yang sesuai dengan kasus penggunaan Anda.
  4. Meminta masukan pengguna dan memantau konten.

Untuk mempelajari lebih lanjut, lihat rekomendasi Google untuk Responsible AI.

Isi permintaan

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

Gunakan parameter berikut untuk model medlm-medium dan medlm-large. Untuk mengetahui informasi selengkapnya, lihat Mendesain perintah teks.

Parameter Deskripsi Nilai yang dapat diterima

content

Input teks untuk menghasilkan respons model. Perintah dapat mencakup preamble, pertanyaan, saran, instruksi, atau contoh. Teks

temperature

Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.

0.0–1.0

Default: 0.2

maxOutputTokens

Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang berpotensi lebih panjang.

1–8192 untuk medlm-medium

1–1024 untuk medlm-large

topK

Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

1–40

Default: 40

topP

Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K) hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 dengan nilai top-P 0.5, model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

0.0–1.0

Default: 0.8

Permintaan sampel

Saat menggunakan MedLM API, penting untuk menyertakan rekayasa perintah. Misalnya, sebaiknya berikan petunjuk khusus tugas yang sesuai di awal setiap perintah. Untuk mengetahui informasi selengkapnya, lihat Pengantar desain perintah.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • MEDLM_MODEL: Model MedLM, baik medlm-medium maupun medlm-large.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

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

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

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

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "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

Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

$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
 

Isi respons

{
  "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
      }
    }
  }
}
Elemen respons Deskripsi
content Hasil yang dihasilkan dari teks input.
categories Nama tampilan kategori Atribut Keamanan terkait dengan konten yang dibuat. Urutan cocok dengan Skor.
scores Skor keyakinan setiap kategori, nilai yang lebih tinggi berarti keyakinan yang lebih tinggi.
blocked Flag yang menunjukkan apakah input atau output model diblokir.
errors Kode error yang mengidentifikasi alasan input atau output diblokir. Untuk mengetahui daftar kode error, lihat Filter dan atribut keamanan.
startIndex Indeks dalam output prediksi tempat kutipan dimulai (inklusif). Harus lebih besar dari atau sama dengan 0 dan kurang dari end_index.
endIndex Indeks dalam output prediksi tempat kutipan berakhir (eksklusif). Harus lebih besar dari start_index dan kurang dari len(output).
url URL yang terkait dengan kutipan ini. Jika ada, URL ini akan ditautkan ke halaman web sumber kutipan ini. URL yang memungkinkan mencakup situs berita, repositori GitHub, dan sebagainya.
title Judul yang terkait dengan kutipan ini. Jika ada, judul tersebut merujuk pada judul sumber kutipan ini. Judul yang memungkinkan mencakup judul berita, judul buku, dan sebagainya.
license Lisensi yang terkait dengan kutipan ini. Jika ada, lisensi tersebut merujuk pada lisensi sumber kutipan ini. Lisensi yang memungkinkan mencakup lisensi kode, seperti lisensi MIT.
publicationDate Tanggal terbit yang terkait dengan kutipan ini. Jika ada, tanggal terbit tersebut mengacu pada tanggal sumber kutipan ini dipublikasikan. Format yang memungkinkan adalah YYYY, YYYY-MM, YYYY-MM-DD.
input_token_count Jumlah token input. Ini adalah jumlah total token di seluruh perintah, awalan, dan akhiran.
output_token_count Jumlah token output. Ini adalah jumlah total token dalam content di seluruh prediksi.
tokens Token sampel.
tokenLogProbs Probabilitas log token sampel.
topLogProb Token kandidat yang paling mungkin dan probabilitas lognya di setiap langkah.
logprobs Hasil parameter `logprobs`. Pemetaan 1-1 ke `candidates`.

Contoh respons

{
  "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
      }
    }
  }
}

Streaming respons dari model AI Generatif

Parameternya sama untuk permintaan streaming dan non-streaming ke API.

Untuk melihat contoh permintaan dan respons kode menggunakan REST API, lihat Contoh menggunakan REST API.

Untuk melihat contoh permintaan dan respons kode menggunakan Vertex AI SDK untuk Python, lihat Contoh penggunaan Vertex AI SDK untuk Python.