From e057c8de486bfbc829240924f9238d6212c917f1 Mon Sep 17 00:00:00 2001 From: hiyouga Date: Fri, 26 Apr 2024 05:34:58 +0800 Subject: [PATCH] support mllm hf inference --- data/README.md | 3 +- data/README_zh.md | 3 +- data/dataset_info.json | 2 +- data/images/2.jpg | Bin 49681 -> 22681 bytes data/images/3.jpg | Bin 70036 -> 16105 bytes data/mllm_demo.json | 2 +- examples/README.md | 1 + examples/README_zh.md | 1 + .../sft_mllm.sh} | 25 +++++++------- src/llmtuner/chat/base_engine.py | 3 ++ src/llmtuner/chat/chat_model.py | 14 +++++--- src/llmtuner/chat/hf_engine.py | 32 +++++++++++++++--- src/llmtuner/chat/vllm_engine.py | 14 ++++++-- src/llmtuner/data/preprocess.py | 8 +++-- src/llmtuner/eval/evaluator.py | 2 +- src/llmtuner/hparams/parser.py | 3 ++ src/llmtuner/train/dpo/workflow.py | 5 +-- src/llmtuner/train/orpo/workflow.py | 5 +-- src/llmtuner/train/ppo/workflow.py | 5 +-- src/llmtuner/train/pt/workflow.py | 5 +-- src/llmtuner/train/rm/workflow.py | 5 +-- src/llmtuner/train/sft/workflow.py | 4 +-- src/llmtuner/train/tuner.py | 2 +- src/llmtuner/train/utils.py | 6 ++-- src/llmtuner/webui/chatter.py | 5 ++- src/llmtuner/webui/components/chatbot.py | 15 +++++--- src/llmtuner/webui/locales.py | 11 ++++++ 27 files changed, 130 insertions(+), 51 deletions(-) rename examples/{mllm/sft_llava.sh => lora_single_gpu/sft_mllm.sh} (56%) diff --git a/data/README.md b/data/README.md index 2ea0c117..6de0430f 100644 --- a/data/README.md +++ b/data/README.md @@ -18,7 +18,8 @@ If you are using a custom dataset, please provide your dataset definition in the "history": "the column name in the dataset containing the histories. (default: None)", "messages": "the column name in the dataset containing the messages. (default: conversations)", "system": "the column name in the dataset containing the system prompts. (default: None)", - "tools": "the column name in the dataset containing the tool description. (default: None)" + "tools": "the column name in the dataset containing the tool description. (default: None)", + "images": "the column name in the dataset containing the image inputs. (default: None)" }, "tags (optional, used for the sharegpt format)": { "role_tag": "the key in the message represents the identity. (default: from)", diff --git a/data/README_zh.md b/data/README_zh.md index b00f81d9..fb6cb1d9 100644 --- a/data/README_zh.md +++ b/data/README_zh.md @@ -18,7 +18,8 @@ "history": "数据集代表历史对话的表头名称(默认:None)", "messages": "数据集代表消息列表的表头名称(默认:conversations)", "system": "数据集代表系统提示的表头名称(默认:None)", - "tools": "数据集代表工具描述的表头名称(默认:None)" + "tools": "数据集代表工具描述的表头名称(默认:None)", + "images": "数据集代表图像输入的表头名称(默认:None)" }, "tags(可选,用于 sharegpt 格式)": { "role_tag": "消息中代表发送者身份的键名(默认:from)", diff --git a/data/dataset_info.json b/data/dataset_info.json index c7a1556e..d053be1d 100644 --- a/data/dataset_info.json +++ b/data/dataset_info.json @@ -429,4 +429,4 @@ }, "folder": "python" } -} +} \ No newline at end of file diff --git a/data/images/2.jpg b/data/images/2.jpg index 74771224baf46a8ab64f5e068dccca662a49fddc..1df98231a1c1009f5baccbdcd5e5432c443c93b3 100644 GIT binary patch literal 22681 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

