1 điểm bởi GN⁺ 2024-12-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • Byte Latent Transformer(BLT) là một kiến trúc LLM ở cấp byte, được huấn luyện trên byte thô mà không cần token hóa với từ vựng cố định, nhưng vẫn đạt hiệu năng ngang với các LLM dựa trên token hóa ở quy mô lớn
  • Điểm cốt lõi là gom các byte thành những patch có kích thước động thay vì token cố định, rồi phân bổ nhiều phép tính và dung lượng mô hình hơn cho những vị trí có entropy của byte kế tiếp cao
  • Meta đã thực hiện nghiên cứu scaling có kiểm soát FLOP lên đến 8B tham số4T byte huấn luyện để kiểm chứng khả năng mở rộng của mô hình cấp byte
  • Khi dữ liệu càng dễ dự đoán, mô hình sẽ chọn các patch dài hơn để tăng hiệu quả huấn luyện và suy luận, đồng thời cho thấy cải thiện định tính trong suy luận và tổng quát hóa đuôi dài
  • Ở cùng một chi phí suy luận cố định, cách tiếp cận BLT khi tăng đồng thời kích thước patch và kích thước mô hình cho thấy khả năng scaling tốt hơn mô hình dựa trên token hóa

Cấu trúc LLM cấp byte mà BLT đề xuất

  • Byte Latent Transformer(BLT) là một kiến trúc LLM cấp byte sử dụng byte thô làm đơn vị đầu vào thay cho token hóa dựa trên từ vựng cố định
  • Mô hình đạt hiệu năng ngang với LLM dựa trên token hóa trong các thiết lập quy mô lớn, đồng thời cải thiện đáng kể về hiệu quả suy luận và độ vững chắc

Patch động trở thành đơn vị tính toán

  • BLT mã hóa các byte thành những patch có kích thước động và sử dụng các patch này làm đơn vị tính toán chính
  • Việc chia patch được thực hiện động dựa trên entropy của byte kế tiếp
    • Ở những điểm độ phức tạp dữ liệu tăng cao, mô hình phân bổ nhiều phép tính và dung lượng hơn
    • Khi dữ liệu có thể dự đoán được, mô hình chọn các patch dài hơn để giảm lượng tính toán

Thử nghiệm scaling có kiểm soát FLOP

  • Meta đã tiến hành nghiên cứu scaling có kiểm soát FLOP trên các mô hình cấp byte
  • Quy mô thí nghiệm đạt tối đa 8B tham số4T byte huấn luyện
  • Kết quả cho thấy các mô hình được huấn luyện trên byte thô mà không cần từ vựng cố định vẫn có thể mở rộng tốt

Kết quả về hiệu quả và khả năng tổng quát hóa

  • Cách chọn động các patch dài hơn giúp cải thiện cả hiệu quả huấn luyện lẫn hiệu quả suy luận
  • Kết quả định tính cho thấy có cải thiện trong suy luận và khả năng tổng quát hóa đuôi dài
  • Với cùng một chi phí suy luận cố định, BLT cho thấy khả năng scaling tốt hơn các mô hình dựa trên token hóa
    • Cách tiếp cận này tăng đồng thời kích thước patch và kích thước mô hình

Tài liệu

