Các mô hình Sequence-to-Sequence (Seq2Seq) là một lớp các mô hình học sâu được thiết kế để chuyển đổi một chuỗi đầu vào thành một chuỗi đầu ra, trong đó độ dài của chuỗi đầu vào và đầu ra có thể khác nhau. Khả năng này khiến chúng trở nên cực kỳ mạnh mẽ đối với nhiều tác vụ, đặc biệt là trong Xử lý ngôn ngữ tự nhiên (NLP) , nhưng cũng có thể áp dụng trong các lĩnh vực khác như nhận dạng giọng nói và thậm chí là một số vấn đề về thị giác máy tính liên quan đến dữ liệu tuần tự. Ý tưởng cốt lõi, được giới thiệu trong các bài báo như " Sequence to Sequence Learning with Neural Networks " của Sutskever và cộng sự và " Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation " của Cho và cộng sự, đã cách mạng hóa cách máy móc xử lý các phép biến đổi chuỗi có độ dài thay đổi.
Kiến trúc mã hóa-giải mã
Cấu trúc cơ bản của hầu hết các mô hình Seq2Seq là kiến trúc mã hóa-giải mã:
- Bộ mã hóa: Phần này xử lý toàn bộ chuỗi đầu vào (ví dụ, một câu tiếng Pháp) từng bước, thường sử dụng Mạng nơ-ron hồi quy (RNN) như LSTM (Bộ nhớ dài hạn ngắn hạn) hoặc GRU (Đơn vị hồi quy có cổng) . Mục tiêu của nó là nén thông tin từ chuỗi đầu vào thành một biểu diễn bên trong có kích thước cố định, thường được gọi là "vectơ ngữ cảnh" hoặc "vectơ suy nghĩ". Vectơ này nhằm mục đích nắm bắt bản chất hoặc ý nghĩa của chuỗi đầu vào.
- Bộ giải mã: Phần này lấy vectơ ngữ cảnh được tạo ra bởi bộ mã hóa và tạo ra chuỗi đầu ra từng bước (ví dụ: câu đã dịch trong English ). Nó cũng thường là một RNN tạo ra một phần tử (như một từ hoặc ký tự) tại mỗi bước thời gian, dựa trên vectơ ngữ cảnh và các phần tử được tạo ra ở các bước trước đó.
Một cải tiến đáng kể đối với cấu trúc cơ bản này là sự ra đời của cơ chế chú ý , được trình bày chi tiết trong bài báo " Neural Machine Translation by Jointly Learning to Align and Translate " của Bahdanau và cộng sự. Attention cho phép bộ giải mã tập trung có chọn lọc vào các phần khác nhau của chuỗi đầu vào khi tạo ra từng phần tử của chuỗi đầu ra, thay vì chỉ dựa vào một vectơ ngữ cảnh có kích thước cố định. Điều này cải thiện đáng kể hiệu suất, đặc biệt là đối với các chuỗi dài. Khái niệm này đã mở đường cho các kiến trúc như Transformer , hoàn toàn dựa vào các cơ chế chú ý, loại bỏ hoàn toàn sự lặp lại và trở thành nền tảng cho các mô hình như BERT và GPT .
Ứng dụng trong thế giới thực
Các mô hình Seq2Seq hoạt động tốt trong các tác vụ mà đầu vào và đầu ra tuần tự nhưng có thể không có sự tương ứng một-một về độ dài hoặc cấu trúc. Các ứng dụng chính bao gồm:
- Dịch máy : Dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác (ví dụ: cung cấp năng lượng cho các dịch vụ như Google Dịch hoặc DeepL Translator ). Đây là một trong những thành công lớn đầu tiên của mô hình Seq2Seq.
- Tóm tắt văn bản : Tạo bản tóm tắt ngắn gọn từ một tài liệu hoặc bài viết dài hơn. Đầu vào là chuỗi văn bản dài và đầu ra là chuỗi tóm tắt ngắn hơn.
- AI đàm thoại / Chatbot : Tạo phản hồi trong hệ thống đối thoại. Đầu vào là truy vấn hoặc câu lệnh của người dùng và đầu ra là phản hồi của chatbot. Các nền tảng như Google Dialogflow sử dụng các công nghệ như vậy.
- Nhận dạng giọng nói : Chuyển đổi âm thanh nói (một chuỗi các tính năng âm thanh) thành văn bản (một chuỗi các từ).
- Chú thích hình ảnh: Tạo mô tả văn bản (chuỗi đầu ra) cho hình ảnh (chuỗi đầu vào, thường được biểu diễn dưới dạng các tính năng được trích xuất bởi CNN ). Mặc dù đầu vào không hoàn toàn tuần tự, nhưng quy trình tạo đầu ra phù hợp với mô hình Seq2Seq.
- Tạo mã: Tạo mã lập trình dựa trên mô tả ngôn ngữ tự nhiên.
Các khái niệm và cân nhắc chính
Việc xây dựng và đào tạo các mô hình Seq2Seq liên quan đến một số khái niệm quan trọng:
- Nhúng : Các từ hoặc mã thông báo đầu vào thường được chuyển đổi thành biểu diễn vectơ dày đặc trước khi đưa vào bộ mã hóa.
- Truyền ngược theo thời gian (BPTT): Phương pháp chuẩn để đào tạo RNN bằng cách mở rộng mạng theo chiều dài chuỗi.
- Xử lý chuỗi dài: RNN cơ bản gặp khó khăn với các phụ thuộc dài do các vấn đề như vấn đề gradient biến mất . LSTM và GRU được thiết kế để giảm thiểu vấn đề này và các cơ chế chú ý cải thiện hiệu suất hơn nữa trên các chuỗi dài. Các mô hình biến áp vượt trội ở đây.
- Số liệu đánh giá: Tùy thuộc vào nhiệm vụ, các số liệu như BLEU (để dịch), ROUGE (để tóm tắt) hoặc độ chính xác / điểm F1 (để gắn nhãn trình tự) được sử dụng. Ultralytics cung cấp hướng dẫn về số liệu hiệu suất .
Seq2Seq so với các kiến trúc khác
Trong khi các mô hình Seq2Seq dựa trên RNN là bước đột phá, lĩnh vực này đã phát triển:
- RNN chuẩn: Thông thường ánh xạ các chuỗi thành các chuỗi có cùng độ dài hoặc phân loại toàn bộ chuỗi, thiếu tính linh hoạt của cấu trúc mã hóa-giải mã cho các độ dài đầu ra thay đổi.
- Transformers : Hiện đang thống trị nhiều tác vụ NLP trước đây được xử lý bởi các mô hình Seq2Seq dựa trên RNN. Chúng sử dụng sự chú ý bản thân và mã hóa vị trí thay vì lặp lại, cho phép song song hóa tốt hơn và nắm bắt các phụ thuộc tầm xa hiệu quả hơn. Các mô hình như RT-DETR của Baidu , được hỗ trợ bởi Ultralytics , kết hợp các thành phần Transformer để phát hiện đối tượng .
- CNN : Chủ yếu được sử dụng cho dữ liệu dạng lưới như hình ảnh (ví dụ, trong các mô hình YOLO Ultralytics để phát hiện và phân đoạn ), mặc dù đôi khi được điều chỉnh cho các tác vụ trình tự.
Trong khi Seq2Seq thường đề cập đến cấu trúc mã hóa-giải mã dựa trên RNN, nguyên tắc chung của việc ánh xạ chuỗi đầu vào thành chuỗi đầu ra bằng cách sử dụng biểu diễn trung gian vẫn là trọng tâm của nhiều kiến trúc hiện đại, bao gồm cả Transformers được sử dụng trong quá trình biên dịch và tóm tắt. Các công cụ như PyTorch và TensorFlow cung cấp các khối xây dựng để triển khai cả mô hình chuỗi truyền thống và hiện đại. Việc quản lý quy trình đào tạo có thể được sắp xếp hợp lý bằng các nền tảng như Ultralytics HUB .