AI_SIMILARITY adalah fungsi AI MaxCompute yang memanggil model untuk menentukan kemiripan tekstual dan semantik antara dua teks, mengembalikan nilai float antara 0 dan 1—semakin tinggi nilainya, semakin besar kemiripannya.
Sintaksis
FLOAT AI_SIMILARITY(
STRING <model_name>,
STRING <version_name>,
STRING <input1>,
STRING <input2>
[, STRING <model_parameters>]
);Parameter
model_name: Wajib. STRING yang menentukan nama model yang akan digunakan. Untuk informasi selengkapnya, lihat SQL AI functions.
version_name: Wajib. STRING yang menentukan nama versi model yang akan digunakan. Untuk memanggil versi default, gunakan
DEFAULT_VERSION.input1: Wajib. STRING yang merepresentasikan teks pertama untuk perhitungan kemiripan semantik.
input2: Wajib. STRING yang merepresentasikan teks kedua untuk perhitungan kemiripan semantik.
-
model_parameters: Opsional. String berformat JSON yang menentukan parameter model, seperti max_tokens, temperature, dan top_p. Contohnya:
'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.-
max_tokens: Jumlah maksimum token yang dihasilkan dalam satu panggilan model. Nilai default untuk model publik MaxCompute adalah 4096.
-
temperature: Nilai antara 0 dan 1 yang mengontrol tingkat keacakan output model. Nilai lebih tinggi menghasilkan output yang lebih kreatif dan beragam, sedangkan nilai lebih rendah menghasilkan output yang lebih deterministik dan konservatif.
-
top_p: Nilai antara 0 dan 1 yang membatasi rentang label kandidat yang dipertimbangkan oleh model. Nilai lebih tinggi memberikan rentang yang lebih luas dan variasi yang lebih besar, sedangkan nilai lebih rendah menghasilkan rentang yang lebih sempit dan output yang lebih fokus.
-
Nilai kembalian
Mengembalikan nilai FLOAT antara 0 dan 1 yang merepresentasikan skor kemiripan dari dua teks input. Aturan pengembalian nilai adalah sebagai berikut:
Skor 1,0 menunjukkan bahwa kedua teks identik, sedangkan skor 0,0 menunjukkan bahwa keduanya sama sekali tidak terkait.
Jika
input1atauinput2bernilai NULL, fungsi mengembalikan NULL.Jika
input1atauinput2bukan tipe STRING, fungsi mengembalikan error.
Contoh
Contoh 1: Membandingkan kemiripan teks
Memanggil model publik qwen3-max yang disediakan oleh MaxCompute untuk menghitung kemiripan semantik antara dua teks mengenai MaxCompute.
-- Gunakan layanan komputasi model dalam Pekerjaan SQL
SET odps.task.major.version=sql_modelstudio;
SET odps.namespace.schema=true;
SELECT AI_SIMILARITY(
bigdata_public_modelset.default.`qwen3-max`,
DEFAULT_VERSION,
'MaxCompute is a big data computing platform.',
'MaxCompute provides large-scale data processing capabilities.'
) AS similarity_score;
-- Result:
+------------------+
| similarity_score |
+------------------+
| 0.85 |
+------------------+Contoh 2: Membandingkan dan mengurutkan pasangan teks
Memanggil model publik Qwen3-4B-GGUF yang disediakan oleh MaxCompute untuk membandingkan beberapa pasangan teks dan mengurutkannya secara menurun berdasarkan tingkat kemiripan. Metode ini cocok untuk mengidentifikasi pasangan teks dengan relevansi semantik tertinggi dari suatu set data.
-- Data contoh
CREATE TABLE text_pairs (
text1 STRING,
text2 STRING
);
INSERT INTO text_pairs VALUES
('Cloud computing enables scalable infrastructure.', 'Businesses can scale their IT resources using cloud services.'),
('The weather is sunny today.', 'Machine learning algorithms require large datasets.'),
('Data warehousing stores historical data for analysis.', 'A data warehouse provides analytical processing of large data volumes.'),
('I enjoy reading books.', 'Reading is my favorite hobby.');
-- Bandingkan beberapa pasangan teks untuk kemiripan semantik
SET odps.sql.ai.treat.as.common.model=true;
SET odps.namespace.schema=true;
SELECT
text1,
text2,
AI_SIMILARITY(
bigdata_public_modelset.default.`Qwen3-4B-GGUF`,
DEFAULT_VERSION,
text1,
text2
) AS similarity_score
FROM text_pairs
ORDER BY similarity_score DESC;
-- Result
+------------------------------------------------------+-----------------------------------------------------------------------+------------------+
| text1 | text2 | similarity_score |
+------------------------------------------------------+-----------------------------------------------------------------------+------------------+
| Cloud computing enables scalable infrastructure. | Businesses can scale their IT resources using cloud services. | 0.92 |
| Data warehousing stores historical data for analysis.| A data warehouse provides analytical processing of large data volumes.| 0.88 |
| I enjoy reading books. | Reading is my favorite hobby. | 0.82 |
| The weather is sunny today. | Machine learning algorithms require large datasets. | 0.05 |
+------------------------------------------------------+-----------------------------------------------------------------------+------------------+