From a28935febee4d091c154951dbf7685c9de7f50d3 Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 14:14:46 +0100 Subject: [PATCH 01/17] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 2892132c4..73a4226fb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,17 @@ # llama.cpp + +# This fork is ONLY a modified server UI. + + + + ![llama](https://user-images.githubusercontent.com/1991296/230134379-7181e485-c521-4d23-a0d6-f7b3b61ba524.png) + + + + [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) [Roadmap](https://github.com/users/ggerganov/projects/7) / [Project status](https://github.com/ggerganov/llama.cpp/discussions/3471) / [Manifesto](https://github.com/ggerganov/llama.cpp/discussions/205) / [ggml](https://github.com/ggerganov/ggml) From 25ed0c4f6bbc61742dd96a4758c9ad7f5d97a9fe Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 14:18:39 +0100 Subject: [PATCH 02/17] add ui and tui pics --- media/ppCamall-tui01.jpeg | Bin 0 -> 61559 bytes media/ppCamall-ui01.jpeg | Bin 0 -> 146217 bytes media/ppCamall-ui02.jpeg | Bin 0 -> 251740 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 media/ppCamall-tui01.jpeg create mode 100644 media/ppCamall-ui01.jpeg create mode 100644 media/ppCamall-ui02.jpeg diff --git a/media/ppCamall-tui01.jpeg b/media/ppCamall-tui01.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e101cefb6e4c84ae52ae647ab89dd1e9285dd759 GIT binary patch literal 61559 zcmeFZ2UJwcwl=z&jO3hy5+#U|QJ_U63n)1U$sjpPLn}%K5tJYxC@2UBNJgUMC`gu^ zL^5;}o7DX;+-H04_S}2+e)qmR{xRO$h1E5?x~f*qS+i=*`f8S#ub5eYTvbs;5r9Ad z;3@bAVCH~$1wRK{08m#4_y7PP0B|6T04_*@MF3d{(@$Cv!V6&k$j1VJFb4qVA7wPa z^elj_{iyR>iX9&c;Db4oVDx*1^?PaTqgU9!(^y}?-vBvnc@-5f)wc4mv2pRVclE+- z0Ft-C)D`^V#x8Q{G9Y!=$+n0XRv6?u8{ z+gh56Dz_AVut|br>E?D1iyQ!)UA#QBly0ya7#gwTF9GKOB7hoT1tcu3Jl*7O-@bL$ z=I`l`_J4ltkNn^a7!*8f>u2^~BPgtGJgq>{+y;x^wf3}f2I(>|&RV&7cmV+Rb1;Qn68q8<+v9bf( zAr=Mc%P!UqE+B0U(z4FZu3$?12BdkxGHxJ!*1qK3|Im)zf1oWb@BVDl($elH{TnY} zP4K}t9X#FcS^EF@^8eu3LMT$FD7Uf$M2@h9)jo?z}j+Oc;~`B~S?UPt-&d@IX;_TR=u?w@UX8vN{=warb1 z-^<&$=>Fu_&FjX`XSv<`F*knn+2)?o&wNiG?VokMJam5MyLsLIDMLp~)ib^SQ5SFk z)B#Jt%FD(N)KLJCcXjjkaImxYVwVGFl?}U!i`69ocHzsyA^>nUN6*Rt0HW{5+=DPs z{4+0P161is3AP5Kp;=ncFI-mfk0-AshU2N02B;JR}A38j=eshJ1uHLOLP+kTJ*{WCgMfIl{umBF3V|V!`6Z z62g+ilEYHN(!nytvcq!6x{vi3>j_peRwmYatO~3~tZuAftXZrztUYW1n+Tg0`#iQF zwj{PZwkEa_wk@^?b`W+Xb|Q8rb|H2(c02YU_AK@~_8|@)4iyeNjv&r89Az9`94j1m zoFJTNoD`gQI2AZ8IDWW@fq;>@n!He@h$Pa@I&!m;J?Rj zz#qV0#77Yj5wH;m6DSfG5x5Wp6C@Jk5!4e55G)ZK6Ot2h5nd(KB(x^LnXr$BMu`U;~hp{#&pJ3#&srYrfW=AOp#0_OykU0%zVsR z%mK_<%stF|EUYX_EN(0>SejYZS!r3XvpTXqXRT*lVWVP`WpiMA&ep)T%1*;B$9|7J znZ1P_ai00S@_Fy`ug~|MKfb_oLH9!Ng`x{n9OpPBIczzeb2M=vIN3PWIbodnoa0=C zT#{V&TuEH*TnF4d-1^*M+?CwRJoG#&JokC>c_w*Dc%i)RyqUa17x6AiUUa(n^5Pdh zEIu(ld%je@K7K5IaefE>m;C(#xB^lFE&`bXqk_bOa)LgB`GRwoXfNHm6nv@j(xwon zkdaWFP`eQNve@N&m)~5TxI%eF^-A!S>MPsAe8N`3slr1dBqE9;aFHqzq$t0rjcB^) zS1~Fvb+It9Cb3g-32_hcLh%&|P6-Q%G>K73YRTJ@(UKifxKcNy;8L|xhgZd~dR;BK zx^+$Pn$xwsYs=C+(l*j>q!(l^$XLp}mYJ1hm$i_6B|8f}54D75Lg%k@T(`cSeSJyp zqMW1Ld%4XUmv4C7D8F$ae^owE{?kqDn@Tq$Z}uusD(EVtC`>C}P_$FbS41d@DFrBf zQpQzQQ;t&}Rbf%FQpr_8s7j~?sG#x~w| z*-pmpnca##)IQOE-9g?V#R2K4?3m$r;H2r4sN1ajRrdsUgom0(wkO2X)U(Qq8Z?G_ym`GtyytvmeNuf;zIwi;eiVK#em(wt z{t^C5_Z9EI4ZsPo3TT3zhdqSN1^FhRQ;Ic@q@<;Axa_np`@W6p`&5f!ZN~f!X3hUBSa!zM4%(BBfFw5M7p)*l5F(c_* zl6TT<@~z~m7o0DizBoy-PZ>_Vky@0-oEDLG@Y4F_K>GFc!VH#-sEngm4zIqxR(f5L z$(@;)g_q@%_5F?BoA$SoZ*#L5v!k+4b6j#}-)X&T$(6{>&124s&Bx03&R=03(L65(#omIBP$>k{uPKy`^woW!>ay| zsvn!GuT_`VT&l^bJztwzM^hJDf3E&&iPwS0#jSEfYO%u%q%|k7BT6$a6 zT07bl+nU?u+8a7#I%+$wc7E)V?5gY*@2=<(>nZ;%_PM-QytkrHqOaHhiw z=s@G(&B3-Im7(rojp6zSV;;KrA9XkeKc09fqBpUD4g9z1w@!`_B8v2azZS)Vo8;!}cTnqorft z6a16p(~GCoXf^aC#uk&+Nj+Ty|fsu=whxa0%sF=8fq|{aU zn+l3b$||bbI=XuLpm}CxZDVU^@8Ia^@QBFxXU`K7lagPgWM;j2 zo1OD6H?O3$th}PK>SJ|Nb4zPmdq-#2z~IpE$mrLx@wxehZ;RiTmRDAh+dI2^`v<7Q zqcgrB0QPTe{p9Qyz9>MxuyAm&aq!Rhf?)ZA5t{-B_xu$+O1V4umhMy+gdY-6--vr% z+(^hFqJ^Nj>(PIXmQ!?&3wg%c56=D?W5NF|&VDlXPrfDqc>wE2z{Ubc2^$+6DI751 z;^UqLd;-wK0t3N6!nq#-G>M3aKx^k80RuJy0owp8iQ&ZixXFMBz@B#|>4`QYSXHJLVP` zpc(2XfrfiSkB`YP07Dj<;kdD3=QtMw%zTBTKC_K~4cgiy`@8SI4(s1?|66DNo~wVa zGk>p<|Mjcy|2u2s`Gu`V(+r5p$6Mtava3gGQRX~%KXa-x>~Jaf-e}3mV)l?KN?j`= z3lFj1k+(`IC)7$3Xo}=5=(!Qe`wHtXL^90qUolhoH{p*mwlzd!kNq*gK!np=bjQFRwPgqgj;YLVcW9`~s6c5?he-=SquTCFO`YDCzu`%l?`uF(wt8 z&Ch+HrePc(tq>!DZX&_}nQsb-=INU4VH{bjN2`+p`GEn96D{xbJ0qqhbETw~v!uO> zJaHLWds+J(CsrCXhqm3d^7~|!GS!Yw$O4C8p080>3WKgN6)&sA{V7wdw%&n~Ji1SE z4`Z4O@x^#TWzYNRw+_~2$M_g6QhyB9v7fPD;NZZY!HJu$ebk2L7@i-7@yx~02)wFE z?;4x0tB#a1;;xc48y4n&%vOUNjvEVjEs-^USxwAf7APoBT^1u6GSu@gSTJ~6Ic9xL zS>d*!B1E#!YT$zb?^O-W0Eq*C<2^CIT)s$tr?&?u7(l)ORa}4)(W`*tuO4+fB&Z z*)En~056rx-#YaY%MqICymrs38<{k>?#`M2uI%AtHZ7s=rORsMI^?x`TfHKWVpYp( zDjLc|_j~08s4_d5iWC(YZ~_%z{&S}yn(*Lh&Y|gP@oGAxVkr&o@STDVNOf%el#F^H z1>*IKdN%vkCz=WDCpd-pE1C=;IU0gZN7tNIJlwuU^r~o#=ck96OP*+=9?feKqUO6s znwAUGKN$DPR4Ml*OSer+2q!W?Du zlxBVGQ)G-3YH=m>(^@uI9Sz&KiFdgrh9fUMc{TDPHIN4?Z8SPTG)Z=}HPDtVikPcw>J@dzx?eOm+@JO{Xy6#f9ganNUAyX@ zvYE~pqnH*%!=|=o6)(2hD0<*JGH!B|bQ38XGA}4r?##O4BA7MF{Gh8t$2wFG@~~Y- zia9!RfeY1**q4mg9WuJUsZE4alSI!I&PQN&|6qxsv7G}k(X3yM+ZSQvtfW>$M~;_5 zBCa*hK=||(fAI}sT8QVTjmRBMvXzv86Ivv9_CB)wOGBhs^1DlUF)r6hh649jR-Fhe zmUlYE$E(%8I}50r=?tihq49@}G9q_bI22-A^eg4O4sY6UD>z^i`fFhY`yc7DsI>>t z4LI-C@QWvcq2k&^WNw$!<-$*25G&1Mn^^BBr`O?;;#v+9Zv+-8TQr_%({ zFUFahw#q67qZcG4R}>zs{+F0x9%FX?+vWSPqxy1x*PO58uj2#qbM@#i$PK3}o!1G7 z$F=fvYC{ttGfh-xH{fccdS6~uISX$yHBvmgCZBA&pE&NGW{1zh`+-G)`p$LS|0L4O zvLo8U=2H#U_tsp?<%!cBg_4nTpE#sqp6~LEza51^-}t4pA4?cl9;;XEJ+nQC{cbY5 z$e;-~8p|xui7!u|pq!%%DCm`Fk%b^CBQ`b)_KekMtmK#}IZBknuWWDPe`of(hxW#c zLCiF!;GS0GzI8yWPi2<0OT6S~dueF!)FhvhKKf~3@xv$IBa2+Mlb*ep7|O6B+VRLw z4}5nbfMCrJlzj`&_OFz>-Ze+8VlPZT`6=6^?6)x>p0}}WEOhRPGcipWJ)f83z8?bCmS0;>E^EP-{07% zd=Y5bT3c^b*sF4!*Qm);B^EVr9%e>~H0_)4c9Nd5xR}mkKlNZ1Z`|!GGnO2?8!3NP zW}aA{LJorrVFIs;Vb*iRRxnIr&e$o+ly<14(o%0OMakzWuZ6Hdn#GlsC*>@a4^DU- zUQMEGr`v5){n=COrB^hTn53pns*a;RSx6p@nk$f&D{l2PYK0V7rL$6h!4HcK3F;tC z`j9g=_VNRf>v3z;HwpG7_T55_!C4TSIF@5zbW%n_lS`zxH~Z*&M{i$m2V%cF4cg~0 z?r{Ve%D`Hd2LoC`#WH04&$R3RaUQJr*a_ZQg6c-k!H+!3igMQ$V<(K!>PcQy# z8;Zjk49XnrPu;)HHxNPRpvak1;`rGKg_2g=#2q5KDW)W80PYPIlY$I zaOIbB{TP4{13bY1%U0m}g}4ewU#cV9px>8*mcE??E7Ug6j=YBF!NmKw%CEgB+_X8? zILwKA8&@&el_k*f>;b^Ae#I=q6p>Wk1Lff58aaZs2>)9*1({jhLMEB-X;aZj(sM?h!iqkdf1R17 zYusWwVH-TLnV%sxS{<)hr3)XNk}iB-tWpjMZ+Lzk`?U${-W!(8&VUU0pl-VHoEF!y z=IarvjCX}#V$WL8bu+ULY%Y1oMJSjiG>fIYDk(<#ps%n(Mtty=F zI765uP_7&LvwcLyFdKwYD_f+Vg#HYfR#PCILE>1U{;}-6p8Y|oGMi+9_*>Ko(vKT) z67-hQlwZ+p1xPjJ*g3{J3=kz~`SD|U3Q>X4cYga6+9!HG9}`|3#&ubITMPqc2TK;K zj?zCbxH6simLb)@M!^edXYr!N>}`hF``3?JB-a|E>L4e?(|i?5KPHbsU?E|&0@3` zMEjvGrHd%)v+XseI=NTuA_`2e4IXy1ot%0;m04=X0MuUaP$)^EEQep$w6StQ!RvT6 zYJSe|-vje1x)f!et}qp;KcU!vHCsQ_Z}>J8PE>JLUZ_qHBR%V+f~QP4W?}K z2YkL=j{&%y2=C%kLOa~hs&<KsXDa843%5c&TflGDMT|Zci|TOZYIvmcWP3s7 zSn;No*^T0&4h;#mXBM-uBKMs4WrD13WFRzIj5Ukn>2qo_wBva#2NkAkxW>{IAy)Ra z+cb~d<9(=p3i9kehK%#9EFiw?_5o zC?`anL@jL$-UQzXYwtd8j``U1fSP9dRbPHB(L9u9b(;Q}E-GSf7m=9d%$e)%=z6#A zu>v`cMrj+3kK_`5LL>fL*cjag2hyt5NIVOPKNr?aRp`f|DUvMY;w@TUH#ApnYxt(3 zVtZ=nydp%|=boh;>{Ze}JfoeB25MJCV{gVeytyaZkZRa34K19xfiRhI@VI`yvgWC{ zN&F@T5TSKV!ioO~6@c-9E3&mK8Hx*b4f(w{5WC$7yU(>?Y--98Q6rhq<4S4Ny(sAy znRZi3dN%m|NM?CeVNfzkttFid)rZ(@Zb=*|b~GXjFOaBvyL*w3B0j!Z)VW^V{+pf> zoA9P~up$X;@K|hxQR5+UVWBPdwW0CK2yNv!mYkCVr5ujhx2ZHvdm0_{ z=3)C8#JdV8Lnpzc5Su3syI-?KlD5C6s4z4P7%n!~h!igLhhDzS|80Y5UjLCSfbNIV zenS-nT#9g>9}_j+U|oE_X&1W6dp=pM{8gl8)j)_8{Up6zm{P-u^q37ZpY>LbPgP3H51 zwqi_QztyVot6%+6@-E(=p0daH;&vP9h!!E|#r0aU`M${eZD9p$jDD8{$xH{a10$zp zR4xhZ30ny=s0@?E6U9W+Uoi>gNYnp(R2eBc^I)bN8d+)XvFElVu$n_f%>Mh6PTwWII#Zw+Nv#%!(+Sb9|K2nQo0badCpn_s}Lg8LmtJb0%-KXhXY+>&M&85MD%7%%{5=}in!*>K92 zQs-FzBn+{z9Gg~jqH_O3W+cBhduAjr@NXjaU-O0dpMi;D{nlDfu=%kFIM^QzQRoVI zOJ#JFv0ZXWkr2i);CU-opdrx*8_9yaC=-Npi_aqm2k1az4S_|@vu`BNt( zFL6KkevvD}bOE}ah!fjX)c<2EO5$Zmo%NvWQ!qgX`yP(28jFO+Acwuzgn=N3)yG7F z5i!Bl8xKVE?OzdGaxN%h4>0bC_p_$=`*wS|`AcqxsIjrJ;itq3cTV!Q%W-Y5DU@E_ zdBAu7-ww>b8?^uNZ$*i}sNSB;FT0uiu$IUBWPjYw1mWs$75$>e4Osd4WQZ4iZlJPx zkbT*Dn6a%Us(Bm$LL|BQBl(>{zi4dM>l4W%jwOB!Kxy_K#1e)&{!2jN9}Y@?%}wRM zr=T?R7=Q*Xv7A9z4kfcs8YgX-XHjaIaX!Y)30oi7pR4~=Tssz%9n(vBz1iM{CgKzG zu>!0ZX@}Nunw2>1Wjk_yl1C`fhXaQM=^lcowL;!1L(xg=b)*~Py5Za z`!$g3w07NWh@p%gXd20i3Uu?IZi1D0iK_fFz>hJ@FKekP?Cqr!}6WnuXg=Tz)&Sh)W zJmGFQ&itk2qx482)<#=c@h=@#`a{csnhJEW7NxQVp!>la43MXU1U(oCi_ptie`vct zCo`)3gJFiiFKqoM(ok6VD$tks3tzmyHeZyxocXud{(}Dkpo9Ax?;Q#Bp^k8&<1Oq&?K_;CxVSwF52lI!z!(pgfOI6_M z!bkjN-%ovqTq!)KAh@!kGrXqztpOYQEzv$>{{Vy*we<`1`@f)>11WYAFhGQm9%%VG zTK_q0_m?~%|C=w^?e^A;L#d(%GY69Jm5Qrpl0cPW03I;}6MBj4RJ>iE1dS8{-)Nby zEdP@eA3VAUn4Ha=Gv$)m5T&8uhL5Ykjk2&F?`R7V-qmL5C;VOTxmPgIhfdZgDk@Nph< zT^#cdk;b!(e2#w0^p3wytKxLLzRxM+tt=7hQI_A@M#dQVl>9y$f6uXM=F;bxN|*Ma zR8r3;!&CY_4W$_;J<$C{3{bwdlGn|oDw?lKJ_e8Ldz{Pn{Q2V9pmlk%f;Kt{Ht1=$ zedcL51U zlJwDC7D*doqmZQ+day3Ag_r57K9qf-UNfPRC~YagZoBB!6FO|}%=99SIx<>=XcKMc zdjU!(qGX`2VfUG@;cd{@a25KioI3KIybxkt@*Fq9NZ7URXx3O^y(-LDPlN9EK+8Zo zL-`mV&4>>=_${6}_`QRp_Sg_#WY63Y1vSy9@))2!zpb9}M7jj&b(F@qU^*`L{E7-= zdpZ3J36IA95?QmaN2BqX(oZ;I)I^v8JQbb~G-)2|0&ixEypK}Un8KrVUcT=Ghv}Do zommTi5LW%o^yvUYV*M+%8d7|#x(ytk14cvZSx%&pN?}X&gWfVXjE|Wl7i*%Ol^0$v z*p5qllDPEEvY8d%EHt|Un@Gh|MB_f+o)&WCH63&mM@(Q0=B+H%q+3tL)@+F4mDcLT~aXvK_mOS z#Uio7<+0$Pg+2s*Jr5n>2divonSUA3LkPt;cV+Pi6XuJWY=))f3g~ z1lNuoV+>#edU0l3oo1OIDUHH^8N7GDv~LzTR}=;(lfE-|xK%c#c{>r^)+^<*z@#O) zB|ChQC-RQ`MRB`ZfBJ~-dhRdWh>?%}ncY0; z&dlc%bn+^$OEvahJsRnIV18g+fxugjR0?{S(QXETNWiADxd7dHiKmaFYM#d1y_YA)h^wI25g-R-+| ztc~sj-H30QkAu69H$mYjrxseXi~WM-8!}u^rq_a6lleNNEA4x4l#=GTcg|Nj_0*HX zJ0%C88%rSGz*VGPlv;#)t|W3yJfO^aQA0RT3%pBGA_{&y_#eeXt6yJw+M~a|LaSiP znijvnDzmylN9ggH?R)jY7@*1=omRk);Hw5bs|nN24x%dAPf35pM{1L1?M~u9Q=vgv ze>cx@FYo9oTXSrttVaWqYxN9dxdpz#|1DBP_SanH|L?pm@n68KFhIO}J_eYmL_b$B zPrH9`5`ESDxDx}s9$j8)gC6oQHk{VLS8nPaw(~sR;)>%=(uw<~S>5xvT41A5-K@XGR8{HVd zX>?F`yM4XWN$h1|ovZYQ$LhTujwK#$&&l)*qoed_*jv6$Exr2=6F2=O@4G#gy4am^ zvF4gspjpNJ(>c)JgQ56a_q;Qa{DAZon|UcMrfUU!48z}ul`%TN%j%3o5UhJ0=^{CWSJGXeqm83&fvJ4rM_O7xqB?MFIHSR^ZhX0MNe!h zCaUt({8oDXWZ!!~w6kV&3T=q9qchi+G1hAdN$x&!4{oe8DNFB(?dl+?qM}C*e79%N zkaghyEK$Bq z<6=o|r&`nW9OUDMr`6N!vIg1DI`N6VSah^1DRi{UnM|59iM~jmF&KtP(X@SZpi5vG z=%BV(;-q~0)H;nUl|fQEWoL?GUa>SAHR8&s5#=s6y;${_B^*%!#Ax>D@am5HA7@E@ z&rYW-5{Qqfn{ch+^GktsRtCCObR4P8ZN==d(XGm!e{{PtQf%-WkxR#8$%t{e;!YmU zd-#=7`|U&sea(_GM0)YOcl`MHscnG4<|cCSdKB|LLe6Ncz8w#d2mDuso-m5P@btYD zGZ#Kj*V5@W?@k@B>X~@AxI&2s$$22Ql#YuElX!f-X7JK_*3d4fXnP|iEDcwfRB%G^ zJrJLsxJgk9aOo4iYa6XdGL^uO$oWj_U^Y5BYBhG^>YL>RCEMKCoAOl}+6%a0Tb43l zFx-3Yz;(D|8q!%l4L)v^^ovcOBaa{ZnUby9s^bGg)dFNxFZval5r$>yi%N*a=~XS2Kkf;ABUVka>MM~ zG!rTiX*-Sqv=ASX)JL8&yp3tpbzqac^un62g}Ka{T*JUemSMJ!T47GcaE~a8V2_u( zGQi(?k)5C8siv;wiOf*6eokc@36XM1byQeiGY2MrMQx9l$j|WMMsZD`_auaPm_mk-Kr^x)gAy1wNaxEpOY46PD*-~?q)2hPv3Mg z00nBIakQFiBzCTkSU#uIx72$=xa=LpaEJNxH1SEcWHQG#KciTR-oYuSoD-=x?&LaB zu=JFdN#HgH$FBih2ZG|eM3G1~QUkd>zc97IOP=4RrY9P?2OpIf(rAzsl6chv$i2~r zLN2yyx^)$`(VSmI4g(_X97xKGV_G~2*i)ifrUeGPjq{0SNbTeNf&zFPh$cGN0u~KP zaqJ;Ca#-$<>NpI=IFywolyBG^q;0x+y(-G9&k$KNRl1{2WLR2UF|upQqgEb6tA5oZ zuIu(5f0Aj2(9{CMT3oB&b2C;%VLmdO$yBPqr7ZVh?Un0moZL6Vi#4AoaP*kA-nWR0 z)^$J&_!*ljyPO!$*}Hnvle52I#)WxyaGdwh>{5G}vXdXnpw1Q@7A?vz>D3moVDD@N zw1mfnN5Wpq>fe^P5Ymp;XJsPP<5T^7O>AKF&}rxD+Pp*8lt2n+l?;NcFz4y05yerX>kGRYd-&Z$ zKz-`+oYm&rAMZg$w5t%$DIK>JZ})6QzpmIId&X+;u1#3@O3b8woS&;%HKO;UL*ZCn zZN(Du64+161Y0=le^#!?jH3!;WR8 zvakt{`=0YhSHSBwK&un0);Qn9T<9_9c1%cl*-rc8mWMr&{`a_RO{hFloMC7Rr}Ngms=-+a*(?Oh;r4yOI(2hvyO=BII(RW z(x!e3vF+z-ox8R@Q@^NKVi0S;l+))j!5lO7_-av0XIV{Jc#+s>uzD>^$z+1$L1R(o zUIx=N%6FbNZq`}6mtZ$ZncY57nr$ZjRUs+Xt9JTz&k0uC`99{At2@p9S<6@Ks~`KC zJ2_Ql&u}#GWK88;3%|GYu5e!{CgoP2>wCv~=Ewz;vZ$^nE7s>Od&U!LbqH(Ve~wOL zRi}>>gxG2kh|0-Mii}z*U3<}0CavMAgkr!ZkaeWzY zUK#rV0ai^QehVe4`nYYHaj0O9mJt?j+!CJ5DRQesgmt|qb*B+0<*-=^6&7f@5FzdU zZX#+T0`|F||4yY-yUM+hBYP4%#I%LrU{vcPk*{epQx?PHM*wuv3l3EBSA&dF_Y zk;MvdjZW^R%W0r6#??~Yueqc4J^k%Kt9DfRdLep^P4R^J%w%{2pXftBS2IgBvq5-* z8)y*haD^V-5xnp0mt3^aH;lH+4?|N2l7m~?-g|$BDg4>*H2-oQR-f}PXA*9xr|FG< zbg}xBce?j4MxeJPno4RDe58xq5eq^DtzsJi_8oqtD|Ua_U+5RWWY-HC#Ŵ%lFQ z4xzqd^y1IlzS#cSrNI9?_TCvh0=1ccNx399#A>jyS>bB0`uK%|mVL>7&H;B?7LA%-&vXzn5u2U5uSxBvt&F7paGI{J*vk|amBz39>ZwSl z$*xQr|JzJmQ~eFjEzfivnJBLUC-E~xjbbk2Pi{h*^P|E2`b>Z!E>lRP3G|vts$*#bzvFO z)h>dKSCz&Fd&-4&ywdObC%#bxa|(3nGxVx#`Sqwa)O(z2g>9!#{psaNv9I=U8W{dO zG;HuhyT4on8Y);&xVcz=EWJ{}#DWg+*JSMR@pt}o!{GkTVua_@>5s*_S+}2Q9;Vn!X z)i^7t-!i@w;RS*prpv_++iRnJf$ofbEQ2aL6~LsfXSohbR^Ȅ%BUr6w|hRiDJ9 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�Q{pH}W$J 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 CX+JXn literal 0 HcmV?d00001 diff --git a/media/ppCamall-ui02.jpeg b/media/ppCamall-ui02.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..de3cd06f19f386e720bb3bb8d7f18534d3585fee GIT binary patch literal 251740 zcmeFZ2Ut|gvM{=aA?J+5L820stRe#B$9KI90m-aL;(c>1qA_7f@B0FXGC(A zoRKg?9AKDvOZVBHd-nbRbI;rN-tX=AeW#(PYt`zm?&?@wUA=H)xLJVuhO(M60D%C& zQ}7SK%>fBYeh#((prHW>002M?;6qpd0uTbD0CEu4U$8Rd902`^#{+-}2LS(XaWuj3 zhXbkoO!Hd^O$Y~wKnyMD{a)k!9-F}VHS~9wL>7DpDCjAwsez%Mm8Xr3tCzjoJ=`WB zqYZ{`;DbA-xX1-S=9-!Y{*U}X_Y>y*2~rQSM~}w=CHQNhBri75*Ftdf6!dC}iWb_s zTFPoSm432Gfp6*V?uxV6|}W){-F7L z_>=yxpM#N~oB@NvKWP0z|7!q^wT+h*ST)*U^t;wxRxTi12Kremch7qO0DT7Hxqa`s z|A4DNnBEgCAP9f?0o(ls&;Ee#{s!;;jB`s@5diRs!3HC@wDhzC0CIW|&*@`j2ht&z z0O1R+)();9Yz@M4E-r3hNd6Xt&w+8=LHGxKnY;gij@^HNEiLcci7WS_g7xF zo{9>;<1IZw=x=Ggo%Da9|waU&v$nae^m}|8 zSN&i7y5GC@D=&BFpJU@^nQfd^e&M}*^nRti=XvWF-u<5TuR3(Jyz!&o|4a)w02+WL zV0F*N5A34=py=lA@9AJ?e~(iE991@)YOYoyLY!h3#KZyM#~A$)2LO=0KgS+~nda}f zN1I@muEgPR6@SO6!2zIz3jhc8-*NnT06+!yp$=awZ%?1!=;8ke2*A-#1&)4ZaQt%v z=Kx_q43Gk@0P=tma0Ac+ZUM%CIba3Y11^9k;0pu+VL&(#1_Cq3pm^kX^my!ee0ZXG zGI$Dj>Ug*C%<$~+Jn#bW9^%E~y}--F%g3w0YsBlu8^)W(`;NB{1)yY5M(A0nFjNMr z2-Sk#hT1|sp&`&nXc9CNS_rL%wnGP@v(OFb5k4V49X=<%F#Z*MReXJXD|`?95d3KT zRQz}N75FXqgZOj!NPH{-1pym@Ai-qs@%EY&cU5W1#ClS9Vt|J~GULigqp(f!axlE!(Vol;t5=Ziuq?)9cWQpX2 zl!la_^eX8sQb*D-(ifzKq^+diNO#G|$hgQZk?D{*kcE=HAp1zxK{iKrL{3XCK(0t` zO72Y_OP)*KKt4{sOF==wMf?v(ilE7%rZh5`54t0of+d8OBhEOkD1t+6qsz7o-h?M4KN*^VLc;%#^y}qnW8hp zXO5XUnU$EGnB$o%nWtFrSp-;gSbSO1Sz1{(Sm{}>uv)Q3vX-z;u;H-@u<5b|vSqP- zVcTctU{_&xXHQ{oX5Zjo)8`7elC5k`&>m_Q{1H7GTgS@&$yeokvuRS4W1yL4?GjRB)l@b_Poiw z?YxJ4{CtLd5qy<=tNds9)%XMWKk$D$M{y2*&f{F>xuNrf=Vi`2oqu({PXJFqQovpy zO`um0Pf$wGLGYDezYu}YB_UU#OrcR>a$yBwAK?$eb0Ul)H%0D?RElhg@`&CRjTdbf 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�s_Y`8Ft_JaP!>pA9cuB$0uucEbIsOEeb6^ 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 w)eW8*m|>D)(G!&YVDCeqJ9wz^?a97&W0 Date: Mon, 27 Nov 2023 14:22:31 +0100 Subject: [PATCH 03/17] Update README.md add pictures of the ui --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 73a4226fb..49275ca50 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,25 @@ -# llama.cpp # This fork is ONLY a modified server UI. +![Server UI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-ui01.jpeg?raw=true) +--- + + +![Server UI-2](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-ui02.jpeg?raw=true) + + +--- + + +![Server TUI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-tui01.jpeg?raw=true) + + +--- + + +# llama.cpp ![llama](https://user-images.githubusercontent.com/1991296/230134379-7181e485-c521-4d23-a0d6-f7b3b61ba524.png) From 49d7c07210d3efda7a603b7d2837e006d2303f9a Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 14:23:51 +0100 Subject: [PATCH 04/17] Update README.md add description --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 49275ca50..62d81c858 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,25 @@ ![Server UI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-ui01.jpeg?raw=true) +--- + +- UI with CSS to make it look nicer and tidier overall. +- CSS outsourced as a separate file +- Added a dropdown menu with prompt style templates +- Added a dropdown menu with system prompts +- Prompt Styles and System Prompts are separate files, so editing is very easy. +- Created a script that uses "dialog" to compose the command for the server. +- Script offers the possibility to save and load configs + + + +In planning or already started: + +- WIP Multilingual: You will be able to select the language from a dropdown menu. So far language files only for English and German. (concerns UI elements and system prompts). +- Dark Mode +- Templates for the values of the UI options (samplers etc.), e.g. deterministic template, creative template, balanced template etc... + + --- From cf8cb0d303978dbdaacc50d72830845975b60325 Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 15:05:10 +0100 Subject: [PATCH 05/17] fix multi-modal-selection --- examples/start-server.sh | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/examples/start-server.sh b/examples/start-server.sh index 7b9fb4b53..682f9a0f0 100755 --- a/examples/start-server.sh +++ b/examples/start-server.sh @@ -64,6 +64,54 @@ model_path=${model_files[$((model_choice-1))]} +multimodal_model_selection() { + # User selects a file or folder + exec 3>&1 + mmproj_path=$(dialog --backtitle "Multimodal Model" \ + --title "Select Model File or Folder" \ + --fselect "$HOME/" 14 60 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # If a folder has been selected, search for *.bin files + if [ -d "$mmproj_path" ]; then + multi_modal_files=($(find "$mmproj_path" -name "*.bin" 2>/dev/null)) + elif [ -f "$mmproj_path" ]; then + multi_modal_files=("$mmproj_path") + else + dialog --backtitle "Multimodal Model" \ + --title "Invalid Selection" \ + --msgbox "The selected path is not valid." 7 50 + return + fi + +# Selection menu for models found +exec 3>&1 +multi_modal_choice=$(dialog --backtitle "Multimodal Model" \ + --title "Select a Model File" \ + --menu "Choose one of the found models:" 15 60 4 \ + $(for i in "${!multi_modal_files[@]}"; do echo "$((i+1))" "$(basename "${multi_modal_files[$i]}")"; done) \ + 2>&1 1>&3) +exit_status=$? +exec 3>&- + +# Check whether user has selected 'Cancel' +if [ $exit_status = 1 ]; then + return +fi + +# Set path to the selected model +mmproj_path=${multi_modal_files[$((multi_modal_choice-1))]} +} + + + options() { # Show form for entering the options exec 3>&1 From bb03290c17540768a16000a2b01ee4f22440aba1 Mon Sep 17 00:00:00 2001 From: Bailey Chittle <39804642+bachittle@users.noreply.github.com> Date: Mon, 27 Nov 2023 09:56:52 -0500 Subject: [PATCH 06/17] examples : iOS example with swift ui (#4159) * copy to llama.cpp as subdir * attempt enabling metal, fails * ggml metal compiles! * Update README.md * initial conversion to new format, utf8 errors? * bug fixes, but now has an invalid memory access :( * added O3, now has insufficient memory access * begin sync with master * update to match latest code, new errors * fixed it! * fix for loop conditionals, increase result size * fix current workflow errors * attempt a llama.swiftui workflow * Update .github/workflows/build.yml Co-authored-by: Georgi Gerganov --------- Co-authored-by: Georgi Gerganov --- .github/workflows/build.yml | 11 + examples/llama.swiftui/.gitignore | 1 + examples/llama.swiftui/README.md | 7 + .../llama.cpp.swift/LibLlama.swift | 176 +++++++ .../llama.cpp.swift/bridging-header.h | 5 + .../llama.swiftui.xcodeproj/project.pbxproj | 481 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../llama.swiftui/Models/LlamaState.swift | 45 ++ .../Preview Assets.xcassets/Contents.json | 6 + .../llama.swiftui/Resources/models/.gitignore | 0 .../llama.swiftui/UI/ContentView.swift | 42 ++ .../llama.swiftui/llama_swiftuiApp.swift | 10 + 16 files changed, 829 insertions(+) create mode 100644 examples/llama.swiftui/.gitignore create mode 100644 examples/llama.swiftui/README.md create mode 100644 examples/llama.swiftui/llama.cpp.swift/LibLlama.swift create mode 100644 examples/llama.swiftui/llama.cpp.swift/bridging-header.h create mode 100644 examples/llama.swiftui/llama.swiftui.xcodeproj/project.pbxproj create mode 100644 examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/llama.swiftui/llama.swiftui/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 examples/llama.swiftui/llama.swiftui/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 examples/llama.swiftui/llama.swiftui/Assets.xcassets/Contents.json create mode 100644 examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift create mode 100644 examples/llama.swiftui/llama.swiftui/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 examples/llama.swiftui/llama.swiftui/Resources/models/.gitignore create mode 100644 examples/llama.swiftui/llama.swiftui/UI/ContentView.swift create mode 100644 examples/llama.swiftui/llama.swiftui/llama_swiftuiApp.swift diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc295d52d..22be233e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -498,6 +498,17 @@ jobs: path: | cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip + ios-xcode-build: + runs-on: macos-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build Xcode project + run: xcodebuild -project examples/llama.swiftui/llama.swiftui.xcodeproj -scheme llama.swiftui -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' build + + # freeBSD-latest: # runs-on: macos-12 # steps: diff --git a/examples/llama.swiftui/.gitignore b/examples/llama.swiftui/.gitignore new file mode 100644 index 000000000..9bce6af39 --- /dev/null +++ b/examples/llama.swiftui/.gitignore @@ -0,0 +1 @@ +xcuserdata diff --git a/examples/llama.swiftui/README.md b/examples/llama.swiftui/README.md new file mode 100644 index 000000000..fa68e6ed8 --- /dev/null +++ b/examples/llama.swiftui/README.md @@ -0,0 +1,7 @@ +# llama.swiftui + +Local inference of llama.cpp on an iPhone. +So far I only tested with starcoder 1B model, but it can most likely handle 7B models as well. + +https://github.com/bachittle/llama.cpp/assets/39804642/e290827a-4edb-4093-9642-2a5e399ec545 + diff --git a/examples/llama.swiftui/llama.cpp.swift/LibLlama.swift b/examples/llama.swiftui/llama.cpp.swift/LibLlama.swift new file mode 100644 index 000000000..aaef09611 --- /dev/null +++ b/examples/llama.swiftui/llama.cpp.swift/LibLlama.swift @@ -0,0 +1,176 @@ +import Foundation + +// import llama + +enum LlamaError: Error { + case couldNotInitializeContext +} + +actor LlamaContext { + private var model: OpaquePointer + private var context: OpaquePointer + private var batch: llama_batch + private var tokens_list: [llama_token] + + var n_len: Int32 = 512 + var n_cur: Int32 = 0 + var n_decode: Int32 = 0 + + init(model: OpaquePointer, context: OpaquePointer) { + self.model = model + self.context = context + self.tokens_list = [] + self.batch = llama_batch_init(512, 0, 1) + } + + deinit { + llama_free(context) + llama_free_model(model) + llama_backend_free() + } + + static func createContext(path: String) throws -> LlamaContext { + llama_backend_init(false) + let model_params = llama_model_default_params() + + let model = llama_load_model_from_file(path, model_params) + guard let model else { + print("Could not load model at \(path)") + throw LlamaError.couldNotInitializeContext + } + var ctx_params = llama_context_default_params() + ctx_params.seed = 1234 + ctx_params.n_ctx = 2048 + ctx_params.n_threads = 8 + ctx_params.n_threads_batch = 8 + + let context = llama_new_context_with_model(model, ctx_params) + guard let context else { + print("Could not load context!") + throw LlamaError.couldNotInitializeContext + } + + return LlamaContext(model: model, context: context) + } + + func get_n_tokens() -> Int32 { + return batch.n_tokens; + } + + func completion_init(text: String) { + print("attempting to complete \"\(text)\"") + + tokens_list = tokenize(text: text, add_bos: true) + + let n_ctx = llama_n_ctx(context) + let n_kv_req = tokens_list.count + (Int(n_len) - tokens_list.count) + + print("\n n_len = \(n_len), n_ctx = \(n_ctx), n_kv_req = \(n_kv_req)") + + if n_kv_req > n_ctx { + print("error: n_kv_req > n_ctx, the required KV cache size is not big enough") + } + + for id in tokens_list { + print(token_to_piece(token: id)) + } + + // batch = llama_batch_init(512, 0) // done in init() + batch.n_tokens = Int32(tokens_list.count) + + for i1 in 0.. String { + var new_token_id: llama_token = 0 + + let n_vocab = llama_n_vocab(model) + let logits = llama_get_logits_ith(context, batch.n_tokens - 1) + + var candidates = Array() + candidates.reserveCapacity(Int(n_vocab)) + + for token_id in 0.. [llama_token] { + let n_tokens = text.count + (add_bos ? 1 : 0) + let tokens = UnsafeMutablePointer.allocate(capacity: n_tokens) + let tokenCount = llama_tokenize(model, text, Int32(text.count), tokens, Int32(n_tokens), add_bos, false) + + var swiftTokens: [llama_token] = [] + for i in 0.. String { + let result = UnsafeMutablePointer.allocate(capacity: 8) + result.initialize(repeating: Int8(0), count: 8) + + let _ = llama_token_to_piece(model, token, result, 8) + + let resultStr = String(cString: result) + + result.deallocate() + + return resultStr + } +} diff --git a/examples/llama.swiftui/llama.cpp.swift/bridging-header.h b/examples/llama.swiftui/llama.cpp.swift/bridging-header.h new file mode 100644 index 000000000..6cd72c979 --- /dev/null +++ b/examples/llama.swiftui/llama.cpp.swift/bridging-header.h @@ -0,0 +1,5 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +#import "llama.h" diff --git a/examples/llama.swiftui/llama.swiftui.xcodeproj/project.pbxproj b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bc1fd15ce --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.pbxproj @@ -0,0 +1,481 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 542376082B0D9BFB008E6A1C /* ggml-quants.c in Sources */ = {isa = PBXBuildFile; fileRef = 542376072B0D9BFB008E6A1C /* ggml-quants.c */; }; + 5423760B2B0D9C4B008E6A1C /* ggml-backend.c in Sources */ = {isa = PBXBuildFile; fileRef = 5423760A2B0D9C4B008E6A1C /* ggml-backend.c */; }; + 542378792ACE3F3500834A7B /* ggml-metal.metal in Resources */ = {isa = PBXBuildFile; fileRef = 549479C82AC9E10B00E0F78B /* ggml-metal.metal */; }; + 542EA09D2AC8723900A8AEE9 /* ggml.c in Sources */ = {isa = PBXBuildFile; fileRef = 542EA09B2AC8723900A8AEE9 /* ggml.c */; settings = {COMPILER_FLAGS = "-DGGML_USE_ACCELERATE -DGGML_USE_METAL -DGGML_USE_K_QUANTS -O3"; }; }; + 542EA0A02AC8725700A8AEE9 /* ggml-alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */; }; + 542EA0A32AC8729100A8AEE9 /* llama.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 542EA0A12AC8729100A8AEE9 /* llama.cpp */; settings = {COMPILER_FLAGS = "-DGGML_USE_K_QUANTS -DGGML_USE_METAL -O3"; }; }; + 549479CB2AC9E16000E0F78B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 549479CA2AC9E16000E0F78B /* Metal.framework */; }; + 549479CD2AC9E42A00E0F78B /* ggml-metal.m in Sources */ = {isa = PBXBuildFile; fileRef = 549479C52AC9E0F200E0F78B /* ggml-metal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -DGGML_SWIFT -DGGML_USE_METAL -O3"; }; }; + 8A1C83772AC328BD0096AF73 /* llama_swiftuiApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */; }; + 8A1C83792AC328BD0096AF73 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1C83782AC328BD0096AF73 /* ContentView.swift */; }; + 8A1C837B2AC328BE0096AF73 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8A1C837A2AC328BE0096AF73 /* Assets.xcassets */; }; + 8A1C837E2AC328BE0096AF73 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */; }; + 8A39BE0A2AC7601100BFEB40 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A39BE092AC7601000BFEB40 /* Accelerate.framework */; }; + 8A3F84242AC4C891005E2EE8 /* models in Resources */ = {isa = PBXBuildFile; fileRef = 8A3F84232AC4C891005E2EE8 /* models */; }; + 8A907F332AC7138A006146EA /* LibLlama.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A907F322AC7134E006146EA /* LibLlama.swift */; }; + 8A9F7C4D2AC332EE008AE1EA /* LlamaState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A9F7C4C2AC332EE008AE1EA /* LlamaState.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 542376062B0D9BEA008E6A1C /* ggml-quants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-quants.h"; path = "../../ggml-quants.h"; sourceTree = ""; }; + 542376072B0D9BFB008E6A1C /* ggml-quants.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-quants.c"; path = "../../ggml-quants.c"; sourceTree = ""; }; + 542376092B0D9C40008E6A1C /* ggml-backend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-backend.h"; path = "../../ggml-backend.h"; sourceTree = ""; }; + 5423760A2B0D9C4B008E6A1C /* ggml-backend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-backend.c"; path = "../../ggml-backend.c"; sourceTree = ""; }; + 542EA09B2AC8723900A8AEE9 /* ggml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ggml.c; path = ../../ggml.c; sourceTree = ""; }; + 542EA09C2AC8723900A8AEE9 /* ggml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ggml.h; path = ../../ggml.h; sourceTree = ""; }; + 542EA09E2AC8725700A8AEE9 /* ggml-alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-alloc.h"; path = "../../ggml-alloc.h"; sourceTree = ""; }; + 542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-alloc.c"; path = "../../ggml-alloc.c"; sourceTree = ""; }; + 542EA0A12AC8729100A8AEE9 /* llama.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = llama.cpp; path = ../../llama.cpp; sourceTree = ""; }; + 542EA0A22AC8729100A8AEE9 /* llama.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = llama.h; path = ../../llama.h; sourceTree = ""; }; + 549479C52AC9E0F200E0F78B /* ggml-metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "ggml-metal.m"; path = "../../ggml-metal.m"; sourceTree = ""; }; + 549479C62AC9E0F200E0F78B /* ggml-metal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-metal.h"; path = "../../ggml-metal.h"; sourceTree = ""; }; + 549479C82AC9E10B00E0F78B /* ggml-metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = "ggml-metal.metal"; path = "../../ggml-metal.metal"; sourceTree = ""; }; + 549479CA2AC9E16000E0F78B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 8A08D20A2AC73B1500FE6CD4 /* bridging-header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "bridging-header.h"; sourceTree = ""; }; + 8A1C83732AC328BD0096AF73 /* llama.swiftui.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = llama.swiftui.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = llama_swiftuiApp.swift; sourceTree = ""; }; + 8A1C83782AC328BD0096AF73 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 8A1C837A2AC328BE0096AF73 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 8A39BE092AC7601000BFEB40 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 8A3F841F2AC4C824005E2EE8 /* llama-2-7b-chat.Q2_K.gguf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "llama-2-7b-chat.Q2_K.gguf"; sourceTree = ""; }; + 8A3F84232AC4C891005E2EE8 /* models */ = {isa = PBXFileReference; lastKnownFileType = folder; name = models; path = llama.swiftui/Resources/models; sourceTree = ""; }; + 8A907F322AC7134E006146EA /* LibLlama.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibLlama.swift; sourceTree = ""; }; + 8A9F7C4C2AC332EE008AE1EA /* LlamaState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LlamaState.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8A1C83702AC328BD0096AF73 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 549479CB2AC9E16000E0F78B /* Metal.framework in Frameworks */, + 8A39BE0A2AC7601100BFEB40 /* Accelerate.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 8A08D1F62AC7383900FE6CD4 /* llama.cpp */ = { + isa = PBXGroup; + children = ( + 5423760A2B0D9C4B008E6A1C /* ggml-backend.c */, + 542376092B0D9C40008E6A1C /* ggml-backend.h */, + 542376062B0D9BEA008E6A1C /* ggml-quants.h */, + 542376072B0D9BFB008E6A1C /* ggml-quants.c */, + 549479C82AC9E10B00E0F78B /* ggml-metal.metal */, + 549479C62AC9E0F200E0F78B /* ggml-metal.h */, + 549479C52AC9E0F200E0F78B /* ggml-metal.m */, + 542EA09B2AC8723900A8AEE9 /* ggml.c */, + 542EA09C2AC8723900A8AEE9 /* ggml.h */, + 542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */, + 542EA09E2AC8725700A8AEE9 /* ggml-alloc.h */, + 542EA0A12AC8729100A8AEE9 /* llama.cpp */, + 542EA0A22AC8729100A8AEE9 /* llama.h */, + ); + name = llama.cpp; + sourceTree = ""; + }; + 8A1C836A2AC328BD0096AF73 = { + isa = PBXGroup; + children = ( + 8A08D1F62AC7383900FE6CD4 /* llama.cpp */, + 8A907F312AC7134E006146EA /* llama.cpp.swift */, + 8A3F84232AC4C891005E2EE8 /* models */, + 8A1C83752AC328BD0096AF73 /* llama.swiftui */, + 8A1C83742AC328BD0096AF73 /* Products */, + 8A39BE082AC7601000BFEB40 /* Frameworks */, + ); + sourceTree = ""; + }; + 8A1C83742AC328BD0096AF73 /* Products */ = { + isa = PBXGroup; + children = ( + 8A1C83732AC328BD0096AF73 /* llama.swiftui.app */, + ); + name = Products; + sourceTree = ""; + }; + 8A1C83752AC328BD0096AF73 /* llama.swiftui */ = { + isa = PBXGroup; + children = ( + 8A3F84102AC4BD85005E2EE8 /* Resources */, + 8A9F7C4B2AC332DC008AE1EA /* Models */, + 8A9F7C4A2AC332BF008AE1EA /* UI */, + 8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */, + 8A1C837A2AC328BE0096AF73 /* Assets.xcassets */, + 8A1C837C2AC328BE0096AF73 /* Preview Content */, + ); + path = llama.swiftui; + sourceTree = ""; + }; + 8A1C837C2AC328BE0096AF73 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 8A39BE082AC7601000BFEB40 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 549479CA2AC9E16000E0F78B /* Metal.framework */, + 8A39BE092AC7601000BFEB40 /* Accelerate.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 8A3F84102AC4BD85005E2EE8 /* Resources */ = { + isa = PBXGroup; + children = ( + 8A3F84112AC4BD8C005E2EE8 /* models */, + ); + path = Resources; + sourceTree = ""; + }; + 8A3F84112AC4BD8C005E2EE8 /* models */ = { + isa = PBXGroup; + children = ( + 8A3F841F2AC4C824005E2EE8 /* llama-2-7b-chat.Q2_K.gguf */, + ); + path = models; + sourceTree = ""; + }; + 8A907F312AC7134E006146EA /* llama.cpp.swift */ = { + isa = PBXGroup; + children = ( + 8A08D20A2AC73B1500FE6CD4 /* bridging-header.h */, + 8A907F322AC7134E006146EA /* LibLlama.swift */, + ); + path = llama.cpp.swift; + sourceTree = ""; + }; + 8A9F7C4A2AC332BF008AE1EA /* UI */ = { + isa = PBXGroup; + children = ( + 8A1C83782AC328BD0096AF73 /* ContentView.swift */, + ); + path = UI; + sourceTree = ""; + }; + 8A9F7C4B2AC332DC008AE1EA /* Models */ = { + isa = PBXGroup; + children = ( + 8A9F7C4C2AC332EE008AE1EA /* LlamaState.swift */, + ); + path = Models; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8A1C83722AC328BD0096AF73 /* llama.swiftui */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8A1C83812AC328BE0096AF73 /* Build configuration list for PBXNativeTarget "llama.swiftui" */; + buildPhases = ( + 8A1C836F2AC328BD0096AF73 /* Sources */, + 8A1C83702AC328BD0096AF73 /* Frameworks */, + 8A1C83712AC328BD0096AF73 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = llama.swiftui; + packageProductDependencies = ( + ); + productName = llama.swiftui; + productReference = 8A1C83732AC328BD0096AF73 /* llama.swiftui.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 8A1C836B2AC328BD0096AF73 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; + TargetAttributes = { + 8A1C83722AC328BD0096AF73 = { + CreatedOnToolsVersion = 15.0; + LastSwiftMigration = 1500; + }; + }; + }; + buildConfigurationList = 8A1C836E2AC328BD0096AF73 /* Build configuration list for PBXProject "llama.swiftui" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 8A1C836A2AC328BD0096AF73; + packageReferences = ( + ); + productRefGroup = 8A1C83742AC328BD0096AF73 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8A1C83722AC328BD0096AF73 /* llama.swiftui */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8A1C83712AC328BD0096AF73 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 542378792ACE3F3500834A7B /* ggml-metal.metal in Resources */, + 8A3F84242AC4C891005E2EE8 /* models in Resources */, + 8A1C837E2AC328BE0096AF73 /* Preview Assets.xcassets in Resources */, + 8A1C837B2AC328BE0096AF73 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8A1C836F2AC328BD0096AF73 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 542376082B0D9BFB008E6A1C /* ggml-quants.c in Sources */, + 549479CD2AC9E42A00E0F78B /* ggml-metal.m in Sources */, + 542EA09D2AC8723900A8AEE9 /* ggml.c in Sources */, + 8A907F332AC7138A006146EA /* LibLlama.swift in Sources */, + 542EA0A32AC8729100A8AEE9 /* llama.cpp in Sources */, + 8A9F7C4D2AC332EE008AE1EA /* LlamaState.swift in Sources */, + 8A1C83792AC328BD0096AF73 /* ContentView.swift in Sources */, + 8A1C83772AC328BD0096AF73 /* llama_swiftuiApp.swift in Sources */, + 542EA0A02AC8725700A8AEE9 /* ggml-alloc.c in Sources */, + 5423760B2B0D9C4B008E6A1C /* ggml-backend.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 8A1C837F2AC328BE0096AF73 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 8A1C83802AC328BE0096AF73 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 8A1C83822AC328BE0096AF73 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"llama.swiftui/Preview Content\""; + DEVELOPMENT_TEAM = STLSG3FG8Q; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.bachittle.llama-swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "llama.cpp.swift/bridging-header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 8A1C83832AC328BE0096AF73 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"llama.swiftui/Preview Content\""; + DEVELOPMENT_TEAM = STLSG3FG8Q; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.bachittle.llama-swift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "llama.cpp.swift/bridging-header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 8A1C836E2AC328BD0096AF73 /* Build configuration list for PBXProject "llama.swiftui" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8A1C837F2AC328BE0096AF73 /* Debug */, + 8A1C83802AC328BE0096AF73 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8A1C83812AC328BE0096AF73 /* Build configuration list for PBXNativeTarget "llama.swiftui" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8A1C83822AC328BE0096AF73 /* Debug */, + 8A1C83832AC328BE0096AF73 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 8A1C836B2AC328BD0096AF73 /* Project object */; +} diff --git a/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..3d4c1e552 --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..13613e3ee --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/llama.swiftui/llama.swiftui/Assets.xcassets/Contents.json b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift b/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift new file mode 100644 index 000000000..babc60cdc --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/Models/LlamaState.swift @@ -0,0 +1,45 @@ +import Foundation + +@MainActor +class LlamaState: ObservableObject { + @Published var messageLog = "" + + private var llamaContext: LlamaContext? + private var modelUrl: URL? { + Bundle.main.url(forResource: "q8_0", withExtension: "gguf", subdirectory: "models") + // Bundle.main.url(forResource: "llama-2-7b-chat", withExtension: "Q2_K.gguf", subdirectory: "models") + } + init() { + do { + try loadModel() + } catch { + messageLog += "Error!\n" + } + } + + private func loadModel() throws { + messageLog += "Loading model...\n" + if let modelUrl { + llamaContext = try LlamaContext.createContext(path: modelUrl.path()) + messageLog += "Loaded model \(modelUrl.lastPathComponent)\n" + } else { + messageLog += "Could not locate model\n" + } + } + + func complete(text: String) async { + guard let llamaContext else { + return + } + messageLog += "Attempting to complete text...\n" + await llamaContext.completion_init(text: text) + messageLog += "\(text)" + + while await llamaContext.n_cur <= llamaContext.n_len { + let result = await llamaContext.completion_loop() + messageLog += "\(result)" + } + await llamaContext.clear() + messageLog += "\n\ndone\n" + } +} diff --git a/examples/llama.swiftui/llama.swiftui/Preview Content/Preview Assets.xcassets/Contents.json b/examples/llama.swiftui/llama.swiftui/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/llama.swiftui/llama.swiftui/Resources/models/.gitignore b/examples/llama.swiftui/llama.swiftui/Resources/models/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/examples/llama.swiftui/llama.swiftui/UI/ContentView.swift b/examples/llama.swiftui/llama.swiftui/UI/ContentView.swift new file mode 100644 index 000000000..0bd16a806 --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/UI/ContentView.swift @@ -0,0 +1,42 @@ +import SwiftUI + +struct ContentView: View { + @StateObject var llamaState = LlamaState() + + @State private var multiLineText = "" + + var body: some View { + VStack { + ScrollView(.vertical) { + Text(llamaState.messageLog) + } + + TextEditor(text: $multiLineText) + .frame(height: 200) + .padding() + .border(Color.gray, width: 0.5) + Button(action: { + sendText() + }) { + Text("Send") + .padding() + .background(Color.blue) + .foregroundColor(.white) + .cornerRadius(8) + } + } + .padding() + } + + func sendText() { + Task { + await llamaState.complete(text: multiLineText) + multiLineText = "" + } + } +} +/* +#Preview { + ContentView() +} +*/ diff --git a/examples/llama.swiftui/llama.swiftui/llama_swiftuiApp.swift b/examples/llama.swiftui/llama.swiftui/llama_swiftuiApp.swift new file mode 100644 index 000000000..cccda8a97 --- /dev/null +++ b/examples/llama.swiftui/llama.swiftui/llama_swiftuiApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct llama_swiftuiApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} From 082b33550fdd9ba0075514a5193f09bac49d2a4d Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 18:19:26 +0100 Subject: [PATCH 07/17] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 62d81c858..174c35773 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ # This fork is ONLY a modified server UI. +I will maintain it and keep it up-to-date with the origin repo, so almost everything here will be like a mirror, except the server ui (which is in `./examples/server/public`) + ![Server UI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-ui01.jpeg?raw=true) --- From ecb39732e6abeeb336af7230d206ac2b22a9600b Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 18:25:17 +0100 Subject: [PATCH 08/17] add min-p image --- media/ppcamall-ui-min_p.jpeg | Bin 0 -> 117981 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 media/ppcamall-ui-min_p.jpeg diff --git a/media/ppcamall-ui-min_p.jpeg b/media/ppcamall-ui-min_p.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e21cd041d3429cfc3a729b46402a39dda77b3302 GIT binary patch literal 117981 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≫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 R9Q6M*3+w;WhXwsT^&eLQGdutQ literal 0 HcmV?d00001 From 6c318b54c8f172d101fad99c93fd52bbd9d4b113 Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 18:28:32 +0100 Subject: [PATCH 09/17] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 174c35773..23c91424b 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ I will maintain it and keep it up-to-date with the origin repo, so almost everything here will be like a mirror, except the server ui (which is in `./examples/server/public`) -![Server UI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppCamall-ui01.jpeg?raw=true) - +![Server UI-1](https://github.com/mounta11n/plusplus-caMalL/blob/master/media/ppcamall-ui-min_p.jpeg?raw=true) --- - UI with CSS to make it look nicer and tidier overall. From 0dab8cd7cca7e1bc3550dcb4797b9062cdbb1ebd Mon Sep 17 00:00:00 2001 From: Kasumi <90275229+kasumi-1@users.noreply.github.com> Date: Tue, 28 Nov 2023 01:39:42 +0800 Subject: [PATCH 10/17] readme : add Amica to UI list (#4230) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2892132c4..d0d6c9666 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ as the main playground for developing new features for the [ggml](https://github - [nat/openplayground](https://github.com/nat/openplayground) - [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) - [withcatai/catai](https://github.com/withcatai/catai) +- [semperai/amica](https://github.com/semperai/amica) --- From b38a16dfcff88d547f78f52d1bea31b84a05aff7 Mon Sep 17 00:00:00 2001 From: bandoti <141645996+bandoti@users.noreply.github.com> Date: Mon, 27 Nov 2023 15:25:42 -0400 Subject: [PATCH 11/17] cmake : fix issue with version info not getting baked into LlamaConfig.cmake (#3970) * Split CPP generation from build-info query * Remove blank lines * Add BUILD_SHARED_LIBS option --- CMakeLists.txt | 4 ++++ common/CMakeLists.txt | 2 +- scripts/build-info.cmake | 22 ---------------------- scripts/gen-build-info-cpp.cmake | 24 ++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 scripts/gen-build-info-cpp.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index f32df5fe5..3e0009415 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,7 @@ else() endif() # general +option(BUILD_SHARED_LIBS "build shared libraries" OFF) option(LLAMA_STATIC "llama: static link libraries" OFF) option(LLAMA_NATIVE "llama: enable -march=native flag" ON) option(LLAMA_LTO "llama: enable link time optimization" OFF) @@ -100,6 +101,9 @@ option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALO option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE}) option(LLAMA_BUILD_SERVER "llama: build server example" ON) +# Required for relocatable CMake package +include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.cmake) + # # Compile flags # diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 4f930bdc5..71891edc3 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -26,7 +26,7 @@ add_custom_command( COMMENT "Generating build details from Git" COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION} -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -P "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/build-info.cmake" + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -P "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/gen-build-info-cpp.cmake" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.." DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX} VERBATIM diff --git a/scripts/build-info.cmake b/scripts/build-info.cmake index 73853dfa4..ea3dc55c8 100644 --- a/scripts/build-info.cmake +++ b/scripts/build-info.cmake @@ -1,5 +1,3 @@ -set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in") -set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp") set(BUILD_NUMBER 0) set(BUILD_COMMIT "unknown") set(BUILD_COMPILER "unknown") @@ -58,23 +56,3 @@ else() ) set(BUILD_TARGET ${OUT}) endif() - -# Only write the build info if it changed -if(EXISTS ${OUTPUT_FILE}) - file(READ ${OUTPUT_FILE} CONTENTS) - string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS}) - set(OLD_COMMIT ${CMAKE_MATCH_1}) - string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS}) - set(OLD_COMPILER ${CMAKE_MATCH_1}) - string(REGEX MATCH "LLAMA_BUILD_TARGET = \"([^\"]*)\";" _ ${CONTENTS}) - set(OLD_TARGET ${CMAKE_MATCH_1}) - if ( - NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR - NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR - NOT OLD_TARGET STREQUAL BUILD_TARGET - ) - configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) - endif() -else() - configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) -endif() diff --git a/scripts/gen-build-info-cpp.cmake b/scripts/gen-build-info-cpp.cmake new file mode 100644 index 000000000..d89338920 --- /dev/null +++ b/scripts/gen-build-info-cpp.cmake @@ -0,0 +1,24 @@ +include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.cmake) + +set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in") +set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp") + +# Only write the build info if it changed +if(EXISTS ${OUTPUT_FILE}) + file(READ ${OUTPUT_FILE} CONTENTS) + string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_COMMIT ${CMAKE_MATCH_1}) + string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_COMPILER ${CMAKE_MATCH_1}) + string(REGEX MATCH "LLAMA_BUILD_TARGET = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_TARGET ${CMAKE_MATCH_1}) + if ( + NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR + NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR + NOT OLD_TARGET STREQUAL BUILD_TARGET + ) + configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) + endif() +else() + configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) +endif() From 1b6d4226b868ea629e279a7392feb2d744c3e0fe Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 21:35:31 +0100 Subject: [PATCH 12/17] add start scripts to root path --- media/llama-server-icon.png | Bin 0 -> 17770 bytes sh-server-dialog.sh | 343 ++++++++++++++++++++++++++++++++++++ sh-server-zenity.sh | 294 +++++++++++++++++++++++++++++++ start-dia-server.desktop | 6 + start-zen-server.desktop | 6 + 5 files changed, 649 insertions(+) create mode 100755 media/llama-server-icon.png create mode 100755 sh-server-dialog.sh create mode 100755 sh-server-zenity.sh create mode 100644 start-dia-server.desktop create mode 100644 start-zen-server.desktop diff --git a/media/llama-server-icon.png b/media/llama-server-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..c071a5b3c2394a0b0b7c8ffbb824089c6d972142 GIT binary patch literal 17770 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 + model_path=$(dialog --backtitle "Model Selection" \ + --title "Select Model File or Folder" \ + --fselect "$HOME/" 14 60 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # If a folder has been selected, search for *.gguf files + if [ -d "$model_path" ]; then + model_files=($(find "$model_path" -name "*.gguf" 2>/dev/null)) + elif [ -f "$model_path" ]; then + model_files=("$model_path") + else + dialog --backtitle "Model Selection" \ + --title "Invalid Selection" \ + --msgbox "The selected path is not valid." 7 50 + return + fi + +# Selection menu for models found +exec 3>&1 +model_choice=$(dialog --backtitle "Model Selection" \ + --title "Select a Model File" \ + --menu "Choose one of the found models:" 15 60 4 \ + $(for i in "${!model_files[@]}"; do echo "$((i+1))" "$(basename "${model_files[$i]}")"; done) \ + 2>&1 1>&3) +exit_status=$? +exec 3>&- + +# Check whether user has selected 'Cancel' +if [ $exit_status = 1 ]; then + return +fi + +# Set path to the selected model +model_path=${model_files[$((model_choice-1))]} +} + + + +multimodal_model_selection() { + # User selects a file or folder + exec 3>&1 + mmproj_path=$(dialog --backtitle "Multimodal Model" \ + --title "Select Model File or Folder" \ + --fselect "$HOME/" 14 60 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # If a folder has been selected, search for *.bin files + if [ -d "$mmproj_path" ]; then + multi_modal_files=($(find "$mmproj_path" -name "*.bin" 2>/dev/null)) + elif [ -f "$mmproj_path" ]; then + multi_modal_files=("$mmproj_path") + else + dialog --backtitle "Multimodal Model" \ + --title "Invalid Selection" \ + --msgbox "The selected path is not valid." 7 50 + return + fi + +# Selection menu for models found +exec 3>&1 +multi_modal_choice=$(dialog --backtitle "Multimodal Model" \ + --title "Select a Model File" \ + --menu "Choose one of the found models:" 15 60 4 \ + $(for i in "${!multi_modal_files[@]}"; do echo "$((i+1))" "$(basename "${multi_modal_files[$i]}")"; done) \ + 2>&1 1>&3) +exit_status=$? +exec 3>&- + +# Check whether user has selected 'Cancel' +if [ $exit_status = 1 ]; then + return +fi + +# Set path to the selected model +mmproj_path=${multi_modal_files[$((multi_modal_choice-1))]} +} + + + +options() { + # Show form for entering the options + exec 3>&1 + form_values=$(dialog --backtitle "Options Configuration" \ + --title "Set Options" \ + --form "Enter the values for the following options:" \ + 15 50 0 \ + "Number of Threads (-t):" 1 1 "$threads" 1 25 25 5 \ + "Context Size (-c):" 2 1 "$ctx_size" 2 25 25 5 \ + "Batch Size (-b):" 3 1 "$batch_size" 3 25 25 5 \ + "GPU Layers (-ngl):" 4 1 "$n_gpu_layers" 4 25 25 5 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Save the entered values in the corresponding variables + IFS=$'\n' read -r threads ctx_size batch_size n_gpu_layers <<< "$form_values" +} + + + +further_options() { + # Initial values for the checkboxes based on current settings + cb_value=$([ "$cont_batching" = "on" ] && echo "on" || echo "off") + mlock_value=$([ "$mlock" = "on" ] && echo "on" || echo "off") + no_mmap_value=$([ "$no_mmap" = "on" ] && echo "on" || echo "off") + + # Show dialog for setting options + exec 3>&1 + choices=$(dialog --backtitle "Further Options" \ + --title "Boolean Options" \ + --checklist "Select options:" 15 60 3 \ + "1" "Continuous Batching (-cb)" $cb_value \ + "2" "Memory Lock (--mlock)" $mlock_value \ + "3" "No Memory Map (--no-mmap)" $no_mmap_value \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Set options based on user selection + cont_batching="off" + mlock="off" + no_mmap="off" + for choice in $choices; do + case $choice in + 1) cont_batching="on" ;; + 2) mlock="on" ;; + 3) no_mmap="on" ;; + esac + done +} + + + +advanced_options() { + # Input fields for Advanced Options + exec 3>&1 + advanced_values=$(dialog --backtitle "Advanced Options" \ + --title "Advanced Server Configuration" \ + --form "Enter the advanced configuration options:" \ + 15 60 0 \ + "Host IP:" 1 1 "$host" 1 15 15 0 \ + "Port:" 2 1 "$port" 2 15 5 0 \ + "Additional Options:" 3 1 "$advanced_options" 3 15 30 0 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Read the entries and save them in the corresponding variables + read -r host port advanced_options <<< "$advanced_values" +} + + + +start_server() { + # Compiling the command with the selected options + cmd="./server" + [ -n "$model_path" ] && cmd+=" -m $model_path" + [ -n "$mmproj_path" ] && cmd+=" --mmproj $mmproj_path" + [ "$threads" -ne 4 ] && cmd+=" -t $threads" + [ "$ctx_size" -ne 512 ] && cmd+=" -c $ctx_size" + [ "$batch_size" -ne 512 ] && cmd+=" -b $batch_size" + [ "$n_gpu_layers" -ne 0 ] && cmd+=" -ngl $n_gpu_layers" + [ "$cont_batching" = "on" ] && cmd+=" -cb" + [ "$mlock" = "on" ] && cmd+=" --mlock" + [ "$no_mmap" = "off" ] && cmd+=" --no-mmap" + [ -n "$host" ] && cmd+=" --host $host" + [ -n "$port" ] && cmd+=" --port $port" + [ -n "$advanced_options" ] && cmd+=" $advanced_options" + + eval "$cmd" + read -p 'Do not forget to quit the server later with Ctrl+C as soon as you are finished. Press Enter to continue...' +} + + + +# Function to save the current configuration +save_config() { + exec 3>&1 + config_file=$(dialog --backtitle "Save Configuration" \ + --title "Save Configuration File" \ + --fselect "$HOME/" 14 60 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Saving the configuration to the file + cat > "$config_file" << EOF +model_path=$model_path +mmproj_path=$mmproj_path +threads=$threads +ctx_size=$ctx_size +batch_size=$batch_size +n_gpu_layers=$n_gpu_layers +cont_batching=$cont_batching +mlock=$mlock +no_mmap=$no_mmap +host=$host +port=$port +advanced_options=$advanced_options +EOF + + dialog --backtitle "Save Configuration" \ + --title "Configuration Saved" \ + --msgbox "Configuration has been saved to $config_file" 7 50 +} + + + +# Function for loading the configuration from a file +load_config() { + exec 3>&1 + config_file=$(dialog --backtitle "Load Configuration" \ + --title "Load Configuration File" \ + --fselect "$HOME/" 14 60 \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Check whether the configuration file exists + if [ ! -f "$config_file" ]; then + dialog --backtitle "Load Configuration" \ + --title "File Not Found" \ + --msgbox "The file $config_file was not found." 7 50 + return + fi + + # Load configuration from the file + source "$config_file" + + dialog --backtitle "Load Configuration" \ + --title "Configuration Loaded" \ + --msgbox "Configuration has been loaded from $config_file" 7 50 +} + + + +# Function to show the main menu +show_main_menu() { + while true; do + exec 3>&1 + selection=$(dialog \ + --backtitle "Server Configuration" \ + --title "Main Menu" \ + --clear \ + --cancel-label "Exit" \ + --menu "Please select:" 15 50 6 \ + "1" "Model Selection" \ + "2" "Multimodal Model Selection" \ + "3" "Options" \ + "4" "Further Options" \ + "5" "Advanced Options" \ + "6" "Save Config" \ + "7" "Load Config" \ + "8" "Start Server" \ + 2>&1 1>&3) + exit_status=$? + exec 3>&- + + # Check whether user has selected 'Exit' + if [ $exit_status = 1 ]; then + clear + exit + fi + + # Call up the corresponding function based on the selection + case $selection in + 1) model_selection ;; + 2) multimodal_model_selection ;; + 3) options ;; + 4) further_options ;; + 5) advanced_options ;; + 6) save_config ;; + 7) load_config ;; + 8) start_server ;; + *) clear ;; + esac + done +} + + + +# Show main menu +show_main_menu diff --git a/sh-server-zenity.sh b/sh-server-zenity.sh new file mode 100755 index 000000000..5415dcfda --- /dev/null +++ b/sh-server-zenity.sh @@ -0,0 +1,294 @@ +#!/bin/bash + +# Set default values +model_path="./models/" +mmproj_path="" +threads=4 +ctx_size=512 +batch_size=512 +n_gpu_layers=0 +cont_batching="off" +mlock="off" +no_mmap="off" +host="127.0.0.1" +port="8080" +advanced_options="" + + + +# Function to install Zenity +install_zenity() { + echo "Try to install Zenity with $1..." + if ! $1 install zenity -y; then + echo "Error: Zenity could not be installed." + exit 1 + fi + echo "Zenity was successfully installed." +} + +# Check whether Zenity is already installed +if ! command -v zenity &> /dev/null; then + # Zenity is not installed, try to find the package manager + PACKAGE_MANAGERS=(brew apt apt-get yum pacman) + for manager in "${PACKAGE_MANAGERS[@]}"; do + if command -v $manager &> /dev/null; then + # Package manager found, ask the user for permission + read -p "Zenity is not installed. Would you like to install Zenity with $manager? (y/N) " response + if [[ "$response" =~ ^[Yy]$ ]]; then + # User has agreed, install Zenity + install_zenity $manager + break + else + echo "Installation canceled." + exit 1 + fi + fi + done + if ! command -v zenity &> /dev/null; then + echo "No supported package manager found or Zenity could not be installed. Please install Zenity manually." + exit 1 + fi +fi + + + +model_selection() { + # User selects a file or folder + model_path=$(zenity --file-selection --title="Select Model File or Folder" --filename="$HOME/" --file-filter="*.gguf" --file-filter="*" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # If a folder has been selected, search for *.gguf files + if [ -d "$model_path" ]; then + model_files=($(find "$model_path" -name "*.gguf" 2>/dev/null)) + elif [ -f "$model_path" ]; then + model_files=("$model_path") + else + zenity --error --title="Invalid Selection" --text="The selected path is not valid." + return + fi + + # Selection menu for models found + model_choice=$(zenity --list --title="Select a Model File" --column="Index" --column="Model File" $(for i in "${!model_files[@]}"; do echo "$((i+1))" "$(basename "${model_files[$i]}")"; done) --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Set path to the selected model + model_path=${model_files[$((model_choice-1))]} +} + + + +multimodal_model_selection() { + # User selects a file or folder + mmproj_path=$(zenity --file-selection --title="Select Multimodal Model File or Folder" --filename="$HOME/" --file-filter="*.bin" --file-filter="*" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # If a folder has been selected, search for *.bin files + if [ -d "$mmproj_path" ]; then + multi_modal_files=($(find "$mmproj_path" -name "*.bin" 2>/dev/null)) + elif [ -f "$mmproj_path" ]; then + multi_modal_files=("$mmproj_path") + else + zenity --error --title="Invalid Selection" --text="The selected path is not valid." + return + fi + + # Selection menu for models found + multi_modal_choice=$(zenity --list --title="Select a Multimodal Model File" --column="Index" --column="Model File" $(for i in "${!multi_modal_files[@]}"; do echo "$((i+1))" "$(basename "${multi_modal_files[$i]}")"; done) --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Set path to the selected model + mmproj_path=${multi_modal_files[$((multi_modal_choice-1))]} +} + + + +options() { + # Show form for entering the options + form_values=$(zenity --forms --title="Set Options" --text="Enter the values for the following options:" --add-entry="Number of Threads (-t):" --add-entry="Context Size (-c):" --add-entry="Batch Size (-b):" --add-entry="GPU Layers (-ngl):" --separator="|" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Save the entered values in the corresponding variables + IFS="|" read -r threads ctx_size batch_size n_gpu_layers <<< "$form_values" +} + + + +further_options() { + # Initial values for the checkboxes based on current settings + cb_value=$([ "$cont_batching" = "on" ] && echo "TRUE" || echo "FALSE") + mlock_value=$([ "$mlock" = "on" ] && echo "TRUE" || echo "FALSE") + no_mmap_value=$([ "$no_mmap" = "on" ] && echo "TRUE" || echo "FALSE") + + # Show dialog for setting options + choices=$(zenity --list --title="Boolean Options" --text="Select options:" --checklist --column="Select" --column="Option" TRUE "Continuous Batching (-cb)" FALSE "Memory Lock (--mlock)" FALSE "No Memory Map (--no-mmap)" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Set options based on user selection + cont_batching="off" + mlock="off" + no_mmap="off" + for choice in $choices; do + case $choice in + "Continuous Batching (-cb)") cont_batching="on" ;; + "Memory Lock (--mlock)") mlock="on" ;; + "No Memory Map (--no-mmap)") no_mmap="on" ;; + esac + done +} + + + +advanced_options() { + # Input fields for Advanced Options + advanced_values=$(zenity --forms --title="Advanced Server Configuration" --text="Enter the advanced configuration options:" --add-entry="Host IP:" --add-entry="Port:" --add-entry="Additional Options:" --separator="|" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Read the entries and save them in the corresponding variables + IFS="|" read -r host port advanced_options <<< "$advanced_values" +} + + + +start_server() { + # Compiling the command with the selected options + cmd="./server" + [ -n "$model_path" ] && cmd+=" -m $model_path" + [ -n "$mmproj_path" ] && cmd+=" --mmproj $mmproj_path" + [ "$threads" -ne 4 ] && cmd+=" -t $threads" + [ "$ctx_size" -ne 512 ] && cmd+=" -c $ctx_size" + [ "$batch_size" -ne 512 ] && cmd+=" -b $batch_size" + [ "$n_gpu_layers" -ne 0 ] && cmd+=" -ngl $n_gpu_layers" + [ "$cont_batching" = "on" ] && cmd+=" -cb" + [ "$mlock" = "on" ] && cmd+=" --mlock" + [ "$no_mmap" = "off" ] && cmd+=" --no-mmap" + [ -n "$host" ] && cmd+=" --host $host" + [ -n "$port" ] && cmd+=" --port $port" + [ -n "$advanced_options" ] && cmd+=" $advanced_options" + + eval "$cmd" + read -p 'Press Enter to continue...' +} + + + +# Function to save the current configuration +save_config() { + config_file=$(zenity --file-selection --title="Save Configuration File" --filename="$HOME/" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Saving the configuration to the file + cat > "$config_file" << EOF +model_path=$model_path +mmproj_path=$mmproj_path +threads=$threads +ctx_size=$ctx_size +batch_size=$batch_size +n_gpu_layers=$n_gpu_layers +cont_batching=$cont_batching +mlock=$mlock +no_mmap=$no_mmap +host=$host +port=$port +advanced_options=$advanced_options +EOF + + zenity --info --title="Configuration Saved" --text="Configuration has been saved to $config_file" --width=300 --height=400 +} + + + +# Function for loading the configuration from a file +load_config() { + config_file=$(zenity --file-selection --title="Load Configuration File" --filename="$HOME/" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Cancel' + if [ $exit_status = 1 ]; then + return + fi + + # Check whether the configuration file exists + if [ ! -f "$config_file" ]; then + zenity --error --title="File Not Found" --text="The file $config_file was not found." --width=300 --height=400 + return + fi + + # Load configuration from the file + source "$config_file" + + zenity --info --title="Configuration Loaded" --text="Configuration has been loaded from $config_file" --width=300 --height=400 +} + + + +# Function to show the main menu +show_main_menu() { + while true; do + selection=$(zenity --list --title="Main Menu" --text="Please select:" --cancel-label="Exit" --column="Index" --column="Option" 1 "Model Selection" 2 "Multimodal Model Selection" 3 "Options" 4 "Further Options" 5 "Advanced Options" 6 "Save Config" 7 "Load Config" 8 "Start Server" --width=300 --height=400) + exit_status=$? + + # Check whether user has selected 'Exit' + if [ $exit_status = 1 ]; then + clear + exit + fi + + # Call up the corresponding function based on the selection + case $selection in + 1) model_selection ;; + 2) multimodal_model_selection ;; + 3) options ;; + 4) further_options ;; + 5) advanced_options ;; + 6) save_config ;; + 7) load_config ;; + 8) start_server ;; + *) clear ;; + esac + done +} + + + +# Show main menu +show_main_menu diff --git a/start-dia-server.desktop b/start-dia-server.desktop new file mode 100644 index 000000000..c926d925f --- /dev/null +++ b/start-dia-server.desktop @@ -0,0 +1,6 @@ + [Desktop Entry] + Name=llama.cpp Server + Exec=sh-server-dialog.sh + Icon=./media/llama-server-icon.png + Terminal=false + Type=Application diff --git a/start-zen-server.desktop b/start-zen-server.desktop new file mode 100644 index 000000000..1513bf6c1 --- /dev/null +++ b/start-zen-server.desktop @@ -0,0 +1,6 @@ + [Desktop Entry] + Name=llama.cpp Server + Exec=sh-server-zenity.sh + Icon=./media/llama-server-icon.png + Terminal=false + Type=Application From 4fa32ad0e3b61a6e13cdb6261723b6fd608a0fad Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Mon, 27 Nov 2023 21:45:12 +0100 Subject: [PATCH 13/17] update --- icon.png | Bin 0 -> 17770 bytes start-dia-server.desktop | 8 ++++---- start-zen-server.desktop | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) create mode 100755 icon.png diff --git a/icon.png b/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..c071a5b3c2394a0b0b7c8ffbb824089c6d972142 GIT binary patch literal 17770 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 Date: Tue, 28 Nov 2023 06:57:29 +0100 Subject: [PATCH 14/17] update start server scripts --- examples/server/public/index.html | 20 +++++++++------- examples/server/public/promptFormats.js | 24 ++++++++++++++----- start-dia-server.desktop | 6 ----- sh-server-dialog.sh => start-server-dialog.sh | 0 sh-server-zenity.sh => start-server-zenity.sh | 0 start-zen-server.desktop | 6 ----- 6 files changed, 29 insertions(+), 27 deletions(-) delete mode 100644 start-dia-server.desktop rename sh-server-dialog.sh => start-server-dialog.sh (100%) rename sh-server-zenity.sh => start-server-zenity.sh (100%) delete mode 100644 start-zen-server.desktop diff --git a/examples/server/public/index.html b/examples/server/public/index.html index 94284d659..a653f3958 100644 --- a/examples/server/public/index.html +++ b/examples/server/public/index.html @@ -32,11 +32,11 @@ const params = signal({ n_predict: 358, - temperature: 0.7, + temperature: 1.0, // adapt to optimized min-p requierements repeat_last_n: 256, // 0 = disable penalty, -1 = context size repeat_penalty: 1.18, // 1.0 = disabled - top_k: 1, // <= 0 to use vocab size - top_p: 0.5, // 1.0 = disabled + top_k: 0, // <= 0 to use vocab size + top_p: 1.0, // 1.0 = disabled min_p: 0.05, // 0 = disabled tfs_z: 1.0, // 1.0 = disabled typical_p: 1.0, // 1.0 = disabled @@ -658,12 +658,14 @@ async function updateSystemLanguage(event) { + + @@ -773,21 +775,21 @@ async function updateSystemLanguage(event) {
${IntField({ label: "Prediction", max: 2048, min: -1, step: 16, name: "n_predict", value: params.value.n_predict, })} - ${FloatField({ label: "Temperature", max: 1.5, min: 0.0, name: "temperature", step: 0.01, value: params.value.temperature })} - ${IntField({ label: "Top-K", max: 100, min: -1, step: 1, name: "top_k", value: params.value.top_k })} - ${FloatField({ label: "Repetition Penalty", max: 2.0, min: 0.0, name: "repeat_penalty", step: 0.01, value: params.value.repeat_penalty })} ${FloatField({ label: "Min-P sampling", max: 1.0, min: 0.0, name: "min_p", step: 0.01, value: params.value.min_p })} + ${FloatField({ label: "Repetition Penalty", max: 2.0, min: 0.0, name: "repeat_penalty", step: 0.01, value: params.value.repeat_penalty })} + ${FloatField({ label: "Temperature", max: 1.5, min: 0.0, name: "temperature", step: 0.01, value: params.value.temperature })}
Further Options
- ${FloatField({ label: "Top-P", max: 1.0, min: 0.0, name: "top_p", step: 0.01, value: params.value.top_p })} + ${IntField({ label: "Top-K", max: 100, min: -1, step: 1, name: "top_k", value: params.value.top_k })} ${IntField({ label: "Penalize Last N", max: 2048, min: 0, step: 16, name: "repeat_last_n", value: params.value.repeat_last_n })} - ${FloatField({ label: "TFS-Z", max: 1.0, min: 0.0, name: "tfs_z", step: 0.01, value: params.value.tfs_z })} + ${FloatField({ label: "Top-P", max: 1.0, min: 0.0, name: "top_p", step: 0.01, value: params.value.top_p })} ${FloatField({ label: "Presence Penalty", max: 1.0, min: 0.0, name: "presence_penalty", step: 0.01, value: params.value.presence_penalty })} - ${FloatField({ label: "Typical-P", max: 1.0, min: 0.0, name: "typical_p", step: 0.01, value: params.value.typical_p })} + ${FloatField({ label: "TFS-Z", max: 1.0, min: 0.0, name: "tfs_z", step: 0.01, value: params.value.tfs_z })} ${FloatField({ label: "Frequency Penalty", max: 1.0, min: 0.0, name: "frequency_penalty", step: 0.01, value: params.value.frequency_penalty })} + ${FloatField({ label: "Typical-P", max: 1.0, min: 0.0, name: "typical_p", step: 0.01, value: params.value.typical_p })}

