List of topics
Biểu thức chính quy - Regular Expressions
Chi tiết các thuật toán tách từ
Chuẩn hóa văn bản
Ôn tập học máy, học sâu và các khái niệm liên quan
Vector Semantics và Embeddings
SkipGram, Glove và FastText
Mô hình ngôn ngữ
RNN và LSTM
Bài toán dịch máy
Mô hình Transfomer (3 buổi)
Mô hình Bert và ứng dụng
Thực hành Bert và ứng dụng với bài toán NER và POS Tag
Bài toán truy xuất thông tin - Information Retrieval
Transformer nâng cao
Vector Database and RAG

Mô hình Bert và ứng dụng

  • Mô hình Bert và ứng dụng

  • Bert nguyên bản

  • Các phiên bản Bert nâng cấp: Roberta, PhoBert

1. Kiến trúc Bert

1.1. Các bài toán mà Bert giải quyết

Bạn có thể sử dụng Bert để xây dựng mô hình

  • Phân loại cảm xúc văn bản

  • Mô hình tìm câu trả lời trong văn bản

1.2. Biểu diễn ngữ cảnh - contextual representation

Bert sinh ra để làm gì?

Như bạn đã biết cùng một từ đi trong 3 câu sau sẽ có ý nghĩa khác nhau:

  • Câu 1: Từ đi ám chỉ hành động di chuyển

  • Câu 2: Từ đi ám chỉ việc tuổi càng ngày càng cao

  • Câu 3: Từ đi ám chỉ việc mất/chết

Vậy thì với những biểu diễn cố định như sử dụng Word2Vec/Glove không thể biểu diễn được hàm ý này vì vector embedding của từ đi trong cả 3 câu sẽ cố định không đổi.

Vì thế ta cần một biểu diễn động cho từ đi, tức là trong các câu khác nhau thì từ đi sẽ có vector khác nhau.

Elmo là một mô hình sử dụng mạng Bidirectional-RNN để mô phỏng ý nghĩa của từ.

Tuy nhiên vì yếu điểm của về tốc độ của mạng RNN cho nên Elmo không còn được sử dụng rộng rãi. Thay vì vậy người ta sẽ ưu tiên sử dụng các mô hình có kiến trúc Transformer.

Và một embeddings động dùng Transformer Encoder chính là mô hình Bert. Bert viết tắt của BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Tức là ta sẽ sử dụng mô hình Transformer Encoder và học mối quan hệ của một từ với các từ bên trái và bên phải để hình thành nên vector embedding. Bidirectional ý nghĩa là hai chiều.

1.3. Bert sử dụng Transformer

Công thức của Transformer

Trong đó Q, K, V là embedding vector của transformer model. Xem thêm chi tiết tại đây.

Trong đó:

  • Encoder có nhiệm vụ trích xuất vector ngữ nghĩa của các token trong câu

  • Decoder sử dụng thông tin từ Encoder để có thể sinh ra những văn bản đầu ra

    • Trong bài toán sinh từ là những từ tiếp theo

    • Trong bài toán máy dịch là câu được dịch ra từ câu đầu vào của Encoder

1.4. Pre-trained Bert được đào tạo thế nào?

Bert được xây dựng là một pre-trained học từ dữ liệu không nhãn.

Từ pre-trained này bạn có thể sử dụng để finetune trên dữ liệu có nhãn.

Pre-training Bert được đào tạo như thế nào?

Nhiệm vụ 1: Masked Language Model

Model được train từ trái qua phải và từ phải qua trái. Điều này cho hiệu năng cao hơn model chỉ train từ trái qua phải như mô hình ngôn ngữ GPT.

Để train mô hình này, tác giả đã ngẫu nhiên che đi (mask) một lượng % tokens trong văn bản sau đó huấn luyện lượng tokens còn lại để dự đoán ra tokens bị che này.

Cụ thể tác giả đã che đi 15% số lượng WordPiece Tokens ở mỗi chuỗi đầu vào một cách ngẫu nhiên. Trong 15% này, tác giả:

  • Thay thế 80% bằng token [MASK]

  • Thay thế 10% bằng token ngẫu nhiên

  • Giữ nguyên 10% còn lại

Tác giả lý giải cách làm này là do token [MASK] chỉ xuất hiện khi train pre-trained và không xuất hiện khi chúng ta fine-tune.

Nhiệm vụ 2: Dự đoán câu tiếp theo

Pre-train sẽ được train cho bài toán phân loại hai câu có đi liền với nhau hay không.

Dữ liệu được train sẽ bao gồm các cặp câu A-B trong đó:

  • 50% câu B đi theo sau câu A với nhãn dự đoán là IsNext

  • 50% câu B ngẫu nhiên từ trong ngữ liệu với nhãn dự đoán là NotNext

Hai câu này được thêm những Token để trở thành dạng sau.

[CLS] A [SEP] B [SEP]

Trong đó:

  • CLS là token sentence-level classification ở đầu. Token này sẽ thực hiện attention với tất cả các từ trong câu. Thực tế token này sau khi đi qua Bert thì vector của nó có thể sử dụng cho bài toán phân loại câu.

  • [SEP] là token để chia cắt các chuỗi câu. Ví dụ bài toán dịch máy thì [SEP] chia câu được dịch và câu dịch.

Quy trình tiếp theo:

Câu này sau đó được:

  • Qua Token Embeddings để tách token

  • Qua Segment Embeddings để cập nhật thông tin thuộc chuỗi nào. Ví dụ token thuộc chuỗi A sẽ được cộng thêm giá trị E_A có thể bằng 0 còn token thuộc chuỗi B sẽ được cộng thêm giá trị E_B có thể bằng 1.

  • Bổ sung thêm Embdding vị trí cho từng token

1.5. Các bài toán Bert có thể giải quyết

Click to view more

1.6. Slide

1.7. Fine tune Bert

Click to view more

1.8. Video 24-4-2024

1. Kiến trúc Bert
1.1. Các bài toán mà Bert giải quyết
1.2. Biểu diễn ngữ cảnh - contextual representation
1.3. Bert sử dụng Transformer
1.4. Pre-trained Bert được đào tạo thế nào?
1.5. Các bài toán Bert có thể giải quyết
1.6. Slide
1.7. Fine tune Bert
1.8. Video 24-4-2024