Mọi thứ bắt đầu từ một câu hỏi đơn giản: làm thế nào máy có thể hiểu được văn bản? Khi bạn huấn luyện mô hình phân biệt spam và tin nhắn bình thường hoặc xác định cảm xúc của đánh giá, có điều gì đó thú vị đang diễn ra bên trong. Mô hình phải biến đổi các chữ cái và từ thành số, vì mạng nơ-ron chỉ hoạt động với số.



Cách tiếp cận sơ khai đầu tiên - đơn giản là đánh số thứ tự cho từng từ duy nhất. Good = 6, bad = 26, awesome = 27. Trông có vẻ hợp lý, nhưng vấn đề là: các số 26 và 27 gần nhau, nên mô hình sẽ nghĩ rằng bad và awesome giống nhau. Trong thực tế, awesome và good lại mang ý nghĩa gần hơn. Đó chính là cái bẫy.

Chúng ta thử dùng One Hot Encoding - mỗi từ được biểu diễn bằng một vector có kích thước bằng toàn bộ từ điển, trong đó chỉ có một phần tử là 1 để chỉ ra từ cần thiết, phần còn lại là 0. Vấn đề xếp hạng biến mất, nhưng lại xuất hiện vấn đề mới: nếu từ điển có 20 nghìn từ, mỗi vector sẽ có 20 nghìn phần tử. Tài nguyên bộ nhớ tiêu tốn rất nhiều, và mô hình cũng không hiểu được ý nghĩa sâu xa của các từ.

Sau đó, người ta dùng Bag of Words và N-gram - đếm số lần từ xuất hiện trong văn bản. Thêm ngữ cảnh, nhưng lại gặp vấn đề là các vector thưa thớt lớn và mô hình không thể hiểu các mối liên hệ sâu giữa các từ. Nếu trong câu "The librarian loves books" mà từ librarian và book không đứng cạnh nhau, N-gram sẽ không bắt được mối liên hệ giữa chúng.

Đúng lúc này, mã hóa qua embedding trở thành cứu cánh. Ý tưởng là các từ có ý nghĩa tương tự nhau sẽ nằm gần nhau trong không gian vector. Hãy tưởng tượng một mặt phẳng hai chiều: trên một trục là kích thước của động vật, trên trục kia là mức độ nguy hiểm. Tiger và lion sẽ nằm gần nhau (lớn và nguy hiểm), còn hamster thì riêng biệt (nhỏ và an toàn). Đó chính là embedding - một vector đặc dày, lưu giữ ý nghĩa của từ trong không gian n chiều.

Điều tuyệt vời nhất là với các vector này, ta có thể thực hiện các phép tính toán học. Lấy vector của "con trai", trừ đi "đàn ông" rồi cộng "phụ nữ" - sẽ ra một vector gần với "con gái". Hoặc: Madrid + Đức - Tây Ban Nha = Berlin. Nó hoạt động vì mô hình nắm bắt được các mối quan hệ giữa các khái niệm.

Vậy, cách huấn luyện các embedding này như thế nào? Google đề xuất Word2Vec với hai phương pháp. Trong CBOW, bạn lấy các từ ngữ cảnh và dự đoán từ trung tâm. Skip-Gram thì ngược lại - từ từ trung tâm dự đoán các từ lân cận. Cả hai kỹ thuật đều hoạt động tốt để huấn luyện word embedding.

Trong các mô hình hiện đại như GPT hoặc BERT, mọi thứ có chút khác biệt. Lớp embedding không được lấy sẵn, mà được huấn luyện cùng với chính mô hình. Đầu tiên, văn bản được chia thành các token, sau đó một mạng nơ-ron đơn giản tạo ra embedding cho từng token. Các trọng số của lớp này là các tham số có thể huấn luyện, giúp mô hình biểu diễn các từ trong không gian phù hợp. Sau đó, các embedding này đi qua các khối decoder và đến lớp đầu ra, cung cấp xác suất cho token tiếp theo.

Một chi tiết nhỏ - mã hóa vị trí. Transformer xử lý tất cả token song song, khác với RNN. Vì vậy, cần phải cho mô hình biết thứ tự của các từ. Người ta lấy vector vị trí và cộng vào vector embedding. Kết quả là sự kết hợp: ý nghĩa của từ + thông tin về vị trí của nó trong văn bản.

Sau khi mã hóa vị trí, embedding đi vào cơ chế chú ý - đây chính là trái tim của các mô hình ngôn ngữ lớn. Embedding nắm bắt ý nghĩa của từng từ, nhưng ngữ cảnh được hiểu rõ qua attention. Vì vậy, từ "key" trong các ngữ cảnh khác nhau sẽ có các biểu diễn ngữ cảnh khác nhau.

Với cách kết hợp các ý tưởng đơn giản - tokenization, đếm từ, mã hóa đúng cách qua embedding - dần dần bạn sẽ đi đến transformer và ChatGPT. Các embedding hiện diện khắp nơi: trong hệ thống đề xuất, tìm kiếm hình ảnh tương tự, trong nền tảng của tất cả các LLM hiện đại. Nếu muốn hiểu rõ về NLP, bạn cần nắm vững cách hoạt động của CBOW, Skip-Gram và toàn bộ kiến trúc này. Đó chính là nền tảng bắt đầu.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Gate Fun hot

    Xem thêm
  • Vốn hóa:$2.23KNgười nắm giữ:0
    0.00%
  • Vốn hóa:$2.24KNgười nắm giữ:2
    0.24%
  • Vốn hóa:$2.23KNgười nắm giữ:2
    0.00%
  • Vốn hóa:$2.22KNgười nắm giữ:1
    0.00%
  • Vốn hóa:$2.22KNgười nắm giữ:1
    0.00%
  • Ghim