1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu microsoft ML NET và minh họa với bài toán so sánh ngữ nghĩa của hai câu tiếng anh

32 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO MÔN HỌC Đồ án Đề tài: Tìm hiểu Microsoft ML.NET minh họa với toán so sánh ngữ nghĩa hai câu tiếng Anh Giảng viên hướng dẫn: Đỗ Thị Thanh Tuyền Sinh viên thực hiện: Nguyễn Đức Khang 18520891 Trần Hậu Đạt 18520590 TP Hồ Chí Minh, ngày 05 tháng 05 năm 2022 NHẬN XÉT CỦA GIẢNG VIÊN I MACHINE LEARNING Khái niệm Các bước tổng quát toán ML 3.1 Chuẩn bị liệu 3.2 Trích xuất đặc trưng 3.3 Build/Train mơ hình 3.4 Đánh giá mơ hình 3.4 Sử dụng mơ hình 5 6 7 II ML.NET ML.NET gì? ML.NET hỗ trợ tốn phân loại Cơ chế hoạt động ML.NET 3.1 Chuẩn bị liệu 3.2 Lựa chọn thuật toán 3.3 Tiến hành train mơ hình 3.4 Đánh giá mơ hình 3.5 Lưu lại mơ hình 3.6 Load mơ hình để sử dụng 3.7 Sử dụng mơ hình 3.8 Ví dụ minh hoạ Minh hoạ code Minh hoạ code Kiến trúc ML.NET Các cách để lập trình ML.NET 9 10 12 13 13 14 14 15 15 16 16 16 18 19 19 III MƠ HÌNH BERT 1.Tổng quan BERT Giới thiệu BERT Các kiến trúc model BERT 21 21 23 24 Một số kết BERT Bài toán Model Thử nghiệm ML.NET THAM KHẢO 24 27 27 28 32 NHẬN XÉT CỦA GIẢNG VIÊN I MACHINE LEARNING Khái niệm Machine Learning tập AI Nói đơn giản, Machine Learning lĩnh vực nhỏ Khoa Học Máy Tính, có khả tự học hỏi dựa liệu đưa vào mà khơng cần phải lập trình cụ thể Những năm gần đây, mà khả tính tốn máy tính nâng lên tầm cao lượng liệu khổng lồ hãng công nghệ lớn thu thập, Machine Learning tiến thêm bước dài lĩnh vực đời gọi Deep Learning ( Học Sâu ) Deep Learning giúp máy tính thực thi việc tưởng chừng vào 10 năm trước: phân loại hàng ngàn vật thể khác ảnh, tự tạo thích cho ảnh, bắt chước giọng nói chữ viết người, giao tiếp với người, hay chí sáng tác văn hay âm nhạc Các bước tổng quát toán ML 3.1 Chuẩn bị liệu Bước cần chuẩn hóa liệu thường ban đầu liệu bị “ơ nhiễm” tức chứa liệu không đúng, liệu chứa rác không đáp ứng nhu cầu Ví dụ liệu text có ký tự viết tắt, ký tự lạ, biểu tượng… Dữ liệu hình có hình mờ khơng thể nhận dạng, liệu video có video bị lỗi 3.2 Trích xuất đặc trưng Rút trích đặc trưng, hiểu bước vector hóa liệu, liệu thường mã hóa ma trận dạng số, bước dễ dàng hơn, ta cần nạp cấu trúc đối tượng truyền mảng thuộc tính tương ứng, ML.NET làm giúp ta điều Ở bước làm đồng thời với việc chia liệu làm phần: Train set Test set Và tùy thuộc vào tỉ lệ lấy liệu mơ hình chạy cho chất lượng khác Các bạn tưởng tượng có 100 đề thi 100 đề liệu, lấy 80 đề thi để luyện tập (nó gọi Train Set), sau luyện tập xong ta lấy 20 đề để làm xem hay khơng (20 đề gọi Test set) Trong máy học có thêm khái niệm Over-fit, bạn lấy 100 đề luyện tập, sau lại lấy đề 100 đề để làm test, lúc đa phần bạn làm điểm cao (Over fit bạn tưởng nhầm train giỏi, bạn làm trước rồi, dẫn tới thi thực tế đề lạ bạn bị rớt) 3.3 Build/Train mơ hình Tiến hành Build/Train mơ hình: Tùy vào tốn phân lớp, gom cụm… ta dùng giải thuật khác để xây dựng mơ hình Ví dụ có liệu comment khách hàng, hỏi xem comment tích cực hay tiêu cực thuộc tốn phân lớp, ta dùng giải thuật phân lớp Hay có tập liệu nhà giá nó, muốn dự báo xem nhà có giá lại thuộc tốn hồi quy Bước chọn giải thuật để build mơ hình cho 3.4 Đánh giá mơ hình Đánh giá mơ hình, mơ hình build xong cần đánh giá xem chất lượng tới đâu (khơng có mơ hình hay sai có mơ hình chất lượng hay khơng), chất lượng hay khơng lệ thuộc vào thang đo, ví dụ hồi quy thang đo R-Squared, MSE, RMSE, MAE, giải thật có hàm mát (Loss function) R-Squared cao (tịnh tiến tới 100%) mơ hình tốt, (dĩ nhiên với chứng khốn chưa chắc, thơng thường R-Squared >= 50% ổn, khơng có nghĩa < 50% tệ), cịn MSE, RMSE, MAE, loss function thấp tốt Việc định chọn mơ hình tùy thuộc vào kinh nghiệm người build mơ hình có tham khảo độ đo Và lưu ý ứng với loại giải thuật máy học độ đo sử dụng khác 3.4 Sử dụng mơ hình Sử dụng mơ hình, bước thường sau bước đánh giá xong, ta lưu mơ hình xuống ổ cứng chia sẻ lên cloud, lưu lại để lần sau lấy dùng, khơng phải tốn công chạy lại (tiết kiệm thời gian chi phí), khi lưu xong muốn dùng load mơ hình lên để dùng Cịn dùng tùy thuộc vào tốn để gọi hàm Predict cho phù hợp II ML.NET ML.NET gì? ML.NET thư viện máy học mã nguồn mở chạy cross-platform (Windows, Linux, macOS) Microsoft Ta lập trình thư viện tảng Desktop, Web, hay build Service Nó đánh giá đủ mạnh mẽ để làm mà số thư viện khác làm (chẳng hạn scikit-learn viết Python) làm thứ mà thư viện khác không làm Với việc sở hữu tảng công nghệ mạnh mẽ khách hàng có sẵn trải rộng khắp giới, ML.NET kỳ vọng lớn tạo sốt công nghệ liên quan tới máy học viết C#/F#, đồng thời việc tạo thị trường lao động phân khúc khả thi Theo thông tin từ hãng, ML.NET bắt đầu hoạt động từ 05/2018 phiên ổn định 1.7.0 (tính đến 02/2022), Microsoft cộng đồng tiếp tục bổ sung tính cải thiện hiệu suất thuật toán Linh hồn ML.NET mơ hình máy học (machine learning model) Mơ hình định bước cần thiết để chuyển đổi liệu đầu vào thành kết dự đốn mơ hình, tùy vào thuật toán mà lựa chọn Với ML.NET, ta tùy chỉnh mơ hình cách lựa chọn thuật tốn machine learning ML.NET (dĩ nhiên phải lệ thuộc vào toán ta muốn làm để chọn giải thuật cho phù hợp) ta import mơ hình TensorFlow hay ONNX đào tạo trước để sử dụng Ngoài ML.NET cung cấp hàm cho ta lưu mô hình để tái sử dụng chia sẻ model cho cộng đồng ML.NET hỗ trợ toán phân loại Ở ML.NET hỗ trợ dạng toán phân loại toán phát đối tượng Điều đáp ứng tốt nhu cầu thực tế gần có đủ thứ mà bạn cần Dưới danh sách loại toán mà ML.NET hỗ trợ tốt nhất: ● Classification: Ví dụ tốn phân loại cảm xúc khách hàng tích cực hay tiêu cực từ feedback họ ● Clustering : Ví dụ toán gom cụm khách hàng, giả sử có N khách hàng ta cần phải gom thành k cụm, cụm chứa đặc trưng khác khách hàng ● Regression/Predict continuous values: Ví dụ toán hồi quy dự đoán giá nhà, giá taxi … từ tập liệu giao dịch q khứ, dự đốn giá có số dự kiện ● Anomaly Detection: Các toán phát bất thường, chẳng hạn Phát giao dịch gian lận ngân hàng ● Recommendations: Các toán khuyến nghị, ví dụ quảng cáo sản phẩm tới khách hàng có nhu cầu, vào tiki gợi ý sách mà người quan tâm ● Time series/sequential data: toán dự báo thời tiết hay doanh số bán sản phẩm ● Image classification: toán phân loại hình ảnh ● Object detection: Các toán phát đối tượng Kiến trúc ML.NET Để sử dụng ML.NET ta bắt đầu với đối tượng MLContext Đối tượng chứa hàm/đối tượng để tải lên mơ hình, lưu liệu, chuyển đổi liệu, trình huấn luyện thành phần vận hành mơ hình Mỗi đối tượng có phương thức để tạo loại thành phần khác như: Như ta lưu ý ứng với loại chức khác ta dùng lớp cho phù hợp, dĩ nhiên không quan trọng chỗ này, không thiết phải nhớ nhiều làm Chúng ta cần biết tồn dùng bắt đầu tìm hiểu chi tiết Các cách để lập trình ML.NET Hiện có cách để lập trình với ML.NET, cụ thể sau: 17 Như ta dùng ML.NET API (code), ML.NET Model Builder (dùng Visual Studio UI), ML.NET CLI (Cho cross platform) 18 III MƠ HÌNH BERT 1.Một số khái niệm ● Downstream task: Là tác vụ supervised-learning cải thiện dựa pretrained model VD: Chúng ta sử dụng lại biểu diễn từ học từ pretrained model văn lớn vào tác vụ phân tích cảm xúc huấn luyện văn có kích thước nhỏ Áp dụng pretrain-embedding giúp cải thiện mơ hình Như tác vụ sử dụng pretrain-embedding gọi downstream task ● GLUE score benchmark: GLUE score benchmark tập hợp số xây dựng để đánh giá khái quát mức độ hiểu ngôn ngữ model NLP Các đánh giá thực liệu tiêu chuẩn quy định convention phát triển thúc đẩy NLP Mỗi liệu tương ứng với loại tác vụ như: Phân tích cảm xúc (Sentiment Analysis), hỏi đáp (Question and Answering), dự báo câu (NSP - Next Sentence Prediction), nhận diện thực thể câu (NER - Name Entity Recognition), suy luận ngôn ngữ tự nhiên (NLI - Natural Languague Inference) ● Textual Entailment: Là tác vụ đánh giá mối quan hệ văn Nhãn output cặp câu chia thành đối lập (contradiction), trung lập (neutral) hay có quan hệ kèm (textual entailment) ● Natural Language Inference: Là tác vụ suy luận ngôn ngữ đánh giá mối quan hệ cặp câu, tương tự Textual Entailment ● Sentiment Analysis: Phân loại cảm xúc văn thành nhãn tích cực (positive) tiêu cực (negative) Thường sử dụng hệ thống đánh giá bình luận người dùng ● Question and Answering: Là thuật toán hỏi đáp Đầu vào cặp câu (pair sequence) bao gồm: câu hỏi (question) có chức hỏi đoạn văn (paragraph) chứa thông tin trả lời cho câu hỏi Một liệu chuẩn nằm GLUE dataset sử dụng để đánh giá tác vụ hỏi đáp SQuAD - Stanford Question Answering Dataset 19 ● Contextual: Là ngữ cảnh từ Một từ định nghĩa cách phát âm đặt câu khác mang ngữ nghĩa khác Ngữ cảnh coi mơi trường xung quanh từ để góp phần định nghĩa từ ● BERT(Bidirectional Encoder Representation from Transformer): Mơ hình BERT Đây lớp mơ hình SOTA nhiều tác vụ GLUE score benchmark ● LTR model: mơ hình học bối cảnh theo chiều từ trái sang phải Chẳng hạn lớp model RNN ● MLM (Masked Language Model): Là mơ hình mà bối cảnh từ học từ phía bên trái bên phải lúc từ liệu unsupervised text Dữ liệu input masked (tức thay token MASK) cách ngẫu nhiên với tỷ lệ thấp Huấn luyện mơ hình dự báo từ masked dựa bối cảnh xung quanh từ không masked nhằm tìm biểu diễn từ Giới thiệu BERT BERT viết tắt cụm từ Bidirectional Encoder Representation from Transformer có nghĩa mơ hình biểu diễn từ theo chiều ứng dụng kỹ thuật Transformer BERT thiết kế để huấn luyện trước biểu diễn từ (pre-train word embedding) Điểm đặc biệt BERT điều hịa cân bối cảnh theo chiều trái phải Cơ chế attention Transformer truyền toàn từ câu văn đồng thời vào mơ hình lúc mà không cần quan tâm đến chiều câu Do Transformer xem huấn luyện hai chiều (bidirectional) thực tế xác nói huấn luyện khơng chiều (non-directional) Đặc điểm cho phép mơ hình học bối cảnh từ dựa toàn từ xung quanh bao gồm từ bên trái từ bên phải Các kỹ thuật Word2vec, FastText hay Glove tìm đại diện từ thơng qua ngữ cảnh chung chúng Tuy nhiên, ngữ cảnh đa dạng liệu tự nhiên Ví dụ từ "con chuột" có ngữ nghĩa khác ngữ 20 cảnh khác "Con chuột máy tính thật đẹp!!" "con chuột to thật." Trong mơ Word2vec, fastText tìm vector đại diện cho từ dựa tập ngữ liệu lớn nên đa dạng ngữ cảnh Việc tạo biểu diễn từ dựa từ khác câu mang lại kết ý nghĩa nhiều Như trường hợp ý nghĩa từ chuột biểu diễn cụ thể dựa vào phần trước sau câu Nếu đại diện từ "con chuột" xây dựng dựa ngữ cảnh cụ thể ta có biểu diễn tốt BERT mở rộng khả phương pháp trước cách tạo biểu diễn theo ngữ cảnh dựa từ trước sau để dẫn đến mơ hình ngơn ngữ với ngữ nghĩa phong phú Các kiến trúc model BERT Hiện có nhiều phiên khác model BERT Các phiên dựa việc thay đổi kiến trúc Transformer tập trung tham số: L: số lượng block sub-layers transformer, H: kích thước embedding véc tơ (hay cịn gọi hidden size), A: Số lượng head multi-head layer, head thực self-attention Tên gọi kiến trúc bao gồm: Như kiến trúc BERT Large tăng gấp đơi số layer, tăng kích thước hidden size embedding véc tơ gấp 1.33 lần tăng số lượng head multi-head layer gấp 1.33 lần Một số kết BERT 21 Kết là, SQUAD v1.1, BERT đạt kết F1_score = 93.2%, vượt kết tốt trước 91.6% hiệu mà người đạt 91.2% 22 Trên SQUAD v2.0, Top kết tốt toàn BERT 23 IV MINH HOẠ VỚI BÀI TỐN CỤ THỂ Bài tốn Cho cặp câu tiếng Anh, đánh giá cặp câu tiếng anh nằm nhóm nhóm: Nghĩa hai câu tương tự nhau, hai câu trái ngược hai câu khơng liên quan đến Model cho toán Model sử dụng BertForSenquenceClassification huấn luyện liệu snli (Stanford Natural Language Inference sưu tập gồm 570 nghìn cặp câu tiếng Anh người viết gắn nhãn thủ công để phân loại cân với nhãn liên quan, mâu thuẫn trung lập Các nhà phát triển mong muốn vừa chuẩn mực để đánh giá hệ thống biểu diễn cho văn bản, đặc biệt bao gồm hệ thống tạo phương pháp học biểu diễn, vừa nguồn tài ngun để phát triển mơ hình NLP thuộc loại nào.) Model cung cấp sẵn trang: https://huggingface.co/textattack/bert-base-uncased-snli Thử nghiệm ML.NET Bước 1: Chuyển đổi model pytorch sang định dạng onnx 24 - Mục đích: Nhiều mơ hình huấn luyện tảng pytorch, scikit-learn chạy mơi trường NET mà cần có định dạng phù hợp (ONNX - Open Neural Network Exchange) Vì cần phải chuyển đổi mơ hình - Cơng cụ sử dụng: transformer.onnx chạy python Cơng cụ cần có môi trường để thực thi - Cài đặt công cụ: pip install transformer[onnx] - Sử dụng: python -m transformer.onnx model={path đến model id model trang huggingface.co} feature={loại đặc trưng mơ hình} output - Kết quả: Model cho xuất dạng onnx (model.onnx) sử dụng mơi trường NET Bước 2: Xác định input output model - Mục đích: Xác định input output mơ hình, từ cài đặt class NET (tên ánh xạ, kiểu liệu, …) Ngồi biết số thơng tin khác layer, thuộc tính model - Cơng cụ sử dụng: Netron (https://github.com/lutzroeder/netron) Đây công cụ để xem thơng tin mơ hình mạng noron, deep learning hay machine learning model Netron hỗ trợ ONNX, TensorFlow Lite, Caffe, Keras, Darknet, PaddlePaddle, ncnn, MNN, Core ML, RKNN, MXNet, MindSpore Lite, TNN, Barracuda, Tengine, CNTK, TensorFlow.js, Caffe2 UFF - Kết quả: + Input đầu vào gồm tham số là: input_ids, attention_mask token_type_ids Kiểu liệu mảng số nguyên + Output đầu mảng số thực, tên kết đầu logits Mảng có độ dài 3, từ mảng ta có biết nhãn tương ứng với 25 đầu tính xác xuất tương ứng với nhãn thông qua hàm softmax Bước 3: Xây dựng đầu vào cho model - Mục đích: Vì mơ hình khơng thể hiểu câu văn đưa vào model, nên dựa vào input trên, ta cần chuyển đổi input cho thành input cho mơ hình hiểu - Cơng cụ sử dụng: BertTokenizers (https://github.com/NMZivkovic/BertTokenizers) - Trình tự hồn thành: + Xây dựng input dựa vào thông tin bước + Sử dụng thư viện tokenizer để mã hóa câu đầu vào 26 - Kết quả: Input qua xử lý phù hợp với model mảng số nguyên tương ứng với input câu văn Bước 4: Sử dụng api ML.NET - Mục đích: sử dụng lớp Microsoft.ML để tải lên model predict kết dựa input đầu vào - Công cụ: Thư viện ML.NET Khởi tạo MLContext(), cần thông tin đường dẫn đến file Model, thông tin cột input output, thơng tin thiết bị GPU(nếu có) Sử dụng hàm Predict thông qua lớp PredictionEngine thư viện ML.NET 27 - Kết quả: Setup model predict nhãn tương ứng đầu vào input Việc tính xác suất tương ứng với nhãn đầu sử dụng hàm softmax 28 - So sánh với kết từ trang Huggingface: 29 V KẾT LUẬN Về đề tài Trước đây, nhóm tìm hiểu Machine Learning lĩnh vực thị giác máy tính, qua đề tài nhóm tìm hiểu thêm lĩnh vực khác quan trọng Machine Learning xử lý ngôn ngữ tự nhiên Ngồi ra, nhóm biết thêm mơ hình BERT mơ hình xử lý ngơn ngữ tự nhiên tiếng lĩnh vực toán text pair classification Cách làm việc với Machine Learning môi trường mẻ NET thay sử dụng framework ngơn ngữ lập trình python Kết đạt + + + + + 30 Tìm hiểu vài khái niệm Machine Learning Tìm hiểu thư viện ML.NET Mơ hình BERT xử lý ngôn ngữ tự nhiên Cách chuyển đổi model từ pytorch sang onnx Tìm hiểu cơng cụ Netron để visualize model THAM KHẢO ML.NET - https://docs.microsoft.com/vi-vn/dotnet/machine-learning/ Windows ML - https://docs.microsoft.com/en-us/windows/ai/windows-ml/ HuggingFace - https://huggingface.co/ BertTokenizers - https://github.com/NMZivkovic/BertTokenizers Bert-ML.NET - https://github.com/Gigabyte0x1337/BERT-ML.NET 31 ... IV MINH HOẠ VỚI BÀI TỐN CỤ THỂ Bài tốn Cho cặp câu tiếng Anh, đánh giá cặp câu tiếng anh nằm nhóm nhóm: Nghĩa hai câu tương tự nhau, hai câu trái ngược hai câu khơng liên quan đến Model cho toán. .. nhằm tìm kết dự báo chương trình Truyền đối tượng ITransformer bước 3.8 Ví dụ minh hoạ Minh hoạ code using using using using using System; System.Text; Microsoft. ML; Microsoft. ML.Data; static Microsoft. ML.DataOperationsCatalog;... Answering Dataset 19 ● Contextual: Là ngữ cảnh từ Một từ định nghĩa cách phát âm đặt câu khác mang ngữ nghĩa khác Ngữ cảnh coi mơi trường xung quanh từ để góp phần định nghĩa từ ● BERT(Bidirectional

Ngày đăng: 17/08/2022, 21:24

w