- Mixtral 8x7B là mô hình Sparse Mixture-of-Experts (SMoE) giữ nguyên kiến trúc nền của Mistral 7B nhưng thay khối feedforward ở mỗi lớp bằng 8 expert, được phát hành với open weights và giấy phép Apache 2.0
- Với mỗi token, bộ định tuyến chỉ chọn 2 expert trong 8 expert để tính toán, nên dù có thể truy cập 47B tham số cho mỗi token, số tham số hoạt động khi suy luận được giới hạn ở 13B
- Mô hình được huấn luyện với ngữ cảnh 32k token và cho thấy hiệu năng vượt hoặc tương đương Llama 2 70B và GPT-3.5 trên nhiều benchmark đã đánh giá, đặc biệt mạnh ở toán học, sinh mã và tác vụ đa ngôn ngữ
- Mixtral 8x7B – Instruct là mô hình chat được huấn luyện tuân theo chỉ dẫn bằng supervised fine-tuning và direct preference optimization (DPO), vượt GPT-3.5 Turbo, Claude-2.1, Gemini Pro và Llama 2 70B-chat trong đánh giá của con người
- Kiến trúc sparse expert giúp tăng tổng số tham số trong khi vẫn kiềm chế lượng tính toán trên mỗi token, nhờ đó có thể kỳ vọng suy luận nhanh ở batch size nhỏ và throughput cao ở batch size lớn
Mô hình được công bố và hiệu năng benchmark
- Mixtral 8x7B là mô hình Sparse Mixture-of-Experts (SMoE) với open weights, có thể dùng cho mục đích học thuật và thương mại theo giấy phép Apache 2.0
- Cả mô hình cơ sở và bản tuân theo chỉ dẫn Mixtral 8x7B – Instruct đều được công bố
- Có cung cấp mã nguồn và trang web
- Trên nhiều benchmark, mô hình đạt mức vượt hoặc tương đương Llama 2 70B và GPT-3.5
- Ở các tác vụ cần toán học, sinh mã và hiểu đa ngôn ngữ, mô hình cho thấy hiệu năng mạnh hơn Llama 2 70B
- Đã xác nhận rằng mô hình có thể truy xuất thông tin trong cửa sổ ngữ cảnh 32k token bất kể vị trí thông tin và độ dài chuỗi
Kiến trúc sparse mixture-of-experts
- Mixtral là transformer chỉ dùng decoder, thay khối feedforward của transformer thông thường bằng các lớp Mixture-of-Experts
- Mạng định tuyến ở mỗi lớp chọn 2 expert trong 8 expert cho từng token
- Đầu ra của các expert được chọn sẽ được kết hợp bằng tổng có trọng số
- Việc chọn expert có thể thay đổi ở mỗi timestep
- Một token có thể truy cập 47B tham số, nhưng tham số hoạt động thực sự dùng trong suy luận là 13B
- Kiến trúc này nhằm tăng tổng số tham số của mô hình trong khi vẫn kiểm soát chi phí xử lý token và độ trễ
Cách tính toán của lớp MoE
- Đầu ra của mô-đun MoE được tính bằng tổng có trọng số của đầu ra từ các mạng expert, với trọng số do mạng gating quyết định
- Nếu vector gating thưa, không cần tính đầu ra của các expert có giá trị gate bằng 0
- Mixtral áp dụng softmax lên top-K logit của lớp tuyến tính
- K là siêu tham số quyết định số expert được dùng cho mỗi token
- Trong Mixtral, K = 2
- Khi tăng số expert n và giữ nguyên K, có thể tăng tổng số tham số mà vẫn gần như giữ nguyên lượng tính toán trên mỗi token
- Vì vậy, tổng số tham số thưa và số tham số hoạt động dùng để xử lý từng token được tách biệt với nhau
Triển khai và hiệu quả suy luận
- Các lớp MoE có thể chạy hiệu quả ngay cả trên một GPU nhờ kernel chuyên dụng
- Megablocks biểu diễn phép toán FFN của lớp MoE thành một phép nhân ma trận thưa lớn để tăng tốc độ thực thi, đồng thời xử lý cả trường hợp số token phân bổ cho mỗi expert khác nhau
- Các lớp MoE có thể được phân tán trên nhiều GPU bằng song song mô hình tiêu chuẩn và expert parallelism
- Các token cần expert cụ thể sẽ được định tuyến tới GPU tương ứng
- Đầu ra của expert sẽ được trả về vị trí token ban đầu
- Trong expert parallelism, cần load balancing để phân chia khối lượng công việc đồng đều giữa các GPU
- Để có thể chạy Mixtral trên stack hoàn toàn open-source, một thay đổi tích hợp kernel CUDA của Megablocks vào dự án vLLM đã được gửi lên, và Skypilot hỗ trợ triển khai endpoint vLLM trên các instance đám mây
Mô hình Instruct và đặc tính đánh giá
- Mixtral 8x7B – Instruct là mô hình chat được huấn luyện tuân theo chỉ dẫn bằng supervised fine-tuning và direct preference optimization (DPO)
- Trên benchmark đánh giá bởi con người, mô hình cho thấy hiệu năng cao hơn GPT-3.5 Turbo, Claude-2.1, Gemini Pro và Llama 2 70B-chat
- Trên các benchmark như BBQ và BOLD, mô hình cho thấy mức độ thiên lệch giảm và hồ sơ cảm xúc cân bằng hơn
- Nhờ kiến trúc thưa, có thể kỳ vọng tốc độ suy luận nhanh hơn ở batch size nhỏ và throughput cao hơn ở batch size lớn
- Về mặt cấu trúc, mô hình khác với GShard ở chỗ thay toàn bộ các sub-block FFN bằng lớp MoE, thay vì chỉ thay một phần khối
1 bình luận
Ý kiến trên Hacker News
Bài báo này đi sâu vào một mô hình đã được công khai và sử dụng từ khoảng một tháng trước. Mixtral 8x7B thật sự xuất sắc; kích thước của nó xấp xỉ hạng 13B nhưng được đánh giá cao hơn nhiều so với các mô hình cùng cỡ trên những bảng xếp hạng như https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com...
Ravenwolf nói rằng mô hình này trong thực tế còn nhỉnh hơn một chút so với kết quả ở một số benchmark, và trải nghiệm của tôi cũng vậy. Với một mô hình cỡ này thì nó tốt đến đáng kinh ngạc, và đủ dùng hằng ngày trên Mac cho chat, nhập code và các mục đích khác
Một điều lộ ra sau khi trọng số được công bố là có khả năng khá cao cả 8 chuyên gia đều được seed từ Mistral 7B rồi sau đó mới phân nhánh. Vì vậy cộng đồng LLM cục bộ đang có nhiều thử nghiệm nhân bản mô hình để tạo chuyên gia với chi phí thấp
Thông thường người ta nghĩ rằng huấn luyện một mạng 8x7B sẽ cần khối lượng công việc tương đương huấn luyện tám mạng 7B, nhưng có vẻ với Mistral thì không phải vậy, điều này rất thú vị
Các bài báo như Calm của DeepMind và những thử nghiệm ghép lớp tức thời như Goliath-120b liên tục xuất hiện, nên có vẻ rất có khả năng năm nay sẽ có những cải tiến kiến trúc khá thú vị trong mảng LLM. Calm dường như chỉ ra bước tiếp theo sau MoE, còn các mô hình như Goliath cho thấy một cách triển khai Calm cực kỳ lười biếng — tức chỉ luân phiên dùng toàn bộ các lớp trọng số, không cần kết hợp lớp tuyến tính — cũng có thể mang lại hiệu quả lớn
Nhìn chung, trong năm 2024, có lẽ ngay trong nửa đầu năm, tôi nghĩ chúng ta sẽ thấy những mô hình mạnh chạy tốt cả trên phần cứng tiêu dùng
Cho đến nay, nền tảng tiêu dùng chính có thể chạy được mà không cần lượng tử hóa cao đến mức làm hỏng chất lượng đầu ra dường như là các máy Mac Apple Silicon đời mới có bộ nhớ hợp nhất, nhìn chung từ 48GB trở lên. Nghe nói 32GB hoặc 36GB cũng chạy được, nhưng không có nhiều dư địa
Như coder543 đã chỉ ra, nếu dùng cấu hình nhiều GPU có tổng VRAM đủ lớn thì có thể chạy mà không cần lượng tử hóa gây mất mát nhiều hơn
Ô nhiễm dữ liệu là một vấn đề, nhưng nó không được giải quyết bằng cách để những người hỏi mẹo trên subreddit đánh giá LLM theo kiểu dân gian
Điểm nổi bật của mô hình này là số tham số được sử dụng thấp ở mức 13B, nên có thể chạy mượt với chất lượng cao trên 3090, đồng thời vượt GPT-3.5 trên HumanEval và còn cung cấp ngữ cảnh 32k
3090 thuộc phân khúc tiêu dùng và cũng phổ biến trong PC gaming. Tôi hy vọng các nhà phát triển game sẽ bắt đầu thử nghiệm đưa Mixtral triển khai cục bộ vào game. Ví dụ như trong một game kiểu Civilization, mỗi lãnh tụ được vận hành bằng một LLM
Trên M2 Pro của tôi, tốc độ token và độ thông minh cho cảm giác giống GPT-3.5 Turbo. Đây là mô hình đầu tiên tôi thực sự bắt đầu dùng thay cho GPT-3.5, vượt qua mức chỉ nghịch thử vì công nghệ hay
Apple M2 Pro RAM 32GB có tầm giá tương tự một PC gaming gắn 3090, và đây là một ví dụ khác cho thấy những người bình thường có hệ thống tương đối mạnh có thể “tình cờ” chạy được một mô hình sánh với GPT-3.5
Nếu bạn có thiết bị Apple đáp ứng điều kiện này và muốn thử nghiệm, LLM Studio là mã nguồn mở và giúp việc bắt đầu dễ dàng: https://lmstudio.ai/
Hy vọng Mixtral và các mô hình kế tiếp sẽ đem lại nhiều hoạt động hack theo sở thích hơn nữa
Với số tiền đó có thể mua cả một chiếc PC, nên thật khó tin khi nói một GPU đắt như vậy là “dành cho người tiêu dùng” và “phổ biến”
Có GPU nào tốt cho LLM hoặc AI tạo sinh khác mà không đắt đến vô lý không? Hay có sản phẩm nào được thiết kế riêng cho AI thay vì đồ họa game không?
Ví dụ, có thể yêu cầu một tác tử lập kế hoạch phía trước trả lời bất kỳ ba trong 5W, nhưng vẫn được viết tự do bên trong giá trị chuỗi JSON, để làm ngữ cảnh cho việc chọn một tập hành động bị giới hạn về sau. Hoặc có thể cho mô hình xin thêm thời gian suy nghĩ ở cuối phản hồi, nhưng nếu không xin thì bắt buộc phải chỉ định hành động tiếp theo
Theo tôi thấy thì nó không ảnh hưởng đến tốc độ sinh và có thể dùng rất sáng tạo. Tuy nhiên nếu đầu ra bị cắt thì có thể cần sinh lại, và tôi đã phải viết riêng một hàm dừng ngay khi một đối tượng JSON hợp lệ được đóng, hoặc khi sinh liên tiếp hơn năm dòng trống. Điều này có thể khác nhau tùy mô hình
Nếu muốn thử mô hình này, có lẽ một trong những bản được Mozilla/jart phân phối dưới dạng Llamafile sẽ phù hợp
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile[0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
[1] https://github.com/Mozilla-Ocho/llamafile#quickstart
Trên Mac Silicon có thể chạy bằng Ollama
https://ollama.ai/
ollama pull mixtralNếu muốn có web UI giống ChatGPT, xem https://github.com/ollama-webui/ollama-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:mainChỉ cần truy cập http://localhost:3000. Ollama cũng có thể dùng trong LangChain
Các bài liên quan gần đây
Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - tháng 12 năm 2023, 300 bình luận
Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - tháng 12 năm 2023, 69 bình luận
Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - tháng 12 năm 2023, 239 bình luận
Đặc biệt, Mixtral vượt xa Llama 2 70B trong các benchmark về toán, sinh mã và đa ngôn ngữ
Tôi tò mò xem nó thể hiện thế nào ở toán. Toán luôn có vẻ là một điểm yếu rõ rệt, và có vẻ vẫn là lĩnh vực chưa ai giải quyết hiệu quả
Tôi không nghĩ vấn đề này sẽ được “giải quyết” chỉ bằng LLM tốt hơn; có lẽ chỉ có thể thông qua các mô hình đa phương thức có khả năng chạy chương trình và truy cập máy tính
Tôi không đọc quá nhiều bài báo về LLM, nhưng tôi thấy bài này khá yếu vì thiếu chi tiết. Ý tôi là bản thân bài báo, chứ không phải kết quả của LLM
Nếu nó được đặt lên bàn tôi để phản biện, có lẽ chỉ riêng lý do đó tôi đã trả lại. Ví dụ, họ không nói rõ đã huấn luyện các chuyên gia như thế nào, dùng bộ dữ liệu nào
Đây có phải là chuẩn hiện nay của lĩnh vực này không?
Vì mã nguồn và kiến trúc dễ tái tạo, nên bất kỳ nơi nào có đủ tiền đều có thể “dễ dàng” tạo ra một mô hình cạnh tranh
OpenAI đã khởi đầu xu hướng này và củng cố nó bằng “báo cáo kỹ thuật” GPT-4 thậm chí không nêu cả số lượng tham số của mô hình. Về bộ dữ liệu thì họ đã mơ hồ từ lâu trước đó
Tôi hoàn toàn không phải chuyên gia LLM, nhưng sẽ rất thú vị nếu biết được đặc biệt là các thiết lập huấn luyện khác nhau ảnh hưởng đến hiệu năng như thế nào
Không biết khi nào các mô hình đa phương thức có thể truy cập công khai sẽ bắt đầu xuất hiện
Sự tiến bộ của các mô hình chỉ văn bản thật đáng kinh ngạc, nhưng nhiều hành vi “nổi lên” của GPT-4 có thể không chỉ do MoE hay số lượng tham số, mà còn do huấn luyện đa phương thức
Tò mò liệu các mô hình đa phương thức nhỏ hơn có cho thấy bước nhảy tương tự không
Meta cũng đã phát hành một mô hình đa phương thức giữa 6 dạng thức theo giấy phép phi thương mại: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
Trọng số mô hình có vẻ theo giấy phép phi thương mại nên không hẳn là mã nguồn mở thực sự, nhưng đúng với “truy cập công khai” như yêu cầu
Sẽ thật tốt nếu ai đó huấn luyện từ đầu một mô hình tương thích với CogVLM theo giấy phép mã nguồn mở
Không biết có thể chạy mô hình này bằng công cụ LLM của Simon Willison không. Không tìm thấy đề cập đến Mixtral trong issue hay thảo luận
Ngoài ra có cách nào dễ để thử mô hình này từ dòng lệnh không?
LM Studio cũng là một lựa chọn
Trên dòng lệnh thì dùng Ollama: https://ollama.ai/library/mixtral
Nếu cần UI thì GPT4All: https://gpt4all.io/index.html nhưng hiện chưa hỗ trợ Mixtral
Bên trong ứng dụng thì superagent.sh: https://github.com/homanp/superagent
Trong một cuộc phỏng vấn podcast gần đây của A16Z, nhà sáng lập Mistral nói rằng nội bộ họ có nhiều mô hình có chất lượng nằm giữa ChatGPT và GPT-4
Nhìn vào các bản phát hành công khai chất lượng cao cho đến nay, có vẻ đây sẽ là giai đoạn thú vị đối với LLM mã nguồn mở