diff --git a/examples/server/public/promptFormats.js b/examples/server/public/promptFormats.js index b8072358e..a9b23812c 100644 --- a/examples/server/public/promptFormats.js +++ b/examples/server/public/promptFormats.js @@ -12,6 +12,12 @@ export const promptFormats = { char: "Response", user: "Instruction" }, +"bakllava": { + template: "{{history}}{{char}}:", + historyTemplate: "{{name}}: {{message}}\n", + char: "ASSISTANT", + user: "USER" +}, "chatml": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -54,6 +60,18 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, +"llama2": { + template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", + historyTemplate: "{{name}}: {{message}} [/INST]", + char: "llama", + user: "user" +}, +"llava": { + template: "{{history}}{{char}}:", + historyTemplate: "{{name}}: {{message}}\n", + char: "ASSISTANT", + user: "USER" +}, "leoHessianai": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -66,12 +84,6 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, -"llama2": { - template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", - historyTemplate: "{{name}}: {{message}} [/INST]", - char: "llama", - user: "user" -}, "marx": { template: "{{history}}\n{{char}}:", historyTemplate: "{{name}}: {{message}}", diff --git a/start-dia-server.desktop b/start-dia-server.desktop deleted file mode 100644 index 188de6ed3..000000000 --- a/start-dia-server.desktop +++ /dev/null @@ -1,6 +0,0 @@ - [Desktop Entry] - Name="llama.cpp Server" - Exec=./sh-server-dialog.sh - Icon=./icon.png - Terminal=true - Type=Application diff --git a/sh-server-dialog.sh b/start-server-dialog.sh similarity index 100% rename from sh-server-dialog.sh rename to start-server-dialog.sh diff --git a/sh-server-zenity.sh b/start-server-zenity.sh similarity index 100% rename from sh-server-zenity.sh rename to start-server-zenity.sh diff --git a/start-zen-server.desktop b/start-zen-server.desktop deleted file mode 100644 index 418513403..000000000 --- a/start-zen-server.desktop +++ /dev/null @@ -1,6 +0,0 @@ - [Desktop Entry] - Name="llama.cpp Server" - Exec=./sh-server-zenity.sh - Icon=./icon.png - Terminal=false - Type=Application From 2e4c05e00a2fe144df3933b93a20854e29724c95 Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Tue, 28 Nov 2023 07:15:03 +0100 Subject: [PATCH 15/17] Update promptFormats.js --- examples/server/public/promptFormats.js | 36 ++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/server/public/promptFormats.js b/examples/server/public/promptFormats.js index a9b23812c..6bbecd60f 100644 --- a/examples/server/public/promptFormats.js +++ b/examples/server/public/promptFormats.js @@ -12,12 +12,6 @@ export const promptFormats = { char: "Response", user: "Instruction" }, -"bakllava": { - template: "{{history}}{{char}}:", - historyTemplate: "{{name}}: {{message}}\n", - char: "ASSISTANT", - user: "USER" -}, "chatml": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -60,18 +54,6 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, -"llama2": { - template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", - historyTemplate: "{{name}}: {{message}} [/INST]", - char: "llama", - user: "user" -}, -"llava": { - template: "{{history}}{{char}}:", - historyTemplate: "{{name}}: {{message}}\n", - char: "ASSISTANT", - user: "USER" -}, "leoHessianai": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -84,6 +66,12 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, +"llama2": { + template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", + historyTemplate: "{{name}}: {{message}} [/INST]", + char: "llama", + user: "user" +}, "marx": { template: "{{history}}\n{{char}}:", historyTemplate: "{{name}}: {{message}}", @@ -138,6 +126,12 @@ export const promptFormats = { char: "Response", user: "Input" }, +"openChat": { + template: "{{history}}{{char}}", + historyTemplate: "GPT4 {{user}}: {{message}}<|end_of_turn|>", + char: "Assistant", + user: "User" +}, "openhermes2Mistral": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -174,6 +168,12 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, +"starlingLM": { + template: "{{history}}{{char}}", + historyTemplate: "GPT4 {{user}}: {{message}}<|end_of_turn|>", + char: "Assistant", + user: "User" +}, "sydney": { template: "{{prompt}}\n\n{{history}}\n{{char}}", historyTemplate: "### {{name}}:\n{{message}}\n", From 116fc90e9a74946f41be2ebf7510213834ba410d Mon Sep 17 00:00:00 2001 From: Yazan Agha-Schrader Date: Tue, 28 Nov 2023 07:17:45 +0100 Subject: [PATCH 16/17] Update promptFormats.js --- examples/server/public/promptFormats.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/examples/server/public/promptFormats.js b/examples/server/public/promptFormats.js index 6bbecd60f..f6b179a81 100644 --- a/examples/server/public/promptFormats.js +++ b/examples/server/public/promptFormats.js @@ -12,6 +12,12 @@ export const promptFormats = { char: "Response", user: "Instruction" }, +"bakllava": { + template: "{{history}}{{char}}:", + historyTemplate: "{{name}}: {{message}}\n", + char: "ASSISTANT", + user: "USER" +}, "chatml": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -54,6 +60,18 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, +"llama2": { + template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", + historyTemplate: "{{name}}: {{message}} [/INST]", + char: "llama", + user: "user" +}, +"llava": { + template: "{{history}}{{char}}:", + historyTemplate: "{{name}}: {{message}}\n", + char: "ASSISTANT", + user: "USER" +}, "leoHessianai": { template: "<|im_start|>system\n{{prompt}}<|im_end|>\n{{history}}\n<|im_start|>{{char}}", historyTemplate: "<|im_start|>{{user}}\n{{message}}<|im_end|>", @@ -66,12 +84,6 @@ export const promptFormats = { char: "ASSISTANT", user: "USER" }, -"llama2": { - template: "[INST] <>\n{{prompt}}\n<>\n\n{{history}} [/INST] {{char}} [INST] ", - historyTemplate: "{{name}}: {{message}} [/INST]", - char: "llama", - user: "user" -}, "marx": { template: "{{history}}\n{{char}}:", historyTemplate: "{{name}}: {{message}}", From 8406b0924bf323f37d536dee8b8165c1f3d9d11d Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 28 Nov 2023 10:32:03 +0200 Subject: [PATCH 17/17] ggml : re-enable BLAS for CPU when src0 != F32 + remove redundant full offload checks in llama.cpp (#4240) * ggml : use blas even if src0 is not F32 * llama : use n_threads_batch only when n_tokens >= 32 ggml-ci * llama : revert n_threads_batch logic ggml-ci --- ggml.c | 2 +- llama.cpp | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/ggml.c b/ggml.c index 0c7264a36..c522a101f 100644 --- a/ggml.c +++ b/ggml.c @@ -9373,7 +9373,7 @@ static bool ggml_compute_forward_mul_mat_use_blas( // TODO: find the optimal values for these if (ggml_is_contiguous(src0) && ggml_is_contiguous(src1) && - src0->type == GGML_TYPE_F32 && + //src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && (ne0 >= 32 && ne1 >= 32 && ne10 >= 32)) { diff --git a/llama.cpp b/llama.cpp index f2b5967d7..cb544228b 100644 --- a/llama.cpp +++ b/llama.cpp @@ -5550,18 +5550,8 @@ static int llama_decode_internal( n_threads = std::min(4, n_threads); } - // If all tensors can be run on the GPU then using more than 1 thread is detrimental. - const bool full_offload_supported = - model.arch == LLM_ARCH_LLAMA || - model.arch == LLM_ARCH_BAICHUAN || - model.arch == LLM_ARCH_FALCON || - model.arch == LLM_ARCH_REFACT || - model.arch == LLM_ARCH_MPT || - model.arch == LLM_ARCH_STARCODER || - model.arch == LLM_ARCH_STABLELM; - const bool fully_offloaded = model.n_gpu_layers >= (int) hparams.n_layer + 3; - if (ggml_cpu_has_cublas() && full_offload_supported && fully_offloaded) { + if (ggml_cpu_has_cublas() && fully_offloaded) { n_threads = 1; }