1 bình luận

 
GN⁺ 2024-12-15
Ý kiến trên Hacker News
  • Bài báo: https://scontent-sjc3-1.xx.fbcdn.net/v/t39.2365-6/470135129_...

  • Tôi từng làm ở một startup dùng mô hình CNN dựa trên ký tự để phân loại vào mùa hè BERT ra mắt
    Nhóm đã suy nghĩ rất nhiều về các cách biểu diễn thay thế; các thành viên khác thích word vector hơn, nhưng tôi thì không mấy thích. Trong các tài liệu chúng tôi xử lý, những từ không có trong từ điển xuất hiện thường xuyên, chúng lại quan trọng, và nếu bỏ chúng đi thì có vẻ sẽ dẫn đến thất bại
    Vì chúng tôi cũng đang xây dựng một “mô hình nền tảng”, vấn đề không chỉ là các từ đó trở thành từ ngoài từ điển ở mô hình cuối, mà còn là chúng trở thành từ ngoài từ điển ngay ở giai đoạn mô hình nền tảng, nơi chi phí huấn luyện lớn hơn
    Phân loại bằng mô hình dựa trên ký tự khá ổn, nhưng vì có nhận thức rằng lưu “từ điển” bên trong mạng nơ-ron không phải là cách dùng mạng nơ-ron tốt, nên kỳ vọng vào token rất lớn
    Mặt khác, tôi từng rời một dự án trước đó, nơi chúng tôi huấn luyện RNN viết các tóm tắt giả của báo cáo ca bệnh PubMed để tạo mô hình nền tảng cho hiểu văn bản, vì tôi tin chắc rằng những cách như Word2Vec không có triển vọng
    Khi byte-pair encoding xuất hiện, tôi nhớ mình đã nói trong một cuộc họp rằng đó là cách token hóa đầu tiên trong số các phương án chúng tôi xem xét mà tôi có thể ủng hộ
    Dù vậy, thành thật mà nói, tôi vẫn nghĩ sẽ thật tốt nếu có thể làm việc ở cấp ký tự

    • Tôi đã rất kỳ vọng vào CANINE [1], nhưng cuối cùng nó không tạo được đà lớn
      Token chỉ là giải pháp tạm bợ. Nhìn chung nó hoạt động tốt, nhưng khi không hoạt động thì lộ rất rõ
      [1] https://arxiv.org/abs/2103.06874
    • Tôi thắc mắc liệu điều đó có nghĩa là mọi đầu ra sinh ra đều phải là chuỗi các từ có trong từ điển hay không
      Trong thực tế, con người mỗi ngày đều tạo và dùng những từ không có trong từ điển để giao tiếp. Ví dụ “notify” có trong từ điển, nhưng “notifier” với nghĩa “phương tiện để thông báo cho ai đó” thì không, và đoạn mã gửi thông báo qua email sẽ trở thành “email notifier”. Sau đó sẽ tiếp nối bằng các notifier cho tin nhắn văn bản, cuộc gọi thoại, callback của tổng đài, v.v.
      Mọi ngành và tổ chức đều có thuật ngữ chuyên môn, các từ tùy biến không có trong từ điển, và những chữ viết tắt có khả năng phân biệt kém
      Nếu không xử lý được giao tiếp trong đời thực mà chỉ có thể đưa ra các câu trả lời nằm trong từ điển được tinh lọc kiểu phòng thí nghiệm, tôi không thấy đầu ra của machine learning có thể hữu ích thế nào
  • Hy vọng hướng này sẽ thành công. Tokenizer nên biến mất
    Điều thú vị là đây là cấu trúc phân cấp nhưng chỉ có hai tầng. Xếp thêm nhiều tầng hơn có vẻ là hướng nghiên cứu tiếp theo tự nhiên
    Nhân tiện, tôi cũng đã để lại bình luận này ở một bài liên quan khác[1], và tác giả đã trả lời như sau
    “Tác giả đây :), tôi nghĩ đó là một hướng rất đáng xem xét! Tuy nhiên, ngoài việc khối lượng công việc sẽ tăng hơi nhiều nếu làm một lúc, còn phải cẩn thận về cách phân bổ ngân sách FLOP trên toàn bộ hệ phân cấp. Với hai tầng, có thể làm một tầng (byte/local encoder) hiệu quả về FLOP, còn tầng kia (patch/global encoder) thì tiêu tốn nhiều FLOP hơn. Cũng cần tìm cách gom các patch thành đơn vị lớn hơn. Dù vậy, có rất nhiều hướng có thể mở rộng từ đây!”
    [1] https://news.ycombinator.com/item?id=42413430

  • Họ dùng một mô hình nhỏ để dự đoán khả năng xuất hiện của ký tự tiếp theo trong chuỗi đầu vào nhằm tạo patch
    Nếu chuỗi đầu vào là “Lazy dog jumped over a fence.”, mô hình sẽ dự đoán xác suất cho từng ký tự
    Chẳng hạn, nó có thể chắc chắn 100% rằng ký tự tiếp theo là “a”, hoặc có thể là “a” 10%, “b” 10%, v.v.
    Sau đó họ gom các ước lượng ký tự lại với nhau. Gom bao nhiêu ký tự? Đủ để tổng mức bất định, tức entropy, của mỗi cụm là tương tự nhau
    Như vậy sẽ tạo thành patch hoặc “token”

    • Mô tả ở mục 2.3 của bài báo không phải như vậy
      Họ chỉ dùng entropy của byte tiếp theo, rồi xem nó có vượt ngưỡng hay không (ràng buộc toàn cục), hoặc có lớn hơn entropy của byte ngay trước đó một mức ngưỡng khác hay không (ràng buộc đơn điệu xấp xỉ)
      Vì thế, như phụ lục E cho thấy, các chuỗi dài và lặp lại có thể dẫn tới những patch dài một cách bệnh lý
      Điều tôi thật sự tò mò là mô hình nhỏ CNN cấp byte dùng ngữ cảnh 2 byte trong hình 3(f), nhưng nó không hề được nhắc tới ở các phần khác của bài báo
    • Tôi nghĩ cũng có thể thử một biến thể dùng thuật toán nén tiêu chuẩn để huấn luyện
  • Bài liên quan gần đây:
    Meta FAIR chia sẻ nghiên cứu, mô hình, dataset mới - https://news.ycombinator.com/item?id=42412360 - tháng 12 năm 2024, 61 bình luận

  • Có phải điều duy nhất dạy mô hình, tức loss, chỉ là dự đoán xác suất trong không gian một byte không?
    Nếu tôi không hiểu nhầm thì chỉ vậy là đủ, nghe khá hứa hẹn

  • Theo tôi hiểu, cách này không chỉ loại bỏ token hóa mà còn loại bỏ cả sampling nữa phải không?
    Sampling có thể là điểm đau của LLM, nhưng nó cũng cho phép những ứng dụng thú vị như ép mô hình luôn xuất JSON hợp lệ bằng cách áp đặt ngữ pháp, điều chỉnh temperature để có phân phối đa dạng hơn, hoặc dùng XTC sampling
    Trong BLT thì thứ tương ứng là gì?
    Tôi chỉ nghĩ ra cách đưa thêm byte được phép/bị cấm làm đầu vào cho decoder, rồi lặp lại quá trình decoding cho đến khi có đầu ra hợp lệ, nhưng có thể có một cách tiếp cận đơn giản và obvious hơn

    • Nó không loại bỏ sampling. Việc chỉ định các byte được phép/bị cấm để áp đặt ngữ pháp cũng không cần chạy lặp decoder
      Tương tự các mô hình dựa trên BPE, chỉ cần tính softmax ở tầng đầu ra trên các byte được phép rồi sampling từ đó
  • Điều này có nghĩa là AI cũng có thể pretrain trên binary à?

    • Giờ có cả những người tin rằng AI có thể xuất ra cả binary đã biên dịch. Ví dụ như “hãy thêm tính năng này vào Notepad.exe”
      Chúng ta nghĩ việc AI viết code thay mình là điểm cuối, nhưng có lẽ nó có thể chiếm lĩnh theo một cách đơn giản hơn nhiều
  • Thật thú vị khi các cách tiếp cận ngôn ngữ học và dựa trên kinh nghiệm đã lỗi mốt đến mức nào
    Con người, dù có thể, nhưng thường không đọc từng ký tự một. Chúng ta có gốc từ, và cũng hiểu biến tố. Token hóa không tái hiện được trải nghiệm này, đặc biệt khi nhìn vào các token xuất hiện trong từ vựng LLM; mã hóa ký tự hay byte cũng vậy
    Con người có nhiều cách để phân tích từ. Ta có thể hiểu cả câu ngay lập tức, đọc theo cụm, đọc từng từ, hoặc đánh vần thành tiếng từng ký tự để giải mã một từ mới
    Rất ít bài báo tuyên bố rõ ràng rằng một phương pháp nào đó là tốt vì nó tái hiện cách con người thực hiện nhiệm vụ hoặc cảm nhận thế giới
    Khi mức độ phụ thuộc vào LLM tăng lên, tôi nghĩ chúng ta sẽ muốn điều chỉnh mô hình gần hơn với trải nghiệm của mình. Khi đó các lỗi mà mô hình tạo ra cũng sẽ dễ hiểu hơn

  • Câu “khác với token hóa, BLT không có từ vựng cố định cho patch” theo tôi hiểu có nghĩa là từ vựng patch chưa được biết trước khi huấn luyện
    Sau khi huấn luyện đã thiết lập từ vựng patch, có lẽ khi suy luận vẫn sẽ dùng cùng một từ vựng cố định. Nếu không thì tôi không hiểu nó có thể hoạt động thế nào
    Có đúng vậy không?