์ด ํ์ด์ง์์๋ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฒกํฐ ์๋ฒ ๋ฉ์ ์์ฑํ๊ณ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ Cloud SQL์ ์ฌ์ฉํ์ฌ ์์ฑํ AI ์ ํ๋ฆฌ์ผ์ด์ ๋น๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud SQL์ ์ฌ์ฉํ๋ฉด Vertex AI์์ ํธ์คํ ํ๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฌธ์์ด์ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค. ์๋ฒ ๋ฉ์ ์ง์ ๋ ํ ์คํธ์ ์๋ฏธ๋ก ์ ์๋ฏธ๋ฅผ ์ซ์ ๋ฒกํฐ๋ก ๋ํ๋ด๋ ๋ชจ๋ธ ํํ์ ๋๋ค.
Cloud SQL์ ์๋ฒ ๋ฉ์ real
๊ฐ ๋ฐฐ์ด๋ก ๊ตฌํํฉ๋๋ค. ์์ฑ๋ ์๋ฒ ๋ฉ์ pgvector
ํ์ฅ ํจ์์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
์ผ๋ถ ์๊ตฌ์ฌํญ์ Cloud SQL์ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฉ์ ์์ฑํ ์ง ๋๋ ๋ค๋ฅธ ์์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์๋ฒ ๋ฉ์ผ๋ก๋ง ์์ ํด์ผ ํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๋ฆฌ์ ๋ณ ์ ํ์ฌํญ
Cloud SQL๋ก Vertex AI ์๋ฒ ๋ฉ์ ์์ฑํ๋ ค๋ฉด ์ธ์คํด์ค๊ฐ ์์ฑํ AI ๊ธฐ๋ฐ ๋ชจ๋ธ์ด ์ง์๋๋ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค.
Cloud SQL์ด ์๋ฒ ๋ฉ์ ์ฌ์ฉํ ์ ์๋ Vertex AI ๋ชจ๋ธ์ธ text-embedding
๋ฐ textembedding-gecko
๋ ์ด ๋ฆฌ์ ์ ์์ต๋๋ค.
ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฅ ํ๋ก๊ทธ๋จ
์๋ฒ ๋ฉ์ ์ฌ์ฉํ๋ ค๋ฉด Cloud SQL ์ธ์คํด์ค์ google_ml_integration
ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํฉ๋๋ค. Vertex AI ๋ชจ๋ธ์ ๊ฒฝ์ฐ ๋ฒ์ 1.2
์ด์์ ์ค์นํฉ๋๋ค. ์๋ ํํฐ ๋๋ ๋ง์ถค ๋ชจ๋ธ์ ๊ฒฝ์ฐ ๋ฒ์ 1.4.2
์ด์์ ์ค์นํฉ๋๋ค.
์ํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ์๋ฒ ๋ฉ์ ์ ์ฅํ๊ณ ์๋ฒ ๋ฉ๊ณผ ํจ๊ป ๋ฒกํฐ ํจ์์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด pgvector
ํ์ฅ ํ๋ก๊ทธ๋จ๋ ํ์ํฉ๋๋ค.
Cloud SQL์๋ ์ด๋ฌํ ๋ ๊ฐ์ง ํ์ฅ ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ ์์ต๋๋ค. ์ธ์คํด์ค์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์นํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ PostgreSQL ํ์ฅ ํ๋ก๊ทธ๋จ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
๋ชจ๋ธ ์ก์ธ์ค ์ค์
Cloud SQL ์ธ์คํด์ค์์ ์๋ฒ ๋ฉ์ ์์ฑํ๋ ค๋ฉด ๋จผ์ ํ ์คํธ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ฌ์ฉํ๋๋ก Cloud SQL์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ text-embedding
๋๋ textembedding-gecko
๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด Cloud SQL์ Vertex AI์ ํตํฉํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ์๋ฒ ๋ฉ์ ์์ฑํ ์ ์๋ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ embedding
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ธก์ ์คํํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
psql ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์ค๋ช ๋๋ก
psql
ํด๋ผ์ด์ธํธ๋ฅผ ๊ธฐ๋ณธ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.psql
๋ช ๋ น ํ๋กฌํํธ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.\c DB_NAME GRANT EXECUTE ON FUNCTION embedding TO USER_NAME;
๋ค์์ ๋ฐ๊ฟ๋๋ค.
DB_NAME: ๊ถํ์ ๋ถ์ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
USER_NAME: ๊ถํ์ ๋ถ์ฌํ ์ฌ์ฉ์์ ์ด๋ฆ
์๋ฒ ๋ฉ ์์ฑ
Cloud SQL์ ํ
์คํธ๋ฅผ ๋ฒกํฐ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํ ์ ์๋ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ฒ ๋ฉ์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ์ ํ์ ์ผ๋ก pgvector
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์๋ฒ ๋ฉ ์์ฑ
Cloud SQL์ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฉ์ ์์ฑํ๋ ค๋ฉด google_ml_integration
ํ์ฅ ํ๋ก๊ทธ๋จ์์ ์ ๊ณตํ๋ embedding
ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
SELECT embedding( 'MODEL_IDVERSION_TAG', 'TEXT');
๋ค์์ ๋ฐ๊ฟ๋๋ค.
MODEL_ID: ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ID.
Vertex AI Model Garden์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
text-embedding-004
๋๋text-multilingual-embedding-002
๋ฅผ ์ง์ ํฉ๋๋ค. Cloud SQL์์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฐธ์กฐํ์ธ์.VERSION_TAG(์ ํ์ฌํญ): ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ๋ฒ์ ํ๊ทธ.
text-embedding-004
๋๋text-multilingual-embedding-002
์ด์ ๋ฒ์ ์textembedding-gecko
์ ๊ฒฝ์ฐ ํ๊ทธ ์์@
๋ฅผ ์ถ๊ฐํฉ๋๋ค.Vertex AI์์
textembedding-gecko
๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชจ๋ธ ๋ฒ์ ์ ๋์ด๋ ๋ฒ์ ํ๊ทธ ์ค ํ๋๋ฅผ ์ง์ ํฉ๋๋ค.TEXT: ๋ฒกํฐ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํ ํ ์คํธ.
๋ค์ ์์์์๋ text-embedding-004
๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ ๊ณต๋ ๋ฆฌํฐ๋ด ๋ฌธ์์ด์ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค.
SELECT embedding( 'text-embedding-004', 'Cloud SQL is a managed, cloud-hosted SQL database service.');
์์ฑ๋ ์๋ฒ ๋ฉ ์ ์ฅ
embedding()
ํจ์์ ๋ฐํ ๊ฐ์ real
๊ฐ ๋ฐฐ์ด์
๋๋ค.
์ด ๊ฐ์ ํ
์ด๋ธ์ ์ ์ฅํ๋ ค๋ฉด real[]
์ด์ ์ถ๊ฐํฉ๋๋ค.
ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN real[DIMENSIONS];
๋ค์์ ๋ฐ๊ฟ๋๋ค.
TABLE: ํ ์ด๋ธ ์ด๋ฆ
EMBEDDING_COLUMN: ์ ์๋ฒ ๋ฉ ์ด์ ์ด๋ฆ
DIMENSIONS: ๋ชจ๋ธ์์ ์ง์ํ๋ ์ฐจ์ ์
Vertex AI์์
text-embedding
๋๋textembedding-gecko
๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ768
์ ์ง์ ํฉ๋๋ค.
์ํ๋ ๊ฒฝ์ฐ pgvector
ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํ์ผ๋ฉด ์๋ฒ ๋ฉ์ vector
๊ฐ์ผ๋ก ์ ์ฅํ ์ ์์ต๋๋ค.
ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);
์๋ฒ ๋ฉ์ ์ ์ฅํ ์ด์ ๋ง๋ ํ ๊ฐ์ ํ ์ด๋ธ์ ๋ค๋ฅธ ์ด์ ์ด๋ฏธ ์ ์ฅ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ด์ ์ฑ์ธ ์ ์์ต๋๋ค.
UPDATE TABLE SET EMBEDDING_COLUMN = embedding('MODEL_IDVERSION_TAG', SOURCE_TEXT_COLUMN);
๋ค์์ ๋ฐ๊ฟ๋๋ค.
TABLE: ํ ์ด๋ธ ์ด๋ฆ
EMBEDDING_COLUMN: ์๋ฒ ๋ฉ ์ด ์ด๋ฆ
MODEL_ID: ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ID.
Vertex AI Model Garden์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
text-embedding-004
๋๋text-multilingual-embedding-002
๋ฅผ ์ง์ ํฉ๋๋ค. Cloud SQL์์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฐธ์กฐํ์ธ์.VERSION_TAG(์ ํ์ฌํญ): ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ๋ฒ์ ํ๊ทธ.
text-embedding-004
๋๋text-multilingual-embedding-002
์ด์ ์textembedding-gecko
๋ฒ์ ์ ๊ฒฝ์ฐPrepend the tag with
@๋ฅผ ์ํํฉ๋๋ค.Vertex AI์์
textembedding-gecko
๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชจ๋ธ ๋ฒ์ ์ ๋์ด๋ ๋ฒ์ ํ๊ทธ ์ค ํ๋๋ฅผ ์ง์ ํฉ๋๋ค.SOURCE_TEXT_COLUMN: ํ ์คํธ๋ฅผ ์ ์ฅํ๋ ์ด์ ์ด๋ฆ. ์ด ํ ์คํธ๋ฅผ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํฉ๋๋ค.
์ ๋ช
๋ น์ด๋ real[]
๋ฐ vector
์๋ฒ ๋ฉ ์ด ๋ชจ๋์์ ์๋ํฉ๋๋ค. ์๋ฒ ๋ฉ ์ด์ด vector
์ ํ์ด๋ฉด Cloud SQL์์ ์์์ ์ผ๋ก real
๋ฐฐ์ด์ embedding()
๋ฐํ ๊ฐ์ vector
๊ฐ์ผ๋ก ๋ณํํฉ๋๋ค.
๋ค์ ์์์์๋ text-embedding-004
๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ messages.message
์ด์ ์ฝํ
์ธ ์ ๋ฐ๋ผ messages.message_vector
์ด์ ์๋ฒ ๋ฉ์ผ๋ก ์ฑ์๋๋ค.
UPDATE messages SET message_vector = embedding( 'text-embedding-004', message);
pgvector
์ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฉ ์ฟผ๋ฆฌ ๋ฐ ์์ธ ์์ฑ
pgvector
PostgreSQL ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ
์คํธ ์๋ฒ ๋ฉ์ ์ ์ฅ, ์์ธ ์์ฑ, ์ฟผ๋ฆฌํ ๋ ๋ฒกํฐ๋ณ ์ฐ์ฐ์์ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Cloud SQL๋ pgvector
๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์์ฒด์ ์ผ๋ก ์ต์ ํ๋๋ฏ๋ก ์๋ฒ ๋ฉ์ ํฌํจํ๋ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ํํ ์ ์๋ ์์ธ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ต๊ทผ์ ์ด์ ์์ธ ๋ง๋ค๊ธฐ
pgvector
๋ ์์ธ ์์ฑ์ ํตํ ๊ทผ์ฌ ์ต๊ทผ์ ์ด์(ANN) ๊ฒ์์ ์ง์ํฉ๋๋ค.
HNSW
์์ธ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์์์ ๊ฐ์ด hnsw
ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
CREATE INDEX ON TABLE
USING hnsw (EMBEDDING_COLUMN DISTANCE_FUNCTION)
WITH (m = M, ef_construction = EF_CONSTRUCTION);
๋ค์์ ๋ฐ๊ฟ๋๋ค.
TABLE: ์์ธ์ ์ถ๊ฐํ ํ ์ด๋ธ
EMBEDDING_COLUMN:
vector
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ดDISTANCE_FUNCTION: ์ด ์์ธ๊ณผ ํจ๊ป ์ฌ์ฉํ ๊ฑฐ๋ฆฌ ํจ์. ๋ค์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
L2 ๊ฑฐ๋ฆฌ:
vector_l2_ops
๋ด๋ถ ์ ํ:
vector_ip_ops
์ฝ์ฌ์ธ ๊ฑฐ๋ฆฌ:
vector_cosine_ops
M (์ ํ์ฌํญ): ๊ทธ๋ํ์์ ์ธ์ ํ ๋ฐ์ดํฐ ํฌ์ธํธ์์ ์ต๋ ์ฐ๊ฒฐ ์. 5~48์ด ๊ถ์ฅ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 16์ ๋๋ค.
EF_CONSTRUCTION (์ ํ์ฌํญ): ์์ธ์ ๋น๋ํ ๋ ๊ทธ๋ํ ํ์ ์ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ํ๋ณด๋ฅผ ๋ณด์ ํ๋ ๋ชฉ๋ก์ ํฌ๊ธฐ. ๊ฐ์ด ํด์๋ก ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋ง์ ํ๋ณด๋ฅผ ๊ณ ๋ คํ์ฌ ๋ ๋์ ์์ธ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ํฌ๊ธฐ๋ 64์ ๋๋ค.
vector
๋์ real[]
๋ฐ์ดํฐ ์ ํ์ ์ฌ์ฉํ๋ ์๋ฒ ๋ฉ ์ด์ ์ด ์์ธ์ ๋ง๋ค๋ ค๋ฉด ์ด์ vector
๋ฐ์ดํฐ ์ ํ์ผ๋ก ๋ณํํฉ๋๋ค.
CREATE INDEX ON TABLE
USING hnsw ((CAST(EMBEDDING_COLUMN AS vector(DIMENSIONS))) DISTANCE_FUNCTION)
WITH (m = M, ef_construction = EF_CONSTRUCTION);
DIMENSIONS๋ฅผ ์๋ฒ ๋ฉ ์ด์ ์ฐจ์ ๋๋น๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ์น์ ์์๋ ์ด๋ฌํ ์ข ๋ฅ์ ์์ธ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ง์ ๋ ํ ์คํธ๋ก ์ต๊ทผ์ ์ด์ ์ฟผ๋ฆฌ ์์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฒ ๋ฉ์ ์ ์ฅํ๊ณ ์์ธ์ ์์ฑํ๋ฉด pgvector
์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋ฒ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ
์คํธ์์ ์๋ฏธ๋ก ์ ์ผ๋ก ์ต๊ทผ์ ์ด์์ ์ฐพ์ผ๋ ค๋ฉด embedding()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ๋ฒกํฐ๋ก ๋ณํํฉ๋๋ค. ๊ฐ์ ์ฟผ๋ฆฌ์์ ์ด ๋ฒกํฐ๋ฅผ pgvector
์ต๊ทผ์ ์ด์ ์ฐ์ฐ์์ธ <->
์ ์ ์ฉํ์ฌ ์๋ฏธ์ ๊ฐ์ฅ ์ ์ฌํ ์๋ฒ ๋ฉ์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ ์ฐพ์ต๋๋ค.
embedding()
์์ real
๋ฐฐ์ด์ ๋ฐํํ๋ฏ๋ก pgvector
์ฐ์ฐ์์ ํจ๊ป ์ด๋ฌํ ๊ฐ์ ์ฌ์ฉํ๋ ค๋ฉด embedding()
ํธ์ถ์ vector
์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค.
SELECT RESULT_COLUMNS FROM TABLE
ORDER BY EMBEDDING_COLUMN
<-> embedding('MODEL_IDVERSION_TAG', 'TEXT')::vector
LIMIT ROW_COUNT
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RESULT_COLUMNS: ์๋ฏธ๋ก ์ ์ผ๋ก ์ ์ฌํ ํ์์ ํ์ํ ์ด์ ๋๋ค.
TABLE: ํ ์คํธ๋ฅผ ๋น๊ตํ ์๋ฒ ๋ฉ์ด ํฌํจ๋ ํ ์ด๋ธ์ ๋๋ค.
EMBEDDING_COLUMN: ์ ์ฅ๋ ์๋ฒ ๋ฉ์ด ํฌํจ๋ ์ด์ ๋๋ค.
MODEL_ID: ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ID.
Vertex AI Model Garden์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
text-embedding-004
๋๋text-embedding-multilingual-002
๋ฅผ ์ง์ ํฉ๋๋ค. Cloud SQL์์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฐธ์กฐํ์ธ์.VERSION_TAG(์ ํ์ฌํญ): ์ฟผ๋ฆฌํ ๋ชจ๋ธ์ ๋ฒ์ ํ๊ทธ. ํ๊ทธ ์์
@
๋ฅผ ์ถ๊ฐํฉ๋๋ค.Vertex AI์์
textembedding-gecko
๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชจ๋ธ ๋ฒ์ ์ ๋์ด๋ ๋ฒ์ ํ๊ทธ ์ค ํ๋๋ฅผ ์ง์ ํฉ๋๋ค.TEXT: ์๋ฏธ๋ก ์ ์ผ๋ก ์ต๊ทผ์ ์ผ๋ก ์ ์ฅ๋ ์ด์์ ์ฐพ์ ์ ์๋ ํ ์คํธ
ROW_COUNT: ๋ฐํํ ํ์ ๊ฐ์. ๊ฐ์ฅ ์ผ์นํ๋ ๊ฐ์ ํ๋๋ง ์ํ๋ ๊ฒฝ์ฐ ์ด ๋งค๊ฐ๋ณ์์ ๊ฐ์ผ๋ก
1
์ ์ง์ ํฉ๋๋ค.
real[]
๋ฐ์ดํฐ ์ ํ์ ์ฌ์ฉํ๋ ์ ์ฅ๋ ์๋ฒ ๋ฉ ์ด๋ก ์ด ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ค๋ฉด vector
๋์ ์ด์ vector
๋ฐ์ดํฐ ์ ํ์ผ๋ก ๋ณํํฉ๋๋ค.
SELECT RESULT_COLUMNS FROM TABLE
ORDER BY EMBEDDING_COLUMN::vector
<-> embedding('MODEL_IDVERSION_TAG', 'TEXT')::vector
LIMIT ROW_COUNT
๋ชจ๋ธ ๋ฒ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฅ ๋ฐฉ์ง
Cloud SQL์์๋ ํญ์ ์ ํํ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์์ ํ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฆ, ๋๋ถ๋ถ์ ๋ชจ๋ธ์์ ๋ฒ์ ํ๊ทธ๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์ ํฉ๋๋ค.
๋ชจ๋ธ์ ๋ฒ์ ํ๊ทธ๋ฅผ ์ง์ ํ์ง ์๊ณ embedding()
ํจ์๋ฅผ ํธ์ถํ๋ฉด ๊ตฌ๋ฌธ์ ์ผ๋ก๋ ์ ํจํ์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
Vertex AI Model Garden์์ ๋ชจ๋ธ์ ์ฌ์ฉํ ๋ ๋ฒ์ ํ๊ทธ๋ฅผ ์๋ตํ๋ฉด Vertex AI์์ ๋ชจ๋ธ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฒ์ ์ ์ต์ ์์ ํ ๋ฒ์ ์ด ์๋ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ Vertex AI ๋ชจ๋ธ ๋ฒ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ชจ๋ธ ๋ฒ์ ์ ์ฐธ์กฐํ์ธ์.
์ง์ ๋ Vertex AI ๋ชจ๋ธ ๋ฒ์ ์ ๋์ผํ embedding()
์๋ต์ ํญ์ ์ง์ ๋ ํ
์คํธ ์
๋ ฅ์ ๋ฐํํฉ๋๋ค. ์๋ฒ ๋ฉ ํธ์ถ์์ ๋ชจ๋ธ ๋ฒ์ ์ ์ง์ ํ์ง ์์ผ๋ฉด ์๋ก ๊ฒ์๋ ๋ชจ๋ธ ๋ฒ์ ์์ ์ง์ ๋ ์
๋ ฅ์ ๋ฐํ๋ ๋ฒกํฐ๋ฅผ ๊ฐ์๊ธฐ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์
์์ ์ค๋ฅ๋ ๊ธฐํ ์์์น ๋ชปํ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
- Cloud SQL์ ์ฌ์ฉํ์ฌ ์์ฑํ AI ์ ํ๋ฆฌ์ผ์ด์ ๋น๋
- Vertex AI์ Cloud SQL ํตํฉ
- Cloud SQL ์ธ์คํด์ค์์ ์จ๋ผ์ธ ์์ธก ํธ์ถ
- ์๋ฒ ๋ฉ ์ํฌํ๋ก ์์ ์ดํด
- LangChain์ ์ฌ์ฉํ์ฌ LLM ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋น๋
- Cloud SQL Studio๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ
- Gemini ์ง์์ผ๋ก SQL ์์ฑ