!"#$"%&'(
) ) )
)
*)
FOUNDATIONS OF LARGE LANGUAGE MODEL
COMPRESSIONā€”PART 1: WEIGHT QUANTIZATION
Sean I. Young
siyoung@csail.mit.edu
ABSTRACT
+&)"#,#&')-#."/0),12$"#//%1&)13)4."5#)4.&56.5#)217#4/)899:/;)<./)#2#"5#7)./).&)
%2$1"'.&')$"1=4#2)'1).441>)4.&56.5#)217#4)7#$41-2#&')1&)"#/16",#?,1&/'".%&#7)
7#@%,#/0)"#76,#),12$6'.'%1&.4),1/'/0).&7)2%'%5.'#)'<#)#&@%"1&2#&'.4)311'$"%&')13)
4."5#?/,.4#)A+) %&3"./'"6,'6"#() +&) '<%/) $.$#"0)>#)$"#/#&') '<#) 316&7.'%1&/) 13) 99:)
B6.&'%C.'%1&)3"12).),1&@#D)1$'%2%C.'%1&)$#"/$#,'%@#).&7)$"1$1/#).)B6.&'%C.'%1&)
2#'<17)'<.')=6%47/)1&)'<#/#)316&7.'%1&/).&7)16'$#"31"2/)$"#@%16/)2#'<17/()E6")
B6.&'%C.'%1&)3".2#>1"F0)GHIJ0)/,.4#/)'1)217#4/),1&'.%&%&5)<6&7"#7/)13)=%44%1&/)
13)>#%5<')$.".2#'#"/).&7)$"1@%7#/)6/#"/)>%'<)'<#)K#D%=%4%'-)'1),12$"#//)217#4/)
'1).&-)/$#,%L#7)217#4)/%C#0)$1/'?'".%&%&5()A)"#3#"#&,#)%2$4#2#&'.'%1&)13)GHIJ)
,.&)=#)1='.%&#7)3"12)https://github.com/seannz/cvxq()
1 INTRODUCTION
9."5#)4.&56.5#):17#4/)899:/;)<.@#)=#,12#).)6&%@#"/.4)3".2#>1"F)31")/14@%&5).)@./')&62=#")13)
$"1=4#2/)%&)&.'6".4)4.&56.5#)$"1,#//%&50)3"12)'#D')'".&/4.'%1&).&7)/622."%C.'%1&)'1),1&@#"/.'%1&.4)
A+).&7).6'12.'%,)5#&#".'%1&)13)".7%1415%/'M/)"#$1"'/()N<%4#)99:/)16'$#"31"2)'".7%'%1&.4)2#'<17/)
%&)4.&56.5#?"#4.'#7)'./F/0)'<#-)13'#&)%&@14@#)'#&/)1")<6&7"#7/)13)=%44%1&/)13)>#%5<')$.".2#'#"/0).&7)
'<%/)"#&7#"/)'<#%")7#$41-2#&')1&'1)7#@%,#/)>%'<)4%2%'#7)"#/16",#/),<.44#&5%&5O217#4)>#%5<'/).&7)
.,'%@.'%1&/)&1)41&5#")L')%&)'<#)7#@%,#)2#21"-0)&#,#//%'.'%&5)'<1/#).,'%@.'%1&/)=#)/.@#7)'1).&7)41.7#7)
3"12)1P?,<%$)2#21"-)3"#B6#&'4-)76"%&5)'<#),16"/#)13)%&3#"#&,#()Q1')1&4-)71#/)'<%/)5"#.'4-)<%&7#")
'<#)6/.=%4%'-)13)99:/)$."'%,64."4-)%&)'%2#?/#&/%'%@#)'./F/)=6')%').4/1)#D.,#"=.'#/)'<#)#&@%"1&2#&'.4)
311'$"%&')13)4."5#?/,.4#)A+)%&3"./'"6,'6"#)"#B6%"#7)=-)99:/()
E&#)>.-)'1)"#76,#)'<#),12$6'.'%1&.4).&7)/'1".5#)"#B6%"#2#&'/)13)4."5#)217#4/)%/)=-),12$"#//%&5)
8'<.')%/0)/%2$4%3-%&5;)'<#)"#$"#/#&'.'%1&)13)'<#)217#4/)$1/'?'".%&%&5()R#&#".44-)/$#.F%&50)'<%/),.&)=#)
.,<%#@#7)@%.)>#%5<')$"6&%&50)B6.&'%C.'%1&)13).,'%@.'%1&/).&7)>#%5<'/0)1")!GA?'-$#)7%2#&/%1&.4%'-)
"#76,'%1&)13)>#%5<')2.'"%,#/()E6')13)'<#/#0)B6.&'%C.'%1&)13)>#%5<'/).&7).,'%@.'%1&)<./)$"1@#&)'1)=#)
$."'%,64."4-)6/#364)31"),12$"#//%&5)217#4/)'1)@#"-)41>)=%')7#$'</)1")."=%'"."-)6/#"?/$#,%L#7)217#4)
/%C#/)S*T*UV()W/%&5)/'.'#?13?'<#?."')B6.&'%C.'%1&)'#,<&%B6#/0)%')%/)&1>)$1//%=4#)'1),12$"#//)*XT*XX)
=%44%1&?$.".2#'#")99:/)'1)316")=%'/)$#")>#%5<')1&).@#".5#)>%'<)&#54%5%=4#)41//)13)217#4).,,6".,-)
SY0)*ZV0)3.,%4%'.'%&5)99:)%&3#"#&,#)1&).)/%&54#),1&/62#"?5".7#)R!W()
[#/$%'#)&62#"16/).7@.&,#/0)99:)B6.&'%C.'%1&)6&31"'6&.'#4-)"#2.%&/)3.")3"12)/14@#7()Q1')1&4-)71)
,6""#&')>#%5<')B6.&'%C.'%1&)2#'<17/)3"#B6#&'4-)4#.7)'1)/#@#"#4-)"#76,#7)217#4).,,6".,-).')41>)=%'?
7#$'</0)=6')21/')13)'<#/#)'#,<&%B6#/)<.@#)=##&)7#@#41$#7)/$#,%L,.44-)31")>#%5<')B6.&'%C.'%1&).&7)
."#)'11),12$4#D)'1).$$4-)'1).,'%@.'%1&/)76"%&5)%&3#"#&,#()R%@#&)'<#)/-22#'"-)=#'>##&)>#%5<'/).&7)
<%77#&)/'.'#/)%&)2.'"%D)264'%$4%,.'%1&/0).,<%#@%&5)3./').&7).,,6".'#)B6.&'%C.'%1&)13)=1'<)>#%5<'/).&7)
.,'%@.'%1&/)%/),"6,%.4)31")#&<.&,%&5),12$6'.'%1&.4)#\,%#&,-).&7)$"#7%,'%1&).,,6".,-0)./)>#44)./)31")
%&31"2%&5)<."7>."#)7#/%5&()]%/)>1"F).%2/)'1).77"#//)'<#/#)'#,<&1415%,.4)5.$/)%&)'<#),6""#&')217#4)
,12$"#//%1&)4%'#".'6"#).&7).7@.&,#).,,6".'#).&7)#\,%#&'),12$"#//%1&)2#'<17/)31")99:/()
+&)'<%/)$.$#"O'<#)L"/')13).)'<"##?$."')/#"%#/O>#)4.-)'<#)316&7.'%1&/)13)99:),12$"#//%1&)>%'<%&)
'<#),4.//%,.4)3".2#>1"F)13),1&@#D)1$'%2%C.'%1&()N#)=#5%&)>%'<)'<#)$"1=4#2)13)>#%5<')B6.&'%C.'%1&)
.&7)./F^)_1>)/<1647)'<#)>#%5<'/)13).)217#4)=#)B6.&'%C#7)'1)2.D%2%C#)$"#7%,'%1&).,,6".,-)5%@#&).)
'."5#')217#4)/%C#)%&)=%'/`)N#)'<#&)$"1$1/#).)/'1,<./'%,)5".7%#&')./,#&'?'-$#).451"%'<2)'1)/14@#)'<%/)
!"#$"%&'(
) ) )
)
Z)
$"1=4#2)#D.,'4-).&7)#\,%#&'4-)$1/'?'".%&%&5O%&)2%&6'#/)31")=%44%1&?$.".2#'#")217#4/).&7)%&).)3#>)
<16"/)31")*XT*XX?=%44%1&?$.".2#'#")217#4/()G12$."#7)>%'<)'<#)"#,#&')E!aJ)3.2%4-)13).$$"1.,<#/)
SbTcV0)16").451"%'<2)/$#&7/)@%"'6.44-)C#"1)'%2#)1&).,'6.4)>#%5<')B6.&'%C.'%1&)1&,#)'<#)1$'%2.4)=%')
7#$'</)<.@#)=##&)7#'#"2%&#7()]%/)"#&7#"/)16")3".2#>1"F)/6%'.=4#).4/1)31")B6.&'%C%&5)%&'#"2#7%.'#)
.,'%@.'%1&/0)><#"#)'<#)B6.&'%C.'%1&)$"1,#76"#)26/')&1')%&'"176,#)/%5&%L,.&')7#4.-/)'1)'<#)%&3#"#&,#)
$%$#4%&#()E6")/#B6#4O!."')Z^)A,'%@.'%1&)J6.&'%C.'%1&O7%/,6//#/)'<%/)%&)7#'.%4()
2 PREVIOUS WORK
:17#4)B6.&'%C.'%1&),.&)=#)'".,#7)=.,F)'1)'<#)#."4-)>1"F)13)H.& <1 6,F #)# ' ). 4()S*dV0)><1)7#21&/'".'#7)
'<.')Y?=%')%&'#5#")."%'<2#'%,),.&)=#)6/#7)31")&#'>1"F)'".%&%&5).&7)%&3#"#&,#)>%'<16')/%5&%L,.&')41//)
13).,,6".,-():1"#)5#&#".44-0)B6.&'%C.'%1&?.>."#)'".%&%&5)8JAa;)S*bTZZV)%&'#5".'#/)'<#)B6.&'%C.'%1&)
$"1,#//)%&'1)'<#)'".%&%&5)$<./#)=-).441>%&5)'<#)217#4)'1).7.$')'1)'<#)"#76,#7)$"#,%/%1&)%&)>#%5<'/)
S*bTZXV).&7).,'%@.'%1&/)SZ*0)ZZV)=-)7#'#"2%&%&5)'<#)1$'%2.4)=%')7#$'<)S*c0)ZZV).&7)/'#$)/%C#)SZXV)=-)
=.,F?$"1$.5.'%1&0)>%'<)/12#)'#,<&%B6#/)#@#&).441>%&5)'<#)5".7%#&'/)'1)K1>)'<"165<)B6.&'%C.'%1&)
1$#".'1"/()E&#)/<1"',12%&5)13)JAa)2#'<17/)%/)'<.')217#4)'".%&%&5)&##7/)'1)=#)"#$#.'#7)31")7%P#"#&')
B6.&'%C#7)217#4)/%C#/).&7).,,6".,-0)"#&7#"%&5)'<#2)4#//)%7#.4)31")'<#)B6.&'%C.'%1&)13)4."5#)217#4/)
"#B6%"%&5)/6=/'.&'%.4),12$6'#).&7)'%2#)31")'".%&%&5()
:1"#)"#,#&'4-)$"1$1/#7)B6.&'%C.'%1&)'#,<&%B6#/)31")4.&56.5#).&7)@%/%1&)217#4/)31,6/)$"%2."%4-)1&)
".$%7)7#$41-2#&')13).4"#.7-)'".%&#7)217#4/)>%'<16')"#'".%&%&5)SeT*UV()]#/#).$$"1.,<#/)B6.&'%C#)
217#4)>#%5<'/)'1)fTe)1")Y)=%'/)31")%&'#5#"?."%'<2#'%,?1&4-)%&3#"#&,#)S*YV)><%4#)/#$.".'#4-)<.&74%&5)
16'4%#"),<.&&#4/)SZfV)1")6/%&5)2%D#7)=%')7#$'<)B6.&'%C.'%1&)SZZ0)**V)'1)%2$"1@#)'<#)B6.&'%C#7)217#4)
.,,6".,-()91//?.>."#)B6.&'%C.'%1&)'#,<&%B6#/)SZeTZdV)/##F)'1)2%&%2%C#).,,6".,-)41//)%&)B6.&'%C#7)
217#4/)=-),.4%=".'%&5)B6.&'%C.'%1&).&7)=%./#/)1&),.4%=".'%1&)7.'.()[.'.?3"##)B6.&'%C.'%1&)2#'<17/)
SZbTfXV).''#2$')'1)"#21@#)'<#)&##7)31")"#.4),.4%=".'%1&)7.'.)=-),.4%=".'%&5)'<#)7%/'"%=6'%1&)13)>#%5<'/)
%&/'#.7)SZbV)1")6/%&5)/-&'<#'%,)7.'.)%&)$4.,#)13)"#.4),.4%=".'%1&)7.'.)SZcV())
g1")99:),12$"#//%1&)%&)$."'%,64."0).)@."%.&')13)'<#)E$'%262)h".%&)i6"5#1&)8Ehi;).451"%'<2)Sf*V)
F&1>&)./)R!aJ)SYV)<./)=##&)$"1$1/#7)31")B6.&'%C.'%1&)13)*T*XX)=%44%1&)$.".2#'#")217#4/():1"#)
"#,#&')#D'#&/%1&/)'1)R!aJ)Sc0)*UV).77%'%1&.44-)%&,1"$1".'#)<.&74%&5)13)/#&/%'%@#)>#%5<'/)=-)/,.4%&5)
1")/%2$4-)=-)"#'.%&%&5)'<#)1"%5%&.4)>#%5<')@.46#/0)>%'<)1'<#").$$"1.,<#/)Sd0)*ZV).4/1)%&7#$#&7#&'4-)
%&,1"$1".'%&5)/%2%4.")%7#./()9.'#"0)>#)>%44)/##)'<.')16"),1&@#D)1$'%2%C.'%1&)31"264.'%1&)$"1@%7#/).)
7%/,%$4%&#7).$$"1.,<)'1)%&,1"$1".'%&5),<.&&#4)/#&/%'%@%'-).&7)/,.4#/)%&'1)'<#)B6.&'%C.'%1&)'./F()
3 QUANTIZATION FRAMEWORK
_#"#0)>#)6/#)'<#)'./F)13)&#D'?'1F#&)$"#7%,'%1&)%&)4.&56.5#)217#4%&5)./).)"6&&%&5)#D.2$4#()g1")16")
$6"$1/#/0)'<#)#&7?'1?#&7)2.$$%&5)13)%&$6')'1F#&)#2=#77%&5/)'1)$"#7%,'#7)&#D'?'1F#&)#2=#77%&5/)
7#L&#7)=-).)$"#'".%&#7)4.&56.5#)217#4)ī˜”),.&)=#)#D$"#//#7)%&)'<#)21/')5#&#".4)31"2)./)
)
ī˜¢= ī˜”(ī˜£) = ī˜”
(
ī˜£, ī˜¤
1
, ī˜¤
2
, . . . , ī˜¤
š‘
)
= ī˜”(ī˜£, ī˜¤
1
, ī˜¤
2
, . . . , ī˜¤
š‘
, ī˜„
1
, ī˜„
2
, . . . , ī˜„
š‘
)
8*;)
%&)><%,<)ī˜£ī˜¦ī˜§
š»Ć—šø
)7#&1'#/).)/#B6#&,#)13)ī˜Ø)'1F#&/0)#.,<)13)><%,<)"#/%7#/)%&)/12#)ī˜©?7%2#&/%1&.4)
#2=#77%&5)/$.,#0).&7)ī˜¢ī˜¦ī˜§
šæƗšø
0)#2=#77%&5/)13)ī˜Ø)$"#7%,'#7)&#D')'1F#&/()]#)ī˜Ŗ'<)=41,F)13)>#%5<')
2.'"%,#/)ī˜¤
š‘šš‘€+1
, . . . , ī˜¤
(š‘š+1)š‘€
).&7)=%./)@#,'1"/)ī˜„
š‘šš‘€+1
, . . . , ī˜„
(š‘š+1)š‘€
)j1%&'4-)$.".2#'#"%C#)'<#)ī˜Ŗ'<)
'".&/31"2#")=41,F0)><%,<)"#L&#/)'<#)#2=#77%&5/)$"176,#7)=-)'<#)(ī˜Ŗāˆ’1)'<)'".&/31"2#")=41,F()+&)
$".,'%,#0)99:)3".2#>1"F/)6/#7)%&)4.&56.5#)217#4%&5).4/1)"#B6%"#).&)#2=#77#")ī˜¤
0
ī˜¦ī˜§
šøƗš‘‰
).&7).)
$"#7%,'%1&)<#.7)ī˜¤
š‘+1
ī˜¦ī˜§
š‘‰ Ɨšø
)31")'".&/31"2%&5)=#'>##&)'1F#&/).&7)#2=#77%&5/0)=6')31")&1>0)>#)
31,6/)1&)'<#),12$"#//%1&)13)'".&/31"2#")=41,F)>#%5<'/)./)'-$%,.44-)71&#)%&)$"#@%16/)>1"F)SY0)c0)*ZV(
a1)5#').)/#&/#)13)'<#)&62=#")13)>#%5<')2.'"%,#/).&7)'<#%")/%C#/)%&).)'-$%,.4)4.&56.5#)217#40)'<#)*f)
=%44%1&?$.".2#'#")217#4)%&)'<#)E!a)3.2%4-)8E!a?*fh;),1&'.%&/)ī˜¬= 240)>#%5<')2.'"%,#/)%&)=41,F/)
13)ī˜­= 60)>%'<)#.,<)=41,F),12$"%/%&5)12ī˜©
2
)>#%5<'/)%&).&)#2=#77%&5)7%2#&/%1&)13)ī˜©= 5120()]#)
#2=#77#").&7)$"#7%,'%1&)<#.7)."#)$.".2#'#"%C#7)=-).)/<."#7)2.'"%D),1&'.%&%&5)ī˜®ī˜©)>#%5<'/0)><#"#)
'<#)@1,.=64."-)/%C#)ī˜® = 50272()Q1'#)'<.')#.,<)'".&/31"2#")=41,F).4/1),1&'.%&/)9ī˜©)=%./)$.".2#'#"/)
=6')76#)'1)'<#%")"#4.'%@#)/,.",%'-0)=%./)$.".2#'#"/),.&)=#),1226&%,.'#7)41//4#//4-).&7)/'%44)<.@#)4%''4#)
'1)&1)%2$.,')1&)'<#)1@#".44),12$"#//%1&)$#"31"2.&,#()
Q1'%1&.44-0)'<#)#4#2#&'/)13).)>#%5<')2.'"%D)ī˜¤)."#),1&'%&616/4-)@.46#7)/1)'<#-)"#B6%"#)B6.&'%C.'%1&)
31")#\,%#&'),1226&%,.'%1&)1")/'1".5#()G12$."#7)>%'<)@#,'1")B6.&'%C.'%1&).&7)4.''%,#)B6.&'%C.'%1&)
!"#$"%&'(
) ) )
)
f)
.$$"1.,<#/)SfZV0)/,.4.")B6.&'%C.'%1&)#&.=4#/)."%'<2#'%,)1$#".'%1&/)'1)=#)$#"31"2#7)1&)B6.&'%C.'%1&)
%&7%,#/)7%"#,'4-0)#4%2%&.'%&5)'<#)&##7)31").)/#$.".'#)7#B6.&'%C.'%1&)$"1,#//()]#)2%7?"%/#)6&%31"2)
/,.4.")B6.&'%C.'%1&)13).)>#%5<')ī˜Æ).').)=%'?7#$'<)13)ī˜°)=%'/).&7)/'#$)/%C#)ī˜±)5%@#/)6/)'<#)"#,1&/'"6,'%1&)
)
ī˜Æ
š‘ž
(
ī˜°, ī˜±
)
= ī˜±
ī˜²
clip
ī˜²
floor
ī˜²
ī˜±
āˆ’1
ī˜Æ
ī˜³
, āˆ’2
šµāˆ’1
, 2
šµāˆ’1
āˆ’1
ī˜³
+ 2
āˆ’1
ī˜³
, ī˜°= 0, 1, 2, . . .
8Z;)
.&7)ī˜Æ
š‘ž
(ī˜°, ī˜±) = ī˜Æ)%3)ī˜°= ī˜“)31")&1'.'%1&.4),1&@#&%#&,#()]#)$"1=4#2)13),12$"#//%&5)'<#)217#4)ī˜”)
&1>).216&'/)'1)7#'#"2%&%&5)'<#)1$'%2.4)=%')7#$'<)ī˜°).&7)'<#).//1,%.'#7)B6.&'%C.'%1&)/'#$)/%C#)ī˜±)31")
#.,<)>#%5<'()_1>#@#"0)%')>1647)=#)%2$".,'%,.4)'1)7#'#"2%&#).)/#$.".'#)(ī˜°, ī˜± ))31")#.,<)>#%5<')ī˜Æ)%&)
'<#)217#4)/%&,#)'<#),1/')13)/%5&.4%&5)'<#),<1%,#)13)(ī˜°, ī˜±))31")#.,<)1&#)>1647)3.")16'>#%5<)'<#)/.@%&5)
7#"%@#7)3"12)B6.&'%C.'%1&()a-$%,.44-0).)/%&54#)(ī˜°, ī˜±))$.%")%/)6/#7)'1)B6.&'%C#).)5"16$)13)>#%5<'/)8.&)
#&'%"#)2.'"%D)1")"1>/)1"),1462&/)'<#"#13;)%&)><%,<),./#)'<#),1/')13)/%5&.4%&5)(ī˜°, ī˜±)),.&)=#)=1"&#)
=-).)5"16$)13)B6.&'%C#7)>#%5<')$.".2#'#"/)./).)&#54%5%=4#)$#"?>#%5<')1@#"<#.7()
f(* h IT [EPTH ASSIGNMENT)
i6$$1/#)>#)>.&')'1),12$"#//)ī˜”)=-)B6.&'%C%&5)#.,<)2.'"%D)ī˜¤
š‘›
),1&'.%&%&5)ī˜µ
š‘›
)#4#2#&'/).,,1"7%&5)'1))
%'/)1>&)=%')7#$'<)ī˜°
š‘›
).&7)/'#$)/%C#)ī˜±
š‘›
āˆ—
(ī˜°
š‘›
)()_1>)/<1647)ī˜°
š‘›
)=#)7#,%7#7`)k165<4-)/$#.F%&50)>#%5<'/)
'<.')."#)21"#)/#&/%'%@#)'1)16'$6')7%/'1"'%1&)/<1647)=#).441''#7)21"#)=%'/)'1)l=.4.&,#)'<#)/,.4#/m)><%4#))
F##$%&5)'<#)'1'.4)&62=#")13)=%'/)6&7#").)5%@#&)217#4)=%')=675#'()E&#),.&)31"2.4%C#)'<%/)&1'%1&)=-)
#D$"#//%&5)'<#)B6.&'%C.'%1&)'./F).')<.&7)./)'<#)1$'%2%C.'%1&)$"1=4#2)
)
minimize ī˜¶(ī˜°
1
, . . . , ī˜°
š‘
) = ī˜·
š—
ī˜ø
ī˜”(ī˜£, ī˜¤
1
š‘ž
(ī˜°
1
, ī˜±
1
āˆ—
(ī˜°
1
)), . . . , ī˜¤
š‘
š‘ž
(ī˜°
š‘
, ī˜±
š‘
āˆ—
(ī˜°
š‘
))) āˆ’ī˜”(ī˜£)
ī˜ø
š¹
2
)
subject toī˜¹ī˜ŗ(ī˜°
1
, . . . , ī˜°
š‘
) = ī˜» ī˜µ
š‘›
ī˜°
š‘›
āˆ’
ī˜²
ī˜» ī˜µ
š‘›
š‘
š‘›=1
ī˜³
ī˜¼= 0
š‘
š‘›=1
%&)><%,<)ī˜¼)7#&1'#/).)6/#"?/$#,%L#7).@#".5#)217#4)=%')7#$'<)8=%')".'#;()]%/)$"1=4#2)%/)"#2%&%/,#&')
13)1$'%2.4)"#/16",#).441,.'%1&0)><#"#)'<#)1=j#,'%@#)%/)'1)2.D%2%C#)/12#)6'%4%'-)81")2%&%2%C#)16'$6')
7%/'1"'%1&)%&)16"),./#;)=-)1$'%2.44-)/$#&7%&5)71>&).)5%@#&)=675#')8'<#)'1'.4)&62=#")13)=%'/;()+&)'<%/)
/#,'%1&).&7)&#D'0)>#)$"1@%7#)%&/%5<'/)%&'1)$"1=4#2)8f;).&7)16")$"1$1/#7).$$"1.,<n)/##)A451"%'<2)*()
a1).$$4-)'<#)2.,<%&#"-)13)&62#"%,.4)1$'%2%C.'%1&)'1)8f;0)>#)>%44)"#4.D)'<#)7%/,"#'#),1&/'".%&')1&)'<#)
=%')7#$'</)ī˜°
1
, . . . , ī˜°
š‘
)><%4#)/14@%&5)'<#)$"1=4#2).&7)"16&7)'<#)/146'%1&)ī˜°
1
āˆ—
, . . . , ī˜°
š‘
āˆ—
)'1)'<#)&#."#/')
%&'#5#"/).3'#")'<#-)<.@#)=##&)1='.%&#7()9#')6/)>"%'#)'<#)9.5".&5%.&)13)8f;)./)ī˜½(ī˜°
1
, . . . , ī˜°
š‘
, ī˜®) =
ī˜¶(ī˜°
1
, . . . , ī˜°
š‘
) + ī˜®ī˜ŗ(ī˜°
1
, . . . , ī˜°
š‘
)0)><#"#)ī˜®)%/).)76.4)@."%.=4#).//1,%.'#7)>%'<)'<#)#B6.4%'-),1&/'".%&')
13)8f;()[%P#"#&'%.'%&5)ī˜½)>%'<)"#/$#,')'1)ī˜°
1
, . . . , ī˜°
š‘
, ī˜®)5%@#/)6/)'<#)L"/'?1"7#")1$'%2.4%'-),1&7%'%1&/)
)
1
ī˜µ
1
ī˜¾ī˜¶(ī˜°
1
āˆ—
, ī˜°
2
āˆ—
, . . . , ī˜°
š‘
āˆ—
)
ī˜¾ī˜°
1
= ī˜æī™€ī˜æī™€ī˜æ =
1
ī˜µ
š‘
ī˜¾ī˜¶(ī˜°
1
āˆ—
, ī˜°
2
āˆ—
, . . . , ī˜°
š‘
āˆ—
)
ī˜¾ī˜°
š‘
= āˆ’ī˜®, ī˜ŗ(ī˜°
1
āˆ—
, . . . , ī˜°
š‘
āˆ—
) = 0
8e;)
/1)$"1=4#2)8f;),.&)=#)/14@#7)=-).4'#"&.'#4-)6$7.'%&5)'<#)=%')7#$'</)ī˜°
1
, . . . , ī˜°
š‘
)8$"%2.4)@."%.=4#/;)
.&7)'<#)'".7#?1P)ī˜®)876.4)@."%.=4#;)6&'%4).44)1$'%2.4%'-),1&7%'%1&/)."#)2#'()+&)>1"7/0)'<#)1$'%2.4%'-)
,1&7%'%1&/)."#)"#.,<#7)1&,#)'<#)2."5%&.4)7#,"#./#)%&)'<#)16'$6')7%/'1"'%1&)3"12).&)%&L&%'#/%2.4)=%')
%/)#B6.4).,"1//)4.-#"/).')āˆ’ī˜®).&7)1&,#)>#)<.@#).//%5&#7)#D.,'4-)ī˜¼)=%'/)$#")>#%5<')1&).@#".5#()
Algorithm 1. CVXQ: Convex Optimization for Weight Quantization
1 Input: f (ā€†ā‹…ā€†,Ī˜
1
,ā€Š.ā€Š.ā€Š.ā€Š,Ī˜
N
) (model), {X} (calibration set), R (target bit rate), B
max
(max bit depth)
2
Output: Ī˜
1
q
,ā€Š.ā€Š.ā€Š.ā€Š,Ī˜
N
q
(quantized weights), B
1
*
,ā€Š.ā€Š.ā€Š.ā€Š,B
N
*
(bit depths), S
1
,ā€Š.ā€Š.ā€Š.ā€Š,S
N
(weight scales)
3
Initialize: U ā† pca_basis ({X}) āˆˆ ā„
EƗE'
, S ā† sub_sample (I
LƗL
) āˆˆ ā„
LƗL'
4
B
n
ā† āˆž, Vā€Š ā† 10
"6
, G
n
2
ā† 0, S
n
ā† std(Ī˜
n
), Ī˜
n
q
ā† Ī˜
n
, B
n
q
ā† B
n
, X
&
n
ā† 0 for n in 1,ā€Š.ā€Š.ā€Š.ā€Š,N
5
for iter in 1,ā€Š.ā€Š.ā€Š.ā€Š,max_iter do
6
for X in minibatch do
7
Z,X
1
,ā€Š.ā€Š.ā€Š.ā€Š,X
N
ā† f (X,Ī˜
1
q
,ā€Š.ā€Š.ā€Š.ā€Š,Ī˜
N
q
,B
1
q
,ā€Š.ā€Š.ā€Š.ā€Š,B
N
q
)
8
X
&
n
ā† (1'ā€“ Ī±)X
&
n
+ (Ī±/L)1
T
X
n
for n in 1,ā€Š.ā€Š.ā€Š.ā€Š,N
9
Ī“
1
,ā€Š.ā€Š.ā€Š.ā€Š,Ī“
N
ā† autograd(S
T
ZU,ā€ŠĪ˜
1
q
,ā€Š.ā€Š.ā€Š.ā€Š,ā€ŠĪ˜
N
q
)
10
G
n
2
ā€Š ā† (1 ā€“ Ī±)G
n
2
+ (Ī±/P
n
)ā€Š trace (Ī“
n
T
Ī“
n
) for n in 1,ā€Š.ā€Š.ā€Š.ā€Š,N
11
for _ in 1,ā€Š.ā€Š.ā€Š.ā€Š,10 do
12
B
n
ā† clamp(
1
2
log
2
(G
n
2
S
n
2
/V),0,ā€ŠB
max
) for n in 1,ā€Š.ā€Š.ā€Š.ā€Š,N
13
Vā€†ā€Šā€† ā† V + Ī² (sum(P
n
B
n
) āˆ’ (sum(P
n
)) R)
14 Ī˜
n
q
ā† compand_quantize(Ī˜
n
,B
n
,S
n
), B
n
q
ā€Šā€Š ā† B
n
+ (Ī˜
n
q
āˆ’ Ī˜
n
)X
&
n
for n in 1,ā€Š.ā€Š.ā€Š.ā€Š,N
!"#$"%&'(
) ) )
)
e)
i%&,#)'<#)B6.&'%C.'%1&)36&,'%1&)8Z;)%/),1&/'.&').421/')#@#"-><#"#0).)&.%@#),12$6'.'%1&)13)'<#)$."'%.4)
7#"%@.'%@#/)13)ī˜¶)>%'<)"#/$#,')'1)ī˜°
1
, . . . , ī˜°
š‘
)6/%&5)'<#),<.%&)"64#)13)7%P#"#&'%.'%1&)71#/)&1')$"1@%7#)
.)6/#364)7%"#,'%1&)31")7#/,#&'()A)>#44?F&1>&)"#/64')3"12)".'#T7%/'1"'%1&)'<#1"-)SffV)%/)'<.')31").&-)
".&712)@."%.=4#)13)L&%'#)@."%.&,#0)B6.&'%C.'%1&)#""1")7#,"#./#/)=-)<.43)>%'<)#@#"-).77%'%1&.4)=%').')
.)/6\,%#&'4-)<%5<)=%')7#$'<():1"#)/$#,%L,.44-)'1)16")$"1=4#20)>#),.&)>"%'#)8A$$#&7%D)A;)
āˆ’
1
2 ln 2
ī˜¾ī˜¶
(
ī˜°
1
, . . . , ī˜°
š‘
)
ī˜¾ī˜°
š‘›
ī™ī˜·
š—
ī™‚
ī˜¾ī˜”(ī˜¤
1
š‘ž
(ī˜°
1
), . . . , ī˜¤
š‘
š‘ž
(ī˜°
š‘
))
ī˜¾ī˜¤
š‘›
ī˜æī™ƒ
š‘›
ā€Šš‘ž
(ī˜°
š‘›
)
ī™‚
š¹
2
ī™ī˜µ
š‘›
ī™„
š‘›
ī™…
š‘›
2
ī™†
š‘›
2
2
āˆ’2šµ
š‘›
ī™‡
ī™ˆ
ī™ˆ
ī™‰
ī™ˆ
ī™ˆ
ī™Š
= š‘‘
š‘›
(šµ
š‘›
)
(5)
%&)><%,<)ī˜¤
š‘›
š‘ž
(ī˜°
š‘›
) = ī˜¤
š‘›
š‘ž
(ī˜°
š‘›
, ī˜±
š‘›
āˆ—
(ī˜°
š‘›
)))31")="#@%'-0)ī™…
š‘›
2
).&7)ī™†
š‘›
2
)"#$"#/#&')'<#)@."%.&,#/)13)'<#)#4#2#&'/)
13)ī˜¾
ššÆ
š‘›
ī˜”(ī˜£, ī˜¤
1
, . . . , ī˜¤
š‘
)0).&7)13)ī˜¤
š‘›
0)"#/$#,'%@#4-0).&7)ī™„
š‘›
)%/).)B6.&'%C.'%1&),1#\,%#&')'<.')7#$#&7/)
1&)'<#)7%/'"%=6'%1&)13)>#%5<'/0)>%'<)ī™„
š‘›
= 1.42)31")R.6//%.&0)0.72)31")9.$4.,#0)#',()SffV()A//62%&5)
'<.')>#%5<'/)."#)7%/'"%=6'#7)/%2%4."4-).,"1//)4.-#"/)>%'<)ī™„
1
= ī˜æī™€ī˜æī™€ī˜æ = ī™„
š‘
0)3.,'1"/)ī™„
š‘›
)8.41&5)>%'<)'<#)
541=.4)3.,'1")āˆ’
1
2 ln 2
;),.&)=#)"#21@#7)'<#).=1@#)#D$"#//%1&)>%'<16').P#,'%&5)'<#)/146'%1&)13)8f;()
G16$4#7)>%'<)'<#).=1@#),41/#7?31"2)#D$"#//%1&)31")'<#)$."'%.4)7#"%@.'%@#/0)1$'%2.4%'-),1&7%'%1&/)8e;)
4#&7)'<#2/#4@#/)&.'6".44-)'1)76.4)./,#&'?'-$#)2#'<17/)31")/14@%&5)$"1=4#2)8f;()]#)%7#.)=#<%&7)76.4)
./,#&')SfeV)%/)'1).4'#"&.'#4-)6$7.'#)'<#)$"%2.4)@."%.=4#/)ī˜°
1
, . . . , ī˜°
š‘
0).&7)'<#)76.4)ī˜®0)<147%&5)1&#)/#')
LD#7)><%4#)6$7.'%&5)'<#)1'<#"()A3'#")%&%'%.4%C%&5)ī˜°
1
= ī˜°
2
= ī˜æī™€ī˜æī™€ī˜æī˜°
š‘
= ī˜“0).&7)ī˜®)'1).)/2.44)$1/%'%@#)
&62=#"0)'<#)=%')7#$'</)8$"%2.4;).&7)'".7#?1P)876.4;)."#)6$7.'#7).')#@#"-)%'#".'%1&)./)
ī˜°
š‘›
ī™‹clamp
ī™Œ
1
2
log
2
ī™Œ
ī™…
š‘›
2
ī™†
š‘›
2
ī˜®
ī™
, 0, ī˜°
max
ī™
for ī™Ž= 1, . . . , ī˜¬
ī˜®ī™€ī˜¹ī™‹ī˜® + ī™
ī˜²
ī˜» ī˜µ
š‘›
ī˜°
š‘›
š‘
š‘›=1
āˆ’
ī˜²
ī˜» ī˜µ
š‘›
š‘
š‘›=1
ī˜³
ī˜¼
ī˜³
(6)
%&)><%,<)ī™)7#&1'#/).)/'#$)/%C#)31")76.4)6$7.'#()N%'<)ī™…
š‘›
2
).&7)ī™†
š‘›
2
)LD#70)76.4)./,#&')/'#$/)(6)).4>.-/)
,1&@#"5#)>%'<%&).)3#>)%'#".'%1&/)8tol ī™10
āˆ’6
bit;)31").)/6%'.=4-),<1/#&)/'#$)/%C#()g%56"#)*)%446/'".'#/)
'<#),1&7%'%1&/)31")1$'%2.4)=%')7#$'</).').&-)5%@#&)@.46#)13)'<#)76.4)@."%.=4#()W$1&),1&@#"5#&,#0)ī˜°
š‘›
)
%/)"16&7#7)'1).&)%&'#5#").&7)6/#7)'1)B6.&'%C#)'<#)>#%5<')2.'"%D)ī˜¤
š‘›
)8A451"%'<2)*0)4&)**T*e;()
g1")'<#)$"%2.4)6$7.'#)%&)8d;0)1&#)F#-)B6#/'%1&)%/)<1>)'<#)5".7%#&')@."%.&,#)ī™…
š‘›
2
O'<#)@."%.&,#)13)'<#)
#4#2#&'/)13)ī˜¾
ššÆ
š‘›
ī˜”(ī˜£, ī˜¤
1
, . . . , ī˜¤
š‘
)O/<1647)=#) .,,6264.'#7()A,,6264.'%&5)'<#/#) @."%.&,#/) .,"1//)
'<#)#&'%"#),.4%=".'%1&)/#').')#@#"-)%'#".'%1&)%/)$"1<%=%'%@#4-)#D$#&/%@#)5%@#&)'<#)7%2#&/%1&.4%'-)13)'<#)
16'$6')ī˜”(ī˜£) ī˜¦ī˜§
šæƗšø
).&7)'<#),1/')13)=.,F?$"1$.5.'%&5)#.,<)13)%'/)#4#2#&'/)'<"165<)ī˜”()a1)1@#",12#)
'<%/)7%\,64'-0)>#),.&)$#"31"2)!GA)1&)ī˜”(ī˜£)).41&5)'<#)#2=#77%&5)7%2#&/%1&)813)ī˜©;).&7)/6=?/.2$4#)
.41&5)'<#)'1F#&)7%2#&/%1&)813)ī™;0).&7).,,6264.'#)@."%.&,#/)=-)=.,F?$"1$.5.'%&5)1&4-).)2%&%=.',<)
13),.4%=".'%1&)#D.2$4#/)#@#"-)3#>)%'#".'%1&/^)
ī™…
š‘›
2
ī™‹(1 āˆ’ī™‘)ī™…
š‘›
2
+ ī™‘ī˜¹ī˜·
š—āˆ¼batch
ī™‚
ī˜¾ī™’
š‘‡
ī˜”(ī˜¤
1
š‘ž
(ī˜°
1
), . . . , ī˜¤
š‘
š‘ž
(ī˜°
š‘
))ī™“
ī˜¾ī˜¤
š‘›
ī™‚
š¹
2
for ī™Ž= 1, . . . , ī˜¬
(7
%&)><%,<)ī™‘)7#&1'#/)'<#)4#."&%&5)".'#0).&7)ī™’
š‘‡
).&7)ī™“)"#$"#/#&')'<#)!GA)$"1j#,'%1&).&7)/6=?/.2$4%&5)
Figure 1: Optimal bit depths. Consider two weight matrices whose distortion functions are given by š‘‘
1
and
š‘‘
2
,
where
š‘‘
š‘›
(šµ
š‘›
) = šŗ
š‘›
2
š‘†
š‘›
2
2
āˆ’2šµ
š‘›
. For any given value of the dual variable
š‘‰
, optimal bit depths
šµ
1
āˆ—
and
šµ
2
āˆ—
are
found where the derivative of š‘‘
1
and
š‘‘
2
is
āˆ’š‘‰ , respectively (left). ?ese points correspond to the intersections
between š‘‰
and
āˆ’š‘‘
š‘›
ā€²
= (2 ln 2)ā€Šš‘‘
š‘›
(center). Integerized bit depths occur on the rounded curves
āˆ’š‘‘
ī˜©
š‘›
ā€²
(right).
10
1
10
0
10
ā€“1
0 1 2 3 4
Bit depth (šµ)
Derivative of distortion
4
3
2
1
0
0 1 2 3 4
Normalized distortion
Bit depth (šµ)
š‘‘
2
š‘‘
1
Feasible
region
š‘‰ = 1
10
1
10
0
10
ā€“1
0 1 2 3 4
Derivative of distortion
Bit depth (šµ)
āˆ’š‘‘
2
ā€²
āˆ’š‘‘
1
ā€²
š‘‰ = 1
š‘‰ = 4
šµ
1
āˆ—
šµ
2
āˆ—
šµ
2
āˆ—
šµ
1
āˆ—
š‘‰ = 1
š‘‰ = 4
šµ
2
āˆ—
āˆ’š‘‘
2
ā€²
āˆ’š‘‘
ī˜„
2
ā€²
!"#$"%&'(
) ) )
)
U)
1$#".'1"/0)"#/$#,'%@#4-()+&)$".,'%,#0)>#)36"'<#").,,#4#".'#)@."%.&,#).,,6264.'%1&)=-),-,4%&5)'<"165<)
!GA),1#\,%#&'/).&7)=.,F?$"1$.5.'%&5)1&4-)1&#),1#\,%#&')$#")/.2$4#)%&)#@#"-)=.',<()
f(Z i TEP iIZES AND hIASES)
i6$$1/#)&1>)'<#)>#%5<')2.'"%,#/)ī˜¤
1
, . . . , ī˜¤
š‘
)."#)'1)=#).//%5&#7)=%')7#$'</)ī˜°
1
, . . . , ī˜°
š‘
)8><%,<)."#)
&1')&#,#//."%4-)1$'%2.4(;)E6")&#D')B6#/'%1&)%/^)_1>)/<1647)'<#)B6.&'%C.'%1&)/'#$)/%C#)ī˜±
š‘›
)=#)7#,%7#7)
5%@#&)=%')7#$'<)ī˜°
š‘›
`)+&)'<#)"16&7?'1?&#."#/')/,<#2#)8kaQ0)g%56"#)Z0)4#3';0)ī˜±
š‘›
)%/).4>.-/),<1/#&)/6,<)
'<.')'<#)B6.&'%C#"M/)2
šµ
š‘›
)/'#$/)j6/'),1@#")'<#)#&'%"#)".&5#)13)>#%5<')@.46#/0).&7)'<%/)/'#$)/%C#)<.4@#/)
./)ī˜°
š‘›
)%/)%&,"#./#7)=-)1&#()]#/#),"%'#"%.)1$'%2%C#)/'#$)/%C#/)><#&)>#%5<'/)."#)7%/'"%=6'#7)6&%31"24-)
.,"1//).)".&5#).&7)'<#)1=j#,'%@#)%/)'1)2%&%2%C#)7%/'1"'%1&)%&)B6.&'%C#7)>#%5<'/()_1>#@#"0)7%P#"#&')
,1&/%7#".'%1&/).$$4-)%3)16")1=j#,'%@#)%/)'1)2%&%2%C#)7%/'1"'%1&)%&)'<#)L&.4)#2=#77%&5/)./)%&)8*;()
+&)99:/0)'<#)#4#2#&'/)13).)>#%5<')2.'"%D)'-$%,.44-)#D<%=%').)<#.@-?'.%4#7)7%/'"%=6'%1&)SZfV0)><%,<)
"#&7#"/)$."'%'%1&%&5)'<#)#&'%"#)>#%5<')".&5#)%&'1)2
šµ
š‘›
)#B6.4)/'#$/)/6=?1$'%2.4)#/$#,%.44-).')41>#")=%')
7#$'</)Sff0)fUV()E&#).4'#"&.'%@#)'1),12$6'.'%1&.44-)#D$#&/%@#)941-7T:.D)B6.&'%C.'%1&)Sfd0)fbV)%/)
,12$.&7#7)B6.&'%C.'%1&)SfYV0)><#"#)>#%5<'/)."#)6&%31"24-)B6.&'%C#7)%&)/12#)/%521%7)712.%&n)/##)
g%56"#)Z0),#&'#").&7)"%5<';()i%&,#)'<#)16'$6')#2=#77%&5/)."#)9.$4.,#)7%/'"%=6'#70)1&#)5117),<1%,#)
13),12$.&7%&5)36&,'%1&)31").)>#%5<')2.'"%D)ī˜¤
š‘›
)>%'<)C#"1)2#.&).&7)@."%.&,#)ī™†
2
)%/)5%@#&)=-)SffV^)
)
ī˜Æ
š‘
(ī™†) =
1 + sgn(ī˜Æāˆ’ī™”)
2
exp
ī™•
āˆ’
ī™–
2 abs(ī˜Æāˆ’ī™”)
3ī™†
ī™—
ī˜¦(0, 1), ī˜Æī˜¦(āˆ’ī˜“, ī˜“),
8Y;)
'<.')%/0)'<#)&1"2.4%C#7),6=%,)"11')13)'<#),6264.'%@#)7%/'"%=6'%1&)36&,'%1&)31").)9.$4.,#)7%/'"%=6'%1&)
13)C#"1)2#.&).&7)@."%.&,#)ī™†
2
()]#),12$.&7#7)>#%5<'/)ī˜Æ
š‘
),.&)'<#&)=#)B6.&'%C#7)6/%&5)'<#)"16&7?
'1?&#."#/')/,<#2#)%&)'<#)".&5#)(0, 1)()]#)B6.&'%C.'%1&)%&7%,#/)."#)&1>)/%5&.4#7).41&5)>%'<)'<#)=%')
7#$'<)ī˜°).&7)/,.4#)ī™†)31")#\,%#&')7#B6.&'%C.'%1&)@%.)411F6$)'.=4#/O&1)&62#"%,.4)#@.46.'%1&)13)'<#)
%&@#"/#),12$.&7%&5)36&,'%1&)&##7)=#)$#"31"2#7()+&)$".,'%,#0)ī™†)%/)'"#.'#7)./).)'6&.=4#)$.".2#'#").&7)
"#L&#7)#\,%#&'4-)1&).),1."/#)*[)5"%7)./).)$1/'?$"1,#//%&5)/'#$)1&,#)A451"%'<2)*)<./),12$4#'#7()
J6.&'%C.'%1&)%&@."%.=4-),.6/#/)/2.44)7#'#"2%&%/'%,)7%P#"#&,#/)'1)."%/#)=#'>##&)'<#)1"%5%&.4)8&1&?
B6.&'%C#7;)ī˜¤).&7)B6.&'%C#7)ī˜¤
š‘ž
)>#%5<'/()N<%4#)'<#/#)#""1"/)."#)13'#&)217#4#7)./)C#"1?2#.&)&1%/#)
%&)'<#1"#'%,.4).&.4-/#/0)'<#-)."#)/#4712)C#"1?2#.&)%&)$".,'%,#).&7),.&)4#.7)'1)/-/'#2.'%,.44-)=%./#7)
217#4)16'$6'0)><%,<)/%5&%L,.&'4-)"#76,#/)$"#7%,'%1&).,,6".,-()a1),12$#&/.'#)31")'<#/#)&1&?C#"1)
7%P#"#&,#/0)>#),12$6'#)&#>)=%./)@#,'1"/)31")'<#)217#4)./)ī˜„
š‘›
š‘ž
ī™‹ī˜„
š‘›
+ (ī˜¤
š‘›
š‘ž
āˆ’ī˜¤
š‘›
))X
!
n
)#.,<)'%2#)'<#)
2.'"%D)ī˜¤
š‘›
)%/)B6.&'%C#7()_#"#0)X
!
n
)%/).)@#,'1")13)"6&&%&5)2#.&/)13)'<#)%&$6'/)'1)'<#)ī™Ž'<)4.-#"0)><%,<)
%/).,,6264.'#7)76"%&5)'<#)31">."7)$.//)%&).)2.&&#").&.41516/)'1)'<#).,,6264.'%1&)13)ī™…
š‘›
2
)76"%&5)'<#)
=.,F>."7)$.//()]#),1""#,'#7)=%./#/)ī˜„
š‘›
š‘ž
)."#)'<#&)6/#7)><#&#@#")'<#),1""#/$1&7%&5)B6.&'%C#7)>#%5<')
2.'"%,#/)ī˜¤
š‘›
š‘ž
)."#)6/#7)76"%&5)5".7%#&')@."%.&,#).,,6264.'%1&).&7)%&3#"#&,#()
f(f : AT R I X !ARTITIONING)
k.'<#")'<.&)B6.&'%C#)1$'%2.44-).')'<#)5".&64."%'-)13).)><14#)>#%5<')2.'"%D0)>#),.&)/$4%')#.,<)2.'"%D)
Figure 2: Companding quantization. Illustrated for a 4-bit quantizer (16 bins) on Gaussian weights with a
mean of zero and a variance of one. Uniform quantization across the entire range of weight values (left) leads
to unduly large quantization bins (hence errors) for more probable values. Companding the weights to the range
(0,1) prior to uniform quantization (middle) reduces quantization errors for more probable weights (right).
1
0
ā€“6 ā€“3 0 3 6
4
2
0
ā€“2
ā€“4
0.2
0.1
0
ā€“4 ā€“2 0 2 4
Probability
Quantized value
Companded value
4
2
0
ā€“2
ā€“4
ā€“4 ā€“2 0 2 4
Probability
Compand-quantized value
0.2
0.1
0
Original weight
Original weight
Original weight
!"#$"%&'(
) ) )
)
d)
%&'1).),144#,'%1&)13)"1>)1"),1462&)2.'"%,#/0).//%5&%&5)1$'%262)=%')7#$'<).&7)/'#$)/%C#)'1)#.,<)/6=?
2.'"%D()+&)'<%/),./#0)'<#)'1'.4)&62=#")13)2.'"%,#/)ī˜¬)%&)8f;),.&)=#)"#%&'#"$"#'#7)./)'<#)'1'.4)&62=#")
13)/6=?2.'"%,#/),144#,'#7).,"1//).44)4.-#"/0)>%'<)'<#)B6.&'%'%#/)ī˜°
š‘›
0)ī˜±
š‘›
).&7)ī˜µ
š‘›
0)/%2%4."4-)%&'#"$"#'#7)
./)'<#)=%'?7#$'<0)/'#$)/%C#).&7)&62=#")13)#4#2#&'/)13)'<#)ī™Ž'<)/6=?2.'"%D()Q1'#)'<.')B6.&'%C%&5).')'<#)
5".&64."%'-)13)"1>)1"),1462&)/6=?2.'"%,#/)71#/)&1')&1'%,#.=4-)%&,"#./#)'<#),12$4#D%'-)13)@."%.&,#)
.,,6264.'%1&)./)'<#)/.2#)/B6."#7)5".7%#&'/),12$6'#7)@%.)=.,F?$"1$.5.'%1&),.&)=#).@#".5#7)$#")
/6=?2.'"%D)'1)$"176,#)'<#),1""#/$1&7%&5)/6=?2.'"%D)@."%.&,#/()_#"#0)>%'<16')41//)13)5#&#".4%'-0)>#)
.//62#)'<.')#.,<)2.'"%D)%/)/$4%')%&'1).),144#,'%1&)13),1462&)2.'"%,#/()
g1").)>#%5<')2.'"%D)ī˜¤)>%'<)5".7%#&').&7)>#%5<')@."%.&,#/)ī™…
2
).&7)ī™†
2
0)><1/#)$#"?,1462&)@."%.&,#/)
."#)ī™…
1
2
, . . . , ī™…
š‘
2
).&7)ī™†
1
2
, . . . , ī™†
š‘
2
0)"#/$#,'%@#4-0)'<#)'<#1"#'%,.4)5.%&)8.@#".5#)=%')7#$'<)/.@%&5/;)3"12)
$."'%'%1&%&5),.&)=#)#D$"#//#7)./)
)
ī™˜
partition
=
1
2
ī™™
log
2
ī˜²
ī™…
2
ī™†
2
ī˜³
āˆ’
1
ī˜¬
ī™š
log
2
ī˜²
ī™…
š‘›
2
ī™†
š‘›
2
ī˜³
š‘
š‘›=1
ī™›
,)
8c;)
.)&1&?&#5.'%@#)B6.&'%'-)./).)7%"#,')"#/64')13)o#&/#&M/)%&#B6.4%'-()]%/)B6.&'%'-)"#$"#/#&'/)'<#)=%'?".'#)
8.@#".5#)=%'?7#$'<;)/.@%&5/)><#&)'<#)ī™Ž'<),1462&)%/).//%5&#7)ī˜°
š‘›
=
1
2
log
2
(ī™…
š‘›
2
ī™†
š‘›
2
) + ī˜°)=%'/)31")/12#)
ī˜°0),12$."#7)'1).//%5&%&5).)6&%31"2)=%')7#$'<)ī˜°
š‘›
=
1
2
log
2
(ī™…
2
ī™†
2
) + ī˜°)=%'/).,"1//).44),1462&/)6&7#")
'<#).//62$'%1&)'<.')'<#)>#%5<'/)13)%'/)ī˜¬),1462&/)."#)%7#&'%,.44-)7%/'"%=6'#7()g%56"#)f)84#3';)$41'/)'<#)
$#"?2.'"%D)=%'?7#$'<)/.@%&5/)7#"%@#7)=-)$."'%'%1&%&5)'<#)8Q, K, V).&7 O;)$"1j#,'%1&)2.'"%,#/)13)'<#)
E!a?*ZU2)217#4)=-)"1>/)1"),1462&/()]#)$#"?,<.&&#4)="#.F71>&)13)'<#)/.@%&5/)%/).4/1)/<1>&()
+&).77%'%1&)'1)$"%2."-)/$4%''%&5)13)2.'"%,#/)%&'1),1462&/0)>#)2.-)>.&')'1)36"'<#")/$4%')#.,<),1462&)
%&'1).)LD#7)&62=#")13)5"16$/)13)>#%5<')#4#2#&'/)5%@#&)'<#)=#&#L'/)13)"1>)$."'%'%1&%&5)./)>#44()a1)
/$4%')'<#),1462&/)13).)>#%5<')2.'"%D)ī˜¤ī˜¦ī˜§
š‘Ć—š‘
0)1&#),.&)/%2$4-),46/'#")%'/)"1>/)%&'1)ī˜­)/%2%4."4-)
/%C#7)5"16$/)=./#7)1&)'<#%")"1>)@."%.&,#/)ī™…
1
2
ī™†
1
2
, . . . , ī™…
š‘
2
ī™†
š‘
2
()h-).$$4-%&5)'<#)/.2#),46/'#"%&5)'1).44)
,1462&/)13).)2.'"%D0)>#),.&)/%5&.4)'<#),46/'#")%&7#D)31")#.,<)"1>)6/%&5)ī™œlog
2
ī˜­ī™)=%'/O.)&#54%5%=4#)
$#"?>#%5<')1@#"<#.7)31").)'-$%,.4)&62=#")13),1462&/)%&).)4."5#)2.'"%D).&7)'<#)&62=#")13)5"16$/)
6/#7)%&)$".,'%,#()N#)%446/'".'#)$."'%'%1&%&5).&7)/6=7%@%/%1&)%&)g%56"#)e()a.=4#)Z)8,;)4%/'/)'<#).,,6".,-)
13)E!a)217#4/)B6.&'%C#7)6/%&5)7%P#"#&')&62=#"/)13)"1>),46/'#"/0)7#21&/'".'%&5)'<.'),46/'#"%&5)%&)
.77%'%1&)'1)$."'%'%1&%&5)%/),"6,%.4)31")%2$"1@#7)217#4).,,6".,-()
4 QUANTIZATION EXPERIMENTS
a1)/'67-)'<#)=#<.@%1")13)B6.&'%C#7)99:/)1&)'-$%,.4)4.&56.5#)'./F/0)>#).$$4-)GHIJ)8A451"%'<2)*;)
'1):#'.M/)E$#&)!"#'".%&#7)a".&/31"2#")8E!a;)SfcV).&7)94.2.)Z)SeXV)3.2%4%#/)13)4.&56.5#)217#4/)
8<655%&53.,#)@#"/%1&/;)1&)4.&56.5#)217#4%&5).&7)2.'<#2.'%,/)$"1=4#2)/14@%&5)'./F/()N#) /16",#)
,.4%=".'%1&)#D.2$4#/)3"12)'<#)'".%&%&5)/$4%')13)'<#)Ge)7.'./#')Se*V)31")=1'<)'./F/).&7)@.4%7.'#)1&)'<#)
'#/')/$4%')13)N%F%a#D'Z)7.'./#')SeZV)31")4.&56.5#)217#4%&5).&7)Ri:Yp)SefV)31")2.'<)$"1=4#2/()A)
&62=#")13)/'67%#/)1&)<-$#"$.".2#'#")'6&%&5)."#).4/1),1&76,'#7)6/%&5)'<#)Ge)7.'./#'()
Language Modeling.)A/)16")2.%&)/#')13)#D$#"%2#&'/0)>#)B6.&'%C#):#'.M/)E!a).&7)94.2.)Z)217#4/)
'1)f).&7)e)=%'/0).&7)2#./6"#)'<#)$#"31"2.&,#)13)'<#)B6.&'%C#7)217#4/)6/%&5)$#"$4#D%'-0).)/'"%&5#&')
.,,6".,-)2#'"%,()N#)6/#)"1>),46/'#"/)>%'<),46/'#")/%C#)13)U*Z)31")E!a)8bdY)31")E!a?*ZU:;).&7)ZUd)
Figure 3: Bit savings from partition. Plotted for OPT-125m. Bit savings are derived by partitioning weight
matrices into a collection of row or column matrices and assigning each sub-matrix its own bit depth. Savings
diļ¬€er across the (š‘„
,
š¾
,
š‘‰
and
š‘‚) projection matrices of the modelā€™s 12 transformer blocks (left). Per-column
(middle) and per-row (right) bit savings can sometimes dip below zero but are always positive on average.
4
3
2
1
0
0 1 2 3 4 5 6 7 8 9 1011
Per-matrix bit savings
Transformer block index
)
Row
Column
Per-column bit savings
0 192 384 576 768
6
4
2
0
ā€“2
Sorted column index
Column partition
Average
š‘‰ proj (block 0)
6
4
2
0
ā€“2
0 192 384 576 768
Per-row bit savings
Sorted row index
Row partition
Average
š‘‰ proj (block 0)
!"#$"%&'(
) ) )
)
b)
31")94.2.)Z)217#4/0).,,6264.'%1&)=.',<)/%C#)13)*d0).&7)*b)'1F#&/)3"12)#.,<)/#B6#&,#)13)'1F#&/)13)
4#&5'<)ZXeY0).&7)1$'%2%C#)31")de)%'#".'%1&/)2.D%262()a.=4#)*) 4%/'/)'<#)$#"$4#D%'-) 13)16")B6.&'%C#7)
217#4/)8GHIJ;)1&)'<#)N%F%a#D'Z)'#/')/#'()N<%4#)>#)$#"31"2)B6.&'%C#7)217#4)/#4#,'%1&)=./#7)1&)
'<#)N%F%a#D'Z)@.4%7.'%1&)/#'0)/#4#,'%&5)'<#)4./')B6.&'%C#7)217#4)$"176,#/)/%2%4.")'#/').,,6".,-()g1")
,12$."%/1&0)>#)%&,467#)'<#)$#"$4#D%'%#/)13)'<#)/.2#)217#4/)B6.&'%C#7)>%'<)"16&7?'1?&#."#/'0)R!aJ)
SYV0)ENJ)ScV0).&7)ANJ)S*ZV)2#'<17/0)6/%&5)'<#),17#)$"1@%7#7)=-)'<#)"#/$#,'%@#).6'<1"/).&7)>%'<)
'<#)7#3.64')B6.&'%C.'%1&).&7)1$'%2%C.'%1&)<-$#"$.".2#'#"/n)/##)A$$#&7%D)h()G12$."#7)'1)'<#)&#D')
=#/')$#"31"2%&5)2#'<17/)ENJ).&7)ANJ0)'<#)$"1$1/#7)2#'<17)$"1@%7#/).)$#"$4#D%'-)"#76,'%1&)13)
6$)'1)e(UU)31")'<#)f?=%')E!a?*ZU:)217#4).4'<165<).)2%&1")$#"$4#D%'-)5.%&)8X(X*TX(XZ;)%/)1=/#"@#7)
31")f?=%')E!a?ddh).&7)94.2.)Z)bXh)217#4/()Q1'#)'<.')ANJ)%&)'<%/),12$."%/1&)6/#/).)5"16$)/%C#)
13)*ZY0)%&,6""%&5)ZTe)'%2#/)./)2.&-)1@#"<#.7)=%'/)./)'<#)$"1$1/#7)2#'<170).&7)ENJ)=-)%'/)&.'6"#)
1$#".'#/).').@#".5#)$#"?>#%5<')=%')7#$'</)'<.')."#)X(X*TX(XU)=%'/)<%5<#")'<.&)'<#)$"1$1/#7)2#'<17(
Eļ¬€ect of Hyperparameters.)a1)/'67-)'<#)#P#,')13)GHIJ)<-$#"$.".2#'#"/)1&)'<#).,,6".,-)13)'<#)
B6.&'%C#7)217#4/0)>#)B6.&'%C#)'<#)E!a?*(fh).&7)?*fh)217#4/)1@#").)".&5#)13)2%&%=.',<)/%C#/).&7)
'1F#&),16&'/)81$'%2%C.'%1&)<-$#"$.".2#'#"/;).&7),46/'#")/%C#/)8B6.&'%C.'%1&)<-$#"$.".2#'#";0)>%'<)
#.,<)<-$#"$.".2#'#")@."%#7)><%4#)F##$%&5)'<#)1'<#"/)LD#7).')'<#%")1$'%2%C#7)@.46#/()8]#)1$'%2.4)
<-$#"$.".2#'#")@.46#/)."#)=.',<)/%C#^)*d0)'1F#&),16&'^)*b0).&7),46/'#")/%C#^)U*Z(;)]#)$#"$4#D%'-)13)
'<#)B6.&'%C#7)217#4/)%/)'<#&)2#./6"#7)1&)'<#)Ge)'#/')7.'.()a.=4#)Z)8.T=;)7#21&/'".'#/)'<.')GHIJ)
%/)4."5#4-)%&/#&/%'%@#)'1)'<#)@.46#/)13)1$'%2%C.'%1&)<-$#"$.".2#'#"/)1@#").)>%7#)".&5#()g"12)a.=4#)
Z)8,;0)>#)/##)'<.')/2.44#"),46/'#")/%C#/)5#&#".44-)%2$"1@#)'<#)$#"31"2.&,#)13)'<#)B6.&'%C#7)217#4/)
.')41>#").@#".5#)=%')7#$'</0)=6')'<%/).4/1)4#.7/)'1)<%5<#")1@#"<#.7/)87%/,6//#7)&#D';()g%56"#)U)$41'/)
B6.&'%C#7)217#4).,,6".,-).,"1//)1$'%2%C.'%1&)%'#".'%1&/)><#&)'<#)=./#4%&#)<-$#"$.".2#'#")@.46#/)
."#)6/#70)/<1>%&5)'<.')4#//)'<.&)*X)%'#".'%1&/)."#)&##7#7)31")B6.&'%C.'%1&)$.".2#'#"/)8,46/'#"%&5).&7)
=%')7#$'<)7#,%/%1&/;)'1),1&@#"5#())
Pruning Due to Quantization.)GHIJ)B6.&'%C#/)41>?@."%.&,#)>#%5<'/)13)>#%5<')2.'"%,#/)'1)C#"1)
.&7)#P#,'/).)31"2)13)>#%5<')$"6&%&50)><%,<)<./)=##&)/<1>&)'1)%2$"1@#)5#&#".4%C.'%1&)Sf*V()a.=4#)
f)8.;)4%/'/)'<#)$#",#&'.5#/)13)C#"1?B6.&'%C#7)>#%5<'/)%&)'<#)E!a?*(fh).&7)*fh)217#4/)B6.&'%C#7)'1)
f).&7)e)=%'/)$#")>#%5<')1&).@#".5#()+&)5#&#".40)6/%&5).)/2.44#"),46/'#")/%C#)%&,"#./#/)'<#)&62=#")13)
C#"1)>#%5<'/)/%&,#)'<%/).441>/)41>?@."%.&,#)>#%5<'/)%&).)5%@#&),1462&)'1)=#),46/'#"#7)'15#'<#").&7)
B6.&'%C#7)'1)C#"1()_1>#@#"0)/2.44#"),46/'#"/)4#.7)'1)<%5<#")1@#"<#.7/)/1)'<.')/2.44)%2$"1@#2#&'/)
%&)5#&#".4%C.'%1&)76#)'1)$"6&%&5),12#).')'<#),1/')13)/%5&.4%&5)'<#)1@#"<#.7)=%'/()a.=4#)f)8=;)4%/'/)'<#)
&62=#")13)1@#"<#.7)=%'/)8,46/'#")%&7%,#/).&7)g!*d)#&,17%&5/)13)'<#)41,.'%1&).&7)/,.4#)$.".2#'#"/)
13)#.,<)>#%5<'),46/'#";)./).)$#",#&'.5#)13)'<#)'1'.4)&62=#")13)B6.&'%C#7)>#%5<')=%'/()
Downstream Tasks (Grade School Math 8K).)a1)/'67-)'<#)%2$.,')13)B6.&'%C.'%1&)1&)71>&/'"#.2)
'./F/0)>#)4%/')%&)a.=4#)e)8.;)'<#).,,6".,-)13)GHIJ?B6.&'%C#7)94.2.?Z)217#4/)1&)'<#)Ri:Yp)8R".7)
i,<114):.'<)Yp;)'./F)SefV0)7#/%5&#7)'1)#@.46.'#)'<#).=%4%'-)13)4.&56.5#)217#4/)'1)/14@#)5".7#?4#@#4)
2.'<)>1"7)$"1=4#2/()q@.46.'%1&)%/)$#"31"2#7)%&).)U?/<1')/#'6$)8K#D%=4#?#D'".,')L4'#";()g1").)3.%"#")
#@.46.'%1&0)>#)2.',<)'<#)5"16$)/%C#)13)R!aJ).&7)ANJ)'1)16"),46/'#")/%C#)13)ZUd()N#)1=/#"@#)'<.')
GHIJ)$"176,#/)"#4.'%@#4-)<%5<)/,1"#/)#/$#,%.44-)31")f?=%')B6.&'%C#7)217#4/)><#"#./)kaQ)4#.7/)'1)
/#@#"#4-)"#76,#7)/,1"#/)7#/$%'#)<.@%&5).)/%2%4.")$#"$4#D%'-)./)GHIJ)1&)N%F%a#D')Z)8a.=4#)*;()
2.x-bit Llama-2.)N#)/'67-)'<#).,,6".,-)13)94.2.)Z)217#4/)B6.&'%C#7)'1)Z(D)=%'/)6/%&5)GHIJ).&7)
ENJ0)=1'<)13)><%,<)."#),.$.=4#)13)B6.&'%C%&5)217#4/)'1)3".,'%1&.4).@#".5#)=%')7#$'</()a1)#&.=4#).)
21"#),12$"#<#&/%@#)/'67-0)>#),12$."#).5.%&/')ENJ)>%'<)&1)5"16$%&50)./)>#44)./)>%'<)5"16$)/%C#/)
13)*ZY).&7)ZUd()N#)/##)3"12)a.=4#) e)8=;)'<.')GHIJ?B6.&'%C#7)94.2.?Z)217#4/)."#),1&/%7#".=4-)
šµ
0
= 5 bits
šµ
:,2
= 6 bits
šµ
:,1
= 2 bits
šµ
:,2
= 6 bits
šµ
1,2
šµ
1,1
šµ
1,2
šµ
2,2
šµ
2,1
šµ
2,2
šµ
3,2
šµ
3,1
šµ
3,2
šµ
4,2
šµ
4,1
šµ
4,2
šµ
1,:
= 4 bits
šµ
2,:
= 1 bits
šµ
3,:
= 3 bits
šµ
4,:
= 2 bits
(a) No partitions or clusters (b) Row partitioning (c) Column clustering (d) Partition and cluster
No clusters No clusters Clusters 1 2 1 2 Clusters 1 2 1 2
1
2
3
4
1
2
3
4
Row partition
Row partition
No partitions
No partitions
Figure 4: Partitioning and clustering. Illustrated for a 4 Ɨ 4 weight matrix. Rather than assign the same bit
depth to all elements of a weight matrix (a), we can assign a separate bit depth to each row of weights (b), or
to a cluster of columns (c), and even combine partitioning and clustering (d) to realize bit savings.