1 điểm bởi GN⁺ 2024-06-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • σ-GPT tách biệt thứ tự đầu vào của dữ liệu và thứ tự sinh tự hồi quy, cho phép Transformer học và sinh chuỗi ngay cả khi thứ tự đã bị xáo trộn tùy ý
  • Các mô hình tự hồi quy truyền thống thường tuân theo cách sắp xếp tự nhiên như thứ tự văn bản trái sang phải hoặc thứ tự quét raster của ảnh, nhưng hai thứ tự này không nhất thiết phải giống nhau
  • Với mỗi mẫu, một thứ tự xáo trộn ngẫu nhiên σ được chọn ngay tại thời điểm xử lý, rồi gắn hai mã hóa vị trí tương ứng với thứ tự đầu vào và đầu ra để giữ cho quá trình tự hồi quy nhất quán
  • Ở bất kỳ thời điểm nào trong quá trình sinh, mô hình đều có thể ước lượng phân phối có điều kiện của các token còn lại, nhờ đó mở rộng sang lấy mẫu ở vị trí tùy ý, sinh có điều kiện tùy ý, infilling và burst sampling
  • Khi kết hợp với học theo chương trình, mô hình có thể đạt hiệu năng tương đương các mô hình tự hồi quy trái-sang-phải, và có thể sinh nhiều token theo từng đợt bằng rejection sampling dựa trên token

Tách biệt thứ tự đầu vào và thứ tự sinh

  • Transformer đã cho thấy hiệu năng tự hồi quy mạnh mẽ trên nhiều modality
  • Cách tự hồi quy truyền thống tuân theo thứ tự tự nhiên của dữ liệu
    • Văn bản thường được xử lý theo hướng từ trái sang phải
    • Trong thị giác máy tính, chuỗi thu được bằng cách trải ảnh theo thứ tự quét raster sẽ được Transformer mô hình hóa
  • σ-GPT phân biệt thứ tự đầu vào của dữ liệu với thứ tự tự hồi quy
    • Trong đa số ứng dụng, hai thứ tự này được căn chỉnh với nhau, nhưng không bắt buộc phải giống hệt
    • Mô hình này khám phá cách học và sinh với chuỗi đã bị xáo trộn theo thứ tự tùy ý
  • Việc thay đổi thứ tự chuỗi khiến quá trình huấn luyện khó hơn, nhưng đổi lại mô hình có thêm các đặc tính mới như sinh có điều kiện ở vị trí tùy ý

Kiến trúc và cách hoạt động của σ-GPT

  • σ-GPT có thể chọn một thứ tự xáo trộn ngẫu nhiên σ ngay tại chỗ cho từng mẫu
  • σ được chọn sẽ tạo ra thứ tự đầu vào 0, σ(1), σ(2), ... và thứ tự đầu ra σ(1), σ(2), σ(3), ...
    • Ở đầu vào, 0 padding được thêm vào trước để giữ số lượng token nhất quán
    • Các token được xáo trộn theo đúng thứ tự tương ứng
  • Đầu vào của mô hình được nối với hai mã hóa vị trí
    • Một mã hóa tương ứng với thứ tự đầu vào
    • Mã hóa còn lại tương ứng với thứ tự đầu ra
  • Đầu ra cuối cùng được đưa trở lại thứ tự thực ban đầu
  • Mã nguồn công khai: https://github.com/idiap/sigma-gpt

So sánh với GPT tiêu chuẩn và mô hình khuếch tán

  • σ-GPT được so sánh với GPT, một causal transformer encoder tiêu chuẩn, và với các mô hình khuếch tán
  • Các chức năng được hỗ trợ gồm có
    • Lấy mẫu token tại vị trí tùy ý trong chuỗi
    • Mô hình hóa mật độ còn lại dựa trên chuỗi đã được lấy mẫu một phần
    • Sinh có điều kiện tùy ý
    • Infilling
    • Burst sampling để sinh nhiều token cùng lúc
    • Huấn luyện log-likelihood dựa trên cross-entropy
  • Theo phần so sánh, GPT tiêu chuẩn có thể hỗ trợ sinh có điều kiện tùy ý và huấn luyện log-likelihood, nhưng không hỗ trợ lấy mẫu ở vị trí tùy ý, ước lượng mật độ có điều kiện, infilling hay burst sampling
  • Theo phần so sánh, mô hình khuếch tán hỗ trợ burst sampling nhưng không hỗ trợ huấn luyện log-likelihood

