ã©ããã®ç 究宀ã§åå 2 æã§ããç ç©¶è 㯠3 ã€ã®ç«¯æ«ãéããŠãããäžæ¹ã®ç»é¢ã«ã¯ååæžããã Jupyter ããŒãããã¯ããããå¥ã®ç»é¢ã«ã¯ãµã³ãã« ID ãè©°ãŸã£ã Excel ã·ãŒãããããã·ã§ã« ã³ãã³ãã®æšªã«ã¯ååé£ã¹ãããã€ã眮ãããŠããŸãã圌ãã¯ãã¿ã³ãã¯è³ªãã©ãŒã«ãã£ã³ã°ã¢ãã«ãå®è¡ããããã®ã¹ã¯ãªãããããããããååã®å®éšã®CSVãè§£æããæç®ãæ€çŽ¢ããææ°ã®ã¢ããããŒãã§ãã®1ã€ã®Pythonããã±ãŒãžãå£ãããã©ãããã°ãŒã°ã«ã§æ€çŽ¢ããŠããŸãã
ããã¯äŸå€ã§ã¯ãããŸãããããã¯æšæºã§ãã仿¥ã®ç§åŠç ç©¶ã¯ãããŒã«ãã¹ã¯ãªããããã©ãŒãããã®ãããã¯ãŒã¯ã§ãããæ±ºæãšæ·±å€ã®ã«ãã§ã€ã³ã«ãã£ãŠæ¥çãããŠããŸããåçŸæ§ã¯ãŠã£ãã·ã¥ãªã¹ãã®é ç®ã§ããã€ã³ãã©ã¯åŸåãã§ããèªååã¯ååšããŸãããéåžžã¯æã§å·»ããŠèª°ãã®ã©ãããããã«è²Œãä»ããŸãã
ããããç§åŠã¯ãŒã¯ãããŒãã€ã³ããªãžã§ã³ããšãŒãžã§ã³ãã«ãã£ãŠãšã³ãããŒãšã³ãã§èª¿æŽã§ãããšãããã©ããªãã§ãããã?
ç§åŠè ãã·ã§ã«ã¹ã¯ãªãããèšè¿°ããŠäŸåé¢ä¿ãå£ããªãããšãé¡ã代ããã«ããååç©ãã¿ã³ãã¯è³ªã®CSVãèªã¿ãæç®ãæ€çŽ¢ããã¢ãã¡ãããªã©ããšããç®æšã説æããAIãšãŒãžã§ã³ããæé ãèšç»ããã³ã³ããå ã®é©åãªããŒã«ãèµ·åããã¿ã¹ã¯ãå®è¡ããçµæãèŠçŽã§ãããšãããã©ããªãã§ãããã?
ããã ç§åŠãšãŒãžã§ã³ãã®çŽæã§ããChatGPT ã®ããã«è³ªåã«çããã ãã§ãªããç ç©¶ã¯ãŒã¯ãããŒå šäœãèªåŸçã«å®è¡ãã AI ãæŽ»çšããã·ã¹ãã ããããŠãLLMãGPUãDockeråãããç°å¢ããªãŒãã³ãªç§åŠããŒã«ã®èåã®ãããã§ããã®å€åã¯ãã¯ãçè«çã§ã¯ãããŸããã
ããã¯ä»èµ·ãã£ãŠããŸãã
ãµã€ãšã³ã¹ãšãŒãžã§ã³ããšã¯äœã§ãã?
ãµã€ãšã³ã¹ ãšãŒãžã§ã³ãã¯ãåãªããã£ããããããã¹ããŒã ããã³ãã ãžã§ãã¬ãŒã¿ãŒã§ã¯ãããŸãããããã¯ã人éã®å ¥åãæå°éã«æããŠãç§åŠã¯ãŒã¯ãããŒå šäœãèšç»ãå®è¡ãå埩ããããã«èšèšãããèªåŸã·ã¹ãã ã§ãã
ãADMETãšã¯äœã§ãã?ããããã®è«æãèŠçŽããŠãã ããããªã©ã®1åéãã®è³ªåã«é Œãã®ã§ã¯ãªããç§åŠãšãŒãžã§ã³ãã¯ããžã¿ã«ç ç©¶å©æã®ããã«æ©èœããŸããç®æšãçè§£ããã¹ãããã«åå²ããé©åãªããŒã«ãéžæããèšç®ãå®è¡ããçµæãåæ ããŸãã
CrewAI: AI ãšãŒãžã§ã³ã ãã¬ãŒã ã¯ãŒã¯ -> https://www.crewai.com/
ADMET:è¬ç©ãã©ã®ããã«åžåãããååžãã代è¬ãããææ³ãããããããã³ãã®æ¯æ§
å ·äœçã«ããŸãããã
CrewAIã§æ§ç¯ã§ãããã«ããšãŒãžã§ã³ãã·ã¹ãã ãèããŠã¿ãŸãããã
- ãã¥ã¬ãŒã¿ãŒ: ããŒã¿åè³ªãšæšæºåã確ä¿ããããšãäž»ãªåœ¹å²ãšããããŒã¿éèŠã®ãšãŒãžã§ã³ãã
- ç ç©¶è :æåŠå°éå®¶ããã®äž»ãªç®çã¯ããã¥ã¬ãŒã¿ãŒãæäŸããæ£èŠåããããšã³ãã£ãã£ã®é¢é£ããåŠè¡è«æãPubMedã§èŠã€ããããšã§ãã
- Web ã¹ã¯ã¬ã€ããŒ: Web ãµã€ãããæ å ±ãæœåºããããã®ç¹æ®ãªãšãŒãžã§ã³ãã
- ã¢ããªã¹ã: ã¢ãã«ãŸã㯠API ã䜿çšã㊠ADMET ã®ç¹æ§ã𿝿§ãäºæž¬ããŸãã
- ã¬ããŒã¿ãŒ: ãã¹ãŠã®çµæãã¯ãªãŒã³ãª Markdown ã¬ããŒãã«ã³ã³ãã€ã«ããŸãã
ãããã®åãšãŒãžã§ã³ãã¯ç¬ç«ããŠåäœããŸããã調æŽãããã·ã¹ãã ã®äžéšãšããŠæ©èœããŸããããããçµã¿åãããããšã§ã人éã®ããŒã ã§ã¯æ°æéãå Žåã«ãã£ãŠã¯æ°æ¥ãããäœæ¥ããä»ã§ã¯æ°åã§åçŸå¯èœã«èªååã§ããŸãã
ãããChatGPTãšç°ãªãçç±
ãããããè«æã®èŠçŽãPython ã³ãŒãã®äœæããŸãã¯è€éãªãããã¯ã®èª¬æã« ChatGPT ã䜿çšããããšãããã§ããããåçŽãªè³ªåãšåçã®ãšã³ãžã³ã®ããã«èŠãããããããŸããããå€ãã®å Žåãèå°è£ã§ã¯ããã³ãã ãã§ãŒã³ãã³ã³ããã¹ã ãŠã£ã³ããŠãæšè«ã®æœåšçãªã«ãŒããªã©ãããã«å€ãã®ããšãèµ·ãã£ãŠããŸãããããããããã®é²æ©ããã£ãŠãããããã®ããåãã¯äŸç¶ãšããŠã»ãšãã©ã人éé¢ä¿ã«ãããŸãã
ç§åŠãšãŒãžã§ã³ãã¯ãŸã£ããå¥ã®çš®ã§ãã
次ã®ããã³ãããåŸ ã€ã®ã§ã¯ãªããã¯ãŒã¯ãããŒå šäœãèªåŸçã«èšç»ããŠå®è¡ããŸããã³ã³ããã¹ãã«åºã¥ããŠäœ¿çšããããŒã«ãçµæã®æ€èšŒæ¹æ³ãããããããã¿ã€ãã³ã°ã決å®ããŸããChatGPT ãå¿çãããšããšãŒãžã§ã³ããè¡åããŸãã圌ãã¯ã¢ã·ã¹ã¿ã³ããšããããã¯ãååè ã®ãããªãã®ã§ãã
äž»ãªéãã詳ããèŠãŠã¿ãŸãããã
|
ç¹åŸŽ |
LLM (ChatGPT ãªã©) |
ãµã€ãšã³ã¹ãšãŒãžã§ã³ã(CrewAIãLangGraphãªã©) |
|---|---|---|
|
çžäºäœçš |
ãã«ãã¿ãŒã³ãå€ãã®å ŽåããŠãŒã¶ãŒã®ããã³ãããŸãã¯ã·ã¹ãã æç€ºã«ãã£ãŠã¬ã€ããããŸã |
è€æ°ã®ããŒã«ã«ãŸãããé·æå®è¡ã®èªåŸçãªã¯ãŒã¯ãã㌠|
|
åœ¹å² |
ãšãŒãžã§ã³ãæ©èœãæœè±¡åãããã¢ã·ã¹ã¿ã³ã |
圹å²åºæã®ã¿ã¹ã¯ãå®è¡ããæç€ºçãªç ç©¶ååè |
|
èªæ²» |
åèªåŸå;å€éšããã³ãããŸãã¯çµã¿èŸŒã¿ã·ã¹ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãå¿ èŠ |
å®å šèªåŸçãªèšç»ãããŒã«ã®éžæãå埩 |
|
ããŒã«ã®äœ¿çš |
äžéšã®ããŒã«ã¯ããã©ã°ã€ã³/颿°(ãã©ãŠã¶ãã³ãŒãã€ã³ã¿ããªã¿ãªã©)ãä»ããŠäœ¿çšãããŸã |
æç€ºçãªããŒã«çµ±å(APIãã·ãã¥ã¬ãŒã·ã§ã³ãããŒã¿ããŒã¹ãDockeråãããããŒã«) |
|
èšæ¶ |
çæããäžæã®ã³ã³ããã¹ã (ã»ãã·ã§ã³ãŸãã¯ãã£ããããšã«å¶éãæç€ºçã§ãªãã¯ãŒã¯ã¹ããŒã¹) |
æ°žç¶çãªé·æã¡ã¢ãª(ãã¯ãã«DBããã¡ã€ã«ãã°ãããŒã¿ããŒã¹ãæç€ºçããã³ããã°ã©ã å¯èœ) |
|
åçå¯èœæ§ |
ãšãŒãžã§ã³ãã®åœ¹å²/ã¿ã¹ã¯ãšãã®ããŒã«ãå®çŸ©ããæ©èœããªããéåžžã«å¶éãããŠããŸã |
å®å šã«ã³ã³ããåãããããŒãžã§ã³ç®¡çãããã¯ãŒã¯ãããŒãå®çŸ©ããããšãŒãžã§ã³ãã®åœ¹å²/ã¿ã¹ã¯ã䜿çšããåçŸå¯èœãªã¯ãŒã¯ãã㌠|
èªåã§è©ŠããŠã¿ãŠãã ãã
èå³ãããå Žåã¯ãæ°åã§å®è¡ã§ãã 2 ã³ã³ããã®ãã¢ãã玹ä»ããŸãã
gitãªããžããª: https://github.com/estebanx64/docker_blog_ai_agents_research
ãã®äŸã§ã¯ã2ã€ã®ã³ã³ãã/ãµãŒãã¹ããããŸãã
åæ æ¡ä»¶
- Docker ãš Docker Compose
- OpenAI API ã㌠(GPT4o ã¢ãã« ã¢ã¯ã»ã¹çš)
- çç©åŠçãšã³ãã£ãã£ãå«ããµã³ãã« CSV ãã¡ã€ã«
ãªããžããªã® README.md ã®æç€ºã«åŸã£ãŠãOpenAI API ããŒãèšå®ããŸã
ãªããžããªã«å«ãŸããäŸã䜿çšããŠæ¬¡ã®ã¯ãŒã¯ãããŒãå®è¡ãããšãOpenAI API ã«å¯Ÿã㊠~1-2 USD ãè«æ±ãããŸãã
ã¯ãŒã¯ãããŒãå®è¡ããŸãã
docker compose up
äžèšã®ãã°ã¯ããšãŒãžã§ã³ããå®å šãªã¯ãŒã¯ãããŒãèªåŸçã«èšç»ããŠå®è¡ããæ¹æ³ã瀺ããŠããŸãã
CSVãã¡ã€ã«ã®åã蟌ã¿
-  ãšãŒãžã§ã³ãã¯ãå ¥å CSV ããŒã¿ã»ãããããŒãããŠè§£æããŸãã
PubMed ã®ã¯ãšãª
-  é¢é£ããç§åŠè«æã PubMed ã§èªåçã«æ€çŽ¢ããŸãã
æç®èŠçŽã®çæ
-  ååŸããèšäºã¯ãç°¡æœã§æ§é åãããæŽå¯ã«èŠçŽãããŸãã
ADMETããããã£ã®èšç®
-  ãšãŒãžã§ã³ãã¯å€éšAPIãåŒã³åºããŠãADMET(åžåãååžã代è¬ãææ³ãæ¯æ§)ã®äºæž¬ãèšç®ããŸãã
çµæãMarkdownã¬ããŒãã«ã³ã³ãã€ã«ãã
-  ãã¹ãŠã®èª¿æ»çµæã¯éçŽãããæ§é åããã
report.mdã«ãã©ãŒããããããŸãã
åºåãã¡ã€ã«
report.mdâ å æ¬çãªèª¿æ»ã¬ããŒãã- JSON ãã¡ã€ã« â æ£èŠåããããšã³ãã£ãã£ãæç®åç §ãADMET äºæž¬ãå«ãŸããŸãã
ããã¯ãæåä»å ¥ãªãã«æææ±ºå®ãè¡ããããŒã«ã䜿çšããã¿ã¹ã¯ã調æŽãããšãŒãžã§ã³ãã®èœåã瀺ããŠããŸãã
ããã«è©³ããç¥ãããå Žåã¯ãgithub ãªããžããªã«å«ãŸãã README.md ã確èªããŠãã ãã
ããªãã®ç 究宀ãäžæ©ã§ 100 å®éšãå®è¡ã§ãããšããããæåã«äœãçºèŠããããæ³åããŠã¿ãŠãã ããã
ãããããã®ããžã§ã³ãå®çŸããã«ã¯ããšãŒãžã§ã³ãã ãã§ãªãããšãŒãžã§ã³ããå®è¡ããå¿ èŠãããã€ã³ãã©ã¹ãã©ã¯ãã£ãé£ããã®ã§ãã
ã€ã³ãã©ã¹ãã©ã¯ãã£: ããã«ããã¯
AI ãµã€ãšã³ã¹ ãšãŒãžã§ã³ãã¯åŒ·åã§ãããé©åãªã€ã³ãã©ã¹ãã©ã¯ãã£ããªããã°ãããã«å£ããããæ¡åŒµã§ããªããªã£ããããŸããå®éã®ç ç©¶ã¯ãŒã¯ãããŒã«ã¯ãGPUãè€éãªäŸåé¢ä¿ãå€§èŠæš¡ãªããŒã¿ã»ãããå«ãŸããŸããããã§ç©äºãå°é£ã«ãªããDocker ãäžå¯æ¬ ã«ãªããŸãã
åé¡ç¹
- éãã¯ãŒã¯ããŒã: AlphaFoldãBoltzãªã©ã®ããŒã«ãå®è¡ããã«ã¯ã髿§èœGPUãšã¹ããŒããªã¹ã±ãžã¥ãŒãªã³ã°(EKSãSlurmãªã©)ãå¿ èŠã§ãã
- åçŸæ§ã®ã«ãªã¹: ç°ãªãã·ã¹ãã =å£ããç°å¢ãç§åŠè ã¯ãç§åŠãè¡ã代ããã«ãã©ã€ãã©ãªã®ãããã°ã«äœæéãè²»ãããŸãã
- ããŒã«ãã§ãŒã³ã®è€éã: ãšãŒãžã§ã³ãã¯ãããããç¬èªã®äŸåé¢ä¿ãæã€è€æ°ã®ç§åŠããŒã« (RDKitãPyMOLãRosetta ãªã©) ã«äŸåããŠããŸãã
- ããŒãžã§ã³ç®¡çå°ç: å®è¡éã§ããŒã¿ã»ãã/ã¢ãã«ã®ããŒãžã§ã³ã远跡ããããšã¯ãç¹ã«ã³ã©ãã¬ãŒã·ã§ã³ã®å Žåãç°¡åã§ã¯ãããŸããã
ã³ã³ãããéèŠãªçç±
- æšæºåãããç°å¢: ããŒã«ãäžåºŠããã±ãŒãžåããã°ãã©ãããããããã¯ã©ãŠããŸã§ãã©ãã§ãå®è¡ã§ããŸãã
- åçŸå¯èœãªã¯ãŒã¯ãããŒ: ãšãŒãžã§ã³ãã®ããã»ã¹ã®ãã¹ãŠã®ã¹ããããã³ã³ããåãããŠãããããå®éšã®åå®è¡ãå ±æã容æã«ãªããŸãã
- ã³ã³ããŒã¶ãã«ãšãŒãžã§ã³ã: åã¹ããã (æç®æ€çŽ¢ãæãç³ã¿ãADMET äºæž¬ãªã©) ãã³ã³ããåããããµãŒãã¹ãšããŠæ±ããŸãã
- ã¹ã ãŒãºãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³: CrewAI ãŸãã¯ãã®ä»ã®ãã¬ãŒã ã¯ãŒã¯ã®æ©èœã䜿çšããŠããã¹ããæãªãããšãªããã³ã³ãããã¹ãã³ã¢ããããåºåã³ãŒãã®å®è¡ãŸãã¯æ€èšŒãå¿ èŠãªã¿ã¹ã¯ãåé¢ã§ããŸãã
ãªãŒãã³ãªèª²é¡ãšæ©äŒ
ç§åŠãšãŒãžã§ã³ãã¯åŒ·åã§ããããŸã åæã§ããéçºè ãç ç©¶è ãããã«ãŒã倧ããªåœ±é¿ãäžããããšãã§ãã課é¡ã®ãªã¹ãã¯å¢ããŠããŸãã
æªè§£æ±ºã®åé¡ç¹
- é·æèšæ¶: å¿ãã£ãœããšãŒãžã§ã³ãã¯åœ¹ã«ç«ã¡ãŸãããæéã®çµéãšãšãã«ç§åŠçæšè«ã®ããã«ãããåªããã»ãã³ãã£ãã¯ã¡ã¢ãªã·ã¹ãã (ãã¯ãã«ã¹ãã¢ããã¡ã€ã«ãã°ãªã©)ãå¿ èŠã§ãã
- ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯: è€éãªã¯ãŒã¯ãããŒã«ã¯ãå ç¢ãªãã€ãã©ã€ã³ãå¿ èŠã§ããTemporalãKestraãPrefectããããŠå人ãã¡ã¯ããã€ãªã®ã²ãŒã ãã§ã³ãžã£ãŒã«ãªããããããŸããã
- å®å šæ§ãšéçèªåŸæ§: ãšãŒãžã§ã³ãã®éäžåãç¶æãããå¹»èŠç§åŠããé¿ããã«ã¯ã©ãããã°ããã§ãããã?ã¬ãŒãã¬ãŒã«ã¯ãŸã æ¬ ããŠããŸãã
- ãã³ãããŒã¯ãšãŒãžã§ã³ã: ç§åŠãšãŒãžã§ã³ããæ¯èŒããããã®åºæºã¯ãããŸãããçŸå®äžçã®æçšæ§ã枬å®ããã«ã¯ãã¿ã¹ã¯ãããŒã¿ã»ãããææšãå¿ èŠã§ãã
è²¢ç®ããæ¹æ³
- ããå€ãã®ããŒã« (ã¢ãã«ããã€ãã©ã€ã³ãAPI) ãã³ã³ããåããŠããšãŒãžã§ã³ã ã·ã¹ãã ã«ãã©ã°ã€ã³ããŸãã
- ç§åŠé åã«ããããšãŒãžã§ã³ãã®ããã©ãŒãã³ã¹ãè©äŸ¡ããããã®ãã¹ããšãã³ãããŒã¯ãäœæããŸãã
çµè«
ç§ãã¡ã¯æ°ããç§åŠãã©ãã€ã ã®ç«¯ã«ç«ã£ãŠãããç ç©¶ã¯AIã«ãã£ãŠå éãããã ãã§ãªããAIãšææºããŠããŸããç§åŠãšãŒãžã§ã³ãã¯ãæççãªäœæ¥ã®æ¥ã ããèªåŸçã§åçŸæ§ã®ããå€§èŠæš¡ã«å®è¡ããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããã¯ãŒã¯ãããŒã«å€ããŠããŸãã
ä¹±éãªã·ã§ã«ã¹ã¯ãªãããããŒãããã¯ããã³ã³ããåãããã€ã³ããªãžã§ã³ããªãšãŒãžã§ã³ããžã®ç§»è¡ã¯ãå©äŸ¿æ§ã ãã§ã¯ãããŸãããããã¯ãããå€ãã®äººã«ç ç©¶ãéæŸããçºèŠãµã€ã¯ã«ãå§çž®ãããããå®è¡ããã¢ãã«ãšåãããã匷åãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããšã§ãã
ç§åŠã¯ãã¯ãç 究宀ã«éå®ãããŸãããã³ã³ããã§èªååãããGPU ã§ã¹ã±ãžã¥ãŒã«ãããããªãã®ãããªéçºè ã«ãã£ãŠåºè·ãããŠããŸãã
ãªããžããªããã§ãã¯ããŠãç¬èªã®ç§åŠãšãŒãžã§ã³ããæ§ç¯ããŠã¿ãŠãã ãããæåã«èªååããã¯ãŒã¯ãããŒã¯äœã§ãã?