( z;txm>7Kx>o`Xk`;%BysU=pI9F5%VlBqb8iDLG_PHs1N<`RJ#k+SUmyi;H{)i4!?W4 zyI@~R{-k0n@%O0dptB3>623dUfrA&8Z%k62|9pNFsB&p*&YH^k%;2|HyP*&|ZUq?9 zLPFC`LUWulvm2u`VC_IUI)*xRo=R?-(*l{M;O%BF zHx@<|GIS@2AeZG|VSfW3ta~TL1U-+Vdd~Be5niykkgYab2ox;ngRSrz${>yQiEiHA zYSoXqDe|lae?RBIu)68E=;|Eb&V;2$!J-j4klsCP9ud*lJ|)b??mE{@(L zB!f7pKCYTOL*N45=#nz>Q<>%zd+mYe9gJ@<6SYp0HhZ2r!W5yF$VGv+irLb$+4>23 zh;3=SAH#Yvg)B&-ll`DbN!zc7UW*WPqp>YeQ7ma$_%&8fl2-vEXw5p;18-_OgqDro z6YD1fR~nD;WY4?yV)N$T-K4m!}o-2LnNBWJyjEuASO^5t?Afx!M%*3m?7Lo_RN)a{bD9qAm-bHmBN@&$gT~RZBz~}IxEnLCe zeXlNs(zs`gA3**5H76&|5Q(dj2IePaCz{-To(0tkDHIm@7o0*)(NFY=B)?e-1#JNx6S~pT@eXNq0W*4Uz zfoVmzDgTa`XBYAhw{m^GQ;aSB)7&=0C)aK>VSE#}Q9rqbucU?ZFkd%q^EblneC9|J zFJzcIZ#!N8C!fftcxlK?(r;%|758gUh=O#jb5iZ`QbJc`L&ck$!0)M4 zW!E>VH1nsRGwp|)<#W8auJealWbZi7i%{L89Mv%9!1HH+fC9eEO8C-hpUx|Ml#tIBlOiX&(ElOHW zW$BoG>+w($p1@I!n-CD=(Y=wGz~S95z1<~aUw4X3m*!DvI835PEfo%V2d}`0x%PCK z!;GnzO_dv)Cn-|{e2xa1H0qnJ5>oM(qvXr#$K8zvEvm!6Utm1{%sAY_&vX7~$@UAe z)O_t)PH4OHUQ^ARsXTIMrq$Dv=3nJF$!zpku3;|Gg>AhfO+rci6i#WA>*F~;oO-ac z?}uaN>5kXpbL!s|3|K=8I0x#!BbUM`8Uh-i=CFn%&6OI~R3m>JeYaxGdix%&ku@*8 zepM}k`gn7S_CwP7Y2KMcAxAZeq^rqAJ%!UJ-}i#HnM)IYOx4aDz)xenG`+O5uAy&u z8}!7}reY;e3s{>U0114y30JE(#Wok-Zf7 zwdi;D7n+%}De70=m*<5^(Ia|jpHiqo<6X+F#%d=1E&l`}>c#E=YmzVBPxvccuGrbU zMfyM!sEkeFUrsvj*U#uR32)!f7{-p@<6#|7vd#2S&iz0EuzB8Aj|KSM_l~qEZ8i_x zh4Q^UCTWfGhgltKwyc#37^G@dO<0U)3A~)8Gvud+blU1jn%$jgP(+S_S2$)e*A&a! zG9UBD9k5rsio}_}VePVZ>@~N=`K2St_6<>=3QqD|#>sX9jDBx8+e17RTim*Ql`A!; z8%}|xP>$i|ns(1b4M~DOSyBzfOZMNKrVjT0%rcw;p?p+c^X(ZVjT7Z_vaDz56zki9 zC66yEu|(g9En2sK$3mVoGIjuoeYqeF$kL#E&`QIAQSkAg>rJ}&c8C2m{}>@Rn<^8- ztG-Qki9Y*fSA6^m5wQ_zltJo@XNGC_--_@GV_yf*uxBqaR(-ON4>Cu!UrN+KiR}^; zf6aW(cSAYNSF#V|H+G8d=(cgq7NDQpfVp2=#cBFvDn3UolNoIo^fua`U#qukE=DwY zofY$rYDN0LIX2CLY>iS|(UCRljANd{Y6ER{0WB_ElPCba4+LR*3+r zwo1|ojA$VT+A34s@=S`0+31Qz1sXSa`$)=-!E5u9S8Ic4n}tlG0bhPZ;|gJJ0ygU` ze@Sq!Z+JDhE+5@0yF6<{hfbL5&5ehK6G@lNf3ssjygi?^ZbDRC8gmKb;i7|N#y+z0OO9ncKPuKB1h&EX>FI@pQc zY+X4!?(WO&Qf%@+08EvMAUz#+C^~6$7;@f$24(^#egMqQZOzeYZz2*GIGL*OvYk)r z-ie?0b$L_X3s+6??xgffHTo0J(udq2?H7N9VsB7hdm#Brg`_LhygZ@9o~GdS^V}bK z6Ju41j9_?*&4ss~bhC73CV1t5Zom3icU~&JpEd-f1@a%1IA4&X&v15@+cOHvJk}r# z%{=}EYx{i9^tF^SbN2GzPT2O6VxtWVqr%w-(;M$j6@8AfKW!(seX}UjARR|{;3(Hj zYD7mPxE(J0RA5n16h^WJjB3=N=}`{P5I`j&xzTY3bq#@K*s6luPk578(tp2f#E*pN zYYjO?NKw+8Y}Nb$nq7;o*eDB^h9M3Vi?0#abd6{dWM=5ni{sdq0Cu+lAAY1NNnNGC z5QBI2o6no{mfSB#dqJi}>e%0A7^F1VXdO$Rvvj*BbaO>H>=+sPcDGnO1gI#>yvkK&y&o2UhLmkqXU`Z=1)> z!Fmbd8>(MK3}pTq%d8q@q6o0YI#dcj?BDD+5fXOqj|GXh@CiGG7f!@`{z1f6YQ^mp zopP?%n$+4|JB?*UnlQC}Bi#!3VUb_6(&@APcodqK@%7{x9gu58#fXjQx$f5KU9yCf zo^_J*VIOiSJC-3K$-gwC`P^NFvXX^(@o&bR4Mj1!lU9qOYMQK6t4fN9LHf%JmiJ}8 zr{pDcH>&oU3pvrac{VAwDF<w=9qw5G{?Q^#94EZRp zpVniZtrf@?QH`hru@j7N=8R^{tIHJiA;ZX6qU_TRUgRVN!|r?ESp1jz|0^1T?%3!|3$n{bc4*nP*ETJ zhCZxb1DEithSgae`K$U>VQMaovVHdW+p0o*0-m}2+0uVQVPGs)0xf$;;p0C{xLCF* zJ1W;?t_NmYGFbc`Nj4&>h8-)lV7wr5I+eugv*>a-;dLx+WM={&H7qN<__uud#+(n5q`*vt}=nPEgdedEhSNd}P*RHMl)O zplkVMi5V)tb0B~VMxZ;KMDkMaS*Q%H-+CzSL^n}~(n__`U@UPH$)^dJsnNUz!`S-c zZo#T9ItbONdA#s<)ZSp^d8O=or%c`4F-!L!-%k_X8jnXs+!Z zB{@|$GD~vdJNf{yEdQQCbqxE#;XC^q0@d%ZEHH>+tqQ77k+%IX8avz?txokD1CDn# z;3Evlo8t@C1bW&X&>1X;VFOEjE{M~zrMWV8IC^h6M7zF~|I#cC(#&V->k=QTZsOhf zcXf&k-uKCdlp}$`z6@YP&Pm=yVA})0ysj?ln`JCn_#1dBeWmOGrTn~qdQs7DN3Jet z;c@mw09s|m0nNM|DQeEJnQZ-MFU&K)r!a`dJVjc;UIG6$f}TJU@R^=Es70}imjj{4 z>+*G4rDjPlDp_wA8)rv-B#_Ncn|u3OX*Dzbl}6I3(Vjj!ydlFWUBDuJS+7Cwy5h*J z(eQZ2rq)(pf14u>MqoQ>uH^?GMX84j%Dkzu;ADY0 zyR)HR_-){4&DYd&$kVb@)#J#_f?erT0@LtB4OWmY zNOqc9Y%osl?!%4z)?jbTd2gD;w-it^!6x@pX`V_KCaZs^SB)j}9wVy7Br)s%^$;Vp z%8e$d1y7VsJeNIdb&*4+Ici^b@*>?lPcM66QI@vORkr=Rnfs^T)ZFgt=UbO*$S*H` zYnKSfi9TcTw07X@exHfs&bDqUA=}^qpmF~s;xq(B{JEcMc?MfaQbms_A7=*9qHwwh zN%xY3?>beLtF7z~`xjUi1|>;N7wK>h{+WeW<17IMGFPolt)-?i--k7L-}US*y+TQI zFm-C=`gJr)>Gnx;D)luSF^)2L-&>s$5<_Gz>e1){U$-~E?CpI)nQ6Z7&<@(iBjM#Gw<_QwZE!n?VL~^YgQ(9^<1JO-+XO-Y7hw8^0BEa3ck!H-imA2JoYw8Dz>IkKd@>%HCC+ zH2~j24G{letAgXJ!eWz~N!AxC1u}1lWfCyqzNS~X9@0dlAFm*NXy{4C>t?d4EL}Ax zn_UBknO&3vVaC7yoo|DGc^%KL%1IQw=N2k`yl;P+YWMULY+x2%YeIjPE!V4J3`0s4 zf+AU&+ZXGeWP|LDva>;d*P5AmmA72@!8CkoU{Dz>U1Evad}cmgAdf}D`^GrgHiU#O zSBvEDLS~b{h@WnEh-lY`zu-rS;o-A_^)ITv4*HWj(703Hh*PKWT#XbF&X&EjDoZ-- z>IgpP@cC3|^%2j;SwXn3BtMy>vc5;L774!@2W!!9%SZ(NbTpA!co0rZ7Z{giLDt&1 za8&2S^L-T`OZAC!LCK&ai=3<@|G}=}XHgwkeaY{s(2o{;h_evxlF_mSw|w3bigoit z=Cc!-_i2)+uGi{vU8{VP+%TuF!=|{La@sw&Ws#k~f zyaSYSO!dl225f#(Xjj@TD2fN4Q;=0JkuQ$*K)9r)D8MYZR58GaZA^Vzy%my5o)Yy?l@kwT+P)|`YkgpM zkL^DK8jnP-OK-J^0M4%~#i#zls`HBl5$Zg4-7c9Ud?s!m68WyaQ?7t`0|zzjXv2JF zlH<=lr10V%8WlmCPL~>@0(3Pqk;<?Q{(aQsE4wVFDNxU=JPUhLe|0ROr!|uE z*^@11%cR!TBy)*j;Cx7pa-|AW>X%v))yg;D+bN$ZlQPc@q1>J$9!%>#%G$K^&9y^?O87*krmp9UVAdZ*Iuxcp*eBfOVOtIeQbD1t}aj7 z%huCqA1~9CxY}p|fU`>)R!<9hntE_OUr8-CAItrk?OuipsYpP@4(2}r#SOleqW}J) zx4{`8=4mYDHFEoU1rwh#ola#UTK#o!3a_wrW?hEypGyhJe4FI((=mHukXvlqTmf1Q_FE)nKSWA;C5d! zRxxkYQjG=!_*iNa{03S$YoIr&eMdXG&vuqBOrbyl_SU1&?&R!x!s;YN9?o184)_fK zU_QxMLE4mOiA7ran2#l-zo~y~V4QRbpQXVU3m6uVTYO&Fy=@Y08 zVuoUDwgxXUi{=i|- zG%SMJ3DwgMJC42uPO!4qFb}7KZWQYm^u9Wa%aJK?TUNd1PjlOb;REe|HA=0v%!Bl% zMRkg{tGV~4I2ZIfRSs0ar0=zVI}a-#{ZM#aA<9Kx4#2p3vg=|XRua9SH*^{h<3f`9 zJlwd@jUp*>>wOD;%Sr=H#q=!`?58j+(w2{6t7`gul%Zou`J%X3&LVt`vZkN5Q~q!L zi>z<>4*1{=NJ_9cO@hb79k9Le&b)4tNx{%^pav!$?7w3~!mHy(x*qn;?{>9jAXez9 z2QGwJ?wiooQ;#<6CZ3L}?s}=jkqlyKu3lV`ZsonbBSQ~RaSvN=F+2i)T)JV>;vK(? z#DeR#FyUB}$g1}JboC8|M8i7iPtgGi+Vi;?`s)({5v>iP{b^>IbFEM)tzJm2+gJzU zz#1XAeO~G1FexUwFKuSc;1*F`bV-+MnatoxA(HAKK@z&F_+!dt0Ka;)gI5Mz9BGrN zt3#%{sG;N%x^e;>@tW9DvQL{#8NI$Z7n;Bru*Vx*$TU&al_clDD_X>sveB2pO@O&K z;HZTv{Csb2TZANAt=IfHL?*yLLREbf6NZnEH`GuU|NbCYM2RBONe^Zbfk}if&q>Bu zQN*L&ctVQQ)L^8)b_tzNa3cUQ+-@+BNs=F$eD`5~UfHHy!rXMKi}^Kru)k+x_?cMY z*v^UFLYoo}<#}Imh_w9TZ82%ML)#XWjbO=oJoCW-4=76aAF;FN>>%)?=*^@x+u;)j z&H09K%zu-e`18GEL$i9$X}6O~dNYghtl?T2Eb?DSxUk#}X6Y6t$x1Xoc5k;gE8F|S zRjQtZ4>QIBlcNTmadOqb9u^{IjHpuL8a0ys60Sa>0!H}K<7R3)gc8Kp2>MNpVzpW2 zS0HLVX7zJDm?>DR1bd+Kub^kA~Z^ z%HB4Cx0=o3OIKp`y19lh-2`7d2V^|}#N&H1tTxRxV^=;77(;(w^z5k0-jvaE>CESZ z=U~=g^eELKsqbvSG7YD6+GE3u0>*D>?^b%gx}aUO``My?mD!bVwrMs>{;dq04<|sl zC|j4h{wt|bH4hP)$7)V6WpY2%q1U+Lp2@4?|_|5XNo@Y;b6tgo|+82W~o~{+}m}}NFia1vqM#VvwAn`Z!aX^c~D0Y>CYzW zJ)^cvlU?5z6F?i-j}u6?HYzCPdNVDy2SnLh(P96s=2sk%3N1JPcx@ss4kqg?T4s$V z^4y}i4$*8b38s~^>ju4wmNjRIeWr>_AL}eguayDSL#vK`Dc(B|Sa=*I80psHnk5EPJn;);8uG%F}-!p4(-wUIp77o0r(~JAKclcH1 z;4$=8M3%#iJ!%np}Q(8)if;b1m^357xwkT}^`S~uAQ=3n>e-~Pz#I1Sh znUPX1CLm1nT^!pXyqPIz?_16En|Al26N4q|f5eGy`WDaKZvtn3Vhw*WP852_bd%cA za;&lZ`u6?tT~hEZ!^$%5jyTO&^k;K(H@3x&j@RFdvTE{8WG89TxlRI0CfbiUbIOQZJ$9ZRV@D`>e-cxv%zP8;x!>)mCQ zJc`4>%^&p-iBo9&Y<)224Zg~3eZ1G`-fKD5c8Js(37lvoGbMch46wb4LH7=`Y@DNm zR~Mc5XZHBTL9Rg-T=$=QPI&urtt1j7%mVAVqg(IkLK!;A(vq4qjgr>A1dZ^}{Le2T zcn*_7upPxr$(CCp5@dDlV~(udGq3CxWtTm(wbMy|kC44zq9H94kmHCd``Q_+w$DGT zJSvYxlK@3IVW&cUAxO5 ze_9SHVZGNj9B3wou4U|mMC7-smJrXyf|(iJ{1wn#&uO{RUFrkCj&LsQqPjljp2kZ2 zO+!^hEpd%*Y*Qz{``Akg{7pyFK;teI?UhKOa{uLyVF#jfDg}iw2L=Vt6W?T-QZI*g zjyaA_BOFnY604=R(|jU6jGZc1JG6Ipa9$!My(r4u*8mUon z((OosM7 zSuN!gf`@7~wR>FYHRQ5!?z_f7SzqL~k!(jEZMZ+VWje!^B#fCS4b=m0`LQAQ8%4~1*1 zxpgU*x{Y|>bY#dDLx>W%8)UKHxkq~tCNwIe=-RGHI@c!}pRb}_eZ+^zN$n7`*;D3? zPhXm+2&je*KD*Kqfe4K#=k!>NwU5IWk*dto9yT|KMY|@%%q`u=6>`u0E#+q<^3Bw4 z@3+XI@f-aIL@W(V)#-I_OG?(upbRSpHhUe>g!t&t#gbdOKZDgZ)rYGAmhmyTtJ#j9 zr73+8+t)H7O1rRc$9b8Iy`0d+APNDP^R8_jBmwx zDT`7}>6T0fDaTt`54}S`U?k`0dV-)J4F%*z0wuHGwq~>sB+;8glqj{i-H^PouCeY( zj1j!~9*`zT+SbY_c;)rW#!U;JH}3EUHoaJP-7VQgT2lFEfTvd2IWp8vT<0pksKw1? z8~7YOx7-z7xn!u%wl7yrM^Atni3~NsXd^??jWdpqi__c>WWH>E9|#sB*-x}h9jp)E zv%t$-!)P|GJ;eU_0Pr_QyR0sEDhFTpgtfr!IBrcqo(yGa>_K~qd{exxBHS1W9sXpI z*jl9TQg+1od?$TbM)Rk$5tGSo&!d*CYoh0|z&?RtUud4%4rINHNfXE-(uT(Jcoe#= z`x34N>BL$H4OR$}*0xkn#l$z{+KHY|j66<&HHxs~O^E<;23f6Vyzoy%Em^fObY8pI zj?x)pJ#-T)cMR;*Wsl@PCdZyK z()pY%pi6{%_$V+TMm{DYTv{USMN@@(Nq3B;C=1EFe{sl@fr177_i0WEo_J}mG7^G7 zf$b)_eJqQmd`2PYLleJN6B4>jXRxA1v&CIU#}gU)C0%nz=S3J^xf84V&aGmkBSl=M zeBRQ#(3?xAuFV3dXTv`$R$O7`p)+`eTnl3ekk>snq9%FRrfAzZNw z>?^Q$SdGP1zWx;Rz4uvrxaHd#;gqI~ZV_lDr@Gf!-}U4N6jmpujSL-DpFXwBRhPOY zb-)CIV^-5#dn@iT}qA&BZUJ3B3&kK zCL37507E*y4%RO`Bv_YQjD=Ln2u=8;9RpXpa@v?k)gNI@YK)PcNEkUALU7&93aOJ7 zjm28>_;O*~WI-q`^K+rMxt4YGqjR%|5umy#7ap1nx|s~p(|z9r)1|gSRT(--@xhl! zwC7QevRASB8ex_GuhqX*vJ;#x^c(?x!@jjUyUo8RK%Lxj1(;N&@jOo?>1{oYbDT!r zJrPD_+>RcA{!*yS%Q;h6E4GE0tG0NgMT)Gr?`X0{&8(hum3GDy3~NAo-x(uIU3yeg z<^<=YB?!vAd*AlOB9P>)y^C4|hRg`^19x zY(8S1QtJhIGxv|vsLyjh%ig7&Sh)|p{Ym)Rt#$X)PMi*oMpLc0;j`2D)z2rlW!V*^ zH~9#SB=sA*gA{>SDGAczpbbAd$_qLivXwX;Zz+>>#v}>}Gs|CPColhgbmj>Uzem72 zsNYVAYI(7`&a(_j97+xRGT~VNE?hy0F~5+eY1!5SFof!&!io9+4X28Gnw#SD_qEdh z6{2eJSZkg}d#p6ktR4k}#?QPp^;|`AYh4g!Mh&l)&%3;?40TcBcQRJ@mUXckFrA`& z74ML}t#zmga;ow8?H;JWy5?FR-Fsuu@MRnZucM60r#vqcev~*Y=^n;3Ytk@#Jpj&& z&uF@qsK!JcR;}UbAjP2T{%wBHuNVDJZJN9JG5yglOD$p#05Hto1BP*HNi$oPano^K zMN{$hk$TfPKIdiIZF839srxMUnP^Y5cM)rZ#0{N&|w4{qq2@2P(U5dxcXgDUO8jeJmyZHo8k}m)`7rRl8Lo z8kKJ-v`)TN3N`MdVbggD8Bjk?IGdi+mGq_z*WFXB6%0Cu&5D8I3F|uoT8*W-(wW&W zfcn>`d1dF)Q^h4#_2uM2VHiT|MVL{87L|czfp(`m*VUyteRnhEWHNUr-RVw9F_O** zs>zu5BH!s{7nRg0k9~00UwXX+4>!7@_C6gS+*nr^^OqM{I?NuJ62fmPR%q-M-Bdf2 zloOd2)_N@9A7$n=((JZc`sXrY9vP_OVSKjuySQ)R1aZ=sKHMzeHrUJ3b5GI4L>>-C z>vxA#=<+nTBbvPz<`-eb-ahEv3^H>e%I5$JgB;Q9r4MM7<{z)#yiVz9jKD# zCi(B$%*$o=E_REGFe8a{JWGY~&!Y<6->1&5>{qr1V(cu>L5-NH5*^klz)?+SX(NJL z+Cvio*=oy-DqfqsA;_v;)~s3k(lhYx{^UMg*vYWvk4>LzanMnRnbWL_|?C2VvfRcqe$GwW()VBxx zXKxT^gpp97HG}_`3zY6`cMwBO$QP&b-*|%EER$^;+)i5s`%!I>%g+63`8;L$&@zOo zgX}en&H3KK?PDZ^z@xWnS&RA*9PR05ie($6iluaNIg=j=eJ7g;%U8EK=?(5kQDY~A zD8E~dHNvM5(`ki?TkCSL)|^)(_UT3@pL-M2k7~kyyAhrvRk73ZE=8FW@W6Hr_wXG1At3{1vfd^dHd&$L0_+Mjh zI6~f8F5g~eIY;xaI)Wksn|c6=l4;RAb486n-tbo>q>KL2o$rW8~IUv<~o8`pBa?AoQ5R=_NJE*5v9MMR`RMrqYu_2{-`C; z+<6r{+FMk+L?veeY3a?7{@xe)1~!Q&3dG%+HiWFN<*V?|+D7ukY)Y4Y54kt%kAJCM z|M(*2U`O|JF$Ph;fdXDcB{X<*&e3a&)yE5U^i7hlJ@9V0d*O+_pkNR1zQwD8Y9adm z1Uz+ivJnL~a~Z+;w{khe$48O+T~c57N{GJVX|+=tKA~h(`4~cX8_ScADW}GWn{+~2 z+v%f9%)hgXN6ES2=KUG>6<77tC*Q|C$SB=JRLo=kSGR8?jUS`?aTa>W?qo`}8XGzr zG(Whi1a>yz|{tf`ak zi82(6lq=u8347SDN9~SgfWHplaj)C|M*uw+!stYWw+s-+?t&RkF@gseB$IO5 z<)V*hZ}g~?gfh%?^8WyIGK^=AbMogn;Dh1HoO*$$VGCRNQ$wgp3kS<8wnC6e1J{gt z_Z)IDZY0#MBMoh-Tr6rBE4Wu6a8Bjpc5|GM%Zv=Gtx2J`kA1zok`ssFWp*TWs_r@@GQ4G|`dBW1dTO;B>)1H(cP)D%}C8ANGfwLASV) zMP@Q2HwqY#aBzNLPIllH91mliFAeEhp0(l?()7D)k1FDAn7J5rC2^1k@Q*+`_r^_e zviR@p$QoI2k*V`B9v^7u2u1j z({0E-&p!R@@95CAl2%ClB9tLYnx{{p(RiEUBsyFYERv1tr?}*H{&mG%{4cTirKR0Z z;+t6Y4L0&3vA{;vgk%uPbCrF=aAC+e=Dgp*x~8G=GWm7wS(?Yg@VR?bmA1X_JTV=U zfzN!`4f|350KrUrA@FKBG?vvZR%F8%mf?3EG5TluSEWueo8`5_Rh=7EjJaCt=jG;n z>-$vr0e@$|ikCWEw_bIW$Sy3V##-hU&JGuiz=jRmBRm4N;(jgo%O0I--bgX3smsXw ze;f>-!@YBVwkP})zR%-b)vH?B{iUo?5-gQ%Npm$4O?82Mw$L+KOj~h zL_M+mUGvXAoojqQ4bF1Bm67_@KN+DMx)7@?)wP|L_R{{W`g+61I-iK){>{@JTTq?e zQiB331bl9h@Y%@Zg=`YfoDrJC@dw543VaZ^Ya2Pvxvn?g5xYIM`PBSb z*8c$E8<$P7x@|VfVqWCH5UWA~D0a}H0-!1m33BmV#d!SGeCk>XuT#n*A^+Jv^Y z?QbQNfW71vauTy%+r+1Qtr1XNQ|D;Qfy;C1e__I$Te6&x7R`5;`~&j*cN%6`nvPSb+3;_L{9)qH1zlQA zt9Wy0Yn^7KU}nR}%;o_AcaNMiF6Sy&>2AuAdnWGx`vMR?Er z6$8flPKGp}582=7bAQ4$YVT&6QH9wgl$j@z;z*P)m`GI-u0jH!763DPxLhqv${y0a z6;DNNZ+rP$@jlaqJY38&yF#mSi{9I>(fS%54)~J}qhT65NYZ`jT%GLhPFb6w$v)qW zeIffBe$27{(>@}a>iS3j0EACTU^N+_U>fPzWLl}tMpu_0WFZ5Bz}Mvuf&Mz{J{G;S zn6lnm+{d}o9$wZ2kCgL+(~Mw`pvT_durK@-&%=KUJTD)G^$U;e_}cDCiJ82!zC}>Q zyB>gNJ%{1JSBEOlt<5OjDE)Ie@p?F%l2F0RmZbE%-6y+WFSz|gx6|$Z5$o1AwyWf5 zw*$$yRsR52Za@kU4#Ut61}l41m2a%~Kh69(Y;)T+BoOs^6%Q`;T^BV9}2&Tt!!jE){7YPq|VlwAXw_Xuk9sdxPh)F%Dir>R|T_>y!@cxZRjvD!CiQ!;#j=3 zNgK;nVJNxs$!z2AVC~0Ga7VR%eNzbO)O6d}{LZx(PHqpO(_Css6C{6VlWRBxIvE!k z?Sa&DfN|7u#Xi$ecb5%m8*kt$s08v!9sK~~o;r1|DENl@DI|FDG>l1a-fnCRAHB4k z@q#`5#YZoRF64!yZSlx{U5{~x2eCW?d-dn$2Nhn*I$fC^Ro&A~AbIVGZ1IT7stj|- zey8)S`7VMaZEtTPg+>4ez{tt!eX;M&aJ4)o(@CYr3~@K^(tV2f1nwspVtC^?BLk*uXwmZzL$Op!*r~;Dm^{26p$_B$oE!7_#zkSy*k{3CRpbbH)!G zXRTwVn{jSq%#ddcNXf$B^*QzSu6pytSDNOd_M5Fp-(6$(%`MEcpO@~1=LJZ}001$! zrx=W0wZ7R}XyZm=I1hkG{vrACpF%rUj+#!_E?!4RbN1_b6e}$8@}*Kh8C#M^JbPo% z`qow8x-)#1R|_5n)8?x)k5j%C0q1u=ope)-Qq_c0TOVZU{{Xj7#G4&VHN-kDq<->wwg81t2Rz|` z`A8i=C*0KcKepDXs9Gu2yaC|b&oU-x$JyhBpK^K>C+0cNC$CUVc&qqdO_tQ|ib&-E z7G;xZ9E_0Maexj;_Q2w#x6rI$f^E^#ycT zk7Ck4X@3E^XV(50>1fw(&vz}9+Z}^(xFBQ$7$5<(0gAN;#Sen_P{|yg9q~qr(qS`zV!wO~v8Pw#n0Mi(6p4hxMtkpLuGJwjIXZak`G?P73gL8jt-pM)EsWDWbgT&rdgRw z2~o`}-C3VccP0vgq(!Fyw=fVGq6dyO1iXpc@x&C%MO>aVR(}-ryt$jKQwaI&m~qZN;iEUWAaZ*_%;2Y zk07zuuLNKg-!wMMjB}eM$#@-B)w@_I`&w=JOX-=$F+X6!SUze zcB6K`+J6On9?{DY5}SC0NUwrEMHuhSM^2-Wfh;;-?Dygg9^M=83G3Pnmnz9K>DR3J z3>cP2V(L2dWGA7|1050KXv^TJzIR8FD$;LL@{dgYn(h)6Yq>QBj5s(*cB$*soO}1^ zbJ&sVe+&E#r}!;wZsEAptv<&fc;${#ju`Ifz=r-NUbsC7?O%Rd{1E+@^()UdZxj4R z(f)AJ#2qA9)B>O@eVvX=1!L|y42`i|e#HL(2Q^=_-Duwyt!>$XaGI64EfFB7&nm;O zDn{XgcooZt%`0MK%Nehfk{7hr_dY?=?eyI%L0D~dDWgPD915}(QWOPLAm9w(;X%Ok z$0gU_+INny*=vgfqUJfKxGq$;IR`vsW1mtzi2Ba!{t20+okC^OJ|Os4QnrPa@S1D4aaXE{;I^2{t2JrZ948X)2=iPNq2e4CAH$l(gGV2e)9(#vZYAlj@*wHcsiWi z@{5!CFj7{~`A5ax7xCwaJV^Sy{y5RDFJ`rCR%vA``=ZX~J&^&!yAr^C^2MC7uP^we z;U6A&uHHDWrtt0LF^?h`bmkB&TQl;kdlzXW5_8m%o-to=P5%G{_woLk%B$g9>xBwr zNo}v~r3<&n|yu+fhHA1lB7wQ>DO>10<2KY=RtMjB-Xgb;#>kelz`(EPQcz((0GGh0MsJ zIW7|OEKwI~=WyJ1rvRMeXdM6*%~LnatJLpp}~ZPrN=C{{X>9^q(5| zLKd4+Xl7V}E%NTiUA?`J<6c4WTlUD0$9^hH6~6N=;gQ|ha7H@y^y^oE{H2VeU?FD=6j| z2)6yBx1&2L@f1=`p5^f~$nADhl z>~N|A$DAH;d+yG8Kg&6(o5a@bZn9fkLcy{GZbNgPF#Mi?lbzVf1A$tTcs4O2tZ{Xi z?nQ0hUUD)yJcE!4J+N{*6L?jV%iC{k(nvPU1Y|39Y@Cn|bHUGJ>r?xk&TFGC!&NUc zM$yY9x@1Y@l;84`!Q>P3W1-Fo%~P6ti;IoEWYMu9r3D8GfY>-0$pn**aypy?T?)qj zT8wU0PvPTg;0>hXX~Aws_|XlVV%@h|vrNhmt4H%l!-X&WAe`iZj04;6QFx>$EA%;O zuP0koxPLl7EM`Khw;v%M*v<*a&rIg3uBmYvENz&)p@qa{Z~@Li^&F0Q$8az!r;-r5 zqTH-49PPDO$skn#;NWyz?wS zK4$W}GnEW+pHbTxJ$sRWNiLem>Y!T3aT^j?w&0{^f-~wzr#((-^7TUMQ=R6SUU=h< zWo)lN*$hty=E=@Z2VCUzz^b?NMP(w7v%Vx7!zOUqC!P;-58;Znd#AYBwLyua0J6-o z769;blk6}618R~u-C4Iwvg$!Sgx3>pJKi}XKwG{;9Ou72wXA5xqP&lCo<~XA6;i7# zLCAflE5QTMcLe%VBh*B4#;xXgdECX0e*=sYj?__KD5kD=uaRrN*K5tu-xt>!yWd4JPGX+0` zk~vMSwUt$Z@^jzv;E#GJt@)j-1;L_z;yC1QC9ar-&&}nHzjuxg9r)xA!bQ=R8_z09 z8W!EQ61i>N22VYG#wenTy8&J}+U=C`$TGW50^k5i=ucoh=(aYufJXlSENLhT#Xw~M z0iHcU>6$35BPU=p-b+-wxK)~In%(z;zyPFUzBgogjAN!L)^-dmtJFHyh)2XF`Q6{V&4uUXRW+Tzzy)NSLE z6CA~Eomi`F$oW_k$jQ!g!RjcYsyK>~dN4P%kBmM$@U^r*XYpRNs}9%LE*;d9?CeJX zo&c`fNd2z9A$TV9?Dv}0#nVcHP;Okx6c8D9ZN}5s^Nwhux+9okp#9p9?+C={EkAF6 z7hDU5md?)N8&qs5X95y=J95XbQ|<>`Q@lg_VOjX5%If1-_;cZF;Uj_-gjiH0?%S9S z(n(er91+m*f{LH*%xsmVJNl$KD;V}a9DWmOw+kMr@SjPumGH|gn{ALF+;SvcjHKiP z+Zn*4OtJVE;~A%Ew7(MREow@%t9bH9At(qwSr3c=dJ*r|iYvPfkDTq#7{8JbTK>)d z01doKv43Ou)5TUZ-8(V~?YGAW$I39FcMyA=WFKm|FYF(!T*)WcylJKCOA@<8X0)0E zDCn6VHr6;{)PcnmSJGi}oGv0f(}le>0=yrvhm8uXi+$nyh54|{BgAAUaU?Fn6!5^D z{{Rns*FUR%%N{p_JmT=*#y2K$oHGu?I3qtVsiKPH#^ktIFLgh>4?pn^ zk9DF)y86`Hm}M&%LbwDUmjp4}-=O~h8pM(-gpyTBB{9d93P`{N4o-8)<37CmV4}WS zRO1HXfQIDBsUvxj$L2?sWoDMVBo}^%Os*}9dfEJ1ti+2Q{F}XO#2m?3+oc5xM zaYzVmHp3LVCYn@?hd}OQ?VY$89FB9wF^nA6N%D+dSD4sDE0&F0AoGw&IQkD?Oo}L~ zhTtSuaKk5)^LeTY0;m^|#Bh59l0Jm{gF{e%w0`2r literal 49681 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 diff --git a/data/images/3.jpg b/data/images/3.jpg index d334a861b22a5d72c73a2acebdfe0e4cbd041a75..72bc7315cc83be0fadea2d236d3d293dde7d5652 100644 GIT binary patch literal 16105 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

