Công nghệ áp dụng

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TƯ VẤN THÔNG TIN TUYỂN SINH PTIT (Trang 29 - 36)

Chương 2: Công nghệ tư vấn thông tin tuyển sinh tự động

2.4 Công nghệ áp dụng

Trong đồ án này, để triển khai bài toán seq2seq kết hợp với cơ chế attention, em lựa chọn sử dụng các công nghệ để triển khai gồm có Transformer và OpenAi

Whisper. Các công nghệ này có ưu điểm là quá trình huấn luyện nhanh và thu về kết quả rất tốt.

2.4.1 Transformer (phục vụ cho tư vấn tự động) a. Giới thiệu chung

Transformer là một kiến trúc mạng nơ-ron sử dụng trong machine learning và deep learning, đặc biệt là trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP).

Đây là một mô hình mạng nơ-ron đặc biệt nổi bật trong lĩnh vực xử lý ngôn ngữ tự nhiên và dịch máy. Thay vì sử dụng các lớp tích chập như các mô hình trước đó, Transformer chủ yếu sử dụng cơ chế self-attention để xử lý thông tin đầu vào. Cơ chế này cho phép mô hình tập trung vào các phần quan trọng của dữ liệu đầu vào, giúp cải thiện khả năng hiểu và tạo ra dữ liệu đầu ra chất lượng.

Hình 2. 7 Mô hình transformer

Một mô hình Transformer xử lý đầu vào có kích thước biến đổi bằng cách sử dụng các lớp tự chú ý thay vì sử dụng RNNs hoặc CNNs.

Cụ thể hơn một chút, tại sao Transformer lại mang lại sự hiệu quả tốt hơn RNN?.

Đối với quá trình encode một câu thì RNNs sẽ cần một khoảng thời gian để đọc lần lượt từng từ trong câu, đối với 1 câu dài quá trình này có thể diễn ra khá lâu, như vậy độ phức tạp của encoder để xử lý một câu có độ dài N là O(N). Ngược lại, trong quá trình encode của transformer, các source tokens sẽ "quan sát" nhau (cơ chế self

attention) và cố gắng hiểu nhau trong ngữ cảnh của câu. Và độ phức tạp của quá trình này chỉ là O(1).

Bảng dưới đây sẽ thể hiện sự khác biệt của transformer với các mô hình seq2seq, transformer hoàn toàn hoạt động dựa trên cơ chế attention

seq2seq seq2seq với

attention

transformer

encoder RNN/CNN RNN/CNN attention

decoder RNN/CNN RNN/CNN attention

tương tác giữa encoder và decoder

vector attention attention

b. Cơ chế self - attention

Self -attention chính là thành phần quan trọng nhất của transformer. Sự khác biệt là, trong khi cơ chế attention sẽ tính toán dựa trên trạng thái của decoder ở time-step hiện tại và tất cả các trạng thái ẩn của encoder. Còn self-attention có thể hiểu là attention trong một câu, khi từng thành phần trong câu sẽ tương tác với nhau. Từng token sẽ "quan sát" các tokens còn lại trong, thu thập ngữ cảnh của câu và cập nhập vector biểu diễn.

Hình 2. 8 Cơ chế self – extension của transformer

Để xây dựng cơ chế self-attention ta cần chú ý đến hoạt động của 3 vector biểu diễn cho mỗi từ lần lượt là:

● Query: hỏi thông tin

● Key: trả lời rằng nó có một số thông tin

● Value: trả về thông tin đó

Query được sử dụng khi một token "quan sát" những tokens còn lại, nó sẽ tìm kiếm thông tin xung quanh để hiểu được ngữ cảnh và mối quan hệ của nó với các tokens còn lại. Key sẽ phản hồi yêu cầu của Query và được sử dụng để tính trọng số attention. Cuối cùng, Value được sử dụng trọng số attention vừa rồi để tính ra vector đại diện (attention vector)

Hình 2. 9 Mô tả về attension vector

c. Kiến trúc của Transformer

Tiếp theo ta sẽ đi tìm hiểu về các thành phần chính cấu tạo nên transformer. Mô hình thực hiện chính xác những gì đã được giới thiệu ở trên. Ở bên trái là encoder, thông thường có Nx = 6 layers chồng lên nhau. Mỗi layer sẽ có multi-head attention như đã tìm hiểu và khối feed-forward. Ngoài ra còn các các kết nối residual giống như trong mạng Resnet. Ở bên phải là decoder, tương tự cũng có Nx = 6 layers chồng lên nhau. Kiến trúc thì khá giống encoder những chỉ có thêm khối masked multi-head attention ở vị trí đầu tiên

Hình 2. 10 Kiến trúc transformer

● Positional encoding: Transformer không có các mạng hồi tiếp hay mạng tích chập nên nó sẽ không biết được thứ tự của các token đầu vào. Vì vậy, cần phải có cách nào đó để cho mô hình biết được thông tin này. Đó chính là nhiệm vụ của positional encoding. Như vậy, sau bước nhúng từ (embedding layers) để thu được các tokens thì ta sẽ cộng nó với các vector thể hiện vị trí của từ trong câu.

