初始化项目,由ModelHub XC社区提供模型

Model: Verdugie/Opus-Candid-8B-V3
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-30 22:36:04 +08:00
commit 65ffee774c
8 changed files with 81282 additions and 0 deletions

38
.gitattributes vendored Normal file
View File

@@ -0,0 +1,38 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
Opus-Candid-8B-V3-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
Opus-Candid-8B-V3-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
Opus-Candid-8B-V3-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1eaa0e44636784763dc2cc8b99f57377e78137f55a8ac68ac54f4870e33c4ea4
size 6724098816

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4c44600eb653fe7c243f9d9c2ca4f42ee07741988fccf622e03cf737c6da9898
size 8707188160

View File

@@ -0,0 +1,225 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document (opensource)
1 0 obj
<<
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 8 0 R
>>
endobj
2 0 obj
<<
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
>>
endobj
3 0 obj
<<
/BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
>>
endobj
4 0 obj
<<
/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
>>
endobj
5 0 obj
<<
/BaseFont /Times-Italic /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
>>
endobj
6 0 obj
<<
/Contents 18 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
7 0 obj
<<
/Contents 19 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
8 0 obj
<<
/BaseFont /Symbol /Name /F5 /Subtype /Type1 /Type /Font
>>
endobj
9 0 obj
<<
/Contents 20 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
10 0 obj
<<
/Contents 21 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
11 0 obj
<<
/Contents 22 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
12 0 obj
<<
/Contents 23 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
13 0 obj
<<
/Contents 24 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
14 0 obj
<<
/Contents 25 0 R /MediaBox [ 0 0 612 792 ] /Parent 17 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
15 0 obj
<<
/PageMode /UseNone /Pages 17 0 R /Type /Catalog
>>
endobj
16 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260307080958-07'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260307080958-07'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
17 0 obj
<<
/Count 8 /Kids [ 6 0 R 7 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages
>>
endobj
18 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2590
>>
stream
Gatm<?'!`0&q'GWR("IKM<:^,-82iOm"9@6mZIi9i8Br)E[4A>jNo^Dmcr\:oaFES>^6u*p&_[',cA8TX/_X!R#dlTra"$4]fE=KmfO>Ylu6K$m)A>\'74qJp%_TAgmMbjT4D8_g[Ql`&#LT2N#cYfL[l:s*D.*%o_@bH+U^%dd'l79`&9hNdqO*bG>^<2@dfbLCkU0@3O,@-m&b"DKJn4fr,6t[&$ifpb7;:n_r#E@mNk0[ibT*n2s)Nq]h4W8H00fp0O0nQqc>;:h1()?SNHNYDb`G[$2.5]U,(bk]0,W3B^_NYbs16$=a*!X^&C2f7Qe>&O$>'ts/SpgW$4Rnp%sOK^-t(,TL.Q1U4"dBr@@=ep7'E?Io94&Md()](h?u"QQXPd/0&a,d$+S3QD3Wr0>\!tMt;HWA[T&DAlaBMQ*SQFA0BLD!2'RPcehs/3n8J_R,rG'oi=[VT%n-oP(d8BR?<gGR=6Eon4gEb20-9U1V5KVSR!.Yd?%YN*c^Gb=&)c1r8Ude5<sc+Ognl8hDdINO3`kr]NIn;W[7D6HmHVc4g`CjDH=sInuZZ$,eRP&O;aQUn[s:7V`m:._KetE23"!boPs:;LU/h=jfQm'2P!l[?O4QlV3d"+Q[B.XPX4@#?>/1%<[`9q@LBbVh-$u>'b4E;^sm?Tbbp+B\!T?q3n;B)*OY[tMl+"#R22Z"N=i6YbjN,TXgo-Y<N205OGFZ"S1F5tnYW,/F%^;6OZ"2ll%j_2?/Hdb7Hb#19B%5%d7`>9,<Fk"ieDGRMsdZ=MKc>.faTQI9/it$j:M^%"(/a+*fr>n&?'0bET.4KB]CQtc:;N;eS(J\2,92Q!$Q8(4q<%:2l3GR84QdK^fRT9FGBJ^L:m`pZ=L^=5_C)&/Z[&5BeVUX6:ZY;*Yr6*p1]`(fs3;[_gW04HcmW5%F"_*Vf*sL&.`/h(2OXKgWaMG"*+MI;X4_O[XpMq_`2g6mL=`ffmdR[*6Q:KnZJ*669>GhF?+)BMasWDkKoUj7+=PqnFTSYH4_n(npR+@^<2J7.3A[hO]ARc-t6Eid,]m]`h5_)*/ce5`nlb[[d4SQ/=7RLYMXh>fY'99#H9P`<`G*S-k'qE+daD_'\"[VA^!bCBJ2p*8_gD-<].f7@]RbrA,d5Zl9gDHLeL7fQf:(`/O4g\.KeQ=e&Z-/C0jo%iE4d.m*8!fba@QIYL;VrHj&PHP!SF\:S9&-?64j5<iAMSQL=?q?_Y!'\RK+V6AgK,^IS,DdU/umb);)$Vas0Y(C'NXel=\SfIS60?4[6,^M+CTk=%nC*Zs7q<mHq+G7?`tU*LnDYq5FiK9Y_R!e$;/'P"&$]6@$b"^0/\S+!I2IG.(;F6-q*L8/!g3XMQ*8Xb[]]#=Y/p=2dN0TC&@NG&"tfIJWOgfn<uY4n5b,e.-XG-r`0?Sh4O!)GS7jYen]5?N?&26i;mg4p0s<m-rtb@L;u-](0%*kSJQ_,Id8&j)/GMjL2%>#YPlPcVpjUY-ZF5)Vkb:$DE0ps%(2(]/\r?q3%Xs4kD541h&TS%rMUL'^FR^Q`.D-8.mAB=IRRDkA:Pjq*%>jUm.8L=NP,(SH$IJXHo0%+Pug/hN&SbQ4rIJlajOlFS!l4`rgr]nV0LI*K38*s[-_q.W%7_<K&gEJE4RXiX_P>`K&gTa2hD&^[fc2a27f?6+#t&hWQ;V8db\1uN2F\(EQL)N1IW6FXs0!LeGp&uT2Y(1tTY&kq0l$o>T]^e1EF9:MW@f(jtRO=WA,<tO[$EgQl"080u*,Q+flLo8PK?2%>H0dUru#msHhLj'><gi[HQH#01SMRTemJ4@?06O40mDod?e=MDBR(H_LpJ;!0ca#P.KCK-'0X\b6!fJ.r;A)4eO1Wdq1//hO2JQ622E`fDZihUjV4LnV*b#4jc,'#h,.MeK6CgIf,\2;?:q/RF;$Lf*P[p1Qor63"DjD^C)F^;\u+K1)IDSAo*E7LG3:)jX5$s:LR((P:g2:8noIq2*VQ'&'-Yh;`2-<WN1@G2b7=.YjH$VtD\&#cW#derGI7%`VDgM@4V:))9eKc(*t2:G$mIGNGg_,f!DDhhCr2N+)`eV&lD+"L4PP+?4@NEt'QJTq_8ZhqYc+=!sQ1uN%7lP;Q1O`o4^SS'%a<#]KC,FGj6b9-(33#qmu;2DnDc*,g_i$O:]pQ0Cth7@\&Fb7BL^=9nh^+<BJcd1'gSA%\2ft.l#gXE$4ZU!71L<ZXpZ`[1%$ODIj`-Mcd25^k4'%YbKLB_B]ie4imh=7AS:"$i#o=\@eN'%&*<IHIWCQ)<:#?gcm;YS+$a!9SeRCKYo&QOrY;/o`;-BJXi#N+ua+)du&$Er$t0H6NS+<#PSS6+IYg[k[+1!O'-_5Fu\[\A!Cp*t^I+#94"i(rb#:71hT6kdGNN?Ia>c7r,M"@V20];M?tm9A"RJ]]3%9nt"VnW:ui9)\*)/#\aQj2U7i;]S?3jaFLqpAUAs>CW8*?0o%7)Vd;_O\:XUg!>(*9P8Ae.*TkT,3,ojj$Z%*nJ,65^?=,Vm!f]ti>`5=WTlcskria58MLNT$JT,pM(]#eDLJWXm*6m+o,5GPr?$+?QBD~>endstream
endobj
19 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2649
>>
stream
Gat=,gQ(#J&q/)-n7AiLY1q@[Fr't:cD3/qP0H\Y`<(sHTd@in,)ZdW[G1<GH]"WSP1jmX1C["d94Se'>cR"L"o&Jms76>&[i>&'/nAD/2C/`p7D^sTfS@_P+0S$2k&SGHA[GRuFaT,A_t+WM<ZP;P_T,Be_F9ce8Xcs0ObGOWoB%Z;@6cmZp.t/0CpOpO$e&+XXEX"Rg:\t8V08asCP=s.K"YccDciJ'V6`LW<m,@38lbJ?M0^Ob+Z,M^2u=^RCnV#N%4c\HNG)ItC96fC>0=?`*8`/MaI9TT0&HMsE^-k!VaE#eENi]rQSW\<XZ3QF?>.0nK?ttKi3K6(Yr06Lghs7b]PF=9!2^@=/7m*F-0ple>Us;dWB/92Gn@C"qrTJG<J,Kf/Uhf9c;4%/2N)fkj.f?YhA330U"fO92<L.lWEM&I-+)<u1d]M+YDZ7EGh=Dhl/R@m`=H4KCA<*W9ZAT:P6dcK)1Rm*8M`tK-L4Q48@Blm%ZSt%X:\]I%<gBJ#@:1nDoJ;48>R.$DW&tcp`"9($%#G?j;=(2->pN-MgB9<`2HhG?sc>+p^6_%V8$AqO=l1O&W!HB!Il)'O]E/CdFqXZefP'nig&<L!3g&%?E7tQB-heIdrq#eHa%997*WY[;^m^uqR=1fqX'=!cb=KK:;mD`Wl:Js5nr.i[_Vk<qj115_aPIk=lq,W5PrSr/h?TK>T2M7SqE>l5\O>HOFIU69XC:g"m+HO;1c,s/tUKtYkOptg%IaYpCV,qE]M6Ubf"1_`E?YKiC*e2NA,!qD'[X;h%KJZ!uk+&2n9.i^hlUTe.YmLL6nVtGu6mt&?=kE`.b&6=_-5b,o./"X8u%3ZN7*M%,N*-n/($oWfSM0$F]i#G\q?5#oLI1pnrPk&:FT=&aXLQ>jfIt``O=]E$\V!HE0%6_mBE(l[kN7Vgjd4GRrGGQ2&IIIF1_/)g`Za(Km2\Bl`$'5CNJ-%NtahYIY$'=<S0WcE61PDco%1!gl.V2nH!j%\7qp*r2M/:kTf2TU\FUg0gbGSGMT7M]bd.5FgR&VGpQlN]?s,$'](,8[Bek?-QrO9>ke+fL#W%^eA2>JspTCM!8#XT0K9S3sb"U6d-nL>UQ4HMKir+>nE6>14W4uoMV^l]9jobQiT99>baDXWS3TMR?jDP`:Rr-ik3X'r,F&(BqX]9M".+dF;-<D?,"u-0t(WE0*VdDO,.\?E9#U\N>&#="4n0NL<+$=e@=lV>f[.QFOVl_\7>C3A?XH=>5]cAlo>\+B+lQs-iK&GL"u't.hnEo%J>nA`=^tpHcpcoNV_PY5j&8lSs[FE7[>S.)+sM,QCb51;&n:p^,2R5p[QMCDa/Wg.UJYSfQ*#eeY*![L+5e-<g>3@A[e[n%IbC:aBR_*Ri\Nto05^T)=PaYR]aN3#9T-pm020V%T61th0$$]eueJdF^;W6N=k0^T/M"LXFae-/Xm6%a```CQL*7%eIZo0LjgN+9\T;O*@=qQPl&tTGFB/M5ZeL>'smXpf^#\a=i[]=eC^&(p?)Z5iss)&YoMW[:^<IcA,c-7"9=/V3]EsA,@eAmrfpn8?EfK-0:"\Ad116Q4-06gG\M7_*\mOPq%qF.?&$IhoEAjH8i:d*!#hufVZDs(>/VD=&&?Yh%_Zd2f=4N/'mM_,k>)/p20aHF2jg*s&^>0mRSL6;,$7;m'1,T]-(5sq),-tB$hLLujJ[^\gt:sb?l;6Nf*k,7DmQ3&5).c3gV-p6m@^s!Fn>abd3:`+*RNu`qLCY<s7'FQd0TFeB(&N85HFf!-gNe15P$iBT&uP98OQ-r4c*utH#sJ#1gW2!]rQ]5W(fXg^Q+ubaFSKO*%0kL3?Bo]kT-k+BM^M]Pg+I0pZCIEhjX2V0MMEk_CG*^fX/`MY/XRsNkp6,/(=SufF>4a>nm:0TF*sur]-44hCd)cepCr`Mqmo7S4Am"bH)d$XJ_RA:tE-*%F8_kits%7GbVH,==Mc;1,[ZF[cCAWjFUA.:$fR9-@L&J$M)57e<?:]8s<hJfh@2f,sOp7pO9Q^4V+^=i0Gq/FsBBcRYHWDeIPND9$^1K?a*l'.VLMucgBt3eP:4S/R:Xlpa=[X6pD2)(G/f1D1XKG&@Dji"frrX26iJF.+'@EG$"t$,P.IWG/@,%'37OS1nP2\h/4UAh:pQ/hceei7K2*u`BnY.k\*M2a3/bGo9Ue[.!jkOF\Tsi]7ZrbNJ7A`iIjTk:?FjN\h;qqIGoX#H%&mIQYG?W2uZ]?/>0<,C'S&X',7bjN5b,P-Poe:lbkM:=*P&-HGEaT"#\t?U/E#'=gu0D'a!!:Io!H?`i.@!omp!;Pc_.iR3uX?mR"Ype3@BAO8E`_kNtYi_(&"ia4'!:(qJG'!J(YX\3V>N(p+.&9Ja>H3eFl39"F7mgOa[";b-[9APNXI,Zmj\?>-*-^kCofA^7N+-TF9b`S95OW$RUhoVQ%-/fd&YOn6kS$SHO=KGId4Za!\gQpPZ@4(U_+p3MfWXPQ&IGuYnoOBoL(]$[5o?DBs%*8U^kB6V-Qf7VsUIggB"E]FRjrL#7o^O=f\^Zemc]>INHWMWnI*ej)6IWdYDcQgf@&mi[U?VtG/G<\_H#4DR/#h4;3YuWc7M0PlI[PQ8+d3/6>E]rrj8?c1q#I6XbTE~>endstream
endobj
20 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2769
>>
stream
Gat=,?*E6W&q-BZ;2Q'EM88YjiC8+6cH!(g,Af2%MR9rJNSWMfCq&GB@/0JCWbi/V0&4t_h$Z(,mSd,`W_Rb'5$ig;T@ZL2=OW<Q!t%@uD^gLUR+@nn_tqX8Dh;D0[\PG[]HsFbe9@\DmL:3G`jJ,dTll?[64/,>N3sj9Bbku=mmLZM<P"m3DKVe"-i-3`;XZ2cP0M:<oM.?RdhP$lR\/&S]F:Fi^8:Lp[/PWmr.`f+:mrYj!QAK.-N]kI)DB@PaC!Bl8@*Ff8b&[s5'PBGQN!r=XV)(Gh5["3"a2D4Gn_V.I,F<PEDZ?sGpu^&^3b<%SM[o=aFXb)@uN<lh\;eHOm&n#MVK*_9l[V^kNr@i'o#!o3@LF$#!@nT<MQ!'<SA9NL^mO-8K051[[mDlC11[rU*075+MJ(R%L,R[0o<R'BB7rsFV'gS//]sBoDI17?Q.RbGI#5eW$Wq*/6Tu,kWjru:hN"Gb8"kTa_!063o:m,bB7lfSImu>rEqK`,E>fj"`QfO`ek,mYS'(8cetqECe7VKAS'(l)VQ>%Kpk&5en@^^;RL7I,hZ)HhBN4Mfgs4Vi6rtW5$7BU"i[(*prgah\Yh\g;5V:"3&LN2RK@AVEr0-%1S]*G8P,eE\_;WHKeg)85S"[Hp8q0A*[Xbm^YgId!";n/p'qo*JjNR*#@6_4q#mn+VZ__4;_YJ*E<[D-Bc;cMe@>_]hIn,M<\HA%P1tmZ3t;A#NkEZ`XgENK.]loBa&7*+M,`e-<rAU*%$67'W$ShijJVK-%+CTFWhl+=,KLLQiJ9T"V$.`]W0/BYT3r(jPa9M]R5#q/V_gChN*7!3?S;Tn4O6p^'J?ikXoUoQK,sm^^/8+jeMjH?"(ShZ;J#>_+^6MKadqXQ$>a2`ItM"O$+[4n8q$eh).pfN0,uHP<-?#,^BgEdm'I&/6P]=G^e5Y,,ONu2Z/8&`oK8"^h(,Q##/nQj)]4#hb/t>c6?aJ!,Rm7qM)5i7^ah?S_X8<1b=+eWM/B0V5$Fdr,sY22Kmt!-@&S/+"B$X*Lk%po5L,i[rUtgae,(Tf&'[j,;Ke"Q$[=?qdQK5@EL&`lO<cIonBd)g#UO8fi*3Sm%<f%>/gVDs$KhHJ6Wlp0S0,5?1DVf7=t1>-9LacP^LC(\&OTOo]T`TBAlXsC0T=MJ`D(A@a\YrKpM,:irhU5G<UVFg)VHnMI*harM6r-V"d0CEVLQ6GDB<rp(IPOlb(Je\]LB<A-"OI\$3c8Y1V#q\N]b8.ieoRr'mV#C2QJl!EcOJKfpP<;4K:7'-<cA-iK;M\?ri1T-$'p!]A!aRr%.6/TZ2!H\MLeI0WbVNMG8)n>R%T%R!g>?nB".'MqtNYEu_`n2YlUmi.,L09[gB,C1eSC5CSUfdE)2k&g`S2EUTuRnbt"Af4dJlc_5]q]Dn=]>.pk=Q9gn8fnK)8R\7nJ1+q34emLg.LnWP73^+j[BgjY$gM5).n^o^eDW:"QIHk*8XQPid\QVZu2TJlOkno29O`d]cQ1H?X(]-*:%L=@/+<<<nCBuN+MWt<K9OljBFL..j[b5THVU]J$0?V#>pr-Q)^TbPj'2)JAJr^p/(Gk^BNhQJ)E]*K@fM@gH?4E*)QJQ]opiT,e"LK#MTV3V0[+/0QO3@mgV!TG5`17o#&FIuh72jZO14_-+%^Y@g(Ce-@mq%M>2]RZTb<\4KM_dLG[4B&ug/c)P\Z723LY4t?Sf.Bm)28K,21_Fu'B%&OEFi5?JPKD"fp?rEgn1SrQH6!t]tcL?a6Z!U$;<f91U9*HDn*0?;B/F>r%Fp2dMne>3).brqk5KFZKlf0X$"gC/1*D'_`M7gh4-erN.7;EG$RG!(d*BW.k8li8YFBOo&eJCETZN."X\2>=h@oG4QkA9;6o4bqDl8b4%7Jc/PDC6no-i`8mF$!`JEcm9SeH.+e;Zo\]n?t6'.pbq[O8YT'h@J6d.38%,n)N%hfK/ClPR"glg+.B>;[A0]WSceWf1DoAaYWk?.EJbTI748ik;r]bHg!1S#@8':e<=o?7`Y[\T8@k#?YW5'&;h(*EbK;$g#3-$;(d[Ig,TL=s[spo&DsZoIYXhqp.2=F$qq)lNZB(:YD_WND[(\!oBMMD"&P=O&A:Z>#?o<./sD<I;cG.4(rt22"tZ8GUkQAe!3r1[D\'.f)<7iWSi54Ro2F'fRG7H=b8[N^o)I="BEGV6!kuU?alQ:+:5>Go"5NcZ6Lu7/,>i@K(%3%+>:MS\%?VOeolRoj<$OJLm=4h)i\mN`1OI>?!BuVPM3+;*'DXc]BjIf`4B'n_r`'Y2P5X`XL2K2(&%F0HI'&pMGaB03t^*'0e_f3qgcH7riVB`&gZV-2ACW7NV#>X%*A0rfcN>QSu%oli48eT+uY14]=\#/01)SK[V>Yd@V?Dl,Od\)I3d!i?jiM6]:*%NG_C.Nc,3uY^!Q4f?/U'n'@][IJtV.**k^4-<.U/L^t7!m`,05a<*p^CA)08M+<'m\uPtWiTt\KSqc.*Mo&d:KhpJ4q]gE:[J-W7"XlCg+GV32-V0uT4l5Qhe"k)#Wft!,\sG1i`<_KWKrDtN7DN&Hnc@b8fZ/C^a2Y=.4&NFI?d`3)Su1,eHm:D[nsI5/MS/n,EAelL`Z#(9>hQUhTTf*ePY`?tWLcp\]=3EK]A37nCQTZ.XueOHhFJQdXYu-*D\=qYm0*Q]_J^!=3J?'\R\tplo3W*:%tmO<>q#8qK6m"s$t"DTSfBAq<$+.hUuq!nku#ja+1Hi_7d*UV15+N^%ptouF8~>endstream
endobj
21 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2531
>>
stream
GauHLgN)%.&q0LUoVBX;cE'GJi'igd]TZm7[^&gf)*ds$+s@9!]S.0FqYNDbOL1rW<[CtXj[q(V:%UaGkroO_o'msks%,uXO%6eY,Y1IP>a#H,O<-X8a2b6a=/*/<@7YCBoG4[OZF:6rR)a=H]A?d-Y[9d4aH1"C::6tlcW@j:##D?K8PAA?oPUlmpk`]+csog0^Sk1Ob'O)Z*rhtTT9%2a+?^U&`fFD21oDq%+*bLANg?^%kk9u"4S!#.U;?OHBfhSSD=9XlDh3sYkJ_8GB:Occ%OZn&I$-5pcQSp-F,&/uLApj+gp%[>j&\V4SMQ6S=B_2DldU%P3Jc'j(,J/5?NA^t#LOiJK43\lB)tV=D*DW=S^76s)XN+dTibQMfNZOW0c[W-HKS%U/6e=!0<Hj)SXr1dHcoOb[aP3Q)8F#n4ZUX8mX,-R?7b-ab`dg:>c.P<^VBV+qsl9:f\&lU(R3ZX`.s<NZtk-*jGtgi=1<hn]_7-ZH*.)A!lZftnK4l'90"h__]g0RI$-DN>W9O/KbJFaL]nh_VW<I$;?j(r*NE_PWTD9j[H/sK"Jo;0VPGSYqE>1&8QAbr^6fnb+kr4MjSW=H]dGA.?(r:\b>`*`[9M0ZWn48o>&$]6eb[t+HW!:)g88_CT$O!@,8r!HEBL^D;I-\7.LZ%)D0:Cm2'li(XQtTq'e86.>AQek<S+6a)`"NcI#=p^ANaLpK(_>>hMYUl)/R&i>Z3g8718=6JI6\i_XVrfe=nW4KVk$kWb4<&-\k\Zp2PTMhEt.<VH$p[h-;=3<L>,22:2"NnIBg9:"#e]INc7.jK^:u?2ctIpEoM6H?_.R"o%Y9ZVS#@<c1T_W.!&4e$Q]8drB?CZ%u2\b*1#Z#Ql$_:M#:qoY)59<7Q.',E@l2b<COuB8$lnej;_>2k%lH'ahr5_dgPhC/o!bC4iG*8laI?$l!BP)8r"=>:[UB#6Q4=;FpLR2-;7IS^sZ/9sJ\['u"Nq8G\_?Us)nZrB04a9_mFG'8m6$)fg+pA5L9GVCD"pZ8G%3;Z*Q>WjABYlX#6.VM@usc_Q*:,6+QDi<5nc47NBcoD^rSr2.)l$$8ZJ,JDC<>6\F'6Se+WnKjV'=DZIk9Y.!+-EZS8PX23#6Kns@_OFmFoT)AeTa-$!eTp*n5R`g(EN0iaV&*Bum"^5QjcJ!":)MJ@,S>k(^"SFboj-9ffmg*KG4A\,mG`DF%cqDY%[QXG2t>6PnaQO65kKEVR%r#VK.$^gHd<@\ThX/JPE/hg7Ek_Y3IL5W"&_&mXO53oi##)Da;\/k1^k-[;imHTC=4Tb6KqKVTr4/IdacT*Q'Eu3h<Gg-_%!ht\e3?_e,*@l9fd(![8tbm5^MCZkEDU7\#/AZK;Y3[[r8Fm/1YqNY-M5oA0BJB`SMP*B>fjS[Aql\pW70%e**O2LLE3I_i%IZWL+f+K(!:]`9SkSdG:_)O4d7=02uhPVI(ESGsbDo3Glsq,Y/A%Xf=*'1`\cIiYMJO2-^_'0PlrS9=9*c_[PPL;?cGSTNW:+%PtCf*)/'q2B^J5)+L3^odm<#)3.k9/#FP&hA3?2?bXe;@-"B#Yst%]Ob[Q'Rb=>1Uo])&g%.b1kehsl0ls&B\o.7\+i'r@8#BHC#TQnM#jD/\B"L$3oZFd>@D/r]"EA'\+t9up9\hP<Uc,X3\M!_X4KH]%2JKL_`X[<lMIqWc<2tZ?*RP%-+:.nU)e6!K&?XbiX?gO6.SZ%_`X\2Tfkn1ijmt]$&HDl0456&-#*TJM,/\<\8Z)U=`<Kh3II7;[b6$foF$.Dc)pM5<E"5;U5-Z@&3%20JN[]_f]A&^g'bnB.P;^k(d-*glel>+a_KQfY&"Pj&,AhPW,ODL0E0@6F,c3_QL'A;t_)'u1),0@$7D.Ni?TCUJ[F5T"p!^P-e$fmqH!`0JQbR_T/(@G:=,3F)E<Je?\Cl"#%\&r)Z$jr`^8DCbaRP!)DhcK1(jFb'CL(L$dF77@Kd%:0BMl:?`/12?dK/FUgmBn(Wbo^bi3f]Gd.2,"3(ou@BfShp3r';cXt=_lP!YC:W_B6FctgcLPJR\G/'O[[bs?Ii6ltF;rM:%\oGIgsT#o9Ir"6,LB0r)A@+r8*-X+akm$q.Z#9[0W);*.:cW?!V3l#<X%SejF+m7#QiVo=l55*81`J7E7L#IGSho-(OrGA`r)M-e<jqeXLp9K$$o&I*;64Gcgl+#6A>k_;oSAuC-[jY"PWm_Afb3QRE5]gB.C.U1D;oq&b;o)oT`_P/g.ksHOY%noccI@RRf?T[GUXErAWe%of\XktU$tg17)XL,l7YR^'@kFE\=gNEsS8W_@>eVr?!ooE_qgK5eXC;l+#>>37)fcCKJ>NZgYl[1^44XeR_h"J2WL8uO;nKtRo(:mpnH];54r>XVQfM;Aj<L",W%$D%fmBPCYPV1kf'=4liX\tn%#)f@D$tfhi_^tQE7'H724Gc'rKd`_#I;\2H>P7d;h+29[NP50G0`"lrO68A4>Ha;8Y`UL+S8YgXn(V-C*$G-?2YS5*D^2~>endstream
endobj
22 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2686
>>
stream
Gat=,gN)&i&UjCToSY6lXpANV-'QK([$JBsfoBpSihT1"6XWI%"p$=\+O0l]S/to<arXH#ac_KhcV36n*!gTT,L#%U96@M5Q`gQ!Nts5YJJ6Di/_r%NrUER'P4=K?GOEZtN`F]4<pODN.#,'U>&82=f:N`I.?hiH=)(sB/%ODF$2nYCWa$TPd,GEbIc3p`iofBs-jn7,jNZGKHkNTmalf.`324BC-J+KBmb=^5mo31tHUX>L>cfK@;HZh%m\jAf]hoKVU,:>APqAId1LH7oFAjX[mC#\g:,;drkZUn_DRW?&-'BR$1L.Xs3:Y4R6_f=;O1CuOekII^r(&TB9!,)?WhNe0CN?ae41*X*/,Up?RUe]eOfFthT)t)2YRZX`imOQ%hs*\nXA-.GE/`T>ndMDFjbX`daMQ!/]n!KFmW(k#WcDmVfi?^+<lYl+S[78\_@,>dj$#E<&16`O\V(':e)6R0n=P$98"o,=G<>C]#_`!Cs3RWNEA=@6RaG*QKXe.53DoL4G.;9t6%h(PfnRU>f9')Y;;oJhi!.)RKrik*[`HHE`sklL^$p0]!W94,O5f0SH-erll[h<g.*>ecmc)_\A'WjeBDf5TMD\\;9ocToT8;16k='iEs2(M6ml?!mmC!8fF.6TZ#G*"D3e9`LRgCGL*mX]1-(h/hV:=df&udmn/%%iEW9VFd6kl-Y1AP0U?aI";^<9Q2Q`]N_&E+q9HGS8(D-"W<j$c6eq4T9>8o#*=^/D.2B+eJt_,?t+Wblp5;1"&!;">C$_1k_;],6r2:uK`56f^?.Cd*Y-ZE9Q^Gnd."$C-V\pgM?mCl!"uo&M])d<lLmaSkd@9Y*CHU-62_3"ltaK]5;iI9Ed7WR;+,.Aok3@Hccm=.cn>1G*HaPNCH<fm,fmIK/m3m\3#'7_:sbLB-Sm$dS,/M-UNHGED`^kJoEGXNt(<Z,ZU*eON@pc'B*dd@+W`"%pgGW%sdU]M7##AdeZibLpJc=mMnCV%rTmfP693Ld6'&Y;.]]Pu:gBiJJ?'<u'%oN84r7g#JiKGT-Jn^L+Qqrojk5%W0714kc?rc_#6h1TPE&jpin()*0d*imj+I&%PMYR,cS?&6o2u@JD&u,$9Cb8kp)41Z(-4H%Fqd*&7jY[4;W.6EM)*87Is<ae$lA\19;5&_"MC@AE=s3f,ds.!?`i!%+*5S#U;U)d8qOV`!c3_1;e%9F#-^)b!V?Pi;4q1HdATo?%&r;`2U'@Z/f6j4=8;+:El/b5Bn8M1(d<^fUcrm:;@D%8"f?\&CDKe)*oB6Fd6g9C%tN!'oNWGq)L1QDu!mNGg0J+B'=!J>I"\%p>H>\?+F)b4G1b#'i@6im9oIXQGdgM.?:^"Xcq;Nf+/^[+;<eHYof5g6?l_YFq%uZp%rEMZXVjH^QgpH;HW,f-k*/kgdRqCS=q.fV=m9:!I);JDkYeM?RJ_1CuZ<<4T'9]7)8g<ON)]IFS;2]?:`ET?2I?eJkg\3mV%&Clg<`/O*MS!k4jqS'UgB\E3$Uf9.rX:F,PdnhC#q2%98o8`.;@1g7'Q;V!&/=@/GFYQ_DP)35s[`^<qc:Hkgq]r@p5PUSM-48t,&9;tSMipY8p*",rN6FC.2U'":r/s0kHfTafR0gh$M=,0NngpoN8+S^,8X_\\\T4s9*93!'u.ZDf*iDNi(59&\[*o4$$9HF:_VA],]A>><k]+WZ60nX(0;_^P1&%A_YO%>&i-qD9BTA+*V/adAD.BE)f^[k_Mp]c_3!s"sZH^#Os$Ao*<br76)7ddUgiX0F8=G3mRN7/3TV:`ssW)'WMR.]uc-MuYR9Kkfn_GN?Aj)j_$)2Ib>I`L2DEgu0'PQ<NS^^a.N)50iWn,4NT^_#k:*a5HVl\[B:ia<N3o!9:Y@--&U5Fh&Y2dfjD[`ikYL`el#`8?ih#!_!=YPjs2aQ<QA&73^-,X?U#a*tJL&ce3-?8ucrGX)T1A2hVcNq$V)#;@R7D"0ee^!QfIMU!mp,3k#NW<[;I[U@&!""T92)jh+*;SHek2"mOa2:/he?(#MFN$+WPn\D/PRo]&MaJr3a=_OI8\#WO'0',Q3rgr^a:SXY*0"W7UHL-71^nKU7=dc,eeni74@GnYus1kG[e/D6RM3:&aqH-Wt,mTV*=]X9hB.nbdI3;$<r!``(,WS*_:?6"&\UjEYf)RsWFsKE$rV<O]^3fP3g7ht7H^^TL78FT`H-G^oC'P;^gH1k7K@\[r*oX\PpRcXdF5PW=NZ\:N)uRKmk4=&>mp<I(c0f,_3UYlsbXjK[psTOn_:j^W@,?!Gpgi>9!`].hggtqC`*T)hJX?[.0MiQ,(OP;)^]qSI)Jh!D;0q*N*N$(#(JQ:Xg2#]2!I,Q7NJ#?"Ls2Hs5kl=+1QkB*%7?PDb4_(1#_5NSGV.2qg]M$rk^LkI$G]ko"4jWS!5nqlepO?4dM-b1f?[XKRqu(,'tqF8<s6[!`@I^RhFN)Ag`<\4,G7_o_o>Q:)3(/skP+aLI7s,Xm9d!(\8"9oFROL[nIFHpcH46e#_VZ4_2oBb!mFCEjHOA-B!T:W?OU6se>QC6<0*s]R]g)52^ZV[B%n-W)W2l<E">\adDG<gF5"?49K%X0<GIeoVmiVhJU6<Qeq<O-LUg1ee>0PXpPphnC@FMXLaQ:V3)cE;f@rr0?2u(IN4#MDENIo.cXX%Gci+0WQANl~>endstream
endobj
23 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2755
>>
stream
Gat=,D/\/g')p`p0j(*YoO)GdaY32dG<ie-I_"=/]++JJj9mQe(9`n"P#N(_YJ4^@ad/I8!K$qMTM"9ak'<A'9FLcVrQi,'qJ](lrt\P'd-[FaA[J8fch-Jqc1a/:s5kZ'c!hW'GTBQrri%oj_2%PpXd!^=XHO(YXE^#"/>@X9,Q4L.68]#FNc+ke[t!SkJ&f=G%dRqVI>9(OSb?1Thq07BGDYRZZHfCSkEKlJpJ+]1*U0?%<?n$@oMIS6J*O&7jjbL5eb(%cI1.Q63(FNknM4Ehkk9RFDG*RG5N:@2O\mh?8lX?'A91S,PXZEf+<i<V[71s<NY#uC,jf+kmZf^0m9DRc/',_mmTeL,Ei!I=K6LGD2OeqNbC[3`UWki*D.4U,Ye8&:[[+-=^,&ZM.^5Mu.tk,CWp6g&XUAim+X:4UPYY\`Fc2=MJ$MrqLW'ZTfG5W%.V.j;b)tbUn`b1B'$5M5/TC\Goq?d%V"LeN\o'%oLs!q41^/`q?5b>Q&f'A570SX3/_/]\g)F<B^n"?5n/j_dV/ELMF\OKJ'<4?P7K0F:&!\[U23&F!D5ll5-ulonES.F2[DCRe_"-,mr'l,qWQpi?;D1r,`R^tkQm:F.S@_DA?COf[BTIbj?.U4m)*KD/jkdl`n)2S=Q5_>OdXkQL35Yn^(^Vc(VI[bqY)SRSMlu#][9`\iBbL9-Yq^`HnkqJa`E;neMJtCGT.e9OfI?gsC(Q<iH4]E/3RX^#RP$Mam>3]$+DXbd0d8nFMTm$dfY'*D^k$5#oBmt&0V`1MiU37,fY@),4A-J4k3l52RoCV)P7qZL-j>o6,lOXTjpdNQ<:\lN;n'Vg(d&`GGgp1C7dj]i+TpFRVCQZ)gG<:VA2mrS@MpJMCq3;g-m"B.`FY6K<_oS7aD8&<#Grn;$X1u2</8naD$;$c3gPT>lNH&X%4EtmgYB4m#Pmt*-K8%fpZCLY:(2Bc=qBU08B!PA4N@-<J:r5]V7FY?C(R3&Ck4npA0XfV//J<:_u"S$n'?([Sm0]Fj:7$F-;c&9Egt$NaF]"AoZW(GNK6>*<qsl(#nFKJA;n)iZ?Jji*_0."fFc7%hC0[P's+;Z8caV,L/6.K4B$LId@lk-H+2#G+6Qp%Ige[?)28.1pk')LaNTuWCjsoo1V0;6!*_%G1fo<4`';,R,hckrD%\]%I:1GDR2hJ'OQG1W#2%_q3U3QSqWn;a#iEBjaL+%$cm%\N7?T1p(4ZS=7)eoV1tBtthBlCPk3&T1(oZ)Vh4P4,ZNO-4rY"rEhqc5mgCWG)ZKs/s0HgJ1L_S_)Wa=q\O_eYHTe(U/+??a2)YR@<jZjEpnU;8T^XtT-P0I\+ja$/KICchWC^hKRH>=V8EtUq\6':/,LaAE>D!u20&cG4`p'gE=H]bcW]KaL/\]%[U^^^n\f(0OJfs[4p8=Y>l+!eXFLB@t;4orI;2^)&"%$os!F'(^l*QtpY"B\k>OEk.=0ABMJ)JUpF*k8/YB4u[Vcl[5f[T<d(DUq$Icm?@IFXCIG72R2'rtQl5#3l+%6\MT?8/E.6lh)aP<[U6SpIC;k`M`FZkeiODV:mBJUX9Ns-RgC%8LSco5ILWdcPZUGbUi3K^bEP:d<g)r#3i+FN#-\0Z3J!S"-*c"(L?-K>jeg-'P"q2ji(oPhdknG8mN1]C?o(seeh><!=pJ5qZ.kV@+iMN6r,%1Y@9IXcN_-;LQ/D:3,q2B)k+JOZGO.Mlo=>ek<8Xs66;(6Ju8^eI0q%RAb^Cl,?go7&Xr#26Lo]JMmo%4_IC2]oc7R=J8o.TPb0q[V<RBfgEuXu(GtO@h:m&0o;HWk51$d\;bGR!aIWXR^d5S)(rU9<=NWfbj/r0$]''R#")8#aroIY&b+I`Pr]EF6D'Sn9Gp0O+=3&!"I\ga`-I6ada,5>Mpr[W:1KNZj#=NPMo$1E&VtUaJ0<-YS#!u8R6<F$!D*l5?2P)+.SSp3ZEsWm\k`k,5:JnAkTp1*Tj/rbC6>_u>H(iMt``@YR20fLDrrsbJ[o?16*^4+:Q^iSI\mV"UKD%DM0`)P#,0Ali1'q6nF^9"ZSpdD$6P^ZQ8$DlFi`W""",5SefNZ/J86!\e!rX`Mjs0G$l./'_SHRW`9P/PYRNh>iWQ-UWa@_Qa)G12@2691T>?8^$,-Tu\hRqEYD4cMT`k`B(D0XVk&*Q5P*:'6qaS+*0jRVY=a;Ro;it'BjT/bH"d!Q&]a3/**"3Atu:XPu[2B=%HWZd!-F!K_K%D^uMnAn,9eo1$60kt501;sH&"h^2%p%jPn3fFr,&R#9C&stR@lpAMn%$+1;G.\lEQ4Me/4AK7ML3WMd]?0+,bGC#i9m3N=&!tP7o9*4n69*1N^<_'tH9^qKB]1=\4Q+c9?X(q92b7.mRMAUd[d..Ik7<Q`Bp92mL8sY47CWpk*XR5O40JcWEKDiI2PO!.N`@uB7#7R6IE@6tTffo=c`peq:F)E+W?+o<1V.jCLju+(3$i[[c3?l$Ug?$rE9G0LhK,1ZTZoF@R]K`4f.5B^C;aK583`]^=q2BX+ZVt&;4gYAb!)HH3*L2(>bAM]MT--sl*E.#EW?9k"0oVA@HF$9KDDdYT.eMHb>](;35dKgA.Se9T%_]L7\91$[2U/7\ZZiRX=&3XI)0r'a^L]!)h4P-pL)IG`6mjt)g?tHUP$$h<^$uli%M^R]]?"di<0_bU>;PU\Ujeq:HE<0RP1[1R#m<ra/8LsDu&PoIF=qo[dZ6?>;.W%7"jgLrrM:b"*"~>endstream
endobj
24 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1680
>>
stream
GatU2?$"aY&:F5U\@3q.MBPN=qFtth`%uGn3h/dj`X`Ue8OuC(!C3XLYO;OW>fi;^1`jo_Z39%?mbTOU;1obWmo`6S.]&JuN*&d<S6.H2;*(O4l.Pee[QQVjd9o'D7lZNI,QFlPSDcbW+,^RV/J0BS(AU4P$c>I/.Es:JfeDhm\u*cLXE[TY!l@#:X+`96.uYdZi^Lbe<0a/bd"4#Qj\9>U:9tD_V'+XIV:$Mm<Oo%3hQ$OPgaVc['cQUL;#6I*?X<4[Fa$i-OA'Va/VQY$eJ($3AnETtXE6>qEiK:@<Bd#j[F-]->ZSD:(+.hU"[0WZF\'nfGabA&ALQD4h009M=;92;Wj8?R!-'JSIlo]]T\hu26.f[%lQr/#f+JYVXDrXXJcJhP6>0c%06'+M>SM3*1q0')X&VH#-+%=FX-2C&hhsa7:0,n#$UBuV+e54B'Bm/4i2"`H\]PHELr(Qt8,]-b#\fC9n81V%1=CrDO?dki\^GM9H!?mt<'([BV[>A=9k$:&R?]9gV*KCgW_eT_c'>/]U%-faOEP\A:H4.8ae7gt6-@?o!>t&9>-,=OEj;uNn7pA?"`c"fA3u^r$i88L]:[!mBnW=jZqEfk.'lX=+4=J2`7@rrF'(uOqT5\,'%L)(!K%L4Bb1].m-.b7lkCoOZubV<erf)?>Ae20^BV'u-+>Ig#7?dP=uQoG*gG)%"NO&biNgRkm]V+^V2D,aT%o`9ns*/mE%i<,CE"YOaT2FPe,A$Z:O*3RPArEOg."hg:0Q8K:AHo:70CTg@!CYXjsi`lD3nd:)1s,QDBUM0LpIrI//GH17rPLi3[b)p]bWYIq_'pH,qNU*BK-k+@TjQmmp_:r;i=>pATg=:>G;Ep3o?+lc.6A%grNVAT'2>sS#%)C/m;3-$@c/Z*6*X.E\MHW`)e$Y\ca&,-7]5YE!1-tN3V=Vljen9cC6DNb]"KfAur?K@/7aKQ6k.P4cULnLMc'G@iO]T0<jsWRH<s>kY,r>[%eHXg4Zr)HhlDniS*hg3Z@D4i7cO7WB"hsckbG=Gq\QiEdOS]B\h_*IOj>&U<<HUoV96XC_qIPB&"Uq%UFHq>E67]NfpY?Z)`L<J$M.^`FV<,_gl,$]Emap-][3]b6rg/Znf)T:9Mn,*S4kRNicR<cF#.l/R8^GcZo.8,[]l\b?g[9_tEJ=FWSR3ClP/tZMf&Q7d$AY?(FJ/p4ptH(uN_rAcihZBR1(u\ncm&:6#,W,?Y^q%7<USA"REN$tmu2VSjb(T*#!u2#?M",IndY"hL$_%s2h^2e#LjgT?/^S>5=#m%/hm.<0WG\?gX0Gh`%@g%]9KC[o)((N(9;4G\IP[iP'=8D32d;O75'eD;5%Ep&R"(!u=MKbF^a[FD_Lksk,RME]NjQL\sTpmaOK7alIWrj>\^XU?4>"u!o4`rU/(Fl*,iPh6MoqXdQ\Eg2H[pH6k#GEd-EjV'Iu`3tOb-DsE9&*)h0WV/EcgGZ[5K^"_.:YIOJK_DOTn!_qU8=^10c]i_UJ4inn=N1Dgrr?Qd@Jo20'i(SV$Kp:_q"O/Ml8L2B;nE(]@O9C`I--_:fN2RQm'U25.e<r8#:sq[X-`9^]t't88q-q/O/0MK\8VD.f#aTb4KXB_oEVh6J1cjR4h\FuSC>uUoT__sl?;cf'NbOom<6XVIak4YllQ^t!SR~>endstream
endobj
25 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1886
>>
stream
GauHL8Q4D('Ya/hhIW]XW\Kh#PoE@e,nmRL:JSG+>I]s.D9!"mF3&9l:Ym!,e:c&q'Er3hg\'Ft4b]#V0@p.sejN#$g-9/e3%_=iH&bD<GP#X\o6lCRP$pbP)`nYMEU*7qFg_B@2VSkO>f.&Dm.eTCmU9+p,1V1ki;oLj<]6tSMcR9tBm%k:T]K6Y^,4,!iTm)Q+Ek4UjHIKkpW%T096lpU3b/_kl9aWtN]rrcVdjklGX,RtVs2,@@pqV5s$[o]OcMgAJP1>@Ufu0rbBmY]L^Urb`#]HtI1uSIR;-N.gkk6T'_`gW@[$"gR<Rr1jSl.2lGSa0c"5S&&kQ52X1CS7b+c.d7.S@ZW5oag)a,e\lQ3ZJ^$TRHe^+W45:\F+&]Mt/Q@$<p+bGuI)@TQ@l?`h>49_<$9`1ZFfSQ_JgoqT?Kq;Di<i+<3hip8-Nn\dV=m\_pie?^02Y43.Mk+T>A#''%2R@tP]kEQE:/#:j2NsgO9U7Qq[FjNBj!)WCoO9+^p%m^3hHkSS:LA:+=0au9pZ7+RK--%8.1:6>;kZu$h3<&>dW^DiBAblNV!8+AgEI\UVu$5?7qL$#1q^k\h2fd.Y3AfIH.J\uQK)U^*Y]i=8&dg=>C:o@U#Pu-I^p?C,]mbVj,*Srdm\aISS_+1lATcYA55Af'0<go%3YB64Epp*T>9rk"8^Nh>dq1afVQ0UF4GAX]+r=K*c:YnK#+G%E:lt[EU'3VQT+D.nQrM!aZ#Ag>7QiHHf(*k<3?U6LMTL^<Nc3BVKSeT3U8.rXd\2*Td<I;auh=qFHM]'RSG_^UB'(1<CNslN4(:c.2B>dN[ldSCR#rWc1!/ogd4t1+KDE:6X!P0V(T'n"@Km&Y"*:iD2"L5.t3el>`L^uIZ:a)S/Uhpf\FX0"2I#AIK1K3(#BA\5/kU=O)#$H*&!nGn9iOY=bJ`mhJH.k.u@J)W'os'1b<VNOWu2)c7RKb1+2SdN2l'@b%60B\^BdO29`:*W-SuVM*=W?buAIiEO`heh;n-)j\X#uOhjkGf$6n"l4E9[DM'G\$\q1-,^-=;-YqXX\#*JIs4"g8M-iM8iud\hGF)L(XXk<u6$*Q*7`q'g)9kg6Oj#km&BJZl,,7'*X;=!.%eKH@[RgT(Ss4B"P*T"R0!e_^/)(+_o>2T'^&i.h&:CFeXjXrL#hPQV!TXd^"LX!!fsm6$=?Ogi1obqh2/"TC\.i9^.f'tt:o*c18ATM[e^d,K+0b+]W^=pC.B!]HC`>A/BC8GS0MbcXqVJ1q\[>ESMnU!'.R/=T2bLJ\YQcXHPVPa=(YH4"mks2B(5mR%PCXNt\BA=CkRN@KK8)2RahhIKp)iBMZfD!'%QckIf;=Z.)S(';]=7Tq0"U^Zf!jDLSpUGiKDdO?r^:%m]WB\o;lXU)YA,!9=seCF1dM*,RC"B3,MS7X9`4OPjZc$19t_Td/F4GG#0AG`%(D%t)MNWA\+HOGb3LWk"V3>Q)c$3bBu40'WRQ3K>gCLaH*<tTc7M+h'KFJKq80JN,?TJ,`J,<qe<ql'3XI^(@IEN)(IT4U'5TS<fZVJ!)b(@!SYdt7V;MXuYu"IH*&!hKEj<EkBT$4Wrlci.M)5e@1VjGGB)D$O7qN?sGbW;P->&TY?j]<k"F#[(iD3\X_@8%I_0cdTT-]QC#jo_p=m6\.R'(+&@j*PB"31r-=a=.N\@>2<U6rBP20M<SZrS@mOl"je*(pZn*.neuK#,<^pjTFQ6]3o[ci$\a*3uYWdHDX<g9N4"1:)(T@$/@DE70(llkA3jH+8e:7_M^%[bp::3BgR1Z`k%je5]<Cf)X\'Nb>M+ORu;`/'Y:AB[bO7OYX;%WiZ^S!,2=Up`k3bGlFaZR<K/Bir@s]-Kb%:mJICn41RH~>endstream
endobj
xref
0 26
0000000000 65535 f
0000000061 00000 n
0000000132 00000 n
0000000239 00000 n
0000000347 00000 n
0000000456 00000 n
0000000566 00000 n
0000000761 00000 n
0000000956 00000 n
0000001033 00000 n
0000001228 00000 n
0000001424 00000 n
0000001620 00000 n
0000001816 00000 n
0000002012 00000 n
0000002208 00000 n
0000002278 00000 n
0000002559 00000 n
0000002666 00000 n
0000005348 00000 n
0000008089 00000 n
0000010950 00000 n
0000013573 00000 n
0000016351 00000 n
0000019198 00000 n
0000020970 00000 n
trailer
<<
/ID
[<587e2d00219f4cb896c9108e58a5e97c><587e2d00219f4cb896c9108e58a5e97c>]
% ReportLab generated PDF document -- digest (opensource)
/Info 16 0 R
/Root 15 0 R
/Size 26
>>
startxref
22948
%%EOF

189
README.md Normal file
View File

@@ -0,0 +1,189 @@
---
license: apache-2.0
language:
- en
- es
base_model: Qwen/Qwen3-8B
tags:
- conversational
- personality
- anti-sycophancy
- bilingual
- gguf
- claude-distillation
- opus
- zipf-weighted
library_name: transformers
pipeline_tag: text-generation
---
# can·did
/ˈkandəd/ — truthful and straightforward; frank.
*From Latin candidus, meaning white, pure, sincere. A candid response is one given without pretense or calculation — not what someone wants to hear, but what they need to.*
## Opus-Candid-8B V3
Fine-tuned from **Qwen 3 8B** on **1,558 Zipf-weighted conversations** distilled from Claude Opus 4.6. V3 is a ground-up rebuild — not an iteration on V2. The entire dataset architecture was redesigned around a 4-dimensional training tensor that models how real people actually talk.
No system prompt needed. No prompt engineering. No character cards. The personality is in the weights — direct, opinionated, bilingual (EN/ES), and incapable of telling you what you want to hear. It holds positions under pressure, calls out bad arguments, and knows when to shut up.
---
## What Changed from V2.1
Everything. V3 is not a patch — it's a new dataset, new methodology, new distribution logic. The model family name is the same because the philosophy is the same: personality lives in weights, not system prompts.
**V2/V2.1 used gravity chains** — 10 topic-drift pathways with 6,771 conversations. Good at cross-domain transitions but suffered from uniform response length (88% medium-length) and repetition loops under pressure.
**V3 uses a 4D training tensor** — every conversation sits at a coordinate across topic (Zipf-weighted), response length, psychological register, and conversational position. 1,558 conversations, ~640K tokens. Fewer conversations than V2, but each one is precisely placed to cover a specific gap in the distribution.
Key improvements:
- **42% tight responses** (2-4 turns) vs V2's ~12%. The model learned when to shut up.
- **Zipf-weighted topic distribution** (s ≈ 0.7) matching real conversation frequency data from Pew Research, OpenAI usage studies, and dialogue corpora.
- **Anti-sycophancy enforcement at the data level** — 22 instances caught and replaced. No "Great question!" in the training set.
- **Response length variance injection** — 252 conversations where responses were suspiciously uniform were fixed with deliberate length variation.
---
## Available Quantizations
| File | Quant | Size | Use Case |
|------|-------|------|----------|
| `Opus-Candid-8B-V3-Q8_0.gguf` | Q8_0 | 8.2 GB | Maximum quality. Use this if you have the VRAM. |
| `Opus-Candid-8B-V3-Q6_K.gguf` | Q6_K | 6.3 GB | Recommended for most users. Negligible quality loss. |
**Note on Q4:** We tested Q4_K_M extensively. At 8B parameters, Q4 quantization destroys the model's ability to track its own output, producing degenerate repetition loops within the first turn. This is not a repeat_penalty tuning issue — Q4 loses the weight precision needed for self-monitoring behavior. We do not ship or recommend Q4 for this model. If you need a smaller footprint, use Q6_K or look at the [4B Lite](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B-P) lineup (purpose-built for small hardware — Q4 survives at 4B because of density-first training).
---
## Model Details
| Attribute | Value |
|-----------|-------|
| **Base Model** | Qwen 3 8B (8.19B params) |
| **Training Data** | 1,558 multi-turn conversations with Claude Opus 4.6 |
| **Dataset Architecture** | 4D training tensor (topic × length × register × position) |
| **Total Tokens** | ~640,000 |
| **Fine-tune Method** | LoRA + rsLoRA (r=64, alpha=128) via PEFT + TRL |
| **Training Hardware** | NVIDIA A100 SXM 80GB (RunPod) |
| **Precision** | bf16 |
| **Epochs** | 3 |
| **Learning Rate** | 2e-4 (cosine schedule, 5% warmup) |
| **Effective Batch Size** | 16 |
| **Optimizer** | AdamW |
| **License** | Apache 2.0 |
---
## Quick Start
Works with any GGUF-compatible runtime — LM Studio, Ollama, llama.cpp, KoboldCpp. Download the GGUF, load it, and chat. No system prompt needed — the personality is in the weights.
---
## Recommended Hardware
| Setup | Quantization | VRAM/RAM | Speed | Notes |
|-------|-------------|----------|-------|-------|
| **GPU (Q8)** | Q8_0 | ~9 GB VRAM | 30-60 t/s | RTX 3060 12GB and up |
| **GPU (Q6)** | Q6_K | ~7 GB VRAM | 35-70 t/s | RTX 3060, RX 7600, Arc A770 |
| **Apple Silicon** | Q6_K/Q8 | ~7-9 GB unified | 20-40 t/s | M1/M2/M3/M4 with 16GB+ |
| **CPU Only** | Q6_K | ~8 GB RAM | 5-15 t/s | 16GB+ system RAM |
---
## The 4D Training Tensor
V3 treats the training dataset as a 4-dimensional space. Every conversation sits at a specific coordinate, and the distribution across each axis follows empirical frequency patterns.
### Dimension 1: Topic Distribution (Zipf-weighted, s ≈ 0.7)
25 topics across 5 frequency tiers, weighted by real-world conversation frequency data. Tier 1 (daily topics: personal life, work, food, entertainment, relationships) gets 47.9% of training data. Tier 5 (occasional: legal, philosophy, creative writing) gets 3.2%. This means the model is disproportionately good at the conversations people actually have, without being useless at rare topics.
### Dimension 2: Response Length
| Length | Turns | Share |
|--------|-------|-------|
| Tight | 2-4 | 42% |
| Medium | 6-10 | 33% |
| Deep | 12-18 | 20% |
| Extended | 20+ | 5% |
The tight-to-medium ratio is the most important number in the dataset. V2.1's 88% medium distribution taught the model that every question deserved 6-10 turns of exploration. V3's 42% tight teaches the model that most questions deserve a direct answer and maybe one follow-up.
### Dimension 3: Psychological Register
40% neutral/analytical, 30% engaged/conversational, 25% emotionally loaded, 5% adversarial/correction.
### Dimension 4: Conversational Position
15% opening, 50% mid-thread, 20% follow-up, 15% wrap-up.
---
## Opus Candid Model Family
| Model | Size | Base | Status |
|-------|------|------|--------|
| [Opus-Candid-Lite-4B](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B) | 4B | Qwen 3 4B | Active |
| [Opus-Candid-Lite-4B-P](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B-P) | 4B | Qwen 3 4B | Active |
| [Opus-Candid-Lite-4B-K](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B-K) | 4B | Qwen 3 4B | Active |
| **Opus-Candid-8B-V3** (this model) | 8B | Qwen 3 8B | Active |
| [Opus-Candid-MoE-V3](https://huggingface.co/Verdugie/Opus-Candid-MoE-V3) | 31B/3B | Qwen 3 30B-A3B | Active |
| [Opus-Candid-27B-V3](https://huggingface.co/Verdugie/Opus-Candid-27B-V3) | 27B | Qwen 3.5 27B | Active |
| [Opus-Candid-27B-V3.5](https://huggingface.co/Verdugie/Opus-Candid-27B-V3.5) | 27B | Qwen 3.5 27B | Active |
| [STEM-Oracle-27B](https://huggingface.co/Verdugie/STEM-Oracle-27B) | 27B | Qwen 3.5 27B | Active |
| [Opus-Candid-8B-V1](https://huggingface.co/Verdugie/Opus-Candid-8B-V1) | 8B | Qwen 2.5 7B | Legacy |
| [Opus-Research-8B-V1.5](https://huggingface.co/Verdugie/Opus-Research-8B-V1.5) | 8B | Qwen 2.5 7B | Legacy |
| [Opus-Candid-8B-V2](https://huggingface.co/Verdugie/Opus-Candid-8B-V2) | 8B | Qwen 2.5 7B | Legacy |
| [Opus-Candid-8B-V2.1](https://huggingface.co/Verdugie/Opus-Candid-8B-V2.1) | 8B | Qwen 2.5 7B | Legacy |
| [Opus-Candid-14B-V1](https://huggingface.co/Verdugie/Opus-Candid-14B-V1) | 14B | Qwen 2.5 14B | Legacy |
| [Opus-Candid-27B-V2.1](https://huggingface.co/Verdugie/Opus-Candid-27B-V2.1) | 27B | Qwen 2.5 27B | Legacy |
| [Opus-Candid-32B-V1](https://huggingface.co/Verdugie/Opus-Candid-32B-V1) | 32B | Qwen 2.5 32B | Legacy |
| [Opus-Candid-MoE-V2](https://huggingface.co/Verdugie/Opus-Candid-MoE-V2) | 35B | Qwen 2.5 MoE | Legacy |
| [Opus-Candid-70B-V1](https://huggingface.co/Verdugie/Opus-Candid-70B-V1) | 72B | Qwen 2.5 72B | Legacy |
---
## Dataset
Full V3 training data available at [Verdugie/opus-candid-training-data](https://huggingface.co/datasets/Verdugie/opus-candid-training-data). ShareGPT format, Apache 2.0, compatible with TRL, Axolotl, and LLaMA-Factory.
**License:** Apache 2.0. Open weight. No guardrails.
---
## Opus Candid Lite — Now Available
The Q4 failure at 8B taught us something important: you can't compress personality by dropping precision — you compress it by raising density. Q4 quantization destroys self-monitoring weights. The answer was never smaller quantization. It's a smaller model built from scratch on data engineered for maximum information per byte.
**Opus Candid Lite is its own model**, not a quantized anything. Built on Qwen 3 4B with a dataset where every response earned its place through a Pareto-optimal information density analysis. The highest matrix consideration of any model in the family — because at 2.3 GB (Q4_K_M), nothing gets to be filler. The Lite lineup splits into two forks: [Lite-P](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B-P) (personality-optimized, 22w median) and [Lite-K](https://huggingface.co/Verdugie/Opus-Candid-Lite-4B-K) (knowledge-optimized, 11w median).
### The Research: Information Density Equilibrium
Every model in the Opus Candid family uses the same voice, the same opinions, the same dataset philosophy. What changes between sizes is how that signal is compressed. For Lite, we asked: *what's the theoretical maximum information you can pack per training token before usefulness degrades?*
```
Information density: I(w) = k × ln(1 + w) (logarithmic — diminishing returns per word)
Usefulness coverage: U(w) = 1 - e^(-0.12w) (exponential saturation — too short = useless)
Optimal target: maximize I(w) × U(w) / w (info per token)
```
The equilibrium lands at **28 words median** — 72% information density, 96.5% usefulness, and +13.2% info/token efficiency vs V3's 42-word median. Every word saved compounds into more training examples at a fixed token budget, meaning the 4B sees *more diverse patterns* than the 8B despite being a smaller model.
### Why "Lite" and Not "V3 4B"
V3 at 8B teaches a model *when* to be concise. Opus Candid Lite teaches a model *how* to be maximally dense. The dataset was rebuilt from scratch:
1. **Zipf-head filtering** — only the highest-frequency topics that 80% of users actually ask about
2. **Response compression** — every response optimized to the 28-word equilibrium target
3. **224 snap responses** — one-liners that encode the personality DNA (direct, opinionated, zero filler)
4. **Anti-pattern enforcement** — sycophancy, hedging, and filler scanned and removed at the data level
The result: 1,149 conversations, 2,291 responses, zero over 35 words, a clean bell curve peaking at 21-25 words. Opus personality at the size of a phone app.
This is the model for anyone who doesn't have a GPU. Integrated graphics, phones, Raspberry Pi. The same voice that ships on a 4090 at 27B, running on hardware that costs $50.
---
*Built by [Saul Verdugo](https://huggingface.co/Verdugie) — independent ML researcher.*

219
V3-METHODOLOGY.md Normal file
View File

@@ -0,0 +1,219 @@
# Opus Candid V3 — Training Methodology
## Background
Opus Candid is a series of conversational fine-tunes designed to produce AI that communicates like a thoughtful person — direct, opinionated when warranted, and calibrated to match response depth with question complexity. The models are distilled from Claude Opus 4.6 onto open-weight Qwen architectures.
V3 is the third generation, built from the ground up to address specific failure modes observed in V1 and V2.1.
---
## Failure Analysis: Why V3 Was Necessary
### V1 (8B)
Had personality but produced monotone output. The model would maintain a consistent tone regardless of context — the same analytical voice whether someone asked about cooking dinner or processing grief. The training data lacked register diversity.
### V2.1 (27B Dense)
Significantly better personality transfer, but stress testing revealed three critical issues:
1. **Degenerate repetition loops.** The model would restate the same point 24 times in different words within a single response. Root cause: a 22:1 verbose-to-brief training ratio. The model learned that longer responses were the default and had no examples of when to stop.
2. **Uniform response length.** 88% of training conversations were medium length (610 turns). The model had almost no examples of tight 24 turn exchanges or extended 20+ turn deep dives. Every conversation converged to the same depth regardless of topic weight.
3. **Factual hallucination under pressure.** In adversarial exchanges, the model would fabricate specifics (NATO treaty articles, geopolitical scenarios) rather than acknowledge uncertainty. The adversarial training data was too sparse and too combative — the model learned to fight rather than to hold a position honestly.
---
## V3 Design: The 4D Training Tensor
V3 treats the training dataset as a 4-dimensional space. Every conversation sits at a specific coordinate across four axes, and the distribution across each axis follows real-world frequency patterns.
### Dimension 1: Topic Distribution (Zipf-weighted, s ≈ 0.7)
25 topics distributed across 5 frequency tiers, weighted by how often these topics actually come up in human conversation.
**Research basis:**
- Pew Research Center (2024): 69% of people discuss personal life regularly, 46% work, 44% pop culture, declining through politics and religion at 20%.
- OpenAI/NBER study (2025): 80% of ChatGPT usage is practical guidance, information seeking, and writing assistance. Coding represents only 4.2%.
- Academic conversation research: Hobbies rank #1 in casual conversation, followed by family and travel. 60% of conversations are self-referential.
- Zipf's law: Confirmed at the pragmatic/utterance level in dialogue corpora, not just word frequency.
The Zipf exponent (s ≈ 0.7) was chosen to be slightly flatter than pure Zipf (s = 1.0) to ensure lower-frequency topics still have enough examples for the model to learn from, while maintaining the heavy-head distribution that matches reality.
| Tier | Topics | Share | Examples |
|------|--------|-------|----------|
| 1 (Daily) | 5 topics | 47.9% | Personal life, work, food, entertainment, relationships |
| 2 (Weekly) | 5 topics | 26.8% | Family, health, money, tech help, home |
| 3 (Regular) | 5 topics | 12.5% | Hobbies, travel, shopping, pets, weather |
| 4 (Less Common) | 5 topics | 7.5% | Education, career, cars, mental health, current events |
| 5 (Occasional) | 5 topics | 3.2% | Legal, identity/culture, science, philosophy, creative writing |
### Dimension 2: Response Length
The target distribution deliberately overweights tight responses relative to what users might expect, because the V2.1 failure was caused by underweighting them.
| Length | Turns | Target | Actual |
|--------|-------|--------|--------|
| Tight | 24 | 40% | 42.0% |
| Medium | 610 | 35% | 33.4% |
| Deep | 1218 | 20% | 19.5% |
| Extended | 20+ | 5% | 5.2% |
The tight-to-medium ratio is the single most important number in the dataset. V2.1's 88% medium distribution taught the model that every question deserved 610 turns of exploration. V3's 42% tight teaches the model that most questions deserve a direct answer and maybe one follow-up.
### Dimension 3: Psychological Register
| Register | Target | Actual |
|----------|--------|--------|
| Neutral/Analytical | 40% | 40.6% |
| Engaged/Conversational | 30% | 28.7% |
| Emotionally Loaded | 25% | 22.3% |
| Adversarial/Correction | 5% | 7.8% |
The adversarial percentage was deliberately kept low. V2.1's edge cases at 1012% produced a model that was gratuitously combative. 58% teaches the model to hold positions firmly when warranted without making disagreement its default mode.
### Dimension 4: Conversational Position
- Opening exchanges: 15%
- Mid-thread continuation: 50%
- Follow-up/clarification: 20%
- Wrap-up/conclusion: 15%
This ensures the model learns how to start, sustain, redirect, and conclude conversations — not just respond to isolated prompts.
---
## Demographic Overlay
Layered on top of the topic distribution, not as a separate axis. Each conversation is written from the perspective of a specific demographic to ensure the model can adjust its communication style naturally.
| Demographic | Code | Target | Actual | Purpose |
|-------------|------|--------|--------|---------|
| Young Adults (1835) | YA | 40% | 40.4% | Tech-literate, casual tone, primary user base |
| Working Adults (3055) | WA | 15% | 17.3% | Professional context, practical needs |
| Parents | P | 20% | 19.1% | Child-related, time-constrained, practical |
| Elders (60+) | E | 10% | 11.3% | Treated with dignity, not condescension |
| Bilingual (EN/ES) | B | 10% | 8.1% | Code-switching, same analytical voice in both languages |
| Adversarial/Edge | ADV | 5% | 3.7% | Disagreements, corrections, pushback |
The bilingual conversations specifically maintain the same personality in Spanish. Only the human side uses colloquial language, Spanglish, and code-switching. The model's Spanish responses keep the same analytical, direct voice as its English responses.
---
## Anti-Sycophancy Enforcement
Applied at the data level during generation, not as a post-processing filter.
**Banned patterns:**
- "Great question!" / "That's a great question"
- "Absolutely!" as a conversation opener
- "I'd be happy to help with that"
- Any opening that validates the question before answering it
**Replacement strategy:** Sycophantic openers were replaced with natural conversational entries — "Yeah,", "Right,", "Makes sense.", "Look,", "So", "Honestly," — chosen to match the register of each conversation.
22 sycophancy instances were caught and replaced in the final audit pass.
---
## Response Length Variance Injection
The audit pipeline flagged 252 conversations (20.7%) where assistant response lengths were suspiciously uniform within a conversation. The detector measured coefficient of variation in word counts across all assistant turns — conversations where every response was roughly the same length were flagged.
**Fix:** ~30% of mid-conversation assistant turns in flagged conversations were trimmed to 12 sentences. This teaches the model that not every turn in a conversation needs to be the same depth. A good conversationalist gives a long answer when the question warrants it and a short one when it doesn't, even within the same conversation.
Post-fix: uniform conversations dropped from 20.7% to 5.2%.
---
## Generation Strategy
### Hand-generated (free): 1,136 conversations
All tight (24 turn) and medium (610 turn) conversations were generated directly by Claude Opus 4.6 in large batches, organized by topic. 25 batches total, one per topic, generated in descending weight order.
Additionally, 219 deep (1218 turn) conversations were hand-generated for the top 10 topics (batches 110) to provide high-quality anchor examples.
### API-generated: 153 conversations
Deep conversations for topics 1125 and all extended (20+) conversations were generated via the Anthropic API using Claude Opus 4.6 (`claude-opus-4-6`).
5 API keys running in parallel via ThreadPoolExecutor. Each conversation saved individually for crash safety. Total API spend: ~$10 of $50 budget.
---
## Quality Audit
A 9-check automated audit pipeline scanned the full dataset:
1. **Sycophancy detection** — scanned for "Great question", "Absolutely!", etc.
2. **Filler phrase detection** — "In today's world", "It's worth noting", etc.
3. **Internal repetition** — duplicate sentences within responses
4. **Response length uniformity** — flagged conversations with low variance in response lengths
5. **Turn count validation** — ensured conversations matched their length label
6. **Opener diversity** — checked for over-represented first words/phrases
7. **Metadata integrity** — valid topic, demographic, register codes
8. **Demographic authenticity** — bilingual conversations must contain Spanish
9. **Bilingual quality** — Spanish responses maintain analytical voice
### Issues Found and Fixed
- 22 sycophantic openers replaced
- 14 mislabeled medium conversations (24 turns) relabeled to tight
- 28 fake bilingual conversations (tagged B but no Spanish) relabeled to YA
- 252 uniform response length conversations fixed via variance injection
- "That's" opener at 8.2% frequency — diversified ~50% to alternatives
---
## Final Dataset Statistics
| Metric | Value |
|--------|-------|
| Total conversations | 1,508 |
| Total turns | 14,891 |
| Average turns per conversation | 9.9 |
| Estimated tokens | ~619,000 |
| File size | 3.9 MB |
| Format | ShareGPT JSON (ChatML template) |
### Response Word Count Distribution
| Metric | Words |
|--------|-------|
| Mean | 46 |
| Median | 41 |
| P10 | 14 |
| P90 | 83 |
---
## Training Configuration
All three models use the same dataset and the same general approach, adapted for model size.
| Parameter | 8B | 27B Dense | MoE (30B-A3B) |
|-----------|-----|-----------|---------------|
| Base Model | Qwen/Qwen3-8B | Qwen/Qwen3.5-27B | Qwen/Qwen3-30B-A3B |
| Method | LoRA + rsLoRA | LoRA + rsLoRA | LoRA + rsLoRA |
| Rank | 64 | 32 | 32 |
| Epochs | 3 | 2 | 2 |
| Batch Size | 2 | 1 | 1 |
| Grad Accumulation | 8 | 16 | 16 |
| Effective Batch | 16 | 16 | 16 |
| Learning Rate | 2e-4 | 2e-4 | 1e-4 |
| Warmup | 5% | 5% | 8% |
| Precision | bf16 | bf16 | bf16 |
| Attention | SDPA | SDPA | SDPA |
| Optimizer | AdamW | AdamW | AdamW |
**MoE-specific:** Gate, router, and shared expert gate modules are excluded from LoRA adaptation. The routing logic learned during pre-training is preserved; only the expert FFN and attention layers receive fine-tuning.
**Why not DoRA:** DoRA (Weight-Decomposed Low-Rank Adaptation) was the original plan and was used successfully in V2.1. However, newer versions of the PEFT library introduced a bug where DoRA's magnitude vector gets stuck on the meta device during training with gradient checkpointing. Standard LoRA with rsLoRA (rank-stabilized scaling) and higher rank compensates effectively.
---
## Hardware
All training runs on NVIDIA A100 SXM 80GB via RunPod.
---
*Opus Candid V3 — March 2026*
*Built by Verdugie*

80170
opus-candid-v3-train.json Normal file

File diff suppressed because it is too large Load Diff

435
topic-distribution.json Normal file
View File

@@ -0,0 +1,435 @@
{
"v3_topic_distribution": {
"version": "2.0",
"method": "Relaxed Zipf (s\u22480.7 power-law exponent)",
"num_topics": 25,
"research_basis": [
"Pew Research 2024 \u2014 What Americans talk about with family/friends",
"OpenAI/NBER 2025 \u2014 How People Use ChatGPT (1.5M conversations)",
"Statista 2024 \u2014 Most talked about topics online (US)",
"Academic: Conversation research meta-analysis (Yeomans et al. 2023)",
"Scientific American \u2014 60% of conversations are self-referential",
"Zipf's law confirmed at pragmatic level in spoken dialogue"
],
"total_target": 1474,
"free_conversations": 1101,
"api_conversations": 373,
"api_budget": "$50 (Opus 4.6)",
"topics": [
{
"rank": 1,
"topic": "personal_updates_daily_life",
"description": "What's happening in my life, catching up, daily events",
"tier": 1,
"weight": 100,
"percentage": 13.0,
"free_conversations": 143,
"api_conversations": 49,
"total": 192,
"tight": 77,
"medium": 67,
"deep": 38,
"extended": 10
},
{
"rank": 2,
"topic": "work_job_school",
"description": "Job problems, coworkers, school, career stress",
"tier": 1,
"weight": 82,
"percentage": 10.6,
"free_conversations": 117,
"api_conversations": 40,
"total": 157,
"tight": 63,
"medium": 55,
"deep": 31,
"extended": 8
},
{
"rank": 3,
"topic": "food_cooking_restaurants",
"description": "What to eat, recipes, restaurant recs, cooking help",
"tier": 1,
"weight": 68,
"percentage": 8.8,
"free_conversations": 97,
"api_conversations": 33,
"total": 130,
"tight": 52,
"medium": 46,
"deep": 26,
"extended": 6
},
{
"rank": 4,
"topic": "entertainment_media",
"description": "Movies, TV, music, games, books, podcasts, memes",
"tier": 1,
"weight": 62,
"percentage": 8.0,
"free_conversations": 88,
"api_conversations": 30,
"total": 118,
"tight": 47,
"medium": 41,
"deep": 24,
"extended": 6
},
{
"rank": 5,
"topic": "relationships_romance_friendship",
"description": "Dating, breakups, friendships, social dynamics",
"tier": 1,
"weight": 58,
"percentage": 7.5,
"free_conversations": 83,
"api_conversations": 28,
"total": 111,
"tight": 44,
"medium": 39,
"deep": 22,
"extended": 6
},
{
"rank": 6,
"topic": "family_dynamics_parenting",
"description": "Kids, parents, siblings, family drama, parenting decisions",
"tier": 2,
"weight": 50,
"percentage": 6.5,
"free_conversations": 71,
"api_conversations": 24,
"total": 95,
"tight": 38,
"medium": 33,
"deep": 19,
"extended": 5
},
{
"rank": 7,
"topic": "health_body_fitness",
"description": "Symptoms, diet, exercise, mental health, doctor visits",
"tier": 2,
"weight": 44,
"percentage": 5.7,
"free_conversations": 63,
"api_conversations": 21,
"total": 84,
"tight": 34,
"medium": 29,
"deep": 17,
"extended": 4
},
{
"rank": 8,
"topic": "money_budgeting_bills",
"description": "Bills, budgeting, debt, prices, financial stress",
"tier": 2,
"weight": 40,
"percentage": 5.2,
"free_conversations": 57,
"api_conversations": 19,
"total": 76,
"tight": 30,
"medium": 27,
"deep": 15,
"extended": 4
},
{
"rank": 9,
"topic": "tech_help_devices",
"description": "Phone problems, apps, WiFi, how do I do X on my computer",
"tier": 2,
"weight": 38,
"percentage": 4.9,
"free_conversations": 54,
"api_conversations": 18,
"total": 72,
"tight": 29,
"medium": 25,
"deep": 14,
"extended": 4
},
{
"rank": 10,
"topic": "home_living_chores",
"description": "Apartment, house stuff, repairs, cleaning, moving",
"tier": 2,
"weight": 34,
"percentage": 4.4,
"free_conversations": 49,
"api_conversations": 17,
"total": 66,
"tight": 26,
"medium": 23,
"deep": 13,
"extended": 4
},
{
"rank": 11,
"topic": "hobbies_interests",
"description": "Sports, gaming, crafts, cars, outdoor activities",
"tier": 3,
"weight": 28,
"percentage": 3.6,
"free_conversations": 40,
"api_conversations": 14,
"total": 54,
"tight": 22,
"medium": 19,
"deep": 11,
"extended": 2
},
{
"rank": 12,
"topic": "travel_places",
"description": "Trips, vacation planning, places lived, commuting",
"tier": 3,
"weight": 24,
"percentage": 3.1,
"free_conversations": 34,
"api_conversations": 12,
"total": 46,
"tight": 18,
"medium": 16,
"deep": 9,
"extended": 3
},
{
"rank": 13,
"topic": "shopping_products_recommendations",
"description": "What should I buy, reviews, deals, product comparisons",
"tier": 3,
"weight": 22,
"percentage": 2.9,
"free_conversations": 31,
"api_conversations": 11,
"total": 42,
"tight": 17,
"medium": 15,
"deep": 8,
"extended": 2
},
{
"rank": 14,
"topic": "pets_animals",
"description": "Pet care, vet visits, animal content, getting a pet",
"tier": 3,
"weight": 20,
"percentage": 2.6,
"free_conversations": 29,
"api_conversations": 10,
"total": 39,
"tight": 16,
"medium": 14,
"deep": 8,
"extended": 1
},
{
"rank": 15,
"topic": "weather_local_events",
"description": "Weather talk, local news, community events, neighborhood",
"tier": 3,
"weight": 18,
"percentage": 2.3,
"free_conversations": 26,
"api_conversations": 9,
"total": 35,
"tight": 14,
"medium": 12,
"deep": 7,
"extended": 2
},
{
"rank": 16,
"topic": "education_learning_skills",
"description": "Learning something new, studying, how things work",
"tier": 4,
"weight": 15,
"percentage": 1.9,
"free_conversations": 21,
"api_conversations": 7,
"total": 28,
"tight": 11,
"medium": 10,
"deep": 6,
"extended": 1
},
{
"rank": 17,
"topic": "career_advancement_interviews",
"description": "Job hunting, resumes, interviews, career moves, side hustles",
"tier": 4,
"weight": 13,
"percentage": 1.7,
"free_conversations": 19,
"api_conversations": 6,
"total": 25,
"tight": 10,
"medium": 9,
"deep": 5,
"extended": 1
},
{
"rank": 18,
"topic": "cars_transportation",
"description": "Car problems, buying cars, mechanics, commute, gas prices",
"tier": 4,
"weight": 11,
"percentage": 1.4,
"free_conversations": 16,
"api_conversations": 5,
"total": 21,
"tight": 8,
"medium": 7,
"deep": 4,
"extended": 2
},
{
"rank": 19,
"topic": "mental_health_emotional_support",
"description": "Anxiety, depression, stress, venting, life overwhelm",
"tier": 4,
"weight": 10,
"percentage": 1.3,
"free_conversations": 14,
"api_conversations": 5,
"total": 19,
"tight": 8,
"medium": 7,
"deep": 4,
"extended": 1
},
{
"rank": 20,
"topic": "current_events_news",
"description": "Headlines, politics, what happened today, outrage cycle",
"tier": 4,
"weight": 9,
"percentage": 1.2,
"free_conversations": 13,
"api_conversations": 4,
"total": 17,
"tight": 7,
"medium": 6,
"deep": 3,
"extended": 1
},
{
"rank": 21,
"topic": "legal_rights_bureaucracy",
"description": "Tenant rights, got a ticket, dealing with institutions",
"tier": 5,
"weight": 7,
"percentage": 0.9,
"free_conversations": 10,
"api_conversations": 3,
"total": 13,
"tight": 5,
"medium": 5,
"deep": 3,
"extended": 1
},
{
"rank": 22,
"topic": "identity_culture_belonging",
"description": "Who am I, cultural identity, fitting in, code-switching",
"tier": 5,
"weight": 6,
"percentage": 0.8,
"free_conversations": 9,
"api_conversations": 3,
"total": 12,
"tight": 5,
"medium": 4,
"deep": 2,
"extended": 1
},
{
"rank": 23,
"topic": "science_curiosity",
"description": "Why is the sky blue, space, how does X work, cool facts",
"tier": 5,
"weight": 5,
"percentage": 0.6,
"free_conversations": 7,
"api_conversations": 2,
"total": 9,
"tight": 4,
"medium": 3,
"deep": 2,
"extended": 1
},
{
"rank": 24,
"topic": "philosophy_meaning_existential",
"description": "Big questions, purpose, death, what matters, morality",
"tier": 5,
"weight": 4,
"percentage": 0.5,
"free_conversations": 6,
"api_conversations": 2,
"total": 8,
"tight": 3,
"medium": 3,
"deep": 2,
"extended": 1
},
{
"rank": 25,
"topic": "creative_writing_art",
"description": "Making music, writing, art, creative expression",
"tier": 5,
"weight": 3,
"percentage": 0.4,
"free_conversations": 4,
"api_conversations": 1,
"total": 5,
"tight": 2,
"medium": 2,
"deep": 1,
"extended": 1
}
],
"demographic_overlay": {
"Young adults (18-35, tech-literate)": {
"percentage": 0.4,
"description": "Default voice. Tech-native, casual."
},
"Working adults (30-55)": {
"percentage": 0.15,
"description": "Job stress, bills, family balance."
},
"Parents": {
"percentage": 0.2,
"description": "Kids, school tech, family decisions."
},
"Elders (60+)": {
"percentage": 0.1,
"description": "Digital literacy, dignity, wisdom."
},
"Bilingual/cultural": {
"percentage": 0.1,
"description": "Code-switching, identity, heritage."
},
"Adversarial/edge": {
"percentage": 0.05,
"description": "Gaslighting resistance, boundaries, stress tests."
}
},
"length_distribution": {
"tight_2-4_turns": "40%",
"medium_6-10_turns": "35%",
"deep_12-18_turns": "20%",
"extended_20+_turns": "5%"
},
"tier_definitions": {
"tier_1": "Daily staples \u2014 everyone talks about these every day",
"tier_2": "Very common \u2014 weekly conversations for most people",
"tier_3": "Common \u2014 regular but not daily",
"tier_4": "Less common but important for depth",
"tier_5": "Occasional \u2014 rare but needed for model completeness"
}
}
}