Ba model local trên Mac 36 GB, thử trên việc thật để so với Claude
Mình muốn biết có job Claude chạy theo lịch nào chuyển sang model local được không. Ngày 5 và 6/11/2026 mình chạy ba model local trên ba việc thật cho project của mình: tóm tắt repo GitHub, viết bài tin tức tiếng Việt từ một bài báo tiếng Anh, và phân loại bài báo nên giữ hay bỏ. Nói gọn: Gemma làm được vòng lọc đầu cho việc phân loại nếu chấp nhận mất khoảng 1 trên 7 bài đáng giữ, còn việc viết tiếng Việt cho người đọc thì chưa nên chuyển.
Setup
- Apple M4 Max, 36 GB, ollama 0.21.2. Mọi model đều Q4_K_M, tắt thinking, temperature 0.3, mỗi input chạy một lần.
- Lúc đó có một agent khác cũng đang dùng máy, nên số giây ở dưới chỉ để tham khảo chứ chưa phải benchmark.
- Chất lượng, chuyện bịa thông tin và độ tự nhiên của tiếng Việt là do một model Claude đọc từng output so với input để chấm. Nó không phải người đọc tiếng Việt bản xứ. Phần kiểm tra format (front matter, giá trị cho phép, các mục, hashtag, độ dài) là script nên chính xác.
-
Mấy model mới nhất không tải về được: Qwen 3.8, Gemma 4 12B và hai model khác báo lỗi HTTP 412 vì bản ollama này quá cũ. Mấy model đó mình chưa test.
-
gemma4:26b-a4b-it-q4_K_M: Loại mixture of experts, tổng 26B, khoảng 4B chạy mỗi lượt; Ổ đĩa 17 GB; RAM khi chạy 19 GB qwen3.6:27b-q4_K_M: Loại dense 27B; Ổ đĩa 17 GB; RAM khi chạy 22 tới 23 GBqwen2.5:14b: Loại dense 14B, đời cũ; Ổ đĩa 9 GB; RAM khi chạy 10 GB
Việc 1: tóm tắt repo
12 repo chọn bằng random seed cố định, dùng đúng prompt tóm tắt thật (khoảng 3.800 token, gồm 8.000 ký tự đầu của README). Mình so với bản tóm tắt Claude Haiku viết trước đó cho cùng repo, nên "khớp" nghĩa là khớp với một lần chạy Claude trước đây thôi chứ chưa chắc là đúng.
- Số giây mỗi repo, trung bình: Gemma 4 26B-A4B 13,9; Qwen 3.6 27B 77,7; Qwen 2.5 14B 25,2
- Tốc độ ra chữ: Gemma 4 26B-A4B 64 token/s; Qwen 3.6 27B 12,9 token/s; Qwen 2.5 14B 32,5 token/s
- Front matter hợp lệ hoàn toàn: Gemma 4 26B-A4B 7/12; Qwen 3.6 27B 12/12; Qwen 2.5 14B 8/12
- Verdict (SUBSCRIBE / WATCH / IGNORE) giống Claude: Gemma 4 26B-A4B 6/12; Qwen 3.6 27B 8/12; Qwen 2.5 14B 7/12
- Verdict lệch nhau hai bậc: Gemma 4 26B-A4B 2; Qwen 3.6 27B 0; Qwen 2.5 14B 0
- Bịa con số hoặc tên: Gemma 4 26B-A4B không thấy; Qwen 3.6 27B không thấy; Qwen 2.5 14B không thấy
Gemma chạy nhanh và bám sát README, nhưng nó hiểu một rule trong prompt quá máy móc. Nó gọi project của chính mình là "đối thủ" ở 10/12 repo (Claude chỉ làm vậy với 1 repo), kể cả một tool test Android và một thư viện prompt, rồi rule đó ép nó ra verdict cao nhất. Con số 7/12 của Qwen 2.5 nhìn thì yên tâm nhưng không phải vậy. Nó chưa bao giờ cho verdict cao nhất, và ghi WATCH cho 10/12 repo.
Việc 2: bài tin tức tiếng Việt
5 bài báo Úc có thật, ngày 4 và 5/11/2026, prompt là toàn bộ rule viết bài của mình (khoảng 7.400 token vào, khoảng 1.100 tới 1.350 token ra), output bị ép theo một JSON schema. Mình so với bài Claude Sonnet đã viết sẵn cho cùng bài báo.
- Số giây mỗi bài: Sonnet không đo; Gemma 4 26B-A4B 23,6; Qwen 3.6 27B 123,8; Qwen 2.5 14B 41,6
- JSON hợp lệ: Sonnet không đo; Gemma 4 26B-A4B 5/5; Qwen 3.6 27B 4/5; Qwen 2.5 14B 5/5
- Kết bài bằng câu hỏi bắt buộc: Sonnet 5/5; Gemma 4 26B-A4B 5/5; Qwen 3.6 27B 5/5; Qwen 2.5 14B 0/5
- Sai sự thật so với bài gốc: Sonnet không thấy; Gemma 4 26B-A4B 0 lỗi nặng, 2 chỗ thêm thắt nhỏ; Qwen 3.6 27B 4 lỗi nặng; Qwen 2.5 14B rất nhiều (đọc 3 bài)
- Chữ bị méo hoặc không phải tiếng Việt: Sonnet không thấy; Gemma 4 26B-A4B 3; Qwen 3.6 27B 3, có một chỗ tiếng Trung; Qwen 2.5 14B từ 6 trở lên
Mấy lỗi này đọc lướt sẽ không thấy. Qwen 3.6 gán cho một nghị sĩ có tên một đảng mà bài gốc không hề nhắc, ghi số tiền gian lận bằng đô Mỹ trong khi bài gốc là đô Úc, chèn chữ Trung Quốc vào giữa câu tiếng Việt, và đổi tên thuốc Wegovy thành "WEGOZY" ngay trên tiêu đề. Qwen 2.5 biến 235 triệu đô Úc thành tiền đồng. Gemma viết tiếng Việt tự nhiên nhất trong ba model, mà vẫn làm méo một chữ ở mỗi một trong hai tiêu đề mục, ví dụ "ĐIỀUNG KIỆN" thay vì "ĐIỀU KIỆN").
Việc 3: giữ hay bỏ, và cái bẫy trong mẫu đầu tiên
Ngày 6/11 mình đưa mỗi model 60 bài báo, chỉ có tiêu đề và mô tả, 10 bài mỗi lần gọi, kèm rule phân loại của project. Một nửa là bài Claude đã giữ, một nửa là bài Claude đã bỏ.
- Gemma 4 26B-A4B: Khớp với Claude 52/60; Tìm được bài cần giữ 28/30; chạy hết 60 bài trong 33 giây
- Qwen 3.6 27B: Khớp với Claude 51/60; Tìm được bài cần giữ 26/30; chạy hết 60 bài trong 441 giây
- Qwen 2.5 14B: Khớp với Claude 41/60; Tìm được bài cần giữ 14/30; chạy hết 60 bài trong 177 giây
87% nhìn thì ổn. Ngày 6/11/2026 mình cho Gemma chạy trên một ngày traffic thật từ cùng nguồn, chạy song song với Claude và chỉ đọc: 737 bài, Claude giữ 50 bài (7%). Gemma khớp 83% và tìm ra 43/50 bài. Nó còn giữ thêm khoảng 120 bài mà Claude đã bỏ. Một rule cứ bỏ hết thì cũng khớp được 93%, nên nhìn con số khớp thô là nhìn sai chỗ. Mẫu chia đôi một nửa giữ một nửa bỏ đã che mất chuyện bài "giữ" hiếm cỡ nào.
Nếu dùng làm vòng lọc đầu, tức là Gemma bỏ bớt rồi Claude đọc phần còn lại, thì số bài Claude phải đọc giảm còn khoảng một phần năm, đổi lại mất 7/50 bài đáng giữ (14%). Chạy 737 bài mất 295 giây.
Tốc độ và lần load đầu
Mình chạy cùng một prompt tóm tắt hai lần liền nhau. Tốc độ ra chữ lặp lại trong khoảng 15%. Load một model 17 GB mất từ 5 tới 20 giây. Job chạy mỗi ngày một lần thì lần nào cũng phải trả khoản load đó. Gemma lần đầu mất 25,0 giây, lần thứ hai 9,7 giây, và lần thứ hai còn được dùng lại prompt đã cache.
Giới hạn
12 repo, 5 bài viết, 60 cộng 737 bài báo, mỗi thứ chạy một lần ở temperature 0,3. Lệch nhau một item (6 với 7 trên 12) không nói lên gì. Câu trả lời của Claude mà mình dùng để so là một lần chạy trước đó chứ không phải đáp án chuẩn. Model local đều tắt thinking. Chưa có người đọc tiếng Việt bản xứ nào đặt bài của Gemma và Sonnet cạnh nhau để so.
Mình sẽ làm gì
Việc viết cho người đọc thì vẫn để Claude. Với việc phân loại số lượng lớn, Gemma 4 26B-A4B là kết quả local duy nhất đáng làm theo, dùng làm vòng lọc đầu, nếu việc của bạn chấp nhận mất khoảng một bài đáng giữ trong bảy bài. Trước khi tin bất kỳ con số khớp nào, hãy test lại trên một mẫu có đúng tỉ lệ giữ và bỏ như ngoài đời thật.
English