Topik ini menjelaskan cara menggunakan AI_MASK untuk menyamarkan data dengan Large Language Models (LLMs).
Batasan
Hanya didukung pada Ververica Runtime (VVR) 11.4 atau versi yang lebih baru.
Throughput operator Flink yang digunakan dalam pernyataan AI_MASK dibatasi oleh pembatasan laju pada platform layanan model. Ketika lalu lintas mencapai batas akses platform, terjadi tekanan balik pada pekerjaan Flink, sehingga operator AI_MASK menjadi bottleneck. Dalam kasus parah, operator terkait dapat mengalami timeout dan menyebabkan pekerjaan dimulai ulang.
Sintaksis
AI_MASK(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>,
MASK_ENTITIES => <MASK ENTITIES>
)Parameter input
Parameter | Tipe data | Deskripsi |
MODEL <MODEL NAME> | MODEL | Nama layanan model yang telah didaftarkan. Untuk informasi selengkapnya, lihat Pengaturan model. Catatan: Model harus mengembalikan output bertipe VARIANT. |
<INPUT COLUMN NAME> | STRING | Teks mentah untuk dianalisis oleh model. |
<MASK ENTITIES> | ARRAY<STRING> | Entitas yang akan disamarkan. Catatan: Parameter ini harus berupa konstanta. |
Output
Parameter | Tipe data | Deskripsi |
masked_text | STRING | Teks yang telah disamarkan. |
detected_entities | ARRAY<STRING> | Entitas yang terdeteksi. |
Contoh
Data uji
id | content |
1 | Timmo really loves studying. He reads study materials whenever he has free time. |
Pernyataan uji
Pernyataan SQL berikut membuat model Qwen-Plus dan menggunakan AI_MASK untuk menyamarkan data.
CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
'provider' = 'openai-compat',
'endpoint'='<YOUR ENDPOINT>',
'apiKey' = '<YOUR KEY>',
'model' = 'qwen-plus'
);
CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'Timmo really loves studying. He reads study materials whenever he has free time.');
-- Gunakan argumen posisional untuk memanggil AI_MASK
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
AI_MASK(
MODEL general_model,
content,
ARRAY['name']
));
-- Gunakan argumen bernama untuk memanggil AI_MASK
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
AI_MASK(
MODEL => MODEL general_model,
INPUT => content,
MASK_ENTITIES => ARRAY['name']
));Hasil output
id | masked_text | detected_entities |
1 | [NAME] really loves studying. He reads study materials whenever he has free time. | [{"entity":"Timmo","type":"name"}] |