_B1QY ze4gm)$}gHrED6rKcg#7I?S6MBi?#$%M60{{MY^Ck(K+~60GB5l_ai2m&&wv|ZVdcA zH47R`We${`j$8`dpWhgNb*AdfR!KCa+$HN#hS$ES?54g4E6#T3I*{-2FSSuByuM}K zwv_35uB1lTlnrm>W&U`Yr~wXuYLF}9pAs2GFjPPU+yX%Yd3r4X(r$>7X^=uk)Lhs* z!ZuP1T9_pi0c1r|DdKgo@UR(L8AcZgJ&-zq11AFDgC>XPz&V6DJ|}!v0jB3L!}tlpPUU04G@p6O(mlIla(Xkx*aT zF_|yvfN}FK9ii63f4w#$pg8S8$+5{$2qjQu97>O&gHchm(6|r9d$RiOY1w;IZf@;f z2r1aq*G}%y98=HpW-V;J?_|p>O(8gA0fsTTEh!NhwZ+cO2j^BFwn5Y)i$_l_R3akP za_a#$r<@R0dBbOqR}_3Ad{i+DJ1NTy2X>(^plW-o54Wa2W_ZspBxbz&Ef=5r;!~yd zLT2OTvqxg>%jfiD+}W$rVT%b#rrFshELNvM_os-*otLAKh{rC!zTQ0dtX@{MJZm@* z!<6YK218z8*u4~WY#h>!JPSWJ-+H|1+=1u|y0%p{td;F-OuUqIXnE#$-Sbn&Qu6=`*&$FW| zUmA>LzND#dyVeI-lek(Rw8#pQX|fD)fz(nbiEntdtf%HCguB6XVyx10MGp)``t!^h zW0chn2a(o&jO04X2Wieb>6Qz)qOaA~nZH6WC2X8Z4q;kv#ZK9#j*XD>04(xWEqDSX zQh+8C;irP&uFyO#fa*>xg5*9;?9jZ9_hB+103J0DBAW3&B=`@) zg~McM?qDdH{I#a)w~|H$gV^}Uqkp~kZ z-lPa%_=IWaiNkAR{0h;9tfT1

