Козите са му ги изяли, затова и нема продукция след толко години земеделстване...
0 1 2 3 4 ...21 22 23 24 25 ...44 45 46 47 48 49 50
Козите са му ги изяли, затова и нема продукция след толко години земеделстване...
Сега четох, че и двата gpt-oss:20B и qwen3:30B имат около 3B активни параметъра за тоукън. Все пак китайксия на CPU работи значително по-бързо при мен (с ollama)
Analyzing model: ../gpt-oss-20b
==================================================
Model type: gpt_oss
Architecture: GptOssForCausalLM
Hidden size: 2880
Number of layers: 24
Attention heads: 64
Vocabulary size: 201,088
🔥 MoE Model Detected!
------------------------------
num_experts_per_tok: 4
top_k: 50
router_aux_loss_coef: 0.9
📊 Parameter Analysis
------------------------------
Total parameters: 12.0B (11,956,805,184)
Parameter breakdown:
expert: 10.2B (85.0%)
attention: 637.2M (5.3%)
output_head: 579.1M (4.8%)
embedding: 579.1M (4.8%)
routing: 2.2M (0.0%)
normalization: 141.1K (0.0%)
Analyzing model: ./Qwen3-30B-A3B-Instruct-2507
==================================================
Model type: qwen3_moe
Architecture: Qwen3MoeForCausalLM
Hidden size: 2048
Number of layers: 48
Attention heads: 32
Vocabulary size: 151,936
🔥 MoE Model Detected!
------------------------------
num_experts: 128
num_experts_per_tok: 8
top_k: 50
moe_intermediate_size: 768
router_aux_loss_coef: 0.001
📊 Parameter Analysis
------------------------------
Total parameters: 30.5B (30,532,122,624)
Parameter breakdown:
expert: 29.0B (95.0%)
attention: 906.0M (3.0%)
output_head: 311.2M (1.0%)
embedding: 311.2M (1.0%)
mlp: 12.6M (0.0%)
normalization: 210.9K (0.0%)
🧠 Expert Analysis
------------------------------
Experts per layer: 128
Total expert layers: 48
Total expert parameters: 29.0B
Като ги trace-вам за един токън, gpt-oss изпълнява 6741 операции, докато qwen3 изпълнява 25959. Но пък тензорите са различни, та не знам. Това е с pytorch.
Хм..не знам. Но и други хора му се чудят на скоростта, но тука го няма gpt-oss, a само да кажем gemma3, който не е баш MoE
Е, аз не съм инфлуенсър, и не мога да коментирам такива неща, но qwen3 прави по-интересни операции от gpt.
(числото пред името е колко пъти е извикана операцията)
QWen3
9848 prim.device.default
1969 aten.t.default
1969 aten.mm.default
1732 aten.mul.Tensor
1728 aten.index.Tensor
1300 aten.unsqueeze.default
1253 aten.view.default
624 aten.unbind.int
624 aten.nonzero.default
576 aten.squeeze.dim
576 aten.silu.default
576 aten.index_add_.default
576 aten._local_scalar_dense.default
385 aten.add.Tensor
194 aten._unsafe_view.default
193 aten.transpose.int
193 aten.rsqrt.default
193 aten.pow.Tensor_Scalar
193 aten.mean.dim
192 aten.slice.Tensor
192 aten.clone.default
97 aten.cat.default
96 aten.sum.dim_IntList
96 aten.neg.default
49 aten._to_copy.default
48 aten.zeros.default
48 aten.topk.default
48 aten.permute.default
48 aten.gt.Scalar
48 aten.eq.Tensor
48 aten.div_.Tensor
48 aten.arange.default
48 aten._softmax.default
48 aten._scaled_dot_product_flash_attention_for_cpu.default
43 aten.as_strided.default
14 aten.to.dtype_layout
14 aten.new_empty.default
6 prims.split_dim.default
5 prims.collapse_view.default
3 prims.view_of.default
3 aten.expand.default
2 prims.convert_element_type.default
2 aten.empty_strided.default
2 aten.arange.start_step
1 aten.squeeze.dims
1 aten.sin.default
1 aten.randint.low
1 aten.index_put_.default
1 aten.embedding.default
1 aten.cos.default
1 aten.bmm.default
1 aten.arange.start
1 aten.alias.default
gpt-oss
2579 prim.device.default
652 aten.mul.Tensor
633 aten.view.default
480 aten.to.dtype
361 aten.add.Tensor
175 aten.expand.default
172 aten.unsqueeze.default
145 aten.transpose.int
121 aten.t.default
121 aten.mm.default
120 aten.addmm.default
98 aten._unsafe_view.default
97 aten.bmm.default
83 prims.split_dim.default
73 aten.sub.Tensor
72 aten.slice.Tensor
72 aten.clone.default
72 aten.cat.default
49 aten.rsqrt.default
49 aten.pow.Tensor_Scalar
49 aten.mean.dim
49 aten._to_copy.default
48 aten.split.Tensor
48 aten.clamp.default
48 aten._softmax.default
32 aten.as_strided.default
25 aten.alias.default
24 aten.zeros_like.default
24 aten.topk.default
24 aten.sum.dim_IntList
24 aten.sigmoid.default
24 aten.scatter_.src
24 aten.repeat.default
24 aten.max.dim
8 prims.collapse_view.default
6 aten.arange.default
3 prims.view_of.default
3 prims.convert_element_type.default
3 aten.select.int
3 aten.empty_strided.default
3 aten.arange.start_step
2 aten.where.self
2 aten.split_with_sizes.default
2 aten.scalar_tensor.default
2 aten.lift_fresh.default
2 aten.le.Tensor
2 aten.bitwise_and.Tensor
2 aten.add_.Tensor
1 aten.sin.default
1 aten.randint.low
1 aten.new_ones.default
1 aten.gt.Tensor
1 aten.embedding.default
1 aten.cos.default
1 aten.arange.start
Използва доста scaled_dot_product_flash_attention_for_cpu, докато gpt-oss не го ползва. Ползва silu.default, докато gpt-oss май ползва sigmoid+mul ?
Днес ми е ден за градинска работа, но ето още малко данни, после ще ги анализирам...
Какви тензори използва всеки от моделите (като параметри или резултат връщан от операторите)
QWen3
4611 shape=(3, 2048), dtype=torch.float32,
4608 shape=(3, 768), dtype=torch.float32,
4137 shape=(4, 2048), dtype=torch.float32,
3457 shape=(3,), dtype=torch.int64,
2880 shape=(2048, 768), dtype=torch.bfloat16,
2856 shape=(1, 4, 2048), dtype=torch.float32,
2544 shape=(4, 8), dtype=torch.float32,
2304 shape=(768, 2048), dtype=torch.bfloat16,
2304 shape=(1,), dtype=torch.int64,
2068 shape=(1, 4, 4, 128), dtype=torch.float32,
1848 shape=(128, 8, 4), dtype=torch.int64,
1825 shape=(1, 8, 4), dtype=torch.int64,
1736 shape=(1, 3, 2048), dtype=torch.float32,
1442 shape=(1, 32, 4, 128), dtype=torch.float32,
1158 shape=(3, 1), dtype=torch.float32,
1154 shape=(4, 8, 1), dtype=torch.float32,
1153 shape=(8, 4), dtype=torch.int64,
1152 shape=(3, 2), dtype=torch.int64,
868 shape=(1, 4, 32, 128), dtype=torch.float32,
582 shape=(1, 4, 1), dtype=torch.float32,
388 shape=(1, 4, 512), dtype=torch.float32,
344 shape=(1, 4, 4096), dtype=torch.float32,
336 shape=(4, 128), dtype=torch.float32,
290 shape=(4, 512), dtype=torch.float32,
290 shape=(1, 4, 4, 64), dtype=torch.float32,
290 shape=(1, 32, 4, 64), dtype=torch.float32,
288 shape=(1, 4, 4, 1), dtype=torch.float32,
288 shape=(1, 4, 32, 1), dtype=torch.float32,
288 shape=(1, 1, 4, 128), dtype=torch.float32,
244 shape=(4, 4096), dtype=torch.float32,
203 shape=(1, 4, 128), dtype=torch.float32,
193 shape=(128,), dtype=torch.int64,
192 shape=(512, 2048), dtype=torch.float32,
192 shape=(4096, 2048), dtype=torch.float32,
192 shape=(4, 8), dtype=torch.int64,
192 shape=(2048, 512), dtype=torch.float32,
192 shape=(2048, 4096), dtype=torch.float32,
146 shape=(4, 8, 128), dtype=torch.int64,
144 shape=(128,), dtype=torch.bool,
97 shape=(4, 8, 128), dtype=torch.bool,
97 shape=(2048,), dtype=torch.float32,
96 shape=(4, 8, 1), dtype=torch.int64,
96 shape=(4, 1), dtype=torch.float32,
96 shape=(2048, 128), dtype=torch.bfloat16,
96 shape=(128,), dtype=torch.float32,
96 shape=(12, 1), dtype=torch.int64,
48 shape=(128, 2048), dtype=torch.bfloat16,
48 shape=(1, 32, 4), dtype=torch.float32,
19 shape=(1, 64, 1), dtype=torch.float32,
15 shape=(1, 1, 4), dtype=torch.float32,
11 shape=(1, 64, 4), dtype=torch.float32,
7 shape=(1, 4), dtype=torch.int64,
5 shape=(4, 151936), dtype=torch.float32,
4 shape=(64,), dtype=torch.float32,
4 shape=(4,), dtype=torch.int64,
4 shape=(1, 4, 151936), dtype=torch.float32,
3 shape=(151936, 2048), dtype=torch.float32,
3 shape=(1, 64), dtype=torch.float32,
3 shape=(1, 4, 64), dtype=torch.float32,
3 shape=(1, 1, 4), dtype=torch.int64,
2 shape=(2048, 151936), dtype=torch.float32,
gpt-oss
958 shape=(1, 4, 2880), dtype=torch.float32,
895 shape=(4, 2880), dtype=torch.float32,
630 shape=(32, 4, 2880), dtype=torch.float32,
607 shape=(1, 64, 4, 64), dtype=torch.float32,
530 shape=(4, 512), dtype=torch.float32,
434 shape=(1, 8, 4, 32), dtype=torch.float32,
434 shape=(1, 64, 4, 32), dtype=torch.float32,
412 shape=(4, 4096), dtype=torch.float32,
389 shape=(1, 64, 4, 4), dtype=torch.float32,
384 shape=(4, 32), dtype=torch.float32,
337 shape=(1, 8, 4, 64), dtype=torch.float32,
336 shape=(512,), dtype=torch.float32,
313 shape=(1, 64, 4, 5), dtype=torch.float32,
294 shape=(1, 4, 1), dtype=torch.float32,
288 shape=(2880, 512), dtype=torch.float32,
266 shape=(32, 4, 5760), dtype=torch.float32,
242 shape=(1, 8, 8, 4, 64), dtype=torch.float32,
240 shape=(1, 1, 4, 32), dtype=torch.float32,
220 shape=(1, 4, 64, 64), dtype=torch.float32,
218 shape=(1, 64, 64, 4), dtype=torch.float32,
217 shape=(2880,), dtype=torch.float32,
192 shape=(4096, 2880), dtype=torch.float32,
192 shape=(2880, 4096), dtype=torch.float32,
176 shape=(1, 4, 4096), dtype=torch.float32,
172 shape=(64, 4, 64), dtype=torch.float32,
168 shape=(4096,), dtype=torch.float32,
168 shape=(4, 4), dtype=torch.float32,
148 shape=(1, 4, 512), dtype=torch.float32,
146 shape=(1, 4, 8, 64), dtype=torch.float32,
146 shape=(1, 1, 4, 4), dtype=torch.float32,
144 shape=(1, 8, 1, 4, 64), dtype=torch.float32,
126 shape=(32,), dtype=torch.float32,
124 shape=(64, 4, 4), dtype=torch.float32,
122 shape=(32, 1, 4), dtype=torch.float32,
107 shape=(1, 4, 32), dtype=torch.float32,
98 shape=(32, 1, 4, 2880), dtype=torch.float32,
97 shape=(2880, 32), dtype=torch.bfloat16,
97 shape=(1, 64, 1, 1), dtype=torch.float32,
96 shape=(512, 2880), dtype=torch.float32,
96 shape=(1, 64, 4, 1), dtype=torch.float32,
74 shape=(32, 4), dtype=torch.float32,
74 shape=(2880, 32), dtype=torch.float32,
74 shape=(128, 2880), dtype=torch.float32,
73 shape=(64,), dtype=torch.float32,
73 shape=(32,), dtype=torch.bfloat16,
50 shape=(64, 64, 4), dtype=torch.float32,
50 shape=(1, 64), dtype=torch.float32,
50 shape=(1, 64, 1), dtype=torch.float32,
48 shape=(4, 4), dtype=torch.int64,
48 shape=(32, 2880), dtype=torch.bfloat16,
48 shape=(32, 1, 5760), dtype=torch.bfloat16,
48 shape=(32, 1, 4, 1), dtype=torch.float32,
48 shape=(32, 1, 2880), dtype=torch.bfloat16,
32 shape=(4,), dtype=torch.int64,
24 shape=(32, 5760), dtype=torch.bfloat16,
24 shape=(32, 2880, 5760), dtype=torch.float32,
24 shape=(32, 2880, 2880), dtype=torch.float32,
24 shape=(1, 64, 4, 1), dtype=torch.int64,
20 shape=(4, 4), dtype=torch.bool,
19 shape=(1, 32, 1), dtype=torch.float32,
15 shape=(1, 1, 4), dtype=torch.float32,
14 shape=(), dtype=torch.float32,
11 shape=(4,), dtype=torch.bool,
11 shape=(1, 32, 4), dtype=torch.float32,
9 shape=(1,), dtype=torch.int64,
7 shape=(4, 1), dtype=torch.int64,
7 shape=(1, 4), dtype=torch.int64,
6 shape=(1, 4, 4), dtype=torch.bool,
5 shape=(4, 201088), dtype=torch.float32,
4 shape=(1, 4, 201088), dtype=torch.float32,
4 shape=(1, 1, 4, 4), dtype=torch.bool,
3 shape=(4, 1), dtype=torch.bool,
3 shape=(201088, 2880), dtype=torch.float32,
3 shape=(1, 32), dtype=torch.float32,
3 shape=(1, 1, 4), dtype=torch.int64,
2 shape=(2880, 201088), dtype=torch.float32,
2 shape=(), dtype=torch.int64,
2 shape=(), dtype=torch.bool,
Може би процесорите не харесват 2880 в сравнение с 2048. Второто е по-кръгло.
Кравар гордея се с тебе. Ти откри Хамерика. Начи имало полза от $250 инвестиций в светлото бъдеще. Бегай пиши ся две три статий. Не мой такова фундаментално откритие да остане без нобел ... за мир или нещо такова.
Жалко, ако си бе позлатил Кудата като Хоровиц сигурно щеше да откриеш още повече.
Кравар гордея се с тебе. Ти откри Хамерика. Начи имало полза от $250 инвестиций в светлото бъдеще. Бегай пиши ся две три статий. Не мой такова фундаментално откритие да остане без нобел ... за мир или нещо такова.
Жалко, ако си бе позлатил Кудата като Хоровиц сигурно щеше да откриеш още повече.
Говедо, толкова си зле, че дори няма как да ти обясня колко си зле. Твоето е post Dunning-Kruger състояние. Way way way beyond Dunnig-Kruger :)
Говедо, толкова си зле, че дори няма как да ти обясня колко си зле. Твоето е post Dunning-Kruger състояние. Way way way beyond Dunnig-Kruger :)
Ми да, не само е по-кръгло ами и Луната е в ретрогаден Меркурий. Виж и аз мога да творя наука. Позволявам ти да ме пишеш съ-автор.
Ми да, не само е по-кръгло ами и Луната е в ретрогаден Меркурий. Виж и аз мога да творя наука. Позволявам ти да ме пишеш съ-автор.
Не можеш да твориш наука, говедо. Нямаш абсолютно никаква идея как. Можеш само отокъмплийт в IDE-то.
Не можеш да твориш наука, говедо. Нямаш абсолютно никаква идея как. Можеш само отокъмплийт в IDE-то.
Колега, 2840 е доста кръгло число, но не съм съвсем съгласен че е по-кръгло от 2880. Четворката е много ръбеста, докато второто число има 8. 8 е много по-закръглено от 4, това дори с просто око се вижда колега.
Колега, 2840 е доста кръгло число, но не съм съвсем съгласен че е по-кръгло от 2880. Четворката е много ръбеста, докато второто число има 8. 8 е много по-закръглено от 4, това дори с просто око се вижда колега.
Нали се сещаш, че кодер няма как да ми е колега? :)
Нямаш никаква идея защо gpt-oss използва тензори с размери 2880, нали? :) Но много ти харесва да настъпваш мотиката. :)
Колега, 2840 е доста кръгло число, но не съм съвсем съгласен че е по-кръгло от 2880. Четворката е много ръбеста, докато второто число има 8. 8 е много по-закръглено от 4, това дори с просто око се вижда колега.
хахахахаха
Нали се сещаш, че кодер няма как да ми е колега? :)
Нямаш никаква идея защо gpt-oss използва тензори с размери 2880, нали? :) Но много ти харесва да настъпваш мотиката. :)
Щот е кръгло, как що колега, Нвидиа като гейм компания обича кръглите резолюшъни.
Щот е кръгло, как що колега, Нвидиа като гейм компания обича кръглите резолюшъни.
![]()
Wait, според теб 2048 не е кръгло число? :)
Wait, според теб 2048 не е кръгло число? :)
Кръгло е, много е кръгло. Написа ли статията свинчо?
Кръгло е, много е кръгло. Написа ли статията свинчо?
Хехехе, завистливото говедо пак квичи. :) Голям смях. :)
2880 = 1440 * 2? Това да не е заради с некоя мониторска резолюцийка?
2880 = 1440 * 2? Това да не е заради с некоя мониторска резолюцийка?
Сигурно, Нвидия прави всъщност графични карти и ги приспособява за сървъри. А краварската свиня "рънва" шит правен от други и гледа като теле в железница колко са "кръгли" некой числа дето разни логове му ги изплюват.
После търчи тука да хвалипръцка. Понеже е суетна инфлуенсърка,
0 1 2 3 4 ...21 22 23 24 25 ...44 45 46 47 48 49 50