Huấn luyện mô hình AI đang nổi lên như một trong những ứng dụng tiềm năng của AI trong khoa học dữ liệu. Cụ thể hơn, machine learning có thể được thực hiện bằng Snowflake Cortex AI.
Trong hướng dẫn này, chúng tôi sẽ đề cập Snowflake Cortex AI là gì và có thể làm gì. Bên cạnh đó, chúng tôi cung cấp một hướng dẫn đơn giản để bắt đầu với machine learning và AI bằng Python và một chút SQL. Nếu bạn mới làm quen với Snowflake, hãy xem khóa học Introduction to Snowflake để bắt nhịp nhanh chóng.
Snowflake Cortex AI là gì?
Snowflake Cortex AI là một tính năng mạnh mẽ được tích hợp trong Snowflake AI Data Cloud, được thiết kế để hỗ trợ các tác vụ machine learning (ML) trực tiếp trong môi trường Snowflake.
Nó cho phép tích hợp liền mạch các mô hình ML viết bằng Python với dữ liệu trong Snowflake, giúp tổ chức khai thác insight, dự báo và phân tích nâng cao từ các tập dữ liệu lớn đồng thời tận dụng hạ tầng đám mây.
Ưu điểm khi kết hợp Snowflake Cortex AI với Python
Một số lợi ích chính khi dùng Snowflake Cortex AI gồm:
Tích hợp Python: Cho phép bạn chạy mô hình ML viết bằng Python trực tiếp trong môi trường tính toán của Snowflake.
Lưu trữ mô hình: Có thể lưu trữ và phục vụ mô hình cho suy luận (inference).
Không cần di chuyển dữ liệu: Vì mô hình chạy trong môi trường Snowflake, không cần chuyển các tập dữ liệu lớn ra máy chủ bên ngoài.
Trường hợp sử dụng và ứng dụng
Thứ nhất, Snowflake Cortex AI rất phù hợp cho doanh nghiệp muốn nâng cao năng lực khoa học dữ liệu mà không cần đầu tư lớn về nguồn lực. Với môi trường no-code, ngay cả người không chuyên kỹ thuật cũng có thể dễ dàng phát triển và triển khai mô hình ML.
Điều này đặc biệt hữu ích cho doanh nghiệp nhỏ hoặc startup không có ngân sách để thuê đội ngũ data scientist hoặc đầu tư vào các LLM đắt tiền.
Thứ hai, bằng cách tích hợp Python vào môi trường tính toán của Snowflake, người dùng có thể tận dụng thư viện phong phú các thuật toán và công cụ machine learning Python. Nghĩa là họ có thể tạo mô hình nâng cao và chính xác hơn mà không phải học ngôn ngữ lập trình mới.
Cuối cùng, các công ty đã sử dụng môi trường Snowflake sẽ tận dụng tối đa lợi ích của Cortex AI vì nó tích hợp liền mạch với kho dữ liệu hiện có, loại bỏ nhu cầu về hạ tầng bổ sung hay di chuyển dữ liệu.
Với Snowflake Cortex AI, doanh nghiệp có thể triển khai machine learning vào quy trình kinh doanh một cách dễ dàng và hiệu quả.
Bắt đầu với Snowflake Cortex AI
Trong hướng dẫn này, chúng ta sẽ đi qua quy trình thiết lập một pipeline machine learning bằng Python và Snowflake Cortex AI.
Điều kiện tiên quyết
Trước khi bắt đầu làm ML với Snowflake Cortex AI, hãy đảm bảo bạn đáp ứng các yêu cầu sau:
Thiết lập tài khoản Snowflake
Trước hết, bạn cần một phiên bản Snowflake nơi dữ liệu của bạn được lưu trữ và xử lý. Bạn có thể đăng ký trên trang web Snowflake.
Trong mẫu đăng ký, điền thông tin tài khoản và lưu ý thực hiện các lựa chọn sau ở trang thứ hai. Chọn Standard edition cho hướng dẫn này và Amazon Web Services để đơn giản và dễ tái lập. Với máy chủ, chọn US West (Oregon) để có đầy đủ lựa chọn các hàm LLM tốt nhất.
Sau khi chọn xong, nhấp Get Started để nhận email kích hoạt. Vào email của bạn để kích hoạt tài khoản và tài khoản Snowflake của bạn đã sẵn sàng.
Yêu cầu phần mềm
Tiếp theo, bạn cũng cần đáp ứng một số yêu cầu phần mềm khác.
Danh sách đơn giản những thứ cần có:
Môi trường Python: Python 3.x với các gói cần thiết đã được cài đặt.
Snowflake: Cần cài Snowflake từ terminal để kết nối môi trường Python của bạn với tài khoản Snowflake.
VS Code: Có thể dùng một IDE phù hợp với Python. Các lựa chọn khác gồm DataLab, Google Colab, hoặc Jupyter Notebooks.
Trước khi bắt đầu phân tích, hãy cài mọi gói liên quan để môi trường mã hóa sẵn sàng.
Để cài đặt các gói cần thiết, bạn có thể dùng pip:
Sau khi nhập thông tin tài khoản, lưu tệp và tạo một tệp Python hoặc Jupyter Notebook trong cùng thư mục.
Kết nối với Snowflake
Bây giờ mọi thứ đã sẵn sàng, hãy kết nối môi trường Python của bạn với Snowflake.
Trước tiên, mở tệp Python và import tất cả thư viện cần thiết. Đây là đoạn mã để thực hiện:
import os
from dotenv import load_dotenv
from snowflake.snowpark import Session
from snowflake.cortex import Summarize, Complete, ExtractAnswer, Sentiment, Translate, EmbedText768Được hỗ trợ bởi
Tiếp theo, bạn cần nạp các biến đã lưu trong tệp .env trước đó. Điều này sẽ cung cấp thông tin xác thực tài khoản cho Snowflake để đăng nhập và sử dụng các hàm của họ.
# Loads environment variables from .env
load_dotenv()
connection_params ={"account": os.environ["SNOWFLAKE_ACCOUNT"],"user": os.environ["SNOWFLAKE_USER"],"password": os.environ["SNOWFLAKE_USER_PASSWORD"],}Được hỗ trợ bởi
Khi đã kết nối bằng các biến, bạn cần thiết lập một phiên Snowflake. Đây là đối tượng sẽ xử lý mọi yêu cầu của bạn.
# Creates a Snowflake session
snowflake_session = Session.builder.configs(connection_params).create()Được hỗ trợ bởi
Các hàm LLM của Snowflake Cortex AI
Các hàm LLM trong Cortex AI cho phép người dùng khai thác sức mạnh của LLM mà không cần tự phát triển mô hình AI.
Những hàm này giúp người dùng phân tích dữ liệu phổ thông tiếp cận phân tích dựa trên AI qua các tác vụ cơ bản.
Dưới đây là các hàm mà Snowflake Cortex cung cấp:
1. SUMMARIZE
Hàm summarize dùng để tạo bản tóm tắt dữ liệu dựa trên đầu vào cung cấp.
Nó sử dụng LLM để xác định thông tin then chốt và trình bày cô đọng.
Ví dụ, nếu bạn có một tài liệu dài và muốn có cái nhìn nhanh về nội dung, bạn có thể dùng summarize để nhận bản tóm tắt nêu bật các ý quan trọng. Điều này tiết kiệm thời gian và cho phép phân tích nhanh khối lượng dữ liệu lớn.
Ngôn ngữ đầu vào hiện bị giới hạn ở tiếng Anh tại thời điểm viết bài này.
Xem đoạn mã dưới đây để tham khảo:
# Defines the Summarize LLM Functiondefsummarize(user_text):
summary = Summarize(text=user_text, session=snowflake_session)return summaryĐược hỗ trợ bởi
2. TRANSLATE
Hàm translate dùng để chuyển đổi văn bản từ ngôn ngữ này sang ngôn ngữ khác.
Nó tận dụng các thuật toán machine learning và mô hình thống kê để dịch chính xác văn bản.
Điều này hữu ích khi làm việc với dữ liệu hoặc tài liệu bằng nhiều ngôn ngữ, vì giúp giao tiếp và hiểu dễ dàng hơn.
Ví dụ, nếu bạn có một báo cáo viết bằng tiếng Tây Ban Nha và cần trình bày cho đối tượng nói tiếng Anh, bạn có thể dùng hàm translate để chuyển đổi nhanh văn bản. Điều này loại bỏ nhu cầu dịch thủ công và tiết kiệm thời gian.
Xem đoạn mã dưới đây để tham khảo:
# Defines the Translate LLM Functiondeftranslate(user_text):
translation = Translate(
text=user_text, from_language="en", to_language="ko", session=snowflake_session
)return translationĐược hỗ trợ bởi
3. COMPLETE
Hàm complete là một hàm toàn diện có thể dùng để thực hiện các tác vụ cụ thể. Điều này được thực hiện thông qua các câu nhắc (prompt) hướng dẫn mô hình AI cung cấp thông tin cần thiết để thực thi tác vụ.
Xem đoạn mã dưới đây để tham khảo:
# Defines the Complete LLM Functiondefcomplete(user_text):
completion = Complete(
model="snowflake-arctic",
prompt=f"Provide 3 relevant keywords from the following text: {user_text}",
session=snowflake_session,)return completionĐược hỗ trợ bởi
4. EXTRACT_ANSWER
Hàm extract answer đưa ra câu trả lời dựa trên câu hỏi cung cấp cho mô hình. Đầu vào phải bằng tiếng Anh ở dạng chuỗi hoặc JSON.
Xem đoạn mã dưới đây để tham khảo:
# Defines the Extract Answer LLM Functiondefextract_answer(user_text):
answer = ExtractAnswer(
from_text=user_text,
question="What are some reasons why young adult South Koreans love coffee?",
session=snowflake_session,)return answerĐược hỗ trợ bởi
5. SENTIMENT
Hàm sentiment cung cấp một con số định lượng dựa trên cảm xúc của văn bản đầu vào. Nó trả về giá trị trong khoảng -1 đến 1. Giá trị -1 là tiêu cực nhất, 1 là tích cực nhất, và xung quanh 0 là trung lập.
Xem đoạn mã dưới đây để tham khảo:
# Defines the Sentiment LLM Functiondefsentiment(user_text):
sentiment = Sentiment(text=user_text, session=snowflake_session)return sentimentĐược hỗ trợ bởi
6. EMBED_TEXT
Các hàm embed text bao gồm EMBED_TEXT_768 và EMBED_TEXT_1024. Chúng tạo vector embedding với số chiều lần lượt là 768 và 1024.
Xem đoạn mã dưới đây tham khảo hàm EMBED_TEXT_768:
# Defines the Embed Text LLM Functiondefembed_text(user_text):
embed_text = EmbedText768(text=user_text, model='snowflake-arctic-embed-m', session=snowflake_session)return embed_textĐược hỗ trợ bởi
Giờ hãy ghép tất cả vào một hàm main và chạy với một văn bản mẫu để xem kết quả.
Tôi đã dùng một đoạn văn bản ngắn, đơn giản để nhập vào mô hình như dưới đây:
Để thuận tiện sao chép, đây là văn bản:
user_text = """
Young adults in South Korea are embracing coffee as a blend of energy, comfort, and culture.
Coffee isn't just about staying awake during demanding studies or work; it’s a cherished part of daily routines.
With South Korea's bustling café culture, coffee shops have become popular spaces for socializing, studying,
or just taking a break from the fast-paced city life.
The diversity of flavors and trendy cafés also offers a unique,
stylish experience that fits right into the evolving lifestyle of young adults,
who seek both connection and personal moments in the midst of it all.
"""Được hỗ trợ bởi
Bây giờ, hãy chạy mã. Mất vài giây thôi.
Đây là kết quả:
Như bạn thấy, AI đã cho chúng ta mọi kết quả cần thiết dựa trên văn bản cung cấp. Nó tạo tóm tắt, dịch văn bản sang tiếng Hàn, đưa ra ba từ khóa liên quan dựa trên văn bản, và cung cấp câu trả lời theo câu hỏi của tôi.
Các hàm Machine Learning của Snowflake Cortex AI
Cortex AI cũng có các hàm ML có thể chạy chỉ với SQL. Dưới đây là một số hàm mà nó cung cấp.
1. Phát hiện bất thường
Phát hiện bất thường rất quan trọng để nhận diện các mẫu bất thường không phù hợp với hành vi kỳ vọng của dữ liệu. Snowflake đơn giản hóa phát hiện bất thường bằng cách cung cấp các hàm machine learning dựng sẵn dựa trên gradient boosting machine (GBM), cho phép nhanh chóng xác định outlier trong tập dữ liệu của bạn.
Phát hiện bất thường đặc biệt hữu ích cho các tác vụ như:
Phát hiện gian lận trong dữ liệu giao dịch.
Xác định hành vi người dùng bất thường.
Giám sát chuỗi thời gian để phát hiện bất thường trong hiệu năng hệ thống.
Để thực hiện phát hiện bất thường, có thể dùng lớp ANOMALY_DETECTION (SNOWFLAKE.ML) của Snowflake. Lệnh này tạo đối tượng mô hình phát hiện bất thường. Bước này sẽ fit mô hình vào dữ liệu huấn luyện.
Cách sử dụng như sau:
CREATE[ORREPLACE] SNOWFLAKE.ML.ANOMALY_DETECTION <model_name>(
INPUT_DATA =><reference_to_training_data>,[ SERIES_COLNAME =>'<series_column_name>',]
TIMESTAMP_COLNAME =>'<timestamp_column_name>',
TARGET_COLNAME =>'<target_column_name>',
LABEL_COLNAME =>'<label_column_name>',[ CONFIG_OBJECT =><config_object>])[[WITH] TAG (<tag_name>='<tag_value>'[,<tag_name>='<tag_value>',...])][COMMENT='<string_literal>']Được hỗ trợ bởi
Sau khi tạo đối tượng, bạn có thể dùng phương thức <model_name>!DETECT_ANOMALIES để thực hiện phát hiện bất thường,
Mã của bạn nên được nhập trong một SQL worksheet trông như thế này:
Tiếp theo là các câu lệnh sau để tạo bảng tên new_sales_data.
// Creating a new table and adding training dataCREATEORREPLACETABLE new_sales_data (
store_id NUMBER, item VARCHAR,date TIMESTAMP_NTZ, sales FLOAT,
temperature NUMBER, humidity FLOAT, holiday VARCHAR);INSERTINTO new_sales_data VALUES(1,'jacket', to_timestamp_ntz('2020-01-16'),6.0,52,0.3,null),(1,'jacket', to_timestamp_ntz('2020-01-17'),20.0,53,0.3,null),(2,'umbrella', to_timestamp_ntz('2020-01-16'),3.0,52,0.3,null),(2,'umbrella', to_timestamp_ntz('2020-01-17'),70.0,53,0.3,null);Được hỗ trợ bởi
Bây giờ, tạo mô hình phát hiện bất thường:
// Creating anomaly detection model objectCREATEORREPLACEVIEW view_with_training_data
ASSELECTdate, sales FROM historical_sales_data
WHERE store_id=1AND item='jacket';CREATEORREPLACE SNOWFLAKE.ML.ANOMALY_DETECTION basic_model(
INPUT_DATA =>TABLE(view_with_training_data),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales',
LABEL_COLNAME =>'');Được hỗ trợ bởi
Điều này sẽ tạo kết quả thông báo rằng mô hình đã được tạo như dưới đây.
Tiếp theo, hãy dùng đối tượng mô hình để thực hiện phát hiện.
// Perform anomaly detectionCREATEORREPLACEVIEW view_with_data_to_analyze
ASSELECTdate, sales FROM new_sales_data
WHERE store_id=1and item='jacket';CALL basic_model!DETECT_ANOMALIES(
INPUT_DATA =>TABLE(view_with_data_to_analyze),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales');Được hỗ trợ bởi
Đây là đầu ra của quá trình phát hiện:
2. Phân loại
Phân loạilà việc phân loại dữ liệu vào các lớp xác định trước. Với Snowflake, bạn có thể phân loại dữ liệu trực tiếp trong Snowflake, không cần xuất dữ liệu sang môi trường ML bên ngoài.
Bắt đầu bằng cách tạo tập dữ liệu mẫu với đoạn mã sau:
Cho mục đích dữ liệu huấn luyện, hãy tạo một view mới.
// Creating view for training dataCREATEORREPLACEview binary_classification_view ASSELECT user_interest_score, user_rating, label
FROM training_purchase_data;SELECT*FROM binary_classification_view ORDERBY RANDOM(42)LIMIT5;Được hỗ trợ bởi
View này sẽ cho ra kết quả như sau:
Tiếp theo, hãy huấn luyện mô hình dựa trên dữ liệu huấn luyện:
// Training a binary classification modelCREATEORREPLACE SNOWFLAKE.ML.CLASSIFICATION model_binary(
INPUT_DATA => SYSTEM$REFERENCE('view','binary_classification_view'),
TARGET_COLNAME =>'label');Được hỗ trợ bởi
Để thực hiện phân loại, dùng phương thức PREDICT:
// Performing prediction using PREDICT methodSELECT model_binary!PREDICT(INPUT_DATA => {*})AS prediction FROM prediction_purchase_data;Được hỗ trợ bởi
Dự đoán sẽ trông như sau:
Để định dạng đẹp hơn, dùng câu lệnh SQL này:
// Formatting SQL predictionsSELECT*, model_binary!PREDICT(INPUT_DATA => {*})AS predictions FROM prediction_purchase_data;Được hỗ trợ bởi
Bạn sẽ nhận được định dạng gọn gàng cho các dự đoán như sau:
3. Top insights
Top Insights là công cụ giám sát để tìm các dao động trong chỉ số theo thời gian thông qua phân tích chuỗi thời gian. Sử dụng mô hình cây quyết định, Top Insights có thể xác định các yếu tố đóng góp quan trọng nhất vào việc tăng hoặc giảm của một chỉ số cụ thể.
Hãy xem ví dụ phân tích chuỗi thời gian bằng hàm này.
Tiếp theo, chúng ta phải tạo đối tượng mô hình để dự đoán. Điều này cần thiết để gọi phương thức GET_DRIVERS.
// Creating the modelCREATEORREPLACE SNOWFLAKE.ML.TOP_INSIGHTS my_insights_model()Được hỗ trợ bởi
Cuối cùng, để dự đoán, hãy gọi phương thức GET_DRIVERS.
// Performing prediction using GET_DRIVERS methodCALL my_insights_model!GET_DRIVERS(
INPUT_DATA =>TABLE(input_view),
LABEL_COLNAME =>'label',
METRIC_COLNAME =>'metric');Được hỗ trợ bởi
Bạn sẽ nhận được kết quả như sau:
4. Dự báo
Dự báo rất quan trọng khi bạn cần dự đoán giá trị tương lai dựa trên dữ liệu lịch sử. Dù là dự báo doanh số, dự đoán tiêu thụ năng lượng hay lưu lượng truy cập web, các hàm dựng sẵn của Snowflake giúp các tác vụ này đơn giản hơn nhiều.
Trong ví dụ của chúng ta, hãy thử dự báo trên một chuỗi đơn:
Tiếp theo, hãy tách dữ liệu huấn luyện ra khỏi tập dữ liệu.
// Creating a view for training dataCREATEORREPLACEVIEW v1 ASSELECTdate, sales
FROM sales_data WHERE store_id=1AND item='jacket';SELECT*FROM v1;Được hỗ trợ bởi
Trước khi bắt đầu dự báo, bạn cần huấn luyện mô hình dựa trên dữ liệu huấn luyện đã chọn.
Cách thực hiện:
// Training a forecasting modelCREATE SNOWFLAKE.ML.FORECAST model1(
INPUT_DATA =>TABLE(v1),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales');Được hỗ trợ bởi
Cuối cùng, để dự báo, bạn có thể gọi phương thức FORECAST để thực hiện bước dự đoán.
// Performing the forecast by calling the FORECAST methodcall model1!FORECAST(FORECASTING_PERIODS =>5);Được hỗ trợ bởi
Đây là đầu ra kết quả dự báo của chúng ta.
Giám sát mô hình ML trong Snowflake
Có thể giám sát hiệu năng mô hình bằng cách tạo dashboard trong Snowflake thông qua tích hợp bên thứ ba (như Tableau) hoặc truy vấn log của Snowflake. Một số chỉ số hữu ích như accuracy, precision và recall có thể dùng để theo dõi mô hình.
Kết luận
Snowflake Cortex AI đơn giản hóa machine learning bằng cách cho phép tích hợp liền mạch các mô hình ngay từ nền tảng Snowflake. Hướng dẫn này đã đưa bạn qua việc sử dụng các hàm Snowflake Cortex AI và Snowflake Cortex ML.
Giải pháp này tận dụng khả năng mở rộng của Snowflake và sự linh hoạt của Python, rất phù hợp cho tổ chức muốn triển khai machine learning mà không cần đưa dữ liệu ra ngoài đám mây.
Machine Learning với Python & Snowflake Cortex: Câu hỏi thường gặp
Python có tốt cho machine learning và AI không?⌄
Python phù hợp cho machine learning và AI nhờ các thư viện mạnh như PyTorch, TensorFlow và Keras. Các hàm Snowflake AI và ML cũng có thể được truy cập qua Python.
Cách dùng Python cho AI và machine learning?⌄
Bạn có thể dùng Python cho AI và machine learning thông qua các thư viện dựng sẵn hoặc thông qua các hàm LLM và ML của Snowflake.
Cách sử dụng các hàm ML dựa trên Snowflake Cortex?⌄
Các hàm dựa trên ML của Snowflake Cortex có thể được sử dụng bằng cách gọi các phương thức tương ứng của từng hàm bằng SQL.
Các mô hình AI của Snowflake là gì?⌄
Các mô hình AI của Snowflake là các mô hình ngôn ngữ lớn cung cấp sức mạnh cho Snowflake Cortex và các hàm tương ứng của nó.
Một số ví dụ machine learning của Snowflake là gì?⌄
Các hàm machine learning của Snowflake có thể áp dụng cho nhiều ứng dụng như phát hiện bất thường, dự báo, tìm top insights và phân loại.
Tôi là Austin, một blogger và cây bút công nghệ với nhiều năm kinh nghiệm làm nhà khoa học dữ liệu và nhà phân tích dữ liệu trong lĩnh vực chăm sóc sức khỏe. Khởi đầu hành trình công nghệ với nền tảng sinh học, tôi hiện hỗ trợ những người khác thực hiện chuyển đổi tương tự thông qua blog công nghệ của mình. Niềm đam mê công nghệ đã đưa tôi đến với việc cộng tác viết cho hàng chục công ty SaaS, truyền cảm hứng cho người khác và chia sẻ trải nghiệm của bản thân.
Huấn luyện mô hình AI đang nổi lên như một trong những ứng dụng tiềm năng của AI trong khoa học dữ liệu. Cụ thể hơn, machine learning có thể được thực hiện bằng Snowflake Cortex AI.
Trong hướng dẫn này, chúng tôi sẽ đề cập Snowflake Cortex AI là gì và có thể làm gì. Bên cạnh đó, chúng tôi cung cấp một hướng dẫn đơn giản để bắt đầu với machine learning và AI bằng Python và một chút SQL. Nếu bạn mới làm quen với Snowflake, hãy xem khóa học Introduction to Snowflake để bắt nhịp nhanh chóng.
Snowflake Cortex AI là gì?
Snowflake Cortex AI là một tính năng mạnh mẽ được tích hợp trong Snowflake AI Data Cloud, được thiết kế để hỗ trợ các tác vụ machine learning (ML) trực tiếp trong môi trường Snowflake.
Nó cho phép tích hợp liền mạch các mô hình ML viết bằng Python với dữ liệu trong Snowflake, giúp tổ chức khai thác insight, dự báo và phân tích nâng cao từ các tập dữ liệu lớn đồng thời tận dụng hạ tầng đám mây.
Nguồn: Snowflake Cortex AI
Các tính năng chính của Snowflake Cortex AI:
Snowflake Cortex gồm hai phần chính—các hàm LLM và các hàm ML.
Với các hàm LLM, bạn có:
Chúng ta sẽ xem chi tiết từng hàm ở phần sau.
Với các hàm ML, bạn có:
Muốn biết học Snowflake và các hàm của nó ở đâu? Hướng dẫn Snowflake cho người mới bắt đầu và hướng dẫn chứng chỉ Snowflake của chúng tôi sẽ giúp bạn.
Vì sao dùng Snowflake Cortex AI với Python?
Giờ hãy xem lợi ích khi kết hợp các công cụ này.
Ưu điểm khi kết hợp Snowflake Cortex AI với Python
Một số lợi ích chính khi dùng Snowflake Cortex AI gồm:
Trường hợp sử dụng và ứng dụng
Thứ nhất, Snowflake Cortex AI rất phù hợp cho doanh nghiệp muốn nâng cao năng lực khoa học dữ liệu mà không cần đầu tư lớn về nguồn lực. Với môi trường no-code, ngay cả người không chuyên kỹ thuật cũng có thể dễ dàng phát triển và triển khai mô hình ML.
Điều này đặc biệt hữu ích cho doanh nghiệp nhỏ hoặc startup không có ngân sách để thuê đội ngũ data scientist hoặc đầu tư vào các LLM đắt tiền.
Thứ hai, bằng cách tích hợp Python vào môi trường tính toán của Snowflake, người dùng có thể tận dụng thư viện phong phú các thuật toán và công cụ machine learning Python. Nghĩa là họ có thể tạo mô hình nâng cao và chính xác hơn mà không phải học ngôn ngữ lập trình mới.
Cuối cùng, các công ty đã sử dụng môi trường Snowflake sẽ tận dụng tối đa lợi ích của Cortex AI vì nó tích hợp liền mạch với kho dữ liệu hiện có, loại bỏ nhu cầu về hạ tầng bổ sung hay di chuyển dữ liệu.
Với Snowflake Cortex AI, doanh nghiệp có thể triển khai machine learning vào quy trình kinh doanh một cách dễ dàng và hiệu quả.
Bắt đầu với Snowflake Cortex AI
Trong hướng dẫn này, chúng ta sẽ đi qua quy trình thiết lập một pipeline machine learning bằng Python và Snowflake Cortex AI.
Điều kiện tiên quyết
Trước khi bắt đầu làm ML với Snowflake Cortex AI, hãy đảm bảo bạn đáp ứng các yêu cầu sau:
Thiết lập tài khoản Snowflake
Trước hết, bạn cần một phiên bản Snowflake nơi dữ liệu của bạn được lưu trữ và xử lý. Bạn có thể đăng ký trên trang web Snowflake.
Trong mẫu đăng ký, điền thông tin tài khoản và lưu ý thực hiện các lựa chọn sau ở trang thứ hai. Chọn Standard edition cho hướng dẫn này và Amazon Web Services để đơn giản và dễ tái lập. Với máy chủ, chọn US West (Oregon) để có đầy đủ lựa chọn các hàm LLM tốt nhất.
Sau khi chọn xong, nhấp Get Started để nhận email kích hoạt. Vào email của bạn để kích hoạt tài khoản và tài khoản Snowflake của bạn đã sẵn sàng.
Yêu cầu phần mềm
Tiếp theo, bạn cũng cần đáp ứng một số yêu cầu phần mềm khác.
Danh sách đơn giản những thứ cần có:
Trước khi bắt đầu phân tích, hãy cài mọi gói liên quan để môi trường mã hóa sẵn sàng.
Để cài đặt các gói cần thiết, bạn có thể dùng pip:
Sau khi cài thư viện, bạn cần thiết lập thư mục làm việc và tệp để bắt đầu.
Tôi đã tạo một thư mục tên Cortex AI Tutorial và thêm tệp
.envchứa thông tin sau:Sau khi nhập thông tin tài khoản, lưu tệp và tạo một tệp Python hoặc Jupyter Notebook trong cùng thư mục.
Kết nối với Snowflake
Bây giờ mọi thứ đã sẵn sàng, hãy kết nối môi trường Python của bạn với Snowflake.
Trước tiên, mở tệp Python và import tất cả thư viện cần thiết. Đây là đoạn mã để thực hiện:
Tiếp theo, bạn cần nạp các biến đã lưu trong tệp .env trước đó. Điều này sẽ cung cấp thông tin xác thực tài khoản cho Snowflake để đăng nhập và sử dụng các hàm của họ.
Khi đã kết nối bằng các biến, bạn cần thiết lập một phiên Snowflake. Đây là đối tượng sẽ xử lý mọi yêu cầu của bạn.
Các hàm LLM của Snowflake Cortex AI
Các hàm LLM trong Cortex AI cho phép người dùng khai thác sức mạnh của LLM mà không cần tự phát triển mô hình AI.
Những hàm này giúp người dùng phân tích dữ liệu phổ thông tiếp cận phân tích dựa trên AI qua các tác vụ cơ bản.
Dưới đây là các hàm mà Snowflake Cortex cung cấp:
1. SUMMARIZE
Hàm summarize dùng để tạo bản tóm tắt dữ liệu dựa trên đầu vào cung cấp.
Nó sử dụng LLM để xác định thông tin then chốt và trình bày cô đọng.
Ví dụ, nếu bạn có một tài liệu dài và muốn có cái nhìn nhanh về nội dung, bạn có thể dùng summarize để nhận bản tóm tắt nêu bật các ý quan trọng. Điều này tiết kiệm thời gian và cho phép phân tích nhanh khối lượng dữ liệu lớn.
Ngôn ngữ đầu vào hiện bị giới hạn ở tiếng Anh tại thời điểm viết bài này.
Xem đoạn mã dưới đây để tham khảo:
2. TRANSLATE
Hàm translate dùng để chuyển đổi văn bản từ ngôn ngữ này sang ngôn ngữ khác.
Nó tận dụng các thuật toán machine learning và mô hình thống kê để dịch chính xác văn bản.
Điều này hữu ích khi làm việc với dữ liệu hoặc tài liệu bằng nhiều ngôn ngữ, vì giúp giao tiếp và hiểu dễ dàng hơn.
Ví dụ, nếu bạn có một báo cáo viết bằng tiếng Tây Ban Nha và cần trình bày cho đối tượng nói tiếng Anh, bạn có thể dùng hàm translate để chuyển đổi nhanh văn bản. Điều này loại bỏ nhu cầu dịch thủ công và tiết kiệm thời gian.
Xem đoạn mã dưới đây để tham khảo:
3. COMPLETE
Hàm complete là một hàm toàn diện có thể dùng để thực hiện các tác vụ cụ thể. Điều này được thực hiện thông qua các câu nhắc (prompt) hướng dẫn mô hình AI cung cấp thông tin cần thiết để thực thi tác vụ.
Xem đoạn mã dưới đây để tham khảo:
4. EXTRACT_ANSWER
Hàm extract answer đưa ra câu trả lời dựa trên câu hỏi cung cấp cho mô hình. Đầu vào phải bằng tiếng Anh ở dạng chuỗi hoặc JSON.
Xem đoạn mã dưới đây để tham khảo:
5. SENTIMENT
Hàm sentiment cung cấp một con số định lượng dựa trên cảm xúc của văn bản đầu vào. Nó trả về giá trị trong khoảng -1 đến 1. Giá trị -1 là tiêu cực nhất, 1 là tích cực nhất, và xung quanh 0 là trung lập.
Xem đoạn mã dưới đây để tham khảo:
6. EMBED_TEXT
Các hàm embed text bao gồm
EMBED_TEXT_768vàEMBED_TEXT_1024. Chúng tạo vector embedding với số chiều lần lượt là 768 và 1024.Xem đoạn mã dưới đây tham khảo hàm
EMBED_TEXT_768:Giờ hãy ghép tất cả vào một hàm main và chạy với một văn bản mẫu để xem kết quả.
Tôi đã dùng một đoạn văn bản ngắn, đơn giản để nhập vào mô hình như dưới đây:
Để thuận tiện sao chép, đây là văn bản:
Bây giờ, hãy chạy mã. Mất vài giây thôi.
Đây là kết quả:
Như bạn thấy, AI đã cho chúng ta mọi kết quả cần thiết dựa trên văn bản cung cấp. Nó tạo tóm tắt, dịch văn bản sang tiếng Hàn, đưa ra ba từ khóa liên quan dựa trên văn bản, và cung cấp câu trả lời theo câu hỏi của tôi.
Các hàm Machine Learning của Snowflake Cortex AI
Cortex AI cũng có các hàm ML có thể chạy chỉ với SQL. Dưới đây là một số hàm mà nó cung cấp.
1. Phát hiện bất thường
Phát hiện bất thường rất quan trọng để nhận diện các mẫu bất thường không phù hợp với hành vi kỳ vọng của dữ liệu. Snowflake đơn giản hóa phát hiện bất thường bằng cách cung cấp các hàm machine learning dựng sẵn dựa trên gradient boosting machine (GBM), cho phép nhanh chóng xác định outlier trong tập dữ liệu của bạn.
Phát hiện bất thường đặc biệt hữu ích cho các tác vụ như:
Để thực hiện phát hiện bất thường, có thể dùng lớp ANOMALY_DETECTION (SNOWFLAKE.ML) của Snowflake. Lệnh này tạo đối tượng mô hình phát hiện bất thường. Bước này sẽ fit mô hình vào dữ liệu huấn luyện.
Cách sử dụng như sau:
Sau khi tạo đối tượng, bạn có thể dùng phương thức <model_name>!DETECT_ANOMALIES để thực hiện phát hiện bất thường,
Đây là bước dự đoán thực tế, nơi outlier sẽ được phát hiện bằng phương thức này.
Dưới đây là ví dụ cách thực hiện phát hiện bất thường với một tập dữ liệu.
Trước hết, bạn có thể tạo cơ sở dữ liệu bằng cách vào Data ở thanh bên trái, sau đó Add Data, rồi Load data into a Table.
Trong cửa sổ bật lên, nhấp + Database và đặt tên cơ sở dữ liệu. Nhấp Create, sau đó trong cửa sổ chính, nhấp Cancel.
Điều này sẽ tạo một cơ sở dữ liệu trống để bạn làm việc.
Các ví dụ dưới đây được điều chỉnh từ Tài liệu Snowflake.
Để bắt đầu phát hiện bất thường, vào một SQL worksheet mới, chọn cơ sở dữ liệu mới làm nguồn dữ liệu, và dán đoạn mã sau để tạo bảng:
CREATE OR REPLACE TABLE historical_sales_data (
store_id NUMBER, item VARCHAR, date TIMESTAMP_NTZ, sales FLOAT, label BOOLEAN,
temperature NUMBER, humidity FLOAT, holiday VARCHAR);
Mã của bạn nên được nhập trong một SQL worksheet trông như thế này:
Tiếp theo là các câu lệnh sau để tạo bảng tên
new_sales_data.Bây giờ, tạo mô hình phát hiện bất thường:
Điều này sẽ tạo kết quả thông báo rằng mô hình đã được tạo như dưới đây.
Tiếp theo, hãy dùng đối tượng mô hình để thực hiện phát hiện.
Đây là đầu ra của quá trình phát hiện:
2. Phân loại
Phân loại là việc phân loại dữ liệu vào các lớp xác định trước. Với Snowflake, bạn có thể phân loại dữ liệu trực tiếp trong Snowflake, không cần xuất dữ liệu sang môi trường ML bên ngoài.
Bắt đầu bằng cách tạo tập dữ liệu mẫu với đoạn mã sau:
Cho mục đích dữ liệu huấn luyện, hãy tạo một view mới.
View này sẽ cho ra kết quả như sau:
Tiếp theo, hãy huấn luyện mô hình dựa trên dữ liệu huấn luyện:
Để thực hiện phân loại, dùng phương thức
PREDICT:Dự đoán sẽ trông như sau:
Để định dạng đẹp hơn, dùng câu lệnh SQL này:
Bạn sẽ nhận được định dạng gọn gàng cho các dự đoán như sau:
3. Top insights
Top Insights là công cụ giám sát để tìm các dao động trong chỉ số theo thời gian thông qua phân tích chuỗi thời gian. Sử dụng mô hình cây quyết định, Top Insights có thể xác định các yếu tố đóng góp quan trọng nhất vào việc tăng hoặc giảm của một chỉ số cụ thể.
Hãy xem ví dụ phân tích chuỗi thời gian bằng hàm này.
Trước hết, hãy tạo tập dữ liệu:
Tiếp theo, chúng ta phải tạo đối tượng mô hình để dự đoán. Điều này cần thiết để gọi phương thức
GET_DRIVERS.Cuối cùng, để dự đoán, hãy gọi phương thức GET_DRIVERS.
Bạn sẽ nhận được kết quả như sau:
4. Dự báo
Dự báo rất quan trọng khi bạn cần dự đoán giá trị tương lai dựa trên dữ liệu lịch sử. Dù là dự báo doanh số, dự đoán tiêu thụ năng lượng hay lưu lượng truy cập web, các hàm dựng sẵn của Snowflake giúp các tác vụ này đơn giản hơn nhiều.
Trong ví dụ của chúng ta, hãy thử dự báo trên một chuỗi đơn:
Tiếp theo, hãy tách dữ liệu huấn luyện ra khỏi tập dữ liệu.
Trước khi bắt đầu dự báo, bạn cần huấn luyện mô hình dựa trên dữ liệu huấn luyện đã chọn.
Cách thực hiện:
Cuối cùng, để dự báo, bạn có thể gọi phương thức FORECAST để thực hiện bước dự đoán.
Đây là đầu ra kết quả dự báo của chúng ta.
Giám sát mô hình ML trong Snowflake
Có thể giám sát hiệu năng mô hình bằng cách tạo dashboard trong Snowflake thông qua tích hợp bên thứ ba (như Tableau) hoặc truy vấn log của Snowflake. Một số chỉ số hữu ích như accuracy, precision và recall có thể dùng để theo dõi mô hình.
Kết luận
Snowflake Cortex AI đơn giản hóa machine learning bằng cách cho phép tích hợp liền mạch các mô hình ngay từ nền tảng Snowflake. Hướng dẫn này đã đưa bạn qua việc sử dụng các hàm Snowflake Cortex AI và Snowflake Cortex ML.
Giải pháp này tận dụng khả năng mở rộng của Snowflake và sự linh hoạt của Python, rất phù hợp cho tổ chức muốn triển khai machine learning mà không cần đưa dữ liệu ra ngoài đám mây.
Tìm thêm tài nguyên về Snowflake? Bạn sẽ thích Hướng dẫn Snowflake cho người mới bắt đầu và hướng dẫn Snowpark của chúng tôi. Nếu bạn muốn nội dung chuyên sâu hơn, khóa học Introduction to Snowflake có thể là lựa chọn phù hợp cho bạn.