èªå® ã§åãChatGPTãšåã®FlexGenãDockerã§æè»œã«åãã
èªå® ã§åãChatGPTãšåã®FlexGenã詊ã
shi3zãããè奮ããŠåãããŠããFlexGen
é¢ä¿ããèšäºã¯ä»¥äž
ããšããšGPUãç¡ããšåããªããšæã£ãŠããã®ã§ãããã¿ã€ã ã©ã€ã³ã§ãã¯ãã³PããããRTX3060ã§FlexGenãåãããŠãããã€ãŒããçºèŠã
ãRTX3060ãªãèªåãæã£ãŠããïŒããšããããšã§ã詊ããŠã¿ãããšã«ããŸããã
远èšïŒ
ç§ããã®èšäºã§åãããŠããã®ã¯å°ããã¢ãã«ã§ãããšããããã詊ãã§åãããã ãã§ãshi3zãããåãããŠããã¢ãã«ãšã¯ç°ãªããŸãã
æ§èœã®åèã«ããèšäºã§ã¯ãªãã®ã§ããæ¿ç¥ãã ããããã倧ãããµã€ãºã®ã¢ãã«ã®äœ¿çšã«é¢ããŠã¯ãFlexGenã®å ¬åŒãªããžããªãåç §ãã ãããç§ãä»åŸè©Šããã远èšããŠãããŸãïŒçŸç¶ãç§ã®ç°å¢ã§ã¯åãããŠãªãã§ãïŒã
FlexGenãDockerã§åãã
çµæçã«ã¯ãDockerã䜿ãããšã§ç°¡åã«åãããŸããã
Dockerã»ããã¢ãã
䜿çšããŠããPCã®ã¹ããã¯ã¯ä»¥äžã§ãã
| é ç® | å 容 |
|---|---|
| CPU | Intel Core i 7 |
| ã¡ã¢ãª | 32GB |
| GPU | NVIDIA RTX3060(12GB) |
OSã¯Linuxã§ãWindowsã®WSL2ã§ãåããŸãããå€åWindowsã®WSL2ã§ãåãèŠé ã§åããšæããŸããç§ã¯è©ŠããŠããŸããããåäœäŸãåèãªã³ã¯ã«ã®ããã®ã§èå³ããæ¹ã¯ãã¡ããåç
§ãã ããã
Linux/Windows(WSL2)ã®ã»ããã¢ããã¯ä»¥äžèšäºåç §ãã ããã
WindowsïŒWSL2ïŒã®å Žåã¯ã以äžèšäºãåèã«ã¡ã¢ãªãã¹ã¯ãããã§ããã ãããããå²ãåœãŠãŠãã ããã
Docker/NVIDIA Dockerã®ã»ããã¢ããã¯ä»¥äžèšäºãåç §ãã ããã
以éã¯ãLinuxãWindows(WSL2)ãåãæäœãšãªããŸãã
FlexGenãã»ããã¢ãã
FlexGenãDockerã§äœ¿ã£ãŠã¿ããšããèšäºãåèã«ããŸãããã»ãšãã©èšäºã®éããªã®ã§ããããã®ãŸãŸå®è¡ãããšãæ°GBããã¢ãã«ãæ¯åããŠã³ããŒãããå¿ èŠããã£ããããã®ã§ãæè»œã«äœ¿ãæ¹æ³ã®æé å«ããŠGitHubã«ãªããžããªãšããŠãŸãšããŸããã
äœ¿ãæ¹ã¯äžèšãªããžããªã«æžããŠããéãã§ããæåã«ä»¥äžã³ãã³ãã§Dockerããã«ãããŸãã
$ git clone https://github.com/karaage0703/FlexGen-docker
$ cd FlexGen-docker
$ docker build -t ubuntu:FlexGen .
ããã§æºåã¯å®äºã§ãã
FlexãDockerã§åãã
FlexGen-dockerã®ãã£ã¬ã¯ããªã§ä»¥äžã³ãã³ããå®è¡ããŸãã
$ docker run -it -v $(pwd):/root --gpus all ubuntu:FlexGen
ç¶ããŠãã³ã³ããå ã§ä»¥äžã³ãã³ããå®è¡ããŸãã
root@hostname:/# cd FlexGen
root@hostname:/FlexGen# python3 apps/chatbot.py --model facebook/opt-6.7b --compress-weight
ååã®ã¿ãã¢ãã«ã®ããŠã³ããŒããå®è¡ãããŸããã¢ãã«ã¯ãDockerã³ãã³ããèµ·åããå ŽæïŒFlexGen-dockerãã£ã¬ã¯ããªïŒã«ä¿åãããŸãã
2åç®ä»¥éã¯ãã¢ãã«ãããŠã³ããŒãããããã£ã¬ã¯ããªïŒFlexGen-dockerãã£ã¬ã¯ããªïŒã§Dockerãèµ·åããã°ãååã®ã¢ãã«ããŠã³ããŒãã¯äžèŠãšãªããŸãã
FlexGenå®è¡äŸ(opt-6.7b)
FlexGenãšäŒè©±ããŠã¿ãäŸã§ãã

