2 điểm bởi GN⁺ 2023-07-12 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một mô hình ngôn ngữ cực lớn gồm khoảng 1,8 nghìn tỷ tham số và 120 lớp, có quy mô lớn hơn GPT-3 hơn 10 lần
  • Kiến trúc Mixture of Experts (MoE) với 16 expert, chỉ kích hoạt 2 expert trong mỗi forward pass để giảm chi phí
  • Được huấn luyện trên khoảng 13 nghìn tỷ token, áp dụng 2 epoch cho văn bản và 4 epoch cho mã nguồn
  • Kiến trúc đa phương thức có encoder thị giác riêng, sau tiền huấn luyện văn bản được fine-tune bổ sung trên khoảng 2 nghìn tỷ token
  • Huấn luyện trong 90–100 ngày trên khoảng 25.000 A100, chi phí huấn luyện ước tính khoảng 63 triệu USD

Số lượng tham số và quy mô mô hình

  • GPT-4 được ước tính lớn hơn GPT-3 hơn 10 lần, sở hữu tổng cộng khoảng 1,8 nghìn tỷ tham số trải trên 120 lớp
  • Mỗi forward pass (tạo 1 token) chỉ sử dụng khoảng 280B tham số và khoảng 560 TFLOPs
    • Trái ngược với trường hợp nếu là mô hình dense thuần túy thì sẽ cần khoảng 1,8 nghìn tỷ tham số và khoảng 3.700 TFLOP
  • Tham số dùng chung cho attention ở mức khoảng 55B

Kiến trúc Mixture of Experts (MoE)

  • OpenAI duy trì chi phí ở mức hợp lý bằng cách sử dụng mô hình MoE
    • Sử dụng 16 expert trong mô hình, mỗi expert có khoảng 111B tham số tính theo MLP
    • Mỗi forward pass được định tuyến tới 2 expert
  • Định tuyến MoE

    • Trong giới học thuật có nhiều thảo luận về các thuật toán định tuyến nâng cao để chọn expert theo từng token, nhưng định tuyến hiện tại của GPT-4 được cho là khá đơn giản
  • Đánh đổi khi chọn số lượng expert

    • MoE rất khó xử lý suy luận vì không phải mọi phần đều được sử dụng khi tạo từng token
      • Một số khu vực ở trạng thái nhàn rỗi, làm giảm tỷ lệ sử dụng khi phục vụ người dùng
    • Về mặt nghiên cứu, 64–128 expert đạt loss thấp hơn 16 expert, nhưng đó thuần túy là góc độ nghiên cứu
    • Số lượng expert càng nhiều thì càng khó khái quát hóa trên nhiều tác vụ khác nhau và hội tụ cũng khó hơn
      • Vì lý do này, OpenAI đã thận trọng chọn 16 expert

Bộ dữ liệu

  • GPT-4 được huấn luyện trên khoảng 13 nghìn tỷ token, đây không phải là số token duy nhất mà là con số cộng dồn token qua các lần lặp epoch
    • Áp dụng 2 epoch cho dữ liệu văn bản, 4 epoch cho dữ liệu mã nguồn
  • Bao gồm dữ liệu fine-tuning theo instruction với hàng triệu dòng do ScaleAI và nội bộ thu thập
  • Thành phần pha trộn bộ dữ liệu

    • Trong 13 nghìn tỷ token, CommonCrawl và RefinedWeb mỗi nguồn chiếm 5 nghìn tỷ token
    • Nếu loại bỏ trùng lặp do epoch thì còn lại dữ liệu bí mật "không rõ nguồn gốc"
    • Có tin đồn rằng một phần đến từ twitter, reddit, youtube
      • Các nguồn được suy đoán gồm LibGen (hơn 4 triệu sách), Sci-Hub (hơn 80 triệu bài báo), toàn bộ GitHub, v.v.
    • Có quan điểm cho rằng phần dữ liệu bị thiếu là bộ dữ liệu giáo trình đại học được thu thập thủ công
      • Sau khi chuyển đổi sang txt, dễ xử lý thành dạng instruction bằng self-instruct
      • Điều này tạo ấn tượng rằng GPT-4 "thông minh" bất kể lĩnh vực chuyên môn
    • Cũng có bài báo cố cưỡng bức trích xuất một số sách đã được GPT-4 ghi nhớ để xác định dữ liệu huấn luyện
      • Một số sách được mô hình biết rất rõ nên chắc chắn đã được huấn luyện, và nó còn nhớ cả id duy nhất của các bài toán Project Euler