b$M+_Cpi6*l7 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� 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 List["Response"]: ... @@ -55,6 +57,7 @@ class BaseEngine(ABC): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> AsyncGenerator[str, None]: ... diff --git a/src/llmtuner/chat/chat_model.py b/src/llmtuner/chat/chat_model.py index c49d4d78..ba58dd2e 100644 --- a/src/llmtuner/chat/chat_model.py +++ b/src/llmtuner/chat/chat_model.py @@ -8,6 +8,8 @@ from .vllm_engine import VllmEngine if TYPE_CHECKING: + from numpy.typing import NDArray + from .base_engine import BaseEngine, Response @@ -36,9 +38,10 @@ class ChatModel: messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> List["Response"]: - task = asyncio.run_coroutine_threadsafe(self.achat(messages, system, tools, **input_kwargs), self._loop) + task = asyncio.run_coroutine_threadsafe(self.achat(messages, system, tools, image, **input_kwargs), self._loop) return task.result() async def achat( @@ -46,18 +49,20 @@ class ChatModel: messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> List["Response"]: - return await self.engine.chat(messages, system, tools, **input_kwargs) + return await self.engine.chat(messages, system, tools, image, **input_kwargs) def stream_chat( self, messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> Generator[str, None, None]: - generator = self.astream_chat(messages, system, tools, **input_kwargs) + generator = self.astream_chat(messages, system, tools, image, **input_kwargs) while True: try: task = asyncio.run_coroutine_threadsafe(generator.__anext__(), self._loop) @@ -70,9 +75,10 @@ class ChatModel: messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> AsyncGenerator[str, None]: - async for new_token in self.engine.stream_chat(messages, system, tools, **input_kwargs): + async for new_token in self.engine.stream_chat(messages, system, tools, image, **input_kwargs): yield new_token def get_scores( diff --git a/src/llmtuner/chat/hf_engine.py b/src/llmtuner/chat/hf_engine.py index ddb48e47..f6f51898 100644 --- a/src/llmtuner/chat/hf_engine.py +++ b/src/llmtuner/chat/hf_engine.py @@ -14,7 +14,9 @@ from .base_engine import BaseEngine, Response if TYPE_CHECKING: - from transformers import PreTrainedModel, PreTrainedTokenizer + from numpy.typing import NDArray + from transformers import PreTrainedModel, PreTrainedTokenizer, ProcessorMixin + from transformers.image_processing_utils import BaseImageProcessor from trl import PreTrainedModelWrapper from ..data import Template @@ -30,7 +32,9 @@ class HuggingfaceEngine(BaseEngine): generating_args: "GeneratingArguments", ) -> None: self.can_generate = finetuning_args.stage == "sft" - self.tokenizer = load_tokenizer(model_args) + tokenizer_module = load_tokenizer(model_args) + self.tokenizer = tokenizer_module["tokenizer"] + self.processor = tokenizer_module["processor"] self.tokenizer.padding_side = "left" if self.can_generate else "right" self.template = get_template_and_fix_tokenizer(self.tokenizer, data_args.template) self.model = load_model( @@ -42,13 +46,18 @@ class HuggingfaceEngine(BaseEngine): def _process_args( model: "PreTrainedModel", tokenizer: "PreTrainedTokenizer", + processor: Optional["ProcessorMixin"], template: "Template", generating_args: Dict[str, Any], messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, input_kwargs: Optional[Dict[str, Any]] = {}, ) -> Tuple[Dict[str, Any], int]: + if processor is not None and image is not None and "" not in messages[0]["content"]: + messages[0]["content"] = messages[0]["content"] + "" + paired_messages = messages + [{"role": "assistant", "content": ""}] prompt_ids, _ = template.encode_oneturn( tokenizer=tokenizer, messages=paired_messages, system=system, tools=tools @@ -95,6 +104,11 @@ class HuggingfaceEngine(BaseEngine): logits_processor=get_logits_processor(), ) + if processor is not None and image is not None: + image_processor: "BaseImageProcessor" = getattr(processor, "image_processor") + pixel_values: "torch.Tensor" = image_processor(image, return_tensors="pt")["pixel_values"] + gen_kwargs["pixel_values"] = pixel_values.to(model.device) + return gen_kwargs, prompt_length @staticmethod @@ -102,15 +116,17 @@ class HuggingfaceEngine(BaseEngine): def _chat( model: "PreTrainedModel", tokenizer: "PreTrainedTokenizer", + processor: Optional["ProcessorMixin"], template: "Template", generating_args: Dict[str, Any], messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, input_kwargs: Optional[Dict[str, Any]] = {}, ) -> List["Response"]: gen_kwargs, prompt_length = HuggingfaceEngine._process_args( - model, tokenizer, template, generating_args, messages, system, tools, input_kwargs + model, tokenizer, processor, template, generating_args, messages, system, tools, image, input_kwargs ) generate_output = model.generate(**gen_kwargs) response_ids = generate_output[:, prompt_length:] @@ -135,15 +151,17 @@ class HuggingfaceEngine(BaseEngine): def _stream_chat( model: "PreTrainedModel", tokenizer: "PreTrainedTokenizer", + processor: Optional["ProcessorMixin"], template: "Template", generating_args: Dict[str, Any], messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, input_kwargs: Optional[Dict[str, Any]] = {}, ) -> Callable[[], str]: gen_kwargs, _ = HuggingfaceEngine._process_args( - model, tokenizer, template, generating_args, messages, system, tools, input_kwargs + model, tokenizer, processor, template, generating_args, messages, system, tools, image, input_kwargs ) streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True) gen_kwargs["streamer"] = streamer @@ -199,6 +217,7 @@ class HuggingfaceEngine(BaseEngine): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> List["Response"]: if not self.can_generate: @@ -208,11 +227,13 @@ class HuggingfaceEngine(BaseEngine): input_args = ( self.model, self.tokenizer, + self.processor, self.template, self.generating_args, messages, system, tools, + image, input_kwargs, ) async with self._semaphore: @@ -224,6 +245,7 @@ class HuggingfaceEngine(BaseEngine): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> AsyncGenerator[str, None]: if not self.can_generate: @@ -233,11 +255,13 @@ class HuggingfaceEngine(BaseEngine): input_args = ( self.model, self.tokenizer, + self.processor, self.template, self.generating_args, messages, system, tools, + image, input_kwargs, ) async with self._semaphore: diff --git a/src/llmtuner/chat/vllm_engine.py b/src/llmtuner/chat/vllm_engine.py index 786e743d..a4caa53b 100644 --- a/src/llmtuner/chat/vllm_engine.py +++ b/src/llmtuner/chat/vllm_engine.py @@ -12,7 +12,10 @@ if is_vllm_available(): from vllm import AsyncEngineArgs, AsyncLLMEngine, RequestOutput, SamplingParams from vllm.lora.request import LoRARequest + if TYPE_CHECKING: + from numpy.typing import NDArray + from ..hparams import DataArguments, FinetuningArguments, GeneratingArguments, ModelArguments @@ -29,7 +32,9 @@ class VllmEngine(BaseEngine): infer_dtype = str(infer_dtype).split(".")[-1] self.can_generate = finetuning_args.stage == "sft" - self.tokenizer = load_tokenizer(model_args) + tokenizer_module = load_tokenizer(model_args) + self.tokenizer = tokenizer_module["tokenizer"] + self.processor = tokenizer_module["processor"] self.tokenizer.padding_side = "left" self.template = get_template_and_fix_tokenizer(self.tokenizer, data_args.template) self.generating_args = generating_args.to_dict() @@ -58,6 +63,7 @@ class VllmEngine(BaseEngine): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> AsyncIterator["RequestOutput"]: request_id = "chatcmpl-{}".format(uuid.uuid4().hex) @@ -121,10 +127,11 @@ class VllmEngine(BaseEngine): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> List["Response"]: final_output = None - generator = await self._generate(messages, system, tools, **input_kwargs) + generator = await self._generate(messages, system, tools, image, **input_kwargs) async for request_output in generator: final_output = request_output @@ -146,10 +153,11 @@ class VllmEngine(BaseEngine): messages: Sequence[Dict[str, str]], system: Optional[str] = None, tools: Optional[str] = None, + image: Optional["NDArray"] = None, **input_kwargs, ) -> AsyncGenerator[str, None]: generated_text = "" - generator = await self._generate(messages, system, tools, **input_kwargs) + generator = await self._generate(messages, system, tools, image, **input_kwargs) async for result in generator: delta_text = result.outputs[0].text[len(generated_text) :] generated_text = result.outputs[0].text diff --git a/src/llmtuner/data/preprocess.py b/src/llmtuner/data/preprocess.py index 0b467724..18681872 100644 --- a/src/llmtuner/data/preprocess.py +++ b/src/llmtuner/data/preprocess.py @@ -8,7 +8,7 @@ from .utils import Role if TYPE_CHECKING: - from PIL import Image + from PIL.Image import Image from transformers import ProcessorMixin, Seq2SeqTrainingArguments from transformers.image_processing_utils import BaseImageProcessor from transformers.tokenization_utils import PreTrainedTokenizer @@ -271,7 +271,11 @@ def get_preprocess_and_print_func( processor: Optional["ProcessorMixin"], ) -> Tuple[Callable, Callable]: if stage == "pt": - preprocess_func = partial(preprocess_pretrain_dataset, tokenizer=tokenizer, data_args=data_args) + preprocess_func = partial( + preprocess_pretrain_dataset, + tokenizer=tokenizer, + data_args=data_args, + ) print_function = partial(print_unsupervised_dataset_example, tokenizer=tokenizer) elif stage == "sft" and not training_args.predict_with_generate: if data_args.packing: diff --git a/src/llmtuner/eval/evaluator.py b/src/llmtuner/eval/evaluator.py index 2c039928..7446c6f5 100644 --- a/src/llmtuner/eval/evaluator.py +++ b/src/llmtuner/eval/evaluator.py @@ -21,7 +21,7 @@ from .template import get_eval_template class Evaluator: def __init__(self, args: Optional[Dict[str, Any]] = None) -> None: self.model_args, self.data_args, self.eval_args, finetuning_args = get_eval_args(args) - self.tokenizer = load_tokenizer(self.model_args) + self.tokenizer = load_tokenizer(self.model_args)["tokenizer"] self.tokenizer.padding_side = "right" # avoid overflow issue in batched inference for llama2 self.template = get_template_and_fix_tokenizer(self.tokenizer, self.data_args.template) self.model = load_model(self.tokenizer, self.model_args, finetuning_args) diff --git a/src/llmtuner/hparams/parser.py b/src/llmtuner/hparams/parser.py index c922dc47..9b02c93b 100644 --- a/src/llmtuner/hparams/parser.py +++ b/src/llmtuner/hparams/parser.py @@ -196,6 +196,9 @@ def get_train_args(args: Optional[Dict[str, Any]] = None) -> _TRAIN_CLS: if model_args.infer_backend == "vllm": raise ValueError("vLLM backend is only available for API, CLI and Web.") + if model_args.visual_inputs and data_args.packing: + raise ValueError("Cannot use packing in MLLM fine-tuning.") + _verify_model_args(model_args, finetuning_args) _check_extra_dependencies(model_args, finetuning_args, training_args) diff --git a/src/llmtuner/train/dpo/workflow.py b/src/llmtuner/train/dpo/workflow.py index 929dd029..b19a643e 100644 --- a/src/llmtuner/train/dpo/workflow.py +++ b/src/llmtuner/train/dpo/workflow.py @@ -24,8 +24,9 @@ def run_dpo( finetuning_args: "FinetuningArguments", callbacks: Optional[List["TrainerCallback"]] = None, ): - tokenizer = load_tokenizer(model_args) - dataset = get_dataset(tokenizer, model_args, data_args, training_args, stage="rm") + tokenizer_module = load_tokenizer(model_args) + tokenizer = tokenizer_module["tokenizer"] + dataset = get_dataset(model_args, data_args, training_args, stage="rm", **tokenizer_module) model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train) data_collator = PairwiseDataCollatorWithPadding( diff --git a/src/llmtuner/train/orpo/workflow.py b/src/llmtuner/train/orpo/workflow.py index 5a2fd36c..9c870096 100644 --- a/src/llmtuner/train/orpo/workflow.py +++ b/src/llmtuner/train/orpo/workflow.py @@ -24,8 +24,9 @@ def run_orpo( finetuning_args: "FinetuningArguments", callbacks: Optional[List["TrainerCallback"]] = None, ): - tokenizer = load_tokenizer(model_args) - dataset = get_dataset(tokenizer, model_args, data_args, training_args, stage="rm") + tokenizer_module = load_tokenizer(model_args) + tokenizer = tokenizer_module["tokenizer"] + dataset = get_dataset(model_args, data_args, training_args, stage="rm", **tokenizer_module) model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train) data_collator = PairwiseDataCollatorWithPadding( diff --git a/src/llmtuner/train/ppo/workflow.py b/src/llmtuner/train/ppo/workflow.py index d5854073..8cd15932 100644 --- a/src/llmtuner/train/ppo/workflow.py +++ b/src/llmtuner/train/ppo/workflow.py @@ -27,8 +27,9 @@ def run_ppo( generating_args: "GeneratingArguments", callbacks: Optional[List["TrainerCallback"]] = None, ): - tokenizer = load_tokenizer(model_args) - dataset = get_dataset(tokenizer, model_args, data_args, training_args, stage="ppo") + tokenizer_module = load_tokenizer(model_args) + tokenizer = tokenizer_module["tokenizer"] + dataset = get_dataset(model_args, data_args, training_args, stage="ppo", **tokenizer_module) model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train, add_valuehead=True) tokenizer.padding_side = "left" # use left-padding in generation while using right-padding in training diff --git a/src/llmtuner/train/pt/workflow.py b/src/llmtuner/train/pt/workflow.py index f683f37a..3b127da4 100644 --- a/src/llmtuner/train/pt/workflow.py +++ b/src/llmtuner/train/pt/workflow.py @@ -25,8 +25,9 @@ def run_pt( finetuning_args: "FinetuningArguments", callbacks: Optional[List["TrainerCallback"]] = None, ): - tokenizer = load_tokenizer(model_args) - dataset = get_dataset(tokenizer, model_args, data_args, training_args, stage="pt") + tokenizer_module = load_tokenizer(model_args) + tokenizer = tokenizer_module["tokenizer"] + dataset = get_dataset(model_args, data_args, training_args, stage="pt", **tokenizer_module) model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train) data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False) diff --git a/src/llmtuner/train/rm/workflow.py b/src/llmtuner/train/rm/workflow.py index 42bf1ce6..bd0a756c 100644 --- a/src/llmtuner/train/rm/workflow.py +++ b/src/llmtuner/train/rm/workflow.py @@ -25,8 +25,9 @@ def run_rm( finetuning_args: "FinetuningArguments", callbacks: Optional[List["TrainerCallback"]] = None, ): - tokenizer = load_tokenizer(model_args) - dataset = get_dataset(tokenizer, model_args, data_args, training_args, stage="rm") + tokenizer_module = load_tokenizer(model_args) + tokenizer = tokenizer_module["tokenizer"] + dataset = get_dataset(model_args, data_args, training_args, stage="rm", **tokenizer_module) model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train, add_valuehead=True) data_collator = PairwiseDataCollatorWithPadding(tokenizer, pad_to_multiple_of=8) diff --git a/src/llmtuner/train/sft/workflow.py b/src/llmtuner/train/sft/workflow.py index 3ead9edf..4a9775b4 100644 --- a/src/llmtuner/train/sft/workflow.py +++ b/src/llmtuner/train/sft/workflow.py @@ -29,9 +29,9 @@ def run_sft( callbacks: Optional[List["TrainerCallback"]] = None, ): tokenizer_module = load_tokenizer(model_args) - dataset = get_dataset(model_args, data_args, training_args, stage="sft", **tokenizer_module) tokenizer = tokenizer_module["tokenizer"] - model = load_model(tokenizer, model_args, finetuning_args, is_trainable=training_args.do_train) + dataset = get_dataset(model_args, data_args, training_args, stage="sft", **tokenizer_module) + model = load_model(tokenizer, model_args, finetuning_args, training_args.do_train) if training_args.predict_with_generate: tokenizer.padding_side = "left" # use left-padding in generation diff --git a/src/llmtuner/train/tuner.py b/src/llmtuner/train/tuner.py index a8a2b8e9..a2eb121f 100644 --- a/src/llmtuner/train/tuner.py +++ b/src/llmtuner/train/tuner.py @@ -52,7 +52,7 @@ def export_model(args: Optional[Dict[str, Any]] = None): if model_args.adapter_name_or_path is not None and model_args.export_quantization_bit is not None: raise ValueError("Please merge adapters before quantizing the model.") - tokenizer = load_tokenizer(model_args) + tokenizer = load_tokenizer(model_args)["tokenizer"] get_template_and_fix_tokenizer(tokenizer, data_args.template) model = load_model(tokenizer, model_args, finetuning_args) # must after fixing tokenizer to resize vocab diff --git a/src/llmtuner/train/utils.py b/src/llmtuner/train/utils.py index 27dc8eb3..d9fc363d 100644 --- a/src/llmtuner/train/utils.py +++ b/src/llmtuner/train/utils.py @@ -91,7 +91,7 @@ def create_ref_model( ) ref_model_args = ModelArguments(**ref_model_args_dict) ref_finetuning_args = FinetuningArguments(finetuning_type="lora") - tokenizer = load_tokenizer(ref_model_args) + tokenizer = load_tokenizer(ref_model_args)["tokenizer"] ref_model = load_model( tokenizer, ref_model_args, ref_finetuning_args, is_trainable=False, add_valuehead=add_valuehead ) @@ -100,7 +100,7 @@ def create_ref_model( if finetuning_args.finetuning_type == "lora": ref_model = None else: - tokenizer = load_tokenizer(model_args) + tokenizer = load_tokenizer(model_args)["tokenizer"] ref_model = load_model( tokenizer, model_args, finetuning_args, is_trainable=False, add_valuehead=add_valuehead ) @@ -147,7 +147,7 @@ def create_reward_model( ) reward_model_args = ModelArguments(**reward_model_args_dict) reward_finetuning_args = FinetuningArguments(finetuning_type="lora") - tokenizer = load_tokenizer(reward_model_args) + tokenizer = load_tokenizer(reward_model_args)["tokenizer"] reward_model = load_model( tokenizer, reward_model_args, reward_finetuning_args, is_trainable=False, add_valuehead=True ) diff --git a/src/llmtuner/webui/chatter.py b/src/llmtuner/webui/chatter.py index 82e7b7f1..5aa8f563 100644 --- a/src/llmtuner/webui/chatter.py +++ b/src/llmtuner/webui/chatter.py @@ -2,6 +2,8 @@ import json import os from typing import TYPE_CHECKING, Dict, Generator, List, Optional, Sequence, Tuple +from numpy.typing import NDArray + from ..chat import ChatModel from ..data import Role from ..extras.misc import torch_gc @@ -112,6 +114,7 @@ class WebChatModel(ChatModel): messages: Sequence[Dict[str, str]], system: str, tools: str, + image: Optional[NDArray], max_new_tokens: int, top_p: float, temperature: float, @@ -119,7 +122,7 @@ class WebChatModel(ChatModel): chatbot[-1][1] = "" response = "" for new_text in self.stream_chat( - messages, system, tools, max_new_tokens=max_new_tokens, top_p=top_p, temperature=temperature + messages, system, tools, image, max_new_tokens=max_new_tokens, top_p=top_p, temperature=temperature ): response += new_text if tools: diff --git a/src/llmtuner/webui/components/chatbot.py b/src/llmtuner/webui/components/chatbot.py index 82bc4f29..e1be1f7b 100644 --- a/src/llmtuner/webui/components/chatbot.py +++ b/src/llmtuner/webui/components/chatbot.py @@ -23,9 +23,15 @@ def create_chat_box( messages = gr.State([]) with gr.Row(): with gr.Column(scale=4): - role = gr.Dropdown(choices=[Role.USER.value, Role.OBSERVATION.value], value=Role.USER.value) - system = gr.Textbox(show_label=False) - tools = gr.Textbox(show_label=False, lines=2) + with gr.Row(): + with gr.Column(): + role = gr.Dropdown(choices=[Role.USER.value, Role.OBSERVATION.value], value=Role.USER.value) + system = gr.Textbox(show_label=False) + tools = gr.Textbox(show_label=False, lines=4) + + with gr.Column(): + image = gr.Image(type="numpy") + query = gr.Textbox(show_label=False, lines=8) submit_btn = gr.Button(variant="primary") @@ -43,7 +49,7 @@ def create_chat_box( [chatbot, messages, query], ).then( engine.chatter.stream, - [chatbot, messages, system, tools, max_new_tokens, top_p, temperature], + [chatbot, messages, system, tools, image, max_new_tokens, top_p, temperature], [chatbot, messages], ) clear_btn.click(lambda: ([], []), outputs=[chatbot, messages]) @@ -56,6 +62,7 @@ def create_chat_box( role=role, system=system, tools=tools, + image=image, query=query, submit_btn=submit_btn, max_new_tokens=max_new_tokens, diff --git a/src/llmtuner/webui/locales.py b/src/llmtuner/webui/locales.py index 3af9128f..8e93efd6 100644 --- a/src/llmtuner/webui/locales.py +++ b/src/llmtuner/webui/locales.py @@ -1073,6 +1073,17 @@ LOCALES = { "placeholder": "工具列表(非必填)", }, }, + "image": { + "en": { + "label": "Image (optional)", + }, + "ru": { + "label": "Изображение (по желанию)", + }, + "zh": { + "label": "图像(非必填)", + }, + }, "query": { "en": { "placeholder": "Input...",