Phân phối có điều kiện trong quá trình sinh và rejection sampling

  • Khi thoát khỏi thứ tự tự hồi quy tiêu chuẩn, mô hình có thể dự đoán token theo một thứ tự cụ thể
  • Với cách này, ở bất kỳ thời điểm nào trong quá trình sinh, mô hình đều có thể dự đoán phân phối có điều kiện của các token còn lại
  • Việc ước lượng phân phối có điều kiện được dùng để định lượng các kết quả sinh khả dĩ tại một thời điểm cụ thể
  • Khi áp dụng điều này vào rejection sampling, có thể sinh chuỗi theo từng đợt với số bước động

Bài toán đánh giá và đóng góp

  • σ-GPT giới thiệu tự hồi quy xáo trộn và đánh giá liệu việc kết hợp với phương pháp curriculum có thể cải thiện hiệu năng của mô hình nền hay không
  • Ba bài toán chính được dùng để đánh giá gồm
    • Sinh văn bản mở
    • Giải quyết đường đi
    • Dự đoán tốc độ thẳng đứng của máy bay
  • Có thể tóm tắt các đóng góp thành bốn điểm
    • Giới thiệu kiến trúc σ-GPT với hai mã hóa vị trí tương ứng riêng cho thứ tự đầu vào và thứ tự đầu ra
    • Cho thấy rằng khi dùng học theo chương trình, mô hình có thể đạt hiệu năng tương đương mô hình tự hồi quy trái-sang-phải
    • Cho thấy rằng việc sinh mẫu theo thứ tự tùy ý cho phép sinh có điều kiện trên bất kỳ phần nào của chuỗi
    • Giới thiệu phương pháp rejection sampling dựa trên token để sinh mẫu theo từng đợt