Ngữ cảnh GPT-4 32K

  • Ở giai đoạn tiền huấn luyện, sử dụng độ dài ngữ cảnh 8k (seqlen)
  • Phiên bản seqlen 32k là kết quả fine-tune mô hình 8k sau tiền huấn luyện

Kích thước batch

  • Kích thước batch được tăng dần trong nhiều ngày trên cụm, cuối cùng sử dụng kích thước batch 60 triệu
    • Vì không phải mọi expert đều thấy mọi token, tính trên mỗi expert thì ở mức khoảng 7,5 triệu token
  • Kích thước batch thực tế có thể tính được bằng cách chia con số này cho seq len

Chiến lược song song hóa

  • Sử dụng song song tensor 8-way để song song hóa trên tất cả GPU A100 (giới hạn của NVLink)
    • Vượt quá mức đó thì áp dụng song song pipeline 15-way
    • Có khả năng đã sử dụng ZeRO Stage 1, cũng có khả năng sử dụng FSDP ở cấp block
  • Lý do không dùng FSDP

    • Một phần hạ tầng phần cứng đã được đảm bảo có khả năng thuộc thế hệ cũ
      • Trong các cụm tính toán cục bộ, việc nâng cấp hạ tầng theo nhiều "giai đoạn" để tránh gián đoạn vận hành là điều phổ biến

Chi phí huấn luyện

  • FLOPS huấn luyện của GPT-4 khoảng 2.15e25, trong 90–100 ngày trên khoảng 25.000 A100, MFU khoảng 32–36%
    • Tỷ lệ sử dụng rất thấp bắt nguồn từ số lần lỗi quá nhiều khiến phải khởi động lại từ checkpoint
  • Giả định A100 có giá khoảng $1 mỗi giờ, riêng lần huấn luyện này được ước tính tốn khoảng 63 triệu USD
    • Theo chuẩn hiện tại, có thể tiền huấn luyện trong khoảng 55 ngày với khoảng 8.192 H100, chi phí khoảng 21,5 triệu USD nếu H100 giá $2 mỗi giờ

Chi phí suy luận GPT-4

  • GPT-4 có chi phí gấp 3 lần so với Davinci 175B tham số
    • Do yêu cầu cụm lớn hơn và tỷ lệ sử dụng thấp hơn nhiều
  • Ước tính chi phí: khi suy luận GPT-4 8k seqlen trên 128 A100 là $0.0049 cent cho mỗi 1k token, trên 128 H100 là $0.0021 cent
    • Giả định duy trì được tỷ lệ sử dụng đủ cao và kích thước batch lớn

Multi-Query Attention (MQA)

  • OpenAI cũng sử dụng MQA như các nơi khác
    • Chỉ cần 1 head nên giảm đáng kể dung lượng bộ nhớ của KV cache
    • Dù vậy GPT-4 seqlen 32k không thể chạy trên A100 40GB, còn 8k bị giới hạn kích thước batch tối đa

Continuous Batching

  • OpenAI triển khai cả kích thước batch biến đổi và continuous batching
    • Đồng thời đạt được việc cho phép độ trễ tối đa ở một mức nhất định và tối ưu hóa chi phí suy luận

Đa phương thức thị giác

  • Encoder thị giác riêng tách biệt với encoder văn bản được kết nối bằng cross-attention, kiến trúc tương tự Flamingo
    • Bổ sung thêm tham số trên nền 1,8 nghìn tỷ tham số
    • Sau tiền huấn luyện chỉ với văn bản, fine-tune bổ sung trên khoảng 2 nghìn tỷ token
  • Ban đầu họ định huấn luyện mô hình thị giác từ đầu, nhưng do độ trưởng thành chưa đủ nên bắt đầu từ văn bản để giảm rủi ro
  • Mục tiêu chính của năng lực thị giác là triển khai tác nhân tự trị có thể đọc trang web và chép lại nội dung hình ảnh/video
    • Dữ liệu huấn luyện bao gồm dữ liệu kết hợp LaTeX/văn bản đã render, ảnh chụp màn hình trang web, lấy mẫu khung hình video YouTube và bản chép lời dựa trên Whisper

