Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Tìm hiểu microsoft ml.net và minh họa với bài toán hỏi đáp tiếng anh...

Tài liệu Tìm hiểu microsoft ml.net và minh họa với bài toán hỏi đáp tiếng anh

.PDF
33
1
54

Mô tả:

cnĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN 1 Tìm hiểu Microsoft ML.NET và minh họa với bài toán hỏi-đáp tiếng Anh Giảng viên hướng dẫn: Đỗ Thị Thanh Tuyền Sinh viên thực hiện: 19521896 - Mai Anh Nghĩa 19521377 - Nguyễn Huy Đức TP. Hồ Chí Minh, ngày 08 tháng 6 năm 2022 1 LỜI CẢM ƠN Trong quá trình ho ̣c tập, nghiên cứu và phát triể n đề tài “Tìm hiểu Microsoft ML.NET và minh hoạ với bài toán hỏi đáp tiếng Anh” chúng em đã nhận đươc̣ sự giúp đỡ, chỉ bảo nhiệt tình của cô để hoàn thành đồ án này. Nhóm em xin chân thành gửi lời cảm ơn đế n cô Đỗ Thị Thanh Tuyền – Giảng viên Khoa Công nghệ phầ n mề m, Trường Đa ̣i ho ̣c Công nghệ thông tin, Đa ̣i ho ̣c Quố c gia Thành phố Hồ Chí Minh – giảng viên da ̣y hướng dẫn môn Đồ án 1, đã tận tình hướng dẫn và giúp đỡ về kiế n thức, phương pháp cho chúng em trong suố t quá trình thực hiện và hoàn thành đồ án. Mặc dù đã có nhiề u cố gắ ng trong suố t quá trình thực hiện đề tài, song không thể tránh khỏi những ha ̣n chế , thiế u sót. Chúng em mong rằ ng sẽ nhận đươc̣ những đóng góp và nhận xét chân thành từ các cô để ngày càng hoàn thiện hơn nữa. Nhóm chúng em xin chân thành cảm ơn. Thành phố Hồ Chí Minh, ngày 08 tháng 06 năm 2022 2 LỜI NHẬN XÉT CỦA GIẢNG VIÊN ..…………………………………………………………………………………………….. …………………………………………………………………………………………….. ……………………………………………………………………………………………… …………………………………………………………………..………………………… ……………………………………………………………………………………………… ………………………………………..…………………………………………………… ……………………………………………………………………………………………… ……………..……………………………………………………………………………… …………………………………………………………………………………..………… ……………………………………………………………………………………………… ………………………………………………………..…………………………………… ……………………………………………………………………………………………… ……………………………..……………………………………………………………… ……………………………………………………………………………………………… …..………………………………………………………………………………………… ………………………………………………………………………..…………………… ……………………………………………………………………………………………… ……………………………………………..……………………………………………… ……………………………………………………………………………………………… …………………..………………………………………………………………………… ………………………………………………………………………………………..…… ……………………………………………………………………………………………… ……………………………………………………………..……………………………… ……………………………………………………………………………………………… …………………………………..………………………………………………………… ……………………………………………………………………………………………… ………..…………………………………………………………………………………… ……………………………………………………………………………..……………… ……………………………………………………………………………………………… …………………………………………………..………………………………………… ……………………………………………………………………………………………… ………………………..…………………………………………………………………… ……………………………………………………………………………………………… 3 Table of Contents CHƯƠNG 1 .......................................................................................................................................... 6 TỔNG QUAN ........................................................................................................................................ 6 1.1. Giới thiệu chung....................................................................................................................................... 6 1.2. Các nghiên cứu liên quan đến đề tài ........................................................................................................ 6 1.3. Các phương pháp và mục tiêu thực nghiệm ............................................................................................ 7 1.3.1. Các phương pháp .............................................................................................................................................. 7 1.3.2. Mục tiêu ............................................................................................................................................................ 7 CHƯƠNG 2 .......................................................................................................................................... 7 CƠ SỞ LÝ THUYẾT ............................................................................................................................. 7 2.1. Đôi nét về machine learning .................................................................................................................... 7 2.1.1. Khái niệm .......................................................................................................................................................... 7 2.1.2. Các phương pháp Machine Learning .................................................................................................................. 8 2.2. Transformers .......................................................................................................................................... 10 2.2.1. Mô hình Transformers là gì ? ........................................................................................................................... 10 2.3. BERT ....................................................................................................................................................... 12 2.3.1. Khái niệm ........................................................................................................................................................ 12 2.3.2. Cách thức hoạt động ....................................................................................................................................... 13 2.3.3. Nền tảng của BERT........................................................................................................................................... 13 2.3.4. Phương pháp Fine-tuning BERT........................................................................................................................ 16 CHƯƠNG 3 ........................................................................................................................................ 16 MICROSOFT MACHINE LEARNING ............................................................................................. 16 3.1. ML.NET ................................................................................................................................................... 16 3.1.1. Khái niệm ........................................................................................................................................................ 16 3.1.2. Cơ chế hoạt động ............................................................................................................................................ 17 3.1.3. ML.NET hỗ trợ các bài toán nào liên quan tới Máy Học?................................................................................... 20 3.1.5. Kiến trúc của ML.NET gồm những gì? ............................................................................................................... 20 3.1.6. Ưu điểm của ML.NET ....................................................................................................................................... 21 3.1.7. Các tính năng của ML.NET................................................................................................................................ 22 3.1.8. Khái niệm và cơ chế hoạt động của Deep Learning ........................................................................................... 23 3.1.9. Các công cụ ..................................................................................................................................................... 24 3.2. ONNX model .......................................................................................................................................... 24 3.2.1. Khái niệm ........................................................................................................................................................ 24 3.2.2. Các bước chuyển đổi một pretrained model từ pytorch sang ONNX model ...................................................... 25 3.3. Pytorch ................................................................................................................................................... 25 3.3.1. Pytorch là gì ? .................................................................................................................................................. 25 3.3.2. Những lợi ích khi sử dụng Pytorch ? ................................................................................................................. 26 CHƯƠNG 4 ........................................................................................................................................ 26 MINH HOẠ VỚI BÀI TOÁN HỎI - ĐÁP TIẾNG ANH .................................................................... 26 4.1. Sử dụng thư viện Hugging Face .............................................................................................................. 26 4 4.2. Pretrained model Bert base uncased squad ........................................................................................... 28 4.3. Cài đặt môi trường và demo .................................................................................................................. 28 CHƯƠNG 5 ........................................................................................................................................ 31 KẾT LUẬN ......................................................................................................................................... 31 5.1. Kết quả đạt được ................................................................................................................................... 31 5.2. Ưu điểm ................................................................................................................................................. 32 5.3. Nhược điểm và giải pháp ....................................................................................................................... 32 TÀI LIỆU THAM KHẢO.................................................................................................................... 32 5 CHƯƠNG 1 TỔNG QUAN 1.1. Giới thiệu chung Machine Learning là một trong những thuật ngữ mà chúng ta thường hay nghe đến trong lĩnh vực công nghệ thông tin cụ thể hơn là trí tuệ nhân tạo. Thực chất đây chính là một lĩnh vực của trí tuệ nhân tạo, là một lĩnh vực quan trọng trong khoa học máy tính, được ứng dụng rộng rãi trong khắp các lĩnh vực đời sống trong nền cách mạng công nghiệp 4.0. Hiện nay, Machine Learning tỏ ra cực kỳ hiệu quả, hơn hẳn con người trong cụ thể lĩnh vực mà chúng được áp dụng. Trong số đó không thể không kể đến như nhận dạng ảnh, chẩn đoán y khoa, dự báo thời tiết, … Bên cạnh Machine Learning, Deep Learning đã cho phép ứng dụng nhiếu vấn đề thực tế của máy học và bằng cách mở rộng lĩnh vực tổng thể của AI. Deep learning phá vỡ các cách thức con người làm việc bằng cách làm cho tất cả các loại máy móc trợ giúp có thể thực hiện được, gần hoặc giống hệt con người. Ô tô không người lài, chăm sóc sức khoẻ tốt hơn, thậm chí cả đề xuất về bộ phim tốt hơn, tất cả đều hiện thực trong thời đại ngày nay. AI là hiện tại và tương lai. Với sự trợ giúp của Deep Learning, AI có thể hiện thức hóa ước mơ khoa học giả tưởng mà chúng ta đã tưởng tượng từ rất lâu. Vì vậy, khi nhận thấy được Deep Learning là một lĩnh vực ngày càng phổ biến, có tính ứng dụng cao và rộng rãi với nhiều mặt trong cuộc sống. Nhóm em đã quyết định chọn đề tài tìm hiểu về Machine Learning và minh họa bài toán hỏi-đáp Tiếng Anh. 1.2. Các nghiên cứu liên quan đến đề tài Với nội dung của đề tài đồ án thì chúng em đã nghiên cứu, tập trung vào các chủ đề Tìm 6 hiều Window Machine Learning để sử dụng các mô hình học sâu đã được huấn luyện sẵn (Pretrained Model) là các ONNX Models, tìm hiểu cách chuyển một pretrained model từ pytorch sang ONNX Model và cuối cùng là áp dụng để thử nghiệm với pretrained model hỏi đáp Tiếng Anh. 1.3. Các phương pháp và mục tiêu thực nghiệm 1.3.1. Các phương pháp Để hoà n thà nh đồ á n và bà i bá o cá o nà y, nhố m êm đã tham khả o cá c tà i liêu hướng dã n đươc trên internet và cá c trang hướng dã n. Đầu tiên, nhóm tụi êm tìm hiểu về machinê lêarning và cách triển khai machinê lêarning bằng micrôsft ml.nêt. Sau đó, nhóm tụi êm tiến hành chuyển mô hình của bài tôán hỏi đáp tiếng anh sang định dạng ONNX mà ML.nêt có thể đọc được để dêmô. 1.3.2. Mục tiêu Mục tiêu của nhóm trước nhất là tìm hiểu về lĩnh vực Machine Learning. Từ đó áp dụng các kiến thức thuật toán, thư viện, công cụ, ngôn ngữ lập trình… để có thể giải quyết bài toán hỏi-đáp Tiếng Anh. Qua đó, có thể phần nào điều chỉnh các thông số phù hợp, có những bước xử lý dữ liệu đúng đắn để cải thiện các đặc tính về tốc độ và độ chính xác của mô hình nhóm đã chọn. Trong tương lai, chúng em sẽ xây dựng một ứng dụng áp dụng tích hợp các mô hình pretrained với mong đợi có thể ứng dụng có thể phục vụ mọi người với tính chính xác và hiệu quả cao nhất có thể. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1. Đôi nét về machine learning 2.1.1. Khái niệm 7 Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bản thân chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh nghiệm (những gì đã được học). Machine learning có thể tự dự đoán hoặc đưa ra quyết định mà không cần được lập trình cụ thể. Quá trình học bắt đầu bằng các quan sát hoặc dữ liệu. Ví dụ, để tìm kiếm các mẫu trong dữ liệu và đưa ra quyết định tốt hơn trong tương lai dựa trên 9 các ví dụ mà chúng tôi cung cấp. Mục đích chính là cho phép các máy tính tự động học mà không cần sự can thiệp hay trợ giúp của con người và điều chỉnh các hành động tương ứng. Deep Learning là một tập hợp con của Machine Learning, có khả năng khác biệt ở một số khía cạnh quan trọng so với Machine Learning nông truyền thống, cho phép máy tính giải quyết một loạt các vấn đề phức tạp không thể giải quyết được. 2.1.2. Các phương pháp Machine Learning 2.1.2.1. Supervised Learning – Học có giám sát Trong học tập có giám sát, máy tính được cung cấp các ví dụ đầu vào được gắn nhãn với đầu ra mong muốn của chúng. Mục đích của phương pháp này là để thuật toán có thể học được dạy học bằng cách so sánh kết quả đầu ra thực tế của nó với các kết quả đầu ra đã được dạy để tìm lỗi và sửa đổi mô hình cho phù hợp. Do đó, việc học được giám sát sử dụng các mẫu để dự đoán giá trị nhãn trên dữ liệu không được gắn nhãn bổ sung. Ví dụ, với việc học có giám sát, một thuật toán có thể được cung cấp dữ liệu với văn bản về nghệ thuật được dán nhãn là “arts” và vản bản về Covid-19 được dán nhãn là “covid-19”. Bằng cách được đào tạo về dữ liệu này, thuật toán học có giám sát sẽ có thể sau đó xác định các văn bản mới về nghệ thuật có nhãn là “arts”, các văn bản liên quan đến Covid-19 có nhãn là “covid-19". Phương pháp này thường được sử dụng cho các bài toán phân lớp (classification). 2.1.2.2. Unsupervised Learning – Học không giám sát 8 Trong học tập không giám sát, dữ liệu không được gắn nhãn, vì vậy thuật toán học được để lại điểm chung giữa các dữ liệu đầu vào. Vì dữ liệu không được gắn nhãn phong phú hơn dữ liệu được dán nhãn, các phương pháp machine learning tạo điều kiện cho việc học tập không giám sát đặc biệt có giá trị. Không giám sát thường được sử dụng cho dữ liệu giao dịch. 2.1.2.3. Semi-Supervised Learning – Học bán giám sát Học bán giám sát là một lớp của kỹ thuật học máy, sử dụng cả dữ liệu đã gán nhãn và chưa gán nhãn để huấn luyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng với lượng lớn dữ liệu chưa gán nhãn. Học bán giám sát đứng giữa học không giám sát (không có bất kì dữ liệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn). Nhiều nhà nghiên cứu nhận thấy dữ liệu không gán nhãn, khi được sử dụng kết hợp với một chút dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác. Để gán nhãn dữ liệu cho một bài toán học máy thường đòi hỏi một chuyên viên có kĩ năng để phân loại bằng tay các ví dụ huấn luyện. Chi phí cho quy trình này khiến tập dữ liệu được gán nhãn hoàn toàn trở nên không khả thi, trong khi dữ liệu không gán nhãn thường tương đối rẻ tiền. Trong tình huống đó, học nửa giám sát có giá trị thực tiễn lớn lao. Một ví dụ cho kỹ thuật học máy nửa giám sát là đồng huấn luyện (co-training), trong đó một hay nhiều bộ học được huấn luyện cùng một tập ví dụ nhưng mỗi bộ sử dụng một tập đặc trưng khác nhau, lý tưởng nhất là độc lập với nhau. 2.1.2.4. Reinforcement Learning – Học tăng cường Học tăng cường là một lĩnh vực con của học máy, nghiên cứu cách thức một agent trong một môi trường nên chọn thực hiện các hành động nào để cực đại hóa một khoản thưởng (reward) nào đó về lâu dài. Các thuật toán học tăng cường cố gắng tìm một chiến lược ánh xạ các trạng thái của thế giới tới các hành động mà agent nên chọn trong các trạng thái đó. Môi trường thường được biểu diễn dưới dạng một quá trình quyết định Markov trạng thái hữu hạn (Markov decision process - MDP), và các thuật toán học tăng cường cho ngữ cảnh này có liên quan nhiều đến các kỹ thuật quy hoạch động. Các xác suất chuyển trạng thái và các xác 9 suất thu lợi trong MDP thường là ngẫu nhiên nhưng lại tĩnh trong quá trình của bài toán (stationary over the course of the problem). Khác với học có giám sát, trong học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động gần tối ưu cũng không được đánh giá đúng sai một cách tường minh. Hơn nữa, ở đây hoạt động trực tuyến (on-line performance) được quan tâm, trong đó có việc tìm kiếm một sự cân bằng giữa khám phá (lãnh thổ chưa lập bản đồ) và khai thác (tri thức hiện có). 2.2. Transformers 2.2.1. Mô hình Transformers là gì ? Transformer là một mô hình học sâu được thiết kế để phục vụ giải quyết nhiều bài toán trong xử lý ngôn ngữ và tiếng nói, ví dụ như bài toán dịch tự động, bài toán sinh ngôn ngữ, phân loại, nhận dạng thực thể, nhận dạng tiếng nói, chuyển văn bản thành tiếng nói. Tuy nhiên, khác với RNNs, Transformer không xử lý các phần tử trong một chuỗi một cách tuần tự. Nếu dữ liệu đầu vào là một câu ngôn ngữ tự nhiên, Transformer không cần phải xử lý phần đầu câu trước rồi mới tới phần cuối câu. Do tính năng này, Transformer có thể tận dụng khả năng tính toán song song của GPU và giảm thời gian xử lý đáng kể. 10 Không sử dụng kiến trúc Recurrent (hồi quy) như RNNs mà Transformer sử dụng self-attention. Trong kiến trúc của mình, Transformer chứa 6 encoder và 6 decoder. Mỗi encoder chứa hai lớp: Self-attention và mạng truyền thẳng (FNN). Self-Attention là cơ chế giúp encoder nhìn vào các từ khác trong lúc mã hóa một từ cụ thể, vì vậy,Transformers có thể hiểu được sự liên quan giữa các từ trong một câu, kể cả khi chúng có khoảng cách xa. Các decoder cũng có kiến trúc giống như vậy nhưng giữa chúng có một lớp attention để nó có thể tập trung vào các phần liên quan của đầu vào. 11 Self-Attention có 4 bước: 1. Tạo ra bộ 3 vectơ từ các vectơ đầu vào của encoder. Tại encoder đầu tiên, véctơ đầu vào là word embedding của từ. Như vậy với mỗi từ, ta sẽ có 3 vectơ Query, Key và Value. Các vectơ này được tạo nên bởi phép nhân ma trận giữa véctơ đầu vào và 3 ma trận trọng số tương ứng với query, key, value mà chúng ta sử dụng trong quá trình huấn luyện. 3 vectơ này đóng vai trò khác nhau và đều quan trọng đối với attention. 2. Tính điểm. Với mỗi từ, ta cần tính điểm của các từ khác trong câu đối với từ này. Giá trị này giúp quyết định từ nào cần được chú ý và chú ý bao nhiêu khi mã hóa một từ. Điểm được tính bằng tích vô hướng giữa véctơ Query của từ đang xét với lần lượt các vectơ Key của các từ trong câu. Ví dụ, khi ta tính self-attention trên từ có vị trí 1, điểm của nó với chính nó là q1.k1, điểm của nó với từ thứ hai là q1.k2, v..v.. 3. Chuẩn hóa điểm. Trong bài báo gốc, điểm được chia cho 8 (căn bậc 2 của 64 – số chiều của vectơ Key). Điều này giúp cho độ dốc trở nên ổn định hơn. Tiếp theo, giá trị này được truyền qua hàm softmax để đảm bảo các giá trị điểm đều dương và có tổng không vượt quá 1. 4. Nhân vectơ Value với mỗi giá trị điểm đã tính phía trên rồi cộng lại với nhau. Ý đồ của việc này là bảo toàn giá trị vectơ của các từ cần được chú ý và loại bỏ vectơ của các từ không liên quan (bằng cách nhân nó với một số rất nhỏ, ví dụ như 0.001). 2.3. BERT 2.3.1. Khái niệm BERT là viết tắt của Bidirectional Encoder Representations from Transformers, một kiến trúc mới cho lớp bài toán Language Representation đươc Google công bố vào đầu tháng 11 vừa qua. Không giống như các mô hình trước đó, BERT được thiết kế để đào tạo ra các vector đại diện cho ngôn ngữ văn bản thông qua ngữ cảnh 2 chiều(trái và phải) của chúng. Kết quả là, vector đại diện được sinh ra từ mô hình BERT được tính chỉnh với các lớp đầu ra bổ sung đã tạo ra nhiều kiến trúc cải tiến đáng kể cho các nhiệm vụ xử lý ngôn ngữ tự nhiên như Question Answering, Language Inference,...mà không cần thay đổi quá nhiều từ các kiến trúc cũ. 12 2.3.2. Cách thức hoạt động Về mặt lý thuyết, các kỹ thuật khác như Word2vec, FastText hay Glove cũng tìm ra đại diện của từ thông qua ngữ cảnh chung của chúng. Tuy nhiên, những ngữ cảnh này là đa dạng trong dữ liệu tự nhiên. Ví dụ các từ như "con chuột" có ngữ nghĩa khác nhau ở các ngữ cảnh khác nhau như "Con chuột máy tính này thật đẹp!!" và "con chuột này to thật." Trong khi các mô hình như Word2vec, fastText tìm ra 1 vector đại diện cho mỗi từ dựa trên 1 tập ngữ liệu lớn nên không thể hiện được sự đa dạng của ngữ cảnh. Việc tạo ra một biểu diễn của mỗi từ dựa trên các từ khác trong câu sẽ mang lại kết quả ý nghĩa hơn nhiều. Như trong trường hợp trên ý nghĩa của từ con chuột sẽ được biểu diễn cụ thể dựa vào phần trước hoặc sau nó trong câu. Nếu đại diện của từ "con chuột" được xây dựng dựa trên những ngữ cảnh cụ thể này thì ta sẽ có được biểu diễn tốt hơn. BERT mở rộng khả năng của các phương pháp trước đây bằng cách tạo các biểu diễn theo ngữ cảnh dựa trên các từ trước và sau đó để dẫn đến một mô hình ngôn ngữ với ngữ nghĩa phong phú hơn. 2.3.3. Nền tảng của BERT BERT sử dụng Transformer là một mô hình attention (attention mechanism) học mối tương quan giữa các từ (hoặc 1 phần của từ) trong một văn bản. Transformer gồm có 2 phần chính: Encoder và Decoder, encoder thực hiện đọc dữ liệu đầu vào và decoder đưa ra dự đoán. Ở đây, BERT chỉ sử dụng Encoder. Khác với các mô hình directional (các mô hình chỉ đọc dữ liệu theo 1 chiều duy nhất trái→phải, phải→ trái) đọc dữ liệu theo dạng tuần tự, Encoder đọc toàn bộ dữ liệu trong 1 lần, việc này làm cho BERT có khả năng huấn luyện dữ liệu theo cả hai chiều, qua đó mô hình có thể học được ngữ cảnh (context) của từ tốt hơn bằng cách sử dụng những từ xung quanh nó (phải&trái). 13 Hình trên mô tả nguyên lý hoạt động của Encoder. Theo đó, input đầu vào là một chuỗi các token w1, w2,...được biểu diễn thành chuỗi các vector trước khi đưa vào trong mạng neural. Output của mô hình là chuỗi ccs vector có kích thước đúng bằng kích thước input. Trong khi huấn luyện mô hình, một thách thức gặp phải là các mô hình directional truyền thống gặp giới hạn khi học ngữ cảnh của từ. Để khắc phục nhược điểm của các mô hình cũ, BERT sử dụng 2 chiến lược training như sau: 1. Masked LM (MLM) Trước khi đưa vào BERT, thì 15% số từ trong chuỗi được thay thế bởi token [MASK], khi đó mô hình sẽ dự đoán từ được thay thế bởi [MASK] với context là các từ không bị thay thế bởi [MASK]. Mask LM gồm các bước xử lý sau : o Thêm một classification layer với input là output của Encoder. o Nhân các vector đầu ra với ma trận embedding để đưa chúng về không gian từ vựng (vocabulary dimensional). o Tính toán xác suất của mỗi từ trong tập từ vựng sử dụng hàm softmax. 14 Hàm lỗi (loss function) của BERT chỉ tập trung vào đánh giá các từ được đánh dấu [MASKED] mà bỏ qua những từ còn lại, do đó mô hình hội tụ chậm hơn so với các mô hình directional, nhưng chính điều này giúp cho mô hình hiểu ngữ cảnh tốt hơn. (Trên thực tế, con số 15% không phải là cố định mà có thể thay đổi theo mục đích của bài toán.) 2. Next Sentence Prediction (NSP) Trong chiến lược này, thì mô hình sử dụng một cặp câu là dữ liệu đầu vào và dự đoán câu thứ 2 là câu tiếp theo của câu thứ 1 hay không. Trong quá trình huấn luyện, 50% lượng dữ liệu đầu vào là cặp câu trong đó câu thứ 2 thực sự là câu tiếp theo của câu thứ 1, 50% còn lại thì câu thứ 2 được chọn ngẫu nhiên từ tập dữ liệu. Một số nguyên tắc được đưa ra khi xử lý dữ liệu như sau: o Chèn token [CLS] vào trước câu đầu tiên và [SEP] vào cuối mỗi câu. o Các token trong từng câu được đánh dấu là A hoặc B. o Chèn thêm vector embedding biểu diễn vị trí của token trong câu (chi tiết về vector embedding này có thể tìm thấy trong bài báo về Transformer). Các bước xử lý trong Next Sentence Prediction:  Toàn bộ câu đầu vào được đưa vào Transformer.  Chuyển vector output của [CLS] về kích thước 2x1 bằng một classification layer.  Tính toán xác suất IsNextSequence bằng softmax. 15 2.3.4. Phương pháp Fine-tuning BERT Tùy vào bài toán mà ta có các phương pháp fine-tune khác nhau: 1. Đối với bài toán Classification, ta thêm vào một Classification Layer với input là output của Transformer cho token [CLS]. 2. Đối với bài toán Question Answering, model nhận dữ liệu input là đoạn văn bản cùng câu hỏi và được huấn luyện để đánh nhãn cho câu trả lời trong đoạn văn bản đó. 3. Đối với bài toán Named Entity Recognition (NER), model được huấn luyện để dự đoán nhãn cho mỗi token (tên người, tổ chức, địa danh,...). CHƯƠNG 3 MICROSOFT MACHINE LEARNING 3.1. ML.NET 3.1.1. Khái niệm ML.NET là thư viện máy học Mã nguồn mở và chạy cross-platform(Windows, Linux, macOS) của Microsoft. Ta có thể lập trình được thư viện này trên các nền tảng như Desktop, Web, hay build các Service. Nó được đánh giá là mạnh mẽ có thể làm được những gì một số thư viện khác làm được (chẳng hạn như scikit-learn viết bằng Python) và làm được những thứ mà thư viện khác không làm được. Với việc sở hữu các nền tảng công nghệ mạnh mẽ nhất, khách hàng sẵn có trải rộng khắp thế giới nên ML.NET được kỳ vọng rất lớn sẽ tạo ra được cơn sốt về công nghệ liên quan tới máy học viết bằng C#/F# và tạo ra thị trường lao động ở phân khúc này là rất khả thi. Theo thông tin từ hãng thì ML.NET bắt đầu khởi động từ 05/2018 và hiện nay bản chạy ổn định là 1.7.0 (tính tới 02/2022), và Microsoft cùng cộng đồng đang tiếp tục bổ sung tính năng cũng như cải tiến hiệu suất của các giải thuật. 16 Linh hồn của ML.NET là một mô hình học máy (machine learning model). Mô hình này chỉ định các bước cần thiết để chuyển đổi dữ liệu đầu vào của ta thành các kết quả dự đoán của mô hình, nó tùy vào giải thuật mà chúng ta lựa chọn. Với ML.NET, Ta có thể tùy chỉnh mô hình bằng cách lựa chọn các thuật toán machine learning của ML.NET (dĩ nhiên nó phải lệ thuộc vào bài toán ta muốn làm là gì để chọn giải thuật cho phù hợp) hoặc ta cũng có thể import các mô hình của TensorFlow hay ONNX đã được đào tạo trước để sử dụng. Ngoài ra ML.NET cũng cung cấp hàm cho ta lưu mô hình để tái sử dụng cũng như chia sẻ model cho cộng đồng. 3.1.2. Cơ chế hoạt động 17  Bước 1: là bước chuẩn bị dữ liệu, ở bước này tùy vào bài toán mà ta thu thập dữ liệu khác nhau, dữ liệu sau khi thu thập phải được làm sạch/ chuẩn hóa. Vì nguyên tắc vàng các bạn phải nhớ “garbage in garbage out“, dữ liệu có thể được lưu dạng text, 18 csv, sql server…. ứng với mỗi loại file ML.NET sẽ cung cấp các thư viện phù hợp để ta có thể tải dữ liệu đồng thời tự động mô hình hóa dữ liệu này thành mô hình hướng đối tượng. ở bước 1 thường sẽ làm công đoạn tải dữ liệu xong thì ta làm luôn công đoạn chia dữ liệu ban đầu thành 2 phần: Train set để huấn luyện mô hình (dùng cho bước 3), Test set để đánh giá mô hình (dùng cho bước 4). các dữ liệu được lưu vào IDataView object  Bước 2: Tùy vào mục đích bài toán máy học mà ta dùng các giải thuật khác nhau, có thể dùng Binary classification, Multiclass classification, Regression…. (giải thuật nào là do mục đích nên khnog thể liệt kê hết, khi nào gặp thì tìm hiểu từng trường hợc cụ thể cho nó đỡ rắc rối). Bước này đại khái là chỉ định một quy trình hoạt động để trích xuất các đặc trưng và áp dụng thuật toán học máy cho phù hợp. Đối tượng tạo ra ở bước này là IEstimator  Bước 3: Tiến hành train mô hình bằng cách gọi phương thức Fit() của IEstimator. kết quả của phương thức Fit() sẽ trả về một mô hình có kiểu ITransformer. Dữ liệu train là lấy Train set ở bước 1.  Bước 4: sau khi train mô hình xong thì chưa có sài ngay (thường là vậy), vì thường các bài toán máy học nó sẽ có kết quả dự đoán sai khác với thực tế, vấn đề là sự sai khác này có được chấp nhận hay không? có được tiếp tục sử dụng và tiếp tục cải tiến mô hình nữa hay không. Do đó khi train mô hình xong thì ta cần đánh giá mô hình này chất lượng ra sao. Ta sẽ lấy Test set ở bước 1 để đánh giá. Hàm đánh này tên là Evaluate() nó nằm trong các lớp giải thuật mà ta sử dụng để train mô hình, train mô hình dùng giải thuật nào thì khi đánh giá cũng dùng giải thuật đó. Ví dụ khi train mà ta dùng MulticlassClassification để train, thì khi đánh giá cũng dùng MulticlassClassification để đánh giá. Kết quả của hàmg Evaluate() sẽ trả về một object XYZMetrics. Với XYZ là giải thuật mà ta dùng để đánh giá, ví dụ dùng MulticlassClassification để đánh giá thì nó trả về MulticlassClassificationMetrics, dùng Regression để đánh giá thì nó lại trả về kết quả là RegressionMetrics… Nên sau khi gọi hàm đánh giá xong thì dựa vào các đối tượngkết quả trả về này mà ta quyết định xem có dùng mô hình này được hay không (trong máy học không có mô hình sai chỉ có mô hình phù hợp hay không). Ví dụ như mô hình đó dự đoán giá bán căn nhà là 1 tỉ, nhưng thực tế là 5 tỉ mới đúng giá, thì ráng mà chịu ai biểu không xem chất lượng mô hình có hợp lý hay không, với lại bán 1 tỉ cũng được mà chỉ là ít tiền thôi (nhưng là kỹ sư phần mềm cùng với am hiểu về cuộc sống thì chúng ta cũng điên điên có giới hạn thôi, nhường người khác điên với). Nếu bước 4 đánh giá mô hình mà không thấy nó ổn thì quay lại bước 1.  Bước 5: Lưu mô hình, sau khi đã đánh giá mô hình chất lượng ở bước 4 rồi thì lưu lại để lần sau chỉ tải mô hình ra sài thôi, không phải chuẩn bị lại dữ liệu và train lại (vì 19 các bước này rất tốt chi phí). File mô hình được lưu mặc định có đuôi .zip . ta gọi phương thức Save() để lưu  Bước 6: Load mô hình đã được lưu ở bước 5. Ví dụ hôm qua lưu xong tắt máy, hôm nay mở máy lên thì chỉ cần tải lại mô hình đã chạy thôi, hoặc nhiệm vụ của ta là build model và đánh giá mô model cho chất lượng, rồi gửi model tới team khác sử dụng, thì muốn gửi đi được phải lưu được mô hình xuống ổ cứng đã chứ. Ta gọi hàm Load() để tải mô hình. Sau khi tải nó sẽ mô hình hóa ngược lại đối tượng ITransformer  Bước 7: Gọi hàm CreatePredictionEngine().Predict() để sử dụng mô hình nhằm tìm ra kết quả dự báo của chương trình. Truyền đối tượng ITransformer ở bước 6 vào và sử dụng 3.1.3. ML.NET hỗ trợ các bài toán nào liên quan tới Máy Học?  Classification: Ví dụ các bài toán về phân loại cảm xúc khách hàng tích cực hay tiêu cực từ các feedback của họ  Clustering : Ví dụ các bài toán về 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ác cụm này chứa các đặc trưng khác nhau của khách hàng.  Regression/Predict continuous values: Ví dụ các bài toán về hồi quy như dự đoán giá nhà, giá taxi …. từ một tập dữ liệu giao dịch trong quá khứ, hãy dự đoán giá của nó là gì khi có một số dự kiện mới.  Anomaly Detection: Các bài toán về phát hiện bất thường, chẳng hạn như Phát hiện các giao dịch gian lận trong ngân hàng  Recommendations: Các bài toán về khuyến nghị, ví dụ như làm sao quảng cáo được sản phẩm tới đúng khách hàng có nhu cầu, làm sao khi vào tiki thì nó gợi ý được các cuốn sách mà người này quan tâm.  Time series/sequential data: các bài toán như dự báo thời tiết hay doanh số bán sản phẩm  Image classification: các bài toán về phân loại hình ảnh  Object detection: Các bài toán về Phát hiện đối tượng 3.1.5. Kiến trúc của ML.NET gồm những gì? Để sử dụng ML.NET ta sẽ bắt đầu với đối tượng MLContext. Đối tượng này chứa các hàm/đối tượng để tải, lưu dữ liệu, chuyển đổi dữ liệu , trình huấn luyện và các thành phần vận hành mô hình. Mỗi đối tượng sẽ có các phương thức để tạo các loại thành phần khác nhau như: 20
- Xem thêm -

Tài liệu liên quan