Bagikan melalui


Membuat model AI generatif yang melayani titik akhir

Dalam artikel ini, Anda mempelajari cara membuat model yang melayani titik akhir yang menyebarkan dan melayani model AI generatif.

Mosaic AI Model Serving mendukung model berikut:

  • Model fondasi terbuka canggih yang disediakan oleh API Model Foundation. Model ini adalah arsitektur model fondasi yang dikumpulkan yang mendukung inferensi yang dioptimalkan. Model dasar, seperti Llama-2-70B-chat, BGE-Large, dan Mistral-7B tersedia untuk digunakan segera dengan harga bayar per token . Beban kerja produksi, menggunakan model dasar atau yang disempurnakan, dapat disebarkan dengan jaminan performa menggunakan throughput yang disediakan.
  • Model eksternal. Ini adalah model generatif yang dihosting di luar Databricks. Titik akhir yang melayani model eksternal dapat diatur secara terpusat dan pelanggan dapat menetapkan batas tarif dan kontrol akses untuk mereka. Contohnya termasuk model AI generatif seperti, GPT-4 OpenAI, Claude Anthropic, dan lainnya.

Model Serving menyediakan opsi berikut untuk model yang melayani pembuatan titik akhir:

  • Antarmuka pengguna Penyajian
  • REST API
  • SDK Penyebaran MLflow

Untuk membuat titik akhir yang melayani model ML atau Python tradisional, lihat Membuat model kustom yang melayani titik akhir.

Persyaratan

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

Membuat model fondasi yang melayani titik akhir

Anda dapat membuat titik akhir yang melayani varian model fondasi yang disempurnakan yang disediakan menggunakan throughput yang disediakan API Model Foundation. Lihat Membuat titik akhir throughput yang disediakan menggunakan REST API.

Untuk model fondasi yang tersedia menggunakan API Model Foundation bayar per token, Databricks secara otomatis menyediakan titik akhir tertentu untuk mengakses model yang didukung di ruang kerja Databricks Anda. Untuk mengaksesnya, pilih tab Sajikan di bilah sisi kiri ruang kerja. API Model Foundation terletak di bagian atas tampilan daftar Titik Akhir.

Untuk mengkueri titik akhir ini, lihat Model fondasi kueri dan model eksternal.

Membuat model eksternal yang melayani titik akhir

Berikut ini menjelaskan cara membuat titik akhir yang melayani model AI generatif yang disediakan menggunakan model eksternal Databricks.

Melayani UI

  1. Di bidang Nama berikan nama untuk titik akhir Anda.
  2. Di bagian Entitas yang dilayani
    1. Klik bidang Entitas untuk membuka formulir Pilih entitas yang dilayani.
    2. Pilih Model eksternal.
    3. Pilih penyedia model yang ingin Anda gunakan.
    4. Klik Konfirmasi
    5. Berikan nama model eksternal yang ingin Anda gunakan. Formulir diperbarui secara dinamis berdasarkan pilihan Anda. Lihat model eksternal yang tersedia.
    6. Pilih jenis tugas. Tugas yang tersedia adalah obrolan, penyelesaian, dan penyematan.
    7. Berikan detail konfigurasi untuk mengakses penyedia model yang dipilih. Ini biasanya rahasia yang mereferensikan token akses pribadi yang Anda inginkan untuk digunakan titik akhir untuk mengakses model ini.
  3. Klik Buat. Halaman Titik akhir penayangan muncul dengan status Titik akhir penayangan ditampilkan sebagai Belum Siap.

Membuat model yang melayani titik akhir

REST API

Penting

Parameter REST API untuk membuat titik akhir penyajian yang melayani model eksternal berada di Pratinjau Umum.

Contoh berikut membuat titik akhir yang melayani versi text-embedding-ada-002 pertama model yang disediakan oleh OpenAI.

Lihat POST /api/2.0/serving-endpoints untuk parameter konfigurasi titik akhir.

{
  "name": "openai_endpoint",
  "config":{
    "served_entities": [
      {
        "name": "openai_embeddings",
        "external_model":{
          "name": "text-embedding-ada-002",
          "provider": "openai",
          "task": "llm/v1/embeddings",
          "openai_config":{
            "openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
          }
        }
      }
    ]
  },
  "rate_limits": [
    {
      "calls": 100,
      "key": "user",
      "renewal_period": "minute"
    }
  ],
  "tags": [
    {
      "key": "team",
      "value": "gen-ai"
    }
  ]
}

Berikut ini adalah contoh respons.