Speculative Decoding

  • Có khả năng speculative decoding được sử dụng trong suy luận GPT-4 (không chắc chắn 100%)
    • Dùng một mô hình nhỏ hơn và nhanh hơn để giải mã trước nhiều token, rồi đưa vào mô hình oracle lớn dưới dạng một batch duy nhất
    • Nếu dự đoán của mô hình nhỏ đúng, mô hình lớn đồng ý và giải mã nhiều token trong một batch
    • Nếu mô hình lớn từ chối, phần còn lại của batch bị loại bỏ và tiếp tục bằng mô hình lớn
  • Thuyết âm mưu gần đây về chất lượng GPT-4 suy giảm có thể là do mô hình oracle chấp nhận các chuỗi xác suất thấp của mô hình speculative decoding

Kiến trúc suy luận

  • Suy luận chạy trên cụm 128 GPU, với nhiều cụm tồn tại ở nhiều trung tâm dữ liệu
    • Thực hiện bằng song song tensor 8-way và song song pipeline 16-way
    • Mỗi node 8 GPU chứa khoảng 130B tham số
  • Mô hình có 120 lớp nên được phân tán tải trên 15 node
    • Node đầu tiên cũng phải tính embedding nên có thể có ít lớp hơn
  • Theo các con số này, nếu tuân theo giá trị tối ưu Chinchilla thì lẽ ra phải huấn luyện trên gấp đôi số token, điều này cho thấy khó khăn trong việc bảo đảm dữ liệu chất lượng cao