æ¥æ¬èªã䜿ããŸãïŒã¢ãã§ããïŒã

倧ããã¢ãã«ã䜿çšãã
å°ã倧ãã opt-30b ãšããã¢ãã«ã䜿çšããæ¹æ³ã§ãã以äžã®ã³ãã³ããå®è¡ããŸãã
$ python3 -m flexgen.flex_opt --model facebook/opt-30b --percent 0 0 100 0 100 0 --compress-weight
å®è¡ãããšã¢ãã«ã®ããŠã³ããŒãã倿ãè¡ãããŸãã
--percentã®åŸãã®6ã€ã®æ°åã¯ãGPU/CPUã®äœ¿çšå²åã瀺ããŠããŸããç°å¢ã«åãããŠæ°åãå€ããŠãã ããã詳ããã¯FlexGenã®å
¬åŒãªããžããªãåç
§ãã ããããã£ãœã©åãGPUã䜿ã£ãŠãªãå Žåã¯ãCPUãã¡ã€ã³ã«ããã»ããè¯ãããã§ãã
--compress-weightã¯ã¢ãã«ã®å§çž®ã§ãããã»ã©åããã·ã³ã§ãªãéãã¯å§çž®ã¯å¿
é ãªãã·ã§ã³ã§ãã
ã¢ãã«ã®æºåãã§ãããã以äžã³ãã³ãå®è¡ãããšãã£ãããã§ããŸãã
$ python3 apps/chatbot.py --model facebook/opt-30b --percent 0 0 100 0 100 0 --compress-weight
FlexGenå®è¡äŸ(opt-30b)
opt-30bã¯ãè¿ä¿¡ã«æéããããäžã«ãäœæ ãæ¥æ¬èªãåããªãã§ããäœæãããã¢ãã«ãªã£ãæ°ãããŸãããPCã®ã¹ããã¯ã®ããã ãšæããŸãã

ãŸãšã
FlexGenã詊ããŠã¿ãŸãããå°ããã¢ãã«ã ã£ãã®ã§çµæ§ã¢ãã§ãããèªå® PCã§ChatGPTçãªAIãã£ãããåãã®ã¯é©ãã§ããã
Stable Diffusionãããã§ããããã¯ãããŒã«ã«ã§ãåããšããã®ã¯ãèªåã®ãã®ã«ãªã£ãïŒããšããåŠãªå®å¿æããã£ãŠè¯ãã§ããã
è²ã å¿çšã§ããããªã®ã§ã詊ããŠããããã§ããã
åèãªã³ã¯
é¢é£èšäº
倿Žå±¥æŽ
- 2023/02/28 Dockerfileã¢ããããŒãã»WSL2ã«é¢ããŠè¿œèšã»opt-30bã¢ãã«ã«é¢ããŠè¿œèš
- 2023/02/28 ã¢ãã«ã«é¢ããæ³šæäºé 远èš
Discussion