1 bình luận

 
GN⁺ 2024-06-09
Ý kiến trên Hacker News
  • Trông có vẻ hay. Khi huấn luyện, họ xáo trộn ngẫu nhiên các token đầu vào và gắn hai loại mã hóa vị trí cho mỗi token: một cái là vị trí của chính token đó, cái còn lại là vị trí của token cần dự đoán
    Ngoài điểm đó ra thì đây là GPT tự hồi quy tiêu chuẩn, nhưng thay đổi tưởng như đơn giản này lại đem lại kết quả lớn. Nếu đưa một phần chuỗi làm prompt cho mô hình đã huấn luyện, nó có thể giải mã song song các token bị thiếu cùng lúc, không phụ thuộc vào thứ tự, và cũng có thể tính song song mật độ xác suất có điều kiện của mọi token còn thiếu
    Ngoài ra, các tác giả đề xuất một phương pháp sinh điền khuyết song song dựa trên rejection sampling, và có vẻ thực tế hoạt động tốt

    • Cách đặt vấn đề này đã có từ khá lâu và từng được xem như một chén thánh của mô hình hóa. So với họ PixelCNN, phần có vẻ mới là ý tưởng embedding vị trí
    • Tôi vẫn chưa hiểu dự đoán song song đó khả thi thế nào. Ví dụ nếu đầu vào là I . . . . . . . . happily. thì chẳng phải từ thứ hai cần dự đoán sẽ phụ thuộc vào từ thứ nhất sao?
    • Nếu làm được thì thật sự rất ấn tượng. Như nhiều phát hiện thú vị khác, sau khi nghe thì cũng có cảm giác “à, nói vậy thì hiển nhiên rồi”
    • Chẳng phải BERT vốn dùng masking phi nhân quả, tức dự đoán từ ở giữa, hay sao?
    • Tôi biết cái này dành cho token/văn bản, nhưng tò mò liệu cùng khái niệm có thể áp dụng cho ảnh theo kiểu như mô hình khuếch tán không. Nếu được thì có thể dùng điền khuyết để upscale ảnh lên kích thước tùy ý không nhỉ
  • Cái cũ[1] lại thành cái mới, nhưng không trích dẫn nghiên cứu trước đó. Đây cũng không phải nghiên cứu vô danh, đã đăng ở ICML và có khoảng 250 lượt trích dẫn
    [1]: https://arxiv.org/abs/1902.03249

  • Khái niệm thật sự rất hay. Tôi tự hỏi liệu nó có bắt đầu giống với động lực học thấy trong các mô hình sinh ảnh không. Kiểu như cấu trúc và chi tiết xuất hiện ở một vùng của ảnh, rồi các vùng xung quanh dần khớp theo và được giải quyết
    Hành vi như vậy có vẻ đặc biệt hữu ích cho suy luận/logic/lập kế hoạch dài. Vì ý tưởng lớn có thể lộ ra trước, rồi chi tiết và văn bản ở giữa được điền vào một cách tự nhiên

    • Quá trình bạn mô tả được gọi là khuếch tán
  • Có một video trên Twitter cho thấy nó sinh văn bản. Nhìn hơi giống khuếch tán ảnh
    https://x.com/ArnaudPannatier/status/1799055129829839166

    • Lạ là họ lại chọn một ví dụ mà kết quả hơi vô nghĩa
  • Hôm nay tôi cứ nghĩ mãi về bài báo này, và thật sự thích tính năng của nó. Những việc tương đối khó với LLM tuần tự lại trở nên dễ ở đây
    Nếu muốn JSON, chỉ cần cố định token dấu ngoặc nhọn ở đầu và cuối. Nếu muốn lời giải thích có độ dài token cụ thể, có thể đặt một câu trả lời ngắn ở phía sau rồi để nó điền phần giữa
    Nếu muốn câu trả lời có mật độ thông tin cao hơn, có thể thêm vào văn bản sinh ra một phần đánh giá mật độ và một chỗ để LLM chấm điểm mật độ thông tin, rồi sinh sao cho tìm được điểm cao. Có vẻ có rất nhiều thứ để thử nghiệm; theo bài báo thì tiếc là cần khoảng gấp 3 lần số token, nhưng sẽ rất đáng thử với một mô hình 8B tham số có số token hợp lý

    • “Cố định token dấu ngoặc nhọn ở đầu” thì LLM thông thường cũng đã làm được. Chỉ cần điền sẵn phần đầu phản hồi của trợ lý là được
      Nhưng cũng có cách tốt hơn. Nếu giới hạn đầu ra của LLM theo một ngữ pháp cụ thể như JSON, ta có thể buộc nó chỉ trả lời bằng JSON hợp lệ về mặt cú pháp
  • Tôi tò mò liệu điều này có đặc biệt hữu ích cho sinh mã máy tính không. Vì nội dung cần xuất ra ở một giai đoạn nào đó có thể phụ thuộc thực chất vào nội dung sẽ được viết ở các giai đoạn sau

    • Có lẽ sẽ quá chậm, nhưng có thể tích hợp linting hoặc kiểm tra cú pháp như một phần của rejection sampling. Ví dụ lấy mẫu hàng loạt N đoạn mã ứng viên song song, rồi loại bỏ những đoạn sai cú pháp
  • Nghiên cứu thú vị. Một cách tiếp cận hoán vị tương tự đã xuất hiện trong bài Taylorformer (https://arxiv.org/pdf/2305.19141v1)
    Các tác giả dùng Transformer decoder cho các quá trình liên tục như chuỗi thời gian, và xáo trộn ngẫu nhiên từng chuỗi trong lúc huấn luyện. Mỗi phần tử chuỗi có mã hóa vị trí, và họ dùng log-likelihood trên chuỗi đã xáo trộn
    Ở đó, hoán vị giúp ích cho dự đoán nội suy, ngoại suy và dữ liệu lấy mẫu không đều. Nó cũng có vẻ giúp đạt “tính nhất quán”, tức sai số bình phương trung bình nhìn chung giống nhau bất kể thứ tự sinh
    Tôi tò mò bài báo này bổ sung gì cho việc hiểu hoặc ứng dụng các ý tưởng như vậy. Ý tưởng xáo trộn thứ tự chuỗi cũng có trong bài Transformer Neural Process: https://arxiv.org/pdf/2207.04179

  • Có vẻ đây là áp dụng những gì học được từ vision Transformer sang language Transformer
    Theo tôi hiểu, các mô hình thị giác đã chia ảnh thành các tile, rồi gắn mã hóa vị trí cho từng tile để mô hình hiểu vị trí tương đối của các tile
    Thành thật mà nói tôi mới chỉ đọc phần tóm tắt và nhiều phần khá khó, nhưng bài này trông như đang đề xuất một ý tưởng tương tự trong 1D thay vì 2D

    • Mã hóa vị trí là tiêu chuẩn trong mọi loại Transformer. Ở đây họ đưa vào một cách mã hóa vị trí dư thừa có vẻ mới
      Huấn luyện thì khó hơn, nhưng dường như cho phép sinh nhiều token cùng lúc. Tức là có thể nhận câu trả lời dài N token trong N/x bước thay vì N bước
  • Không biết có mã nguồn không. Tôi vẫn chưa hiểu hết vị trí kép và xáo trộn. Việc nối các giá trị vị trí thay vì cộng chúng cũng thú vị

  • Nếu là Yann LeCun, ông ấy sẽ nói tự hồi quy tự thân đã là vấn đề, và kiểu học máy này sẽ không thể tiến gần AGI[0]
    Ít nhất chừng nào còn ở trong hệ hình tự hồi quy, vấn đề ảo giác không thể được giải quyết
    [0] https://twitter.com/ylecun/status/1640122342570336267

    • LeCun có thể đúng hoặc sai, nhưng tôi không rõ điều đó liên quan gì đến cuộc thảo luận này
      Các tác giả bài báo gốc không khẳng định công trình này giúp tiến gần AGI. Họ chỉ làm cho LLM tự hồi quy có thể làm một việc mới mà trước đây chưa làm được
    • Không phải mọi thứ đều phải hướng tới AGI. Nếu tạo ra được LLM chạy nhanh hơn và rẻ hơn, bản thân điều đó đã có giá trị
      Tôi cũng không nghĩ phần lớn tác vụ cần AGI. Nhất là nếu mục đích không phải là tạo ra đau khổ cho một thực thể có ý thức
    • Lập luận của LeCun ở đây, nói ngắn gọn, là sai. Chứng minh của ông ấy cần giả định rằng mọi token được giải mã đều độc lập có điều kiện, hoặc ít nhất xác suất xuất hiện token tiếp theo sai là độc lập. Thực tế không phải vậy
      Trực giác là một số token khó hơn những token khác. Trong đầu ra có thể có token then chốt, và sau đó các token còn lại trở nên dễ hơn nhiều. Ngoài ra, ngay cả theo kiểu tự hồi quy, mô hình vẫn có thể phục hồi từ một token sai bằng cách xuất các token như actually no...
    • Phương pháp này thực ra có thể không khớp với lập luận về phân kỳ theo hàm mũ
      Tùy cách lấy mẫu token, có vẻ có thể xem đề xuất sinh ra như một tổng thể rồi chỉnh sửa nó. Tôi không biết phương pháp lấy mẫu được đề xuất trong bài hiện có làm vậy ngay không, nhưng từ thông tin thu được từ xác suất thì có vẻ khả thi
    • LeCun rất thông minh, nhưng thành tích dự đoán giới hạn của LLM tự hồi quy của ông ấy thì rất tệ