So sánh huấn luyện bộ mã hóa và huấn luyện mô hình trong xử lý ngôn ngữ tự nhiên.
Trong xử lý ngôn ngữ tự nhiên (NLP), quá trình huấn luyện bộ mã hóa từ (tokenizer) và huấn luyện mô hình về cơ bản là khác nhau nhưng lại có mối liên hệ mật thiết, trong đó quá trình huấn luyện bộ mã hóa từ tạo ra từ vựng và các quy tắc mã hóa cho phép mô hình học các mẫu ngôn ngữ từ dữ liệu số.
Điểm nổi bật
Quá trình huấn luyện Tokenizer sử dụng thuật toán hợp nhất tham lam thay vì tối ưu hóa dựa trên gradient, về cơ bản đây là một bước tiền xử lý chứ không phải là học mạng nơ-ron.
Chi phí huấn luyện mô hình lớn hơn nhiều so với huấn luyện bộ mã hóa từ, trong khi chất lượng của bộ mã hóa lại đặt ra giới hạn cứng cho hiệu suất của mô hình tiếp theo.
Các quyết định về từ vựng của bộ mã hóa từ vựng về cơ bản là không thể đảo ngược một khi quá trình huấn luyện mô hình bắt đầu, tạo ra sự ràng buộc kéo dài xuyên suốt tất cả các bước tinh chỉnh tiếp theo.
Các mô hình đa ngôn ngữ phải đối mặt với sự thiên lệch nghiêm trọng trong việc phân tách từ, trong đó tiếng Anh và các ngôn ngữ châu Âu chính được phân tách từ hiệu quả, trong khi nhiều ngôn ngữ khác lại bị ảnh hưởng bởi hiện tượng lạm phát độ dài chuỗi.
Đào tạo bộ mã hóa là gì?
Quá trình xây dựng vốn từ vựng con và học các quy tắc mã hóa để chuyển đổi văn bản thành các mã số.
Quá trình huấn luyện bộ mã hóa phân tích một kho ngữ liệu văn bản lớn để tìm ra các đơn vị từ nhỏ hiệu quả nhất để biểu diễn ngôn ngữ.
Mã hóa cặp byte (BPE) và SentencePiece là những thuật toán được sử dụng rộng rãi nhất để huấn luyện bộ mã hóa từ vựng trên văn bản thô.
Kích thước từ vựng thu được là một siêu tham số cố định, thường nằm trong khoảng từ 32.000 đến 100.000 token.
Quá trình huấn luyện bộ mã hóa từ không liên quan đến thuật toán giảm độ dốc hay tối ưu hóa mạng nơ-ron.
Một bộ mã hóa từ vựng được huấn luyện kém có thể làm suy giảm nghiêm trọng hiệu suất của mô hình tiếp theo bằng cách tạo ra các chuỗi từ vựng rời rạc hoặc không rõ ràng.
Huấn luyện mô hình trong xử lý ngôn ngữ tự nhiên (NLP) là gì?
Quá trình tối ưu hóa mạng nơ-ron, trong đó các mô hình ngôn ngữ học các mẫu từ dữ liệu được mã hóa thông qua các phương pháp dựa trên gradient.
Việc huấn luyện mô hình yêu cầu dữ liệu đã được mã hóa trước và sử dụng thuật toán lan truyền ngược để giảm thiểu tổn thất dự đoán trên hàng tỷ tham số.
Kiến trúc Transformer chiếm ưu thế trong việc huấn luyện mô hình xử lý ngôn ngữ tự nhiên (NLP) hiện đại, được giới thiệu trong bài báo năm 2017 "Attention Is All You Need".
Việc huấn luyện các mô hình ngôn ngữ quy mô lớn như GPT-4 có thể tiêu tốn hàng chục triệu đô la chi phí tính toán.
Quá trình huấn luyện mô hình bao gồm các siêu tham số như tốc độ học, kích thước lô và các bước khởi động, những yếu tố này ảnh hưởng đáng kể đến sự hội tụ.
Việc tinh chỉnh (fine-tuning) điều chỉnh các mô hình đã được huấn luyện trước đó cho các nhiệm vụ cụ thể với lượng dữ liệu và tài nguyên tính toán ít hơn nhiều so với việc huấn luyện từ đầu.
Bảng So Sánh
Tính năng
Đào tạo bộ mã hóa
Huấn luyện mô hình trong xử lý ngôn ngữ tự nhiên (NLP)
Mục tiêu chính
Tạo từ vựng con và quy tắc mã hóa
Học các mẫu ngôn ngữ và cách biểu đạt cụ thể theo nhiệm vụ.
Dữ liệu đầu vào
Kho dữ liệu văn bản thô (thường là hàng terabyte văn bản chưa được gắn nhãn)
Các chuỗi được mã hóa bằng ID số
Phương pháp tối ưu hóa
Ghép nối dựa trên tần suất tham lam (BPE) hoặc xác suất tối đa (SentencePiece)
Giảm độ dốc với lan truyền ngược
Sản phẩm đầu ra
Tệp từ vựng và các chức năng mã hóa/giải mã
Cấu hình trọng số và kiến trúc mạng nơ-ron đã được huấn luyện
Yêu cầu tính toán
Khá khiêm tốn; số giờ hoạt động trên một máy duy nhất
Rất lớn; tiêu tốn hàng nghìn giờ GPU/TPU cho các mô hình lớn.
Khả năng đảo ngược
Hoàn toàn có thể đảo ngược; văn bản có thể được khôi phục chính xác từ các mã thông báo.
Không thể đảo ngược; kết quả đầu ra của mô hình là dự đoán, không phải là sự tái tạo.
Thời gian điển hình
Từ vài phút đến vài giờ tùy thuộc vào kích thước tập dữ liệu.
Từ vài ngày đến vài tháng đối với các mô hình nền móng.
Mối quan hệ phụ thuộc
Phải hoàn thành trước khi bắt đầu khóa đào tạo người mẫu.
Điều này phụ thuộc vào việc bộ mã hóa từ vựng đã được huấn luyện và sửa lỗi hay chưa.
So sánh chi tiết
Mục đích và chức năng cốt lõi
Quá trình huấn luyện bộ phân tách từ (tokenizer) đóng vai trò là cầu nối tiền xử lý giữa ngôn ngữ con người và các con số mà máy tính có thể đọc được. Nhiệm vụ của nó là quyết định cách các từ được phân tách, chuỗi nào trở thành các token đặc biệt và cách xử lý các từ chưa biết. Mặt khác, quá trình huấn luyện mô hình là nơi diễn ra quá trình học tập thực sự—nơi mạng nơ-ron khám phá các mẫu thống kê trong ngôn ngữ, xây dựng các biểu diễn ý nghĩa và phát triển khả năng tạo ra hoặc phân loại văn bản.
Nền tảng thuật toán
Các thuật toán đằng sau việc huấn luyện bộ mã hóa từ (tokenizer) khác biệt đáng kể so với các thuật toán hỗ trợ huấn luyện mô hình. BPE bắt đầu với các byte riêng lẻ và hợp nhất lặp đi lặp lại các cặp liền kề thường xuyên nhất cho đến khi đạt được kích thước từ vựng mong muốn. SentencePiece xử lý vấn đề như một nhiệm vụ mô hình hóa ngôn ngữ bằng cách sử dụng thuật toán Expectation-Maximization (EPS). Cả hai đều không liên quan đến mạng nơ-ron. Việc huấn luyện mô hình chỉ sử dụng tối ưu hóa khả vi, thường là các bộ tối ưu hóa Adam hoặc AdamW, để điều hướng trong không gian hàm mất mát đa chiều.
Cường độ sử dụng tài nguyên và khả năng mở rộng
Khoảng cách về hiệu năng giữa hai quy trình này là rất lớn. Việc huấn luyện bộ mã hóa SentencePiece trên 100GB văn bản có thể mất vài giờ trên phần cứng tiêu chuẩn. Trong khi đó, việc huấn luyện một mô hình như Llama 3 trên cùng một tập dữ liệu đó lại đòi hỏi các cụm máy tính khổng lồ với hàng nghìn bộ tăng tốc được kết nối với nhau và hoạt động trong nhiều tuần. Điều thú vị là, việc huấn luyện bộ mã hóa thường chỉ được thực hiện một lần và được tái sử dụng trong nhiều lần huấn luyện mô hình, khiến chi phí này tương đối cố định trong toàn bộ quy trình phát triển.
Tác động đến hành vi của mô hình
Việc lựa chọn bộ phân tách từ (tokenizer) ảnh hưởng một cách tinh tế nhưng mạnh mẽ đến những gì mô hình học được. Một bộ phân tách từ chia cụm từ 'antidisestablishmentarianism' thành nhiều mảnh nhỏ buộc mô hình phải ghép các mảnh lại với nhau để tạo ra ý nghĩa, trong khi một bộ phân tách giữ nguyên cụm từ sẽ coi nó như một khái niệm nguyên tử. Sự thiên vị của bộ phân tách từ thậm chí có thể ảnh hưởng đến tính công bằng—các ngôn ngữ có hiệu quả phân tách từ kém sẽ bị nén thành các chuỗi dài hơn, khiến cho việc xử lý chúng trở nên tốn kém hơn đối với mô hình và đôi khi dẫn đến hiệu suất kém hơn.
Vòng đời và sự lặp lại
Trên thực tế, việc huấn luyện bộ mã hóa từ (tokenizer) thường là một quyết định được đưa ra một lần duy nhất vào giai đoạn đầu của dự án. Việc thay đổi bộ mã hóa từ sau khi huấn luyện mô hình đồng nghĩa với việc phải huấn luyện lại mọi thứ từ đầu, vì ID của từ là tùy ý và các embedding của mô hình được gắn liền với các vị trí từ cụ thể. Ngược lại, việc huấn luyện mô hình mang tính lặp đi lặp lại cao—các nhà nghiên cứu liên tục thử nghiệm với các kiến trúc, công thức huấn luyện và chiến lược tinh chỉnh. Sự bất đối xứng này có nghĩa là các lựa chọn về bộ mã hóa từ sẽ mang lại những hậu quả lâu dài khó có thể đảo ngược.
Ưu & Nhược điểm
Đào tạo bộ mã hóa
Ưu điểm
+Chi phí tính toán thấp để vận hành
+Hoàn toàn mang tính xác định và có thể tái tạo
+Cho phép nén văn bản hiệu quả
+Có thể tùy chỉnh cho từ vựng chuyên ngành.
+Tạo mã hóa văn bản có thể đảo ngược
Đã lưu
−Vốn từ vựng hạn chế sẽ giới hạn khả năng diễn đạt.
−Khó khăn trong việc thích nghi với sự phát triển ngôn ngữ
−Có thể gây ra sai lệch trong mã hóa.
−Cần phải đào tạo lại để thay đổi
−Không tối ưu cho các ngôn ngữ hiếm gặp
Huấn luyện mô hình trong xử lý ngôn ngữ tự nhiên (NLP)
Ưu điểm
+Học được các biểu diễn ngữ nghĩa phong phú
+Có thể áp dụng cho nhiều nhiệm vụ khác nhau
+Khả năng mở rộng có thể dự đoán được dựa trên dữ liệu và khả năng tính toán.
+Cho phép các khả năng mới nổi
+Hỗ trợ điều chỉnh thích ứng
Đã lưu
−Cực kỳ tốn kém về mặt tính toán.
−Sử dụng năng lượng gây tác động đến môi trường
−Cần có bộ dữ liệu được chọn lọc quy mô lớn.
−Dễ bị ảo giác và thiên vị
−Khó hiểu lý lẽ nội tại
Những hiểu lầm phổ biến
Huyền thoại
Việc huấn luyện bộ mã hóa từ chỉ là một bước tiền xử lý nhỏ, hầu như không ảnh hưởng đến chất lượng mô hình cuối cùng.
Thực tế
Chất lượng của bộ mã hóa từ (tokenizer) ảnh hưởng trực tiếp đến khả năng học hỏi của mô hình. Việc mã hóa từ kém sẽ tạo ra các biểu diễn không rõ ràng, làm tăng độ dài chuỗi và có thể khiến mô hình gần như không thể nắm bắt được một số hiện tượng ngôn ngữ nhất định. Các nhà nghiên cứu đã chỉ ra rằng việc lựa chọn bộ mã hóa từ có thể làm thay đổi hiệu suất của mô hình chuẩn lên đến vài phần trăm.
Huyền thoại
Bạn có thể thay đổi bộ mã hóa token sau khi huấn luyện mô hình bằng cách đơn giản là ánh xạ lại các token.
Thực tế
Các embedding của mô hình được liên kết với các ID token cụ thể tại các vị trí cụ thể trong không gian tham số đã học. Một bộ token hóa khác sẽ tạo ra các phân bố token hoàn toàn khác nhau, khiến cho các trọng số được huấn luyện trước đó không khớp về mặt ngữ nghĩa. Con đường khả thi duy nhất là huấn luyện lại hoàn toàn từ đầu.
Huyền thoại
Từ vựng của bộ mã hóa càng lớn thì hiệu suất của mô hình càng tốt.
Thực tế
Mặc dù từ vựng lớn hơn giúp giảm độ dài chuỗi, nhưng chúng lại làm tăng kích thước ma trận nhúng và có thể ảnh hưởng đến hiệu quả của mô hình. Có một điểm tối ưu – quá lớn thì mô hình sẽ không tận dụng hết các token hiếm; quá nhỏ thì các chuỗi trở nên rời rạc. Hầu hết các chuyên gia đều thấy rằng 32.000–100.000 token là tối ưu cho các mô hình đa ngôn ngữ.
Huyền thoại
Quá trình huấn luyện mô hình và huấn luyện bộ mã hóa từ diễn ra đồng thời như một phần của quy trình khép kín hoàn chỉnh.
Thực tế
Đây là các giai đoạn tuần tự, riêng biệt. Bộ mã hóa từ vựng phải được huấn luyện hoàn chỉnh và cố định trước khi quá trình huấn luyện mô hình bắt đầu, vì kiến trúc mô hình phụ thuộc vào kích thước từ vựng để xác định kích thước lớp nhúng. Một số nghiên cứu gần đây khám phá việc tối ưu hóa đồng thời, nhưng thông lệ tiêu chuẩn vẫn tuân thủ nghiêm ngặt trình tự.
Huyền thoại
Một mô hình được huấn luyện trên một bộ mã hóa từ có thể được tinh chỉnh trên văn bản được mã hóa từ theo cách khác.
Thực tế
Việc tinh chỉnh đòi hỏi phải có sự mã hóa token giống hệt nhau. Cung cấp văn bản được mã hóa token khác nhau sẽ khiến mô hình nhận được các ID token mà nó chưa từng học được embedding, hoặc tệ hơn, các ID quen thuộc nhưng có ý nghĩa hoàn toàn sai. Đó là lý do tại sao các bản phát hành mô hình luôn chỉ rõ chính xác bộ mã hóa token nào cần sử dụng.
Huyền thoại
Việc huấn luyện bộ mã hóa từ (tokenizer) cũng yêu cầu dữ liệu được gắn nhãn, tương tự như việc huấn luyện mô hình.
Thực tế
Các bộ mã hóa từ (tokenizer) được huấn luyện hoàn toàn trên văn bản thô, không được gắn nhãn. Chúng không cần chú thích, thẻ hoặc định dạng cụ thể cho từng nhiệm vụ. Bản chất không giám sát này cho phép huấn luyện bộ mã hóa từ trên các kho dữ liệu khổng lồ quy mô web mà không cần đến việc gắn nhãn thủ công tốn kém.
Các câu hỏi thường gặp
Điều gì sẽ xảy ra nếu tôi sử dụng bộ mã hóa từ sai với mô hình đã được huấn luyện trước?
Việc sử dụng các bộ mã hóa không khớp sẽ tạo ra những câu vô nghĩa. Mô hình nhận được các ID mã hóa tương ứng với các từ con hoàn toàn khác so với những gì mà các embedding của nó được huấn luyện để biểu diễn. Ở mức tốt nhất, đầu ra trở nên vô nghĩa; ở mức tệ nhất, mô hình tạo ra nội dung có hại vì các mã hóa kích hoạt các liên kết đã học không mong muốn. Luôn luôn sử dụng chính xác bộ mã hóa được phân phối cùng với mô hình.
Thời gian huấn luyện bộ mã hóa từ (tokenizer) thường mất bao lâu so với thời gian huấn luyện mô hình?
Việc huấn luyện bộ mã hóa từ (tokenizer) thường hoàn thành trong vài giờ, đôi khi chỉ vài phút đối với các tập dữ liệu nhỏ hơn. Việc huấn luyện mô hình nền tảng kéo dài từ vài tuần đến vài tháng trên các cụm máy tính khổng lồ. Ngay cả việc tinh chỉnh một mô hình lớn cũng thường mất nhiều thời gian hơn so với việc huấn luyện một bộ mã hóa từ đầu. Sự khác biệt này phản ánh rằng các bộ mã hóa từ sử dụng các thuật toán thống kê đơn giản trong khi các mô hình tối ưu hóa hàng tỷ tham số thông qua phương pháp giảm độ dốc lặp đi lặp lại.
Tôi có thể tự huấn luyện bộ mã hóa token cho một mô hình hiện có như GPT-4 không?
Về mặt kỹ thuật thì có thể, nhưng trên thực tế thì không. Bạn có thể huấn luyện một bộ mã hóa tùy chỉnh, nhưng không thể sử dụng nó với trọng số được huấn luyện trước của GPT-4 vì kích thước nhúng và biểu diễn đã học được gắn liền với bộ mã hóa gốc của OpenAI. Bạn sẽ cần phải huấn luyện một mô hình mới từ đầu với bộ mã hóa của mình, điều này làm mất đi mục đích sử dụng mô hình được huấn luyện trước.
Tại sao một số ngôn ngữ lại phân tách thành nhiều token hơn các ngôn ngữ khác?
Điều này xuất phát từ cách BPE và các thuật toán tương tự tối ưu hóa tần suất xuất hiện trong dữ liệu huấn luyện. Các ngôn ngữ có số lượng đại diện lớn trong kho dữ liệu huấn luyện, đặc biệt là tiếng Anh, được phân tách từ hiệu quả. Các ngôn ngữ có nguồn tài nguyên ít hơn bị phân mảnh thành các phần ở cấp độ ký tự hoặc từ nhỏ hơn vì các mẫu của chúng hiếm khi là các kết hợp phổ biến nhất. "Chi phí phân tách từ" này làm cho việc xử lý một số ngôn ngữ tốn kém hơn về mặt tính toán.
Liệu SentencePiece có tốt hơn BPE trong việc huấn luyện bộ mã hóa từ vựng không?
SentencePiece mang lại lợi thế cho một số trường hợp sử dụng nhất định. Nó coi khoảng trắng như một ký tự thông thường, giúp nó tự nhiên hơn đối với các ngôn ngữ không có ranh giới từ như tiếng Nhật hoặc tiếng Trung. Nó cũng hỗ trợ nhiều thuật toán mã hóa, bao gồm BPE và các mô hình ngôn ngữ unigram. BPE vẫn phổ biến hơn trong các mô hình tập trung vào tiếng Anh. Lựa chọn tốt nhất phụ thuộc vào sự kết hợp ngôn ngữ của bạn và liệu bạn có cần mã hóa đảo ngược hay không.
Làm sao tôi biết được liệu bộ mã hóa token của mình có gây ra vấn đề trong mô hình hay không?
Hãy chú ý đến hiện tượng phức tạp bất thường ở các ngôn ngữ hoặc lĩnh vực cụ thể, độ dài chuỗi quá mức so với văn bản tương tự trong các ngôn ngữ phổ biến, và hiệu suất kém trong các tác vụ liên quan đến từ hiếm hoặc thuật ngữ chuyên ngành. Phân tích thủ công kết quả phân tách từ - kiểm tra cách các từ đại diện được tách ra - thường giúp nhanh chóng phát hiện ra các vấn đề.
"Sự bùng nổ của bộ mã hóa từ" là gì và nó ảnh hưởng đến quá trình huấn luyện mô hình như thế nào?
Hiện tượng bùng nổ bộ mã hóa (Tokenizer explosion) xảy ra khi một thay đổi nhỏ trong dữ liệu đầu vào tạo ra các chuỗi mã hóa khác nhau đáng kể, thường là do các quy tắc ranh giới không rõ ràng hoặc xử lý tiền tố/hậu tố không chính xác. Điều này làm mất ổn định quá trình huấn luyện mô hình vì mô hình nhận thấy các biểu diễn không nhất quán của các dữ liệu đầu vào tương tự. Các bộ mã hóa được huấn luyện tốt sẽ giảm thiểu hiện tượng này thông qua quá trình tiền xử lý nhất quán và các quy tắc hợp nhất mạnh mẽ.
Liệu các mô hình ngôn ngữ quy mô lớn có bao giờ huấn luyện lại bộ phân tách từ của chúng không?
Các dòng mô hình chính thường giữ nguyên bộ mã hóa (tokenizer) giữa các phiên bản để đảm bảo khả năng tương thích ngược. Khi các tổ chức phát hành bộ mã hóa mới, như OpenAI đã làm giữa GPT-2 và GPT-3, điều đó đi kèm với việc huấn luyện mô hình hoàn toàn mới. Chi phí và sự gián đoạn khi thay đổi bộ mã hóa khiến chúng phát triển chậm, thường chỉ cùng với các thế hệ kiến trúc chính.
Liệu việc huấn luyện bộ mã hóa từ (tokenizer) có thể hỗ trợ các ứng dụng chuyên biệt như xử lý ngôn ngữ tự nhiên trong lĩnh vực y tế hoặc pháp lý?
Hoàn toàn đúng. Các bộ phân tách từ chuyên biệt theo lĩnh vực có thể bao gồm các thuật ngữ chuyên ngành dưới dạng các từ đơn lẻ thay vì phân mảnh chúng. Điều này cải thiện cả hiệu quả và khả năng hiểu của mô hình. Nhiều dự án xử lý ngôn ngữ tự nhiên (NLP) trong lĩnh vực y sinh huấn luyện các bộ phân tách từ tùy chỉnh trên PubMed hoặc văn bản lâm sàng để nắm bắt các thuật ngữ mà các bộ phân tách từ chung sẽ phân tách không phù hợp.
Tại sao ChatGPT đôi khi gặp khó khăn với những nhiệm vụ đếm hoặc đánh vần đơn giản?
Hạn chế này một phần bắt nguồn từ quá trình phân tách từ (tokenization). Bộ phân tách từ chỉ nhìn thấy các mảnh nhỏ của từ, chứ không phải các ký tự riêng lẻ, vì vậy việc đếm số chữ cái đòi hỏi mô hình phải đảo ngược quá trình tạo ra thông tin ở cấp độ ký tự từ các biểu diễn nhúng của từ (token embeddings). Tương tự, việc đánh vần liên quan đến việc phân tách các từ thành các chữ cái mà mô hình không bao giờ xử lý trực tiếp. Những nhiệm vụ này rất đơn giản đối với con người nhưng thực sự khó khăn khi xét đến cách biểu diễn đầu vào ở cấp độ từ.
Phán quyết
Hãy chọn huấn luyện bộ phân tách từ khi bạn cần xử lý trước văn bản cho một lĩnh vực ngôn ngữ mới hoặc khi các bộ phân tách từ hiện có xử lý kém hiệu quả vốn từ vựng cụ thể của bạn. Ưu tiên huấn luyện mô hình khi mục tiêu của bạn là xây dựng các hệ thống ngôn ngữ có khả năng, và chỉ cần tái sử dụng các bộ phân tách từ đã được thiết lập như của GPT-2, BERT hoặc Llama trừ khi bạn có bằng chứng thuyết phục về việc sử dụng bộ phân tách từ tùy chỉnh.