Desoul Review English

← Kết quả test

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

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.

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.

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ỏ.

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.