- ์นดํ ๊ณ ๋ฆฌ:
๋ฌธ์์ด ๋ฐ ์ด์ง ํจ์ (๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ)
AI_FILTERยถ
์์ ํ์ ํ๋กฌํํธ ์ ๋ ฅ์ ๋ถ์ธ๋ก ๋ถ๋ฅํฉ๋๋ค. ํ์ฌ ํ ์คํธ ๋ฐ ์ด๋ฏธ์ง ํํฐ๋ง์ ๋ชจ๋ ์ง์ํฉ๋๋ค.
๋ฆฌ์ ๊ฐ์ฉ์ฑยถ
๋ค์ ํ์์๋ ํ ์คํธ์ ์ด๋ฏธ์ง ๋ชจ๋์ AI_FILTER ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์ ์ ๋ณด์ฌ์ค๋๋ค.
๋ฐ์ดํฐ ํ์
|
AWS US ์๋ถ 2
(์ค๋ฆฌ๊ฑด)
|
AWS US ๋๋ถ 1
(๋ถ๋ถ ๋ฒ์ง๋์)
|
AWS ์ ๋ฝ ์ค๋ถ 1
(ํ๋ํฌํธ๋ฅดํธ)
|
AWS ์ ๋ฝ ์๋ถ 1
(์์ผ๋๋)
|
AWS AP ๋๋จ๋ถ 2
(์๋๋)
|
AWS AP ๋ถ๋๋ถ 1
(๋์ฟ)
|
Azure ๋๋ถ US 2
(๋ฒ์ง๋์)
|
Azure ์์ ๋ฝ
(๋ค๋๋๋)
|
AWS
(๋ฆฌ์ ๊ฐ)
|
---|---|---|---|---|---|---|---|---|---|
TEXT
|
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
IMAGE
|
โ |
โ |
โ |
โ |
๊ตฌ๋ฌธยถ
AI_FILTER ๋ฅผ ์ ๋ ฅ ๋ฌธ์์ด์ ์ ์ฉ:
AI_FILTER( <input> )
AI_FILTER ๋ฅผ ๋จ์ผ ์ด๋ฏธ์ง์ ์ ์ฉ:
AI_FILTER( <predicate> , <input> )
PROMPT ํจ์ ๋ฅผ ํ์ฉํ์ฌ ํ ์คํธ์ ์ด๋ฏธ์ง๊ฐ ๋ชจ๋ ํฌํจ๋ ์ฌ๋ฌ ์ด์ AI_FILTER ์ ์ฉ:
AI_FILTER( PROMPT('<template_string>', <col_1>, โฆ ) )
์ธ์ยถ
ํ์:
์ ๋ ฅ ๋ฌธ์์ด์ ์ง์ ํ๋ ๊ฒฝ์ฐ:
input
๋ถ๋ฅํ ํ ์คํธ๊ฐ ํฌํจ๋ ๋ฌธ์์ด์ ๋๋ค.
ํ๋์ ํ์ผ์ ํํฐ๋งํ๋ ๊ฒฝ์ฐ:
predicate
์ ๋ ฅ๋ ํ์ผ์
TRUE
๋๋FALSE
๋ก ๋ถ๋ฅํ๋ ์ง์นจ์ด ํฌํจ๋ ๋ฌธ์์ด์ ๋๋ค.file
predicate
์ ์ง์ ๋ ์ง์นจ์ ๋ฐ๋ผ ํ์ผ์ด ๋ถ๋ฅ๋๋ ์ด์ ๋๋ค. AI_FILTER ํจ์์ ๋ํ ์ ๋ ฅ์ผ๋ก IMAGE FILE ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
PROMPT() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ํ์์ ์ง์ ํ๋ ๊ฒฝ์ฐ:
ํนํ ์ฌ๋ฌ ํ์ผ ์ด์ด ์๋ ๋ ๋ณต์กํ ํ๋กฌํํธ์ ๊ฒฝ์ฐ PROMPT ํจ์ ๋ฅผ ์ฌ์ฉํ์ฌ input
์ ๋ง๋ค ์ ์์ต๋๋ค.
PROMPT() ํจ์๋ ๋ฌธ์์ด๊ณผ FILE ๋ฐ์ดํฐ ํ์ ์์ ๋ชจ๋ ํ์ ์ง์ ์ ์ง์ํฉ๋๋ค. ์์ธํ ์ฌ์ฉ๋ฒ์ ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๋ฐํยถ
๋ฌธ์ด ์ง์ ๋ ํ ์คํธ์ ๋ํด TRUE ๋๋ FALSE ๋ก ํ๊ฐ๋๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋ถ์ธ ๊ฐ์ ๋ฐํํฉ๋๋ค.
์ก์ธ์ค ์ ์ด ์๊ตฌ ์ฌํญยถ
์ฌ์ฉ์๋ SNOWFLAKE.CORTEX_USER ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญํ ์ด ๋ถ์ฌ๋ ์ญํ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ์ ๊ถํ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฌ์ฉ๋ฒ ๋ ธํธยถ
์ต์ ์ ์ฑ๋ฅ์ ์ํด ๋ค์ ์ง์นจ์ ๋ฐ๋ฅด์ญ์์ค.
AI_FILTER ๋ก ์ ์ก๋ ์ด์ NULL ๊ฐ์ด ํฌํจ๋์ด ์์ง ์์์ง ํ์ธํ์ญ์์ค.
์ ๋ ฅ ๋ฌธ์์ด ๋๋ PROMPT() ์ธ์์ ์์ด ์ผ๋ฐ ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ ๋ ฅ ํ ์คํธ ์ง์นจ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด โ๋ง์กฑํ๋ ๊ฒ ๊ฐ์ต๋๋คโ์ ๊ฐ์ ๋ฌธ ๋์ โ๋ค์ ์ง์ ๊ธฐ๋ก์์ ๊ณ ๊ฐ์ด ๋ง์กฑํ๋ ๊ฒ ๊ฐ์ต๋๋คโ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์ ๋ ฅ์ ์ง๋ฌธ ํ์์ผ๋ก ํํํ๋ ๊ฒ๋ ๊ณ ๋ คํด ๋ณด์ญ์์ค. ์๋ฅผ ๋ค์ด โ๋ค์ ์ง์ ๊ธฐ๋ก์์ ๊ณ ๊ฐ์ด ๋ง์กฑํ๋ ๊ฒ ๊ฐ๋์?โ๋ผ๊ณ ์ง๋ฌธํ ์ ์์ต๋๋ค.
์ยถ
AI_FILTER: ํ ์คํธยถ
๋ฌธ์์ด ์์์ ๋ํ ๊ฐ๋จํ ์ค์นผ๋ผ ๋ถ์ธ ํจ์๋ก ํธ์ถํ ์ ์์ต๋๋ค.
SELECT AI_FILTER('Is Canada in North America?');
TRUE
ํ ์คํธ ์ด์ด ์๋ ์ง์นจ์ CONCAT , || ํ์ฌ ์ด ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
WITH reviews AS (
SELECT 'Wow... Loved this place.' AS review
UNION ALL SELECT 'The pizza is not good.'
)
SELECT * FROM reviews
WHERE AI_FILTER(CONCAT('The reviewer enjoyed the restaurant: ', review));
์ฌ๋ฌ ์ด์ ๊ฑธ์ณ ๋ณด๋ค ์ฝ๊ฒ ํ ํ๋ฆฟ ํ์์ ์ง์ ํ ์ ์๋๋ก Snowflake๋ PROMPT ํจ์ ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
WITH reviews AS (
SELECT 'Wow... Loved this place.' AS review
UNION ALL SELECT 'The pizza is not good.'
)
SELECT * FROM reviews
WHERE AI_FILTER(PROMPT('The reviewer enjoyed the restaurant: {0}', review));
+--------------------------+
| REVIEW |
|--------------------------+
| Wow... Loved this place. |
+--------------------------+
AI_FILTER ์ ํ์ง์ ํ๊ฐํ๋ ๋์ ์ฌ๋ฌ ์ด์์ ํ๋ณด ์กฐ๊ฑด์๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค.
WITH country AS (
SELECT 'Switzerland' AS country,
UNION ALL SELECT 'Korea'
),
region AS (
SELECT 'Asia' AS region,
UNION ALL SELECT 'Europe'
)
SELECT country,
region,
AI_FILTER(PROMPT('{0} is in {1}', country, region)) AS result
FROM country CROSS JOIN region ;
+-------------+-------+--------+
| COUNTRY |REGION | RESULT |
|-------------+-------+--------+
| Switzerland |Europe | TRUE |
|-------------+-------+--------+
| Switzerland | Asia | FALSE |
|-------------+-------+--------+
| Korea |Europe | FALSE |
+-------------+-------+--------+
| Korea | Asia | TRUE |
+-------------+-------+--------+
JOIN ๊ณผ ํจ๊ป AI_FILTER ์ฌ์ฉํ๊ธฐยถ
AI_FILTER ์ JOIN ์ ์ฌ์ฉํ์ฌ AI ๊ฐ ์ถ๋ก ํ ์ ์๋ ์์ฐ์ด ํ๋กฌํํธ๋ฅผ ํตํด ๋ ํ ์ด๋ธ์ ์ฐ๊ฒฐํ๋ ์์ ํํํ ์ ์์ต๋๋ค.
์ค์
AI_FILTER ํจ์๋ฅผ ์ฌ์ฉํ๋ JOIN ์์ ์ ์ํํ ๋ JOIN ์ ๊ฐ ํ ์ด๋ธ์ 500ํ์ ์ด๊ณผํ ์ ์์ต๋๋ค.
๋ ํฐ ๊ท๋ชจ์ ์กฐ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ๊ณ์ ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ฌ ์ ์ํ ์ต์ ํ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ์ญ์์ค.
๋ค์ ์์์๋ AI_FILTER ํจ์๋ฅผ ์ฌ์ฉํ์ฌ RESUMES ํ ์ด๋ธ์ JOBS ํ ์ด๋ธ๊ณผ ์กฐ์ธํฉ๋๋ค.
SELECT *
FROM RESUMES
JOIN JOBS
ON AI_FILTER(PROMPT('Evaluate if this resume {0} fits this job description {1}', RESUME.contents, JOBS.jd));
AI_FILTER: ์ด๋ฏธ์งยถ
๋ค์ ์์์๋ ์ง์นจ์ ๋ฐ๋ผ ์ด๋ฏธ์ง ํ์ผ์ ํํฐ๋งํฉ๋๋ค.
์ง์นจ ์กฐ๊ฑด์์ ์ด๋ฏธ์ง ํ์ผ ์ด์ ์ ๊ณตํ์ฌ ์ด๋ฏธ์ง๋ฅผ ํํฐ๋งํฉ๋๋ค.
WITH pictures AS (
SELECT
TO_FILE(file_url) AS img
FROM DIRECTORY(@file_stage)
)
SELECT
FL_GET_RELATIVE_PATH(img) AS file_path FROM pictures
WHERE AI_FILTER('Is this a picture of a cat?', img);
WITH pictures AS (
SELECT
TO_FILE(file_url) AS img
FROM DIRECTORY(@file_stage)
)
SELECT
FL_GET_RELATIVE_PATH(img) AS file_path FROM pictures
WHERE AI_FILTER(PROMPT('{0} is a cat picture', img));
+--------------------------+
| FILE_PATH |
|--------------------------+
| 2cats.jpg |
+--------------------------+
| cat1.png |
+--------------------------+
| orange_cat.jpg |
+--------------------------+
์ ํ ์ฌํญยถ
Snowflake AI ํจ์๋ ๋์ ํ ์ด๋ธ ์ฆ๋ถ ์๋ก ๊ณ ์นจ์ ์ง์ํ์ง ์์ต๋๋ค.
๋ค์ ์คํ ์ด์ง ์ ํ์ ์คํ ์ด์ง ํ์ผ๋ก ๋ง๋ FILEs ์์๋ Snowflake AI ํจ์๊ฐ ์๋ํ์ง ์์ต๋๋ค.
์ํธํ ๋ชจ๋
TYPE = 'SNOWFLAKE_FULL'
์ด ์๋ ๋ด๋ถ ์คํ ์ด์ง๊ณ ๊ฐ ์ธก์์ ์ํธํ๋ ๋ชจ๋๊ฐ ์๋ ์ธ๋ถ ์คํ ์ด์ง:
TYPE = 'AWS_CSE'
TYPE = 'AZURE_CSE'
์ฌ์ฉ์ ์คํ ์ด์ง, ํ ์ด๋ธ ์คํ ์ด์ง
ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ธ ์ด๋ฆ์ ๊ฐ์ง ์คํ ์ด์ง