● Lớp Normalization: Trong hình ảnh cấu trúc, có lớp "Add & Norm" thì từ Norm thể hiện cho lớp Normalization. Lớp này đơn giản là sẽ chuẩn hóa lại đầu ra của multi-head attention, mang lại hiệu quả cho việc nâng cao khả năng hội tụ.

● Kết nối Residual: Kết nối residual: thêm đầu vào của một khối vào đầu ra của nó. Với kết nối này giúp mạng có thể chồng được nhiều layers. Như trên hình, kết nối residual sẽ được sử dụng sau các khối FFN và khối attention. Như trên hình từ "Add"

trong "Add & Norm" sẽ thể hiện cho kết nối residual.

● Khối Feed-Forward: Đây là khối cơ bản, sau khi thực hiện tính toán ở khối attention ở mỗi lớp thì khối tiếp theo là FFN. Có thể hiểu là cơ chế attention giúp thu thập thông tin từ những tokens đầu vào thì FFN là khối xử lý những thông tin đó.

2.4.2 OpenAi Whisper (phục vụ chuyển đổi giọng nói)

OpenAI Whisper là một mô hình nhận dạng giọng nói mã nguồn mở được phát triển bởi OpenAI. Nó được đào tạo trên một tập dữ liệu khổng lồ gồm 680.000 giờ âm thanh đa ngôn ngữ.Whisper có thể nhận dạng giọng nói của con người với độ chính xác cao, ngay cả trong điều kiện tiếng ồn và giọng nói khác nhau. Nó cũng có thể dịch giữa các ngôn ngữ.

Whisper vẫn đang trong quá trình phát triển, nhưng nó đã được chứng minh là có tiềm năng ứng dụng rộng rãi.

Hình 2. 11 Sơ đồ kiến trúc của OpenAi Whisper

2.5 Thực nghiệm

2.5.1 Dữ liệu thực nghiệm

Vì là hệ thống tư vấn tự động liên quan đến học viện Công nghệ Bưu chính Viễn thông vậy nên em sẽ sử dụng các thông tin có sẵn tại website của học viện. Qua đó tổng hợp lại thành các câu hỏi và các câu trả lời tương ứng

Hình 2. 12 Một số thông tin từ học viện

2.5.2 Phương pháp thực nghiệm

Để tiến hành huấn luyện dữ liệu, em thực hiện huấn luyện bằng học sâu với TensorFlow, Keras. Các thông số đầu vào gồm có NUM_LAYERS, NUM_HEADS, UNITS, DROPOUT, embeddings_dim và VOCAB_SIZE đóng vai trò quan trọng trong việc xác định kiến trúc và đặc điểm hoạt động của encoder và decoder.

NUM_LAYERS đại diện cho số lớp trong cả hai thành phần, có ảnh hưởng đến khả năng mô hình học mối quan hệ phức tạp. NUM_HEADS là số đầu attention, cung cấp khả năng tập trung đồng thời vào các phần khác nhau của đầu vào. UNITS là số chiều của các lớp ẩn, quyết định khả năng học biểu diễn phức tạp. DROPOUT là tỷ lệ dropout, giúp ngăn chặn overfitting và cải thiện khả năng tổng quát hóa. Ngoài ra, embeddings_dim là kích thước của không gian nhúng, ảnh hưởng đến khả năng biểu diễn từ ngữ của mô hình. VOCAB_SIZE là kích thước của từ vựng, định rõ phạm vi từ ngữ mà mô hình có thể xử lý. Tất cả các tham số này cần được lựa chọn sao cho phù hợp với đặc điểm của dữ liệu và yêu cầu của bài toán để đảm bảo mô hình hoạt động hiệu quả và có khả năng tổng quát hóa.

Thông số Giá trị

NUM_LAYERS 2

NUM_HEADS 6

UNITS 512

DROPOUT 0.1

embeddings_dim 300

VOCAB_SIZE Độ dài của câu hỏi dài nhất

2.5.3 Kết quả thực nghiệm

Sau quá trình huấn luyện cho phần tư vấn tự động, thu về kết quả như biểu đồ dưới đây

Hình 2. 13 Biểu đồ training loss

2.6 Kết luận chương

Ở chương 2 này, em đã trình bày chi tiết về yêu cầu bài toán tư vấn tự động và hướng xử lý bài toán em đã chọn. Đồng thời cũng giới thiệu về kỹ thuật và các công nghệ em lựa chọn để xử lý bài toán này.

Ở chương tiếp theo, em sẽ trình bày về cấu trúc của hệ thống, phân tích và thiết kế của hệ thống xây dựng ứng dụng di động

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TƯ VẤN THÔNG TIN TUYỂN SINH PTIT (Trang 29 - 36)

Tải bản đầy đủ (PDF)

(81 trang)