1 bình luận

 
GN⁺ 2023-07-12
Ý kiến trên Hacker News
  • Trước đó cũng đã được đăng ở đây https://news.ycombinator.com/item?id=36671588 và ở đây https://news.ycombinator.com/item?id=36674905
    Nguồn gốc ban đầu là https://www.semianalysis.com/p/gpt-4-architecture-infrastruc..., còn bài viết trên Twitter có vẻ gần như chỉ diễn đạt lại bài blog thật. Vì vậy có vẻ tweet đã bị xóa
    Việc dùng MoE (Mixture of Experts) là điều mới và rất thú vị, và tôi muốn biết thêm về cách họ làm cho nó hoạt động. Các biến thể trong triển khai cũng có thể giải thích sự dao động về chất lượng đầu ra mà mọi người quan sát thấy. Mô hình thị giác được nhắc tới ở đây cũng vẫn chưa được biết đến nhiều ngoài vài bản demo từ mấy tháng trước, nên tôi đang chờ nó được công bố

    • Tôi đã phải hỏi GPT MoE là gì
      Trong bối cảnh AI, “MoE” thường có nghĩa là “Mixture of Experts”, một kỹ thuật học máy chia bài toán thành các bài toán con, để các “chuyên gia” (mô hình) chuyên biệt giải từng phần rồi kết hợp đầu ra lại
    • Nhân tiện, George Hotz đã tuyên bố mình biết phần này từ vài tuần trước
      Nếu việc GPT-4 dùng MoE là thông tin mới, thì điều đó cũng có thể khiến tuyên bố ấy đáng tin hơn phần nào
    • Điều thú vị là Google dường như đã dùng khoảng 2000 chuyên gia ngay từ thời kiến trúc Transformer đầu tiên, nếu tôi hiểu đúng https://www.youtube.com/watch?v=9P_VAMyb-7k&t=6m42s [sparsely-gated mixture of experts layer]
    • Có thể họ không nêu rõ tên là mixture of experts, nhưng việc nhận mô hình khác nhau tùy theo câu hỏi là điều khá rõ ràng
      Điều này cho thấy mô hình ngôn ngữ lớn hoàn toàn khác với AGI. Gắn thêm máy tính chỉ là biện pháp tạm thời; dù là biện pháp tạm thời hữu ích, tôi không nghĩ nó khiến mô hình có thể làm khoa học
    • Các bài đăng trước là bản xem trước của chuỗi Twitter đã bị xóa và một bài viết cần gói đăng ký 1000 USD
      Ít nhất thì bài đăng này hiện vẫn có thể xem miễn phí
  • Nếu điều này là thật, thì quá trình huấn luyện đã tiêu tốn 21 yottaflops. Tôi cũng không nhớ lần gần nhất mình thấy tiền tố yotta- là khi nào
    Và chi phí huấn luyện GPT-4 đã giảm xuống còn khoảng một phần ba so với một năm trước. Tốc độ giảm giá của việc huấn luyện mô hình ngôn ngữ lớn thực sự đáng kinh ngạc, và đó là tin tốt cho mã nguồn mở. Bản ghi nhớ của Google nói không có hào lũy là đúng

    • Nhưng thực tế gần như chẳng có gì thay đổi. Khi việc huấn luyện mô hình lớn rẻ hơn, các tập đoàn lớn sẽ có thể huấn luyện những mô hình còn lớn hơn tất cả những người khác
      Dù giá gạo bán buôn chỉ là 0,001 USD mỗi kg, nếu tôi có 1 triệu USD còn bạn có 1000 USD, thì tôi vẫn có thể mua nhiều gạo hơn bạn 1000 lần
    • Hào lũy thật sự là sự dồi dào của dữ liệu chất lượng cao
    • Bản ghi nhớ của Google nói không có hào lũy, nhưng 5 tháng trôi qua mà vẫn chưa ai vượt được chất lượng kết quả của họ. Theo tôi là có hào lũy
      Ngoài ra, trong nhiều trường hợp thì thông minh hơn vẫn là tốt hơn. Nếu có thể mua câu trả lời chính xác hơn với thêm vài xu, thì vài xu đó lúc nào cũng đáng bỏ ra. Chừng nào còn có thể huấn luyện những mô hình lớn hơn và tốt hơn bằng nhiều phần cứng hơn và nhiều dữ liệu hơn, thì đó chính là hào lũy
    • Đây là tin tốt cho mã nguồn mở, nhưng đồng thời cũng là tin tốt cho kẻ kích động, troll, cơ quan tình báo nước ngoài và tuyên truyền viên
      Tôi ngưỡng mộ công nghệ này, nhưng lần này tôi thấy sợ vì khó hình dung nó sẽ có ý nghĩa gì cho tương lai. Có lẽ chính thứ này sẽ giết chết web mở, rồi những luật liên quan sẽ được thông qua để chôn luôn web mở
  • Câu nói “thuyết âm mưu rằng GPT-4 mới bị giảm chất lượng có thể là do mô hình oracle khiến mô hình giải mã suy đoán chấp nhận các chuỗi có xác suất thấp hơn” rốt cuộc là đang thừa nhận suy đoán đó có thể đúng, thậm chí còn đưa ra cơ chế cụ thể, trong khi vẫn xúc phạm và tiếp tục gaslighting những người đã nêu ra vấn đề

    • Gọi điều gì đó là thuyết âm mưu không phải là xúc phạm ai cả
      Vì nó chưa được chứng minh nên là một giả thuyết, và vì mọi người nghĩ OpenAI cố tình làm dịch vụ của mình tệ đi nên nó là thuyết âm mưu
  • Có vẻ người này không biết mình đang nói gì. Trên Twitter anh ta liên tục đăng kiểu vớ vẩn này. Phần lớn chỉ là sao chép dán rồi thêm thắt chút gia vị

    • Có khá nhiều điểm không khớp với những gì mọi người đã suy đoán từ trước
      Ví dụ MoE thì còn tạm được, nhưng 16 chuyên gia với 111 tỷ tham số thì vô lý. GPT-3 đã có 175 tỷ tham số, và tôi không nghĩ họ sẽ giảm quy mô mô hình nền tảng trong tương lai. Con số hợp lý hơn là khoảng 220 tỷ tham số mỗi mô hình với 8 mô hình chuyên gia, và tổng chi phí suy luận là như nhau
      Con số 13 nghìn tỷ token dữ liệu huấn luyện cũng có vẻ như bịa ra từ trên trời
    • Là Twitter mà, mong đợi khác đi làm gì
  • Google đã nghiên cứu mixture of experts để mở rộng mô hình ngôn ngữ lớn. Mô hình GLaM công bố năm 2022 có 1,7 nghìn tỷ tham số và 64 chuyên gia
    https://icml.cc/media/icml-2022/Slides/17378.pdf

    • Xét về mô hình ngôn ngữ lớn, Google đang tụt lại một cách buồn cười. Họ làm khá tốt việc tích hợp các mô hình học máy cho thị giác và âm thanh vào hệ sinh thái của mình, nhưng đã đánh giá thấp ngôn ngữ
  • George Hotz gần đây đã nói trong cuộc phỏng vấn với Lex Fridman rằng “Sam Altman sẽ không nói cho bạn biết GPT-4 có 220 tỷ tham số và dùng 8 bộ trọng số trong một mô hình mixture 16 nhánh”
    Nhìn phản ứng của Lex thì có vẻ anh ấy cũng biết điều này là thật

  • Điều này thiếu căn cứ. Những người duy nhất biết chính xác GPT-4 hoạt động thế nào là nhân viên OpenAI, còn lại chỉ có thể suy đoán

    • Chỉ cần bám theo các phát biểu công khai của Sam Altman thì cũng đã đi đến kết luận tương tự. GPT-4 rất lớn, và rất khó làm cho nó nhanh hơn
      Tuy vậy, nguồn bí mật và hào lũy thực sự nằm ở dữ liệu. Tôi từng nghe tin đồn rằng OpenAI trả tiền cho các thí sinh thi lập trình cạnh tranh để họ viết và chú thích mã có kèm thông tin như độ phức tạp
  • Dù Twitter tính phí API quá cao và áp dụng biện pháp chống scraping, tôi vẫn luôn thắc mắc các dịch vụ miễn phí cao cấp như Thread Reader còn vận hành bằng cách nào
    Gói API rẻ nhất có quyền đọc cũng ở mức 100 USD/tháng để đọc 10.000 tweet, nên chỉ có thể tạo khoảng 500 trang kiểu này theo yêu cầu

    • Gần đây trên HN có một bài viết về các cách lách mà những ứng dụng này sử dụng. Hiện tôi không có link, nhưng tìm thì sẽ ra
    • Chắc rồi sẽ dẫn đến kiểu const puppeteer = require('puppeteer');
  • Bài này có vài chỗ kỳ lạ so với mức độ quả quyết kiểu “biết mọi con số”
    Họ nói rằng “ngày nay tiền huấn luyện có thể thực hiện với khoảng 8192 H100 trong khoảng 55 ngày, với giá 21,5 triệu USD nếu tính 2 USD mỗi giờ cho một H100”, nhưng tôi không hiểu vì sao lại điều chỉnh cả kích thước hệ thống lẫn thời gian huấn luyện bằng các con số có vẻ tùy ý
    Ngoài ra họ còn nói MoE khó xử lý trong suy luận vì không phải mọi phần của mô hình đều được dùng ở mỗi lần tạo token, nên có phần nhàn rỗi, có phần được dùng, từ đó ảnh hưởng xấu đến mức sử dụng khi phục vụ người dùng; nhưng không rõ là mức sử dụng của cái gì. Bộ nhớ à? Nếu lo về mức sử dụng suy luận đến thế thì chẳng phải cứ chạy mô hình không phải MoE là được sao
    Về MQA, họ cũng nói “vì thế chỉ cần 1 head và có thể giảm mạnh dung lượng bộ nhớ của KV cache”, điều này gần đúng nhưng vẫn sai. Chỉ cần một head cho Key và Value, còn số lượng head của Query thì vẫn giữ nguyên
    Tôi đoán đây là một người tương đối hiểu biết đã lấy công thức từ bài báo scaling năm 2020 để dựng nên một hệ thống tưởng tượng có toán học đúng. Tôi cũng có thể bịa ra một bài tương tự cho có vẻ thuyết phục, nhưng vì vượt quá trình độ của mình nên có lẽ sẽ gần đúng mà vẫn sai rõ ràng. Vì vậy cảm giác này rất đáng nghi

    • Không, phần giải thích về MQA trong bài là đúng. KV cache chỉ cache các head của Key và Value
      Điểm cốt lõi của MQA là nhờ sự chia sẻ này mà KV cache nhỏ hơn trường hợp thông thường theo đúng số lượng head. Dù có nhiều Query head thì điều đó cũng không ảnh hưởng đến kích thước cache, và trong cả dung lượng bộ nhớ lẫn băng thông, yếu tố giới hạn của giải mã MHA chính là cache