{
  "name": "openai_endpoint",
  "creator": "user@email.com",
  "creation_timestamp": 1699617587000,
  "last_updated_timestamp": 1699617587000,
  "state": {
    "ready": "READY"
  },
  "config": {
    "served_entities": [
      {
        "name": "openai_embeddings",
        "external_model": {
          "provider": "openai",
          "name": "text-embedding-ada-002",
          "task": "llm/v1/embeddings",
          "openai_config": {
            "openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
          }
        },
        "state": {
          "deployment": "DEPLOYMENT_READY",
          "deployment_state_message": ""
        },
        "creator": "user@email.com",
        "creation_timestamp": 1699617587000
      }
  ],
    "traffic_config": {
      "routes": [
        {
          "served_model_name": "openai_embeddings",
          "traffic_percentage": 100
        }
      ]
    },
    "config_version": 1
  },
  "tags": [
    {
      "key": "team",
      "value": "gen-ai"
    }
  ],
  "id": "69962db6b9db47c4a8a222d2ac79d7f8",
  "permission_level": "CAN_MANAGE",
  "route_optimized": false
}

SDK Penyebaran MLflow

Berikut ini membuat titik akhir untuk penyematan dengan OpenAI text-embedding-ada-002.

Untuk titik akhir model eksternal, Anda harus menyediakan kunci API untuk penyedia model yang ingin Anda gunakan. Lihat POST /api/2.0/serving-endpoints di REST API untuk detail skema permintaan dan respons. Untuk panduan langkah demi langkah, lihat Tutorial: Membuat titik akhir model eksternal untuk mengkueri model OpenAI.

Anda juga dapat membuat titik akhir untuk penyelesaian dan tugas obrolan, seperti yang ditentukan oleh task bidang di bagian external_model konfigurasi. Lihat Model eksternal di Mosaic AI Model Serving untuk model dan penyedia yang didukung untuk setiap tugas.


from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="chat",
    config={
        "served_entities": [
            {
                "name": "completions",
                "external_model": {
                    "name": "gpt-4",
                    "provider": "openai",
                    "task": "llm/v1/chat",
                    "openai_config": {
                        "openai_api_key": "{{secrets/scope/key}}",
                    },
                },
            }
        ],
    },
)
assert endpoint == {
    "name": "chat",
    "creator": "alice@company.com",
    "creation_timestamp": 0,
    "last_updated_timestamp": 0,
    "state": {...},
    "config": {...},
    "tags": [...],
    "id": "88fd3f75a0d24b0380ddc40484d7a31b",
}

Memperbarui model yang melayani titik akhir

Setelah mengaktifkan titik akhir model, Anda dapat mengatur konfigurasi komputasi sesuai keinginan. Konfigurasi ini sangat membantu jika Anda memerlukan sumber daya tambahan untuk model Anda. Ukuran beban kerja dan konfigurasi komputasi memainkan peran kunci dalam sumber daya apa yang dialokasikan untuk melayani model Anda.

Hingga konfigurasi baru siap, konfigurasi lama terus melayani lalu lintas prediksi. Meskipun ada pembaruan yang sedang berlangsung, pembaruan lain tidak dapat dilakukan. Di Antarmuka pengguna Penayangan, Anda dapat membatalkan pembaruan konfigurasi yang sedang berlangsung dengan memilih Batalkan pembaruan di kanan atas halaman detail titik akhir. Fungsionalitas ini hanya tersedia di Antarmuka Pengguna penyajian.

Saat ada dalam konfigurasi titik akhir, daftar entitas yang external_model dilayani hanya dapat memiliki satu objek served_entity. Titik akhir yang external_model ada dengan tidak dapat diperbarui agar tidak lagi memiliki external_model. Jika titik akhir dibuat tanpa external_model, Anda tidak dapat memperbaruinya untuk menambahkan external_model.

REST API

Untuk memperbarui model fondasi atau titik akhir model eksternal Anda, lihat dokumentasi konfigurasi pembaruan REST API untuk detail skema permintaan dan respons.

{
  "name": "openai_endpoint",
  "served_entities":[
    {
      "name": "openai_chat",
      "external_model":{
        "name": "gpt-4",
        "provider": "openai",
        "task": "llm/v1/chat",
        "openai_config":{
          "openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
        }
      }
    }
  ]
}

SDK Penyebaran MLflow

Untuk memperbarui model fondasi atau titik akhir model eksternal Anda, lihat dokumentasi konfigurasi pembaruan REST API untuk detail skema permintaan dan respons.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.update_endpoint(
    endpoint="chat",
    config={
        "served_entities": [
            {
                "name": "chats",
                "external_model": {
                    "name": "gpt-4",
                    "provider": "openai",
                    "task": "llm/v1/chat",
                    "openai_config": {
                        "openai_api_key": "{{secrets/scope/key}}",
                    },
                },
            }
        ],
    },
)
assert endpoint == {
    "name": "chats",
    "creator": "alice@company.com",
    "creation_timestamp": 0,
    "last_updated_timestamp": 0,
    "state": {...},
    "config": {...},
    "tags": [...],
    "id": "88fd3f75a0d24b0380ddc40484d7a31b",
  }

rate_limits = client.update_endpoint(
    endpoint="chat",
    config={
        "rate_limits": [
            {
                "key": "user",
                "renewal_period": "minute",
                "calls": 10,
            }
        ],
    },
)
assert rate_limits == {
    "rate_limits": [
        {
            "key": "user",
            "renewal_period": "minute",
            "calls": 10,
        }
    ],
}

Sumber Daya Tambahan: