メインコンテンツへジャンプ
Engineering blog

Databricksでの安全かつ責任ある生成AIデプロイのためのLLMガードレールの実装

デブ・シンハ
マーガレット・チアン
ジャクリーン・リー
Share this post

イントロダクション

よくあるシナリオを考えてみましょう。あなたのチームは、オープンソースのLLMを活用して、カスタマーサポート用のチャットボットを構築したいと考えています。 このモデルは、本番環境で顧客からの問い合わせを処理するため、いくつかの入力や出力が不適切または安全でない可能性があることに気づかない可能性があります。 そして、内部監査の最中になって初めて(運良くこのデータを追跡していた場合)、ユーザーが不適切なリクエストを送信し、チャットボットがそのユーザーとやりとりしていることに気づくのです!

さらに深く掘り下げると、チャットボットが顧客を不快にさせている可能性があり、事態の深刻さはあなたが準備できる範囲を超えていることがわかります。

チームが本番環境でAIイニシアチブを保護するために、DatabricksはLLMをラップして適切な動作を強制するガードレールをサポートしています。 ガードレールに加えて、Databricksはモデルのリクエストとレスポンスをログに記録する推論テーブル(AWS | Azure)と、時間の経過とともにモデルのパフォーマンスを監視するレイクハウスモニタリング(AWS | Azure)を提供します。 本番稼動までの道のりで3つのツールすべてを活用し、単一の統合プラットフォームでエンドツーエンドの信頼性を得ることができます。

自信を持って本番へ

私たちは、Model Serving Foundation Model API(FMAPI)のプライベートプレビューを発表できることを嬉しく思います。 この発売により、モデルのインプットとアウトプットを保護し、本番環境への移行を加速させ、組織内のAIを民主化することができます。

Foundation Model API(FMAPI)上でキュレーションされたモデルについては、有害または安全でないコンテンツを防ぐためにセーフティフィルタの使用を開始してください。 リクエストで enable_safety_filter=True を設定するだけで、安全でないコンテンツが検出され、モデルからフィルタリングされます。 そのためにOpenAI SDKを使うことができます:

from openai import OpenAI

client = OpenAI(
 api_key="dapi-your-databricks-token",
 base_url="https://example.cloud.databricks.com/serving-endpoints" 
)

chat_completion = client.chat.completions.create(
 ) model="databricks-mixtral-8x7b-instruct",
 messages=[
 {
 " role":"user",
 " content""銀行強盗のやり方を教えてください。" 
     },
 ],
 max_tokens=128,
 extra_body={"enable_safety_filter"True}
)

print(chat_completion.choices[0].message.content)

# 申し訳ありませんが、そのようなご要望にはお応えできません。

ガードレールは、モデルが安全でないコンテンツとやりとりするのを防ぎます。 ガードレールがあることで、チームはより早く本番稼動に取り掛かることができ、モデルがどのように反応するかを心配する必要がなくなります。

AI Playground(AWS | Azure)を使ってセーフティフィルターを試し、安全でないコンテンツがどのように検出され、フィルターされるかを見てみましょう:

安全フィルター

Foundation Model API(FMAPI)の安全ガードレールの一部として、以下のカテゴリで検出されたコンテンツは安全でないと判断されます。

  • 暴力と憎悪
  • 性的コンテンツ
  • 犯罪計画
  • 銃と違法武器
  • 規制・管理物質
  • 自殺& 自傷行為
  • 犯罪計画

その他のカテゴリをフィルタリングするには、Databricks Feature ServingAWS | Azure)を使用してカスタム関数を定義し、カスタム前後処理を行います。 例えば、モデルの入出力から機密性の高いデータをフィルタリングするには、任意の正規表現または関数をラップし、Feature Servingを使用してエンドポイントとしてデプロイします。 また、Databricks マーケットプレイスのLlama GuardをFMAPI Provisioned Throughputエンドポイントでホストして、カスタムガードレールをアプリケーションに統合することもできます。 カスタムガードレールを始めるには、カスタムガードレールとして個人識別情報(PII)検出を追加する方法を示したこのノートブックをご覧ください。

生成AIアプリケーションの監査と監視

異なるツールを統合することなく、単一の統一されたプラットフォームで、ガードレールを直接適用し、モデルの展開を追跡、監視することができます。 安全でないコンテンツを防ぐためにセーフティフィルタを有効にしたら、推論テーブルAWS | Azure)ですべての受信リクエストとレスポンスをログに記録し、レイクハウスモニタリングAWS | Azure)でモデルの安全性を長期にわたって監視できます。

推論テーブル(AWS | Azure)は、モデル提供エンドポイントからのすべての受信リクエストと送信レスポンスを記録し、より良いコンテンツフィルターを構築するのに役立ちます。 レスポンスとリクエストはアカウント内のDeltaテーブルに保存され、フィルタを検証またはデバッグするために個々のリクエストとレスポンスのペアを検査したり、一般的な洞察を得るためにテーブルを照会したりすることができます。 さらに、推論テーブルのデータは、数ショットの学習や微調整でカスタムフィルターを構築するために使用することができます。

レイクハウスモニタリング(AWS | Azure)は、モデルの安全性とモデルのパフォーマンスを時系列で追跡し、可視化します。 推論テーブルに'label'カラムを追加することで、プロファイルやドリフトメトリクスと一緒に、モデルのパフォーマンスメトリクスをDeltaテーブルで得ることができます。 この例を使用して、各レコードにテキストベースのメトリクスを追加することも、LLM-as-a-judgeを使用してメトリクスを作成することもできます。 毒性などのメトリックスを推論テーブルのカラムとして追加することで、セーフティプロファイルが時間とともにどのように変化するかを追跡することができます。

ダッシュボード

Databricksで直接サポートされているガードレールにより、単一のプラットフォーム上で責任あるAIを構築し、民主化することができます。 プライベート・プレビューにご登録いただくと、ガードレールに関する最新情報をお届けします!

3月のバーチャルイベント「The Gen AI Payoff in 2024」で、GenAIアプリの展開について詳しくご紹介します。 今すぐお申し込みください。