
ãã¯ãã«æ€çŽ¢ã§æ¬²ããæ å ±ãåŸãããªããšãã®åé¡ç¹ãšæ¹è¯æ¹æ³ãèããŠã¿ã
ãã®èšäºã¯å ¬éãããŠãã1幎以äžçµéããŠããŸããæ å ±ãå€ãå¯èœæ§ããããŸãã®ã§ããæ³šæãã ããã
ã¯ããã«
æ°èŠäºæ¥éš å±±æ¬ã§ãã
ChatGPTïŒOpenAI APIïŒãã¯ãããšããAIã®èšèªã¢ãã«ïŒLarge Language ModelïŒä»¥äžãLLMïŒã䜿çšããŠããã£ããããããæ§ç¯ããã±ãŒã¹ãå¢ããŠããŸããéåžžãLLMãåŠç¿ãããšãã®ããŒã¿ã«å«ãŸããŠããå 容以å€ã«é¢ãã質åã«ã¯åçãã§ããŸããããã®ãããäŸãã°ãã瀟å ã·ã¹ãã ã«é¢ãããã£ããããããäœæããããšããŠããçŽ ã®LLMã§ã¯è³ªåã«å¯ŸããŠããããªããšããåçãç°ãªãç¥èã«åºã¥ããåçãïŒåœç¶ãªããïŒåŸãããŠããŸããŸãã
ãã®åé¡ã解決ããæ¹æ³ãšããŠãRetrieval Augmented GenerationïŒä»¥äžãRAGïŒãšããææ³ããã䜿çšãããŸããRAGã§ã¯ããŠãŒã¶ããã®è³ªåã«åçããããã«å¿ èŠãããªå å®¹ãæžãããæç« ãæ€çŽ¢ãããã®æç« ãLLMãžã®å ¥åïŒããã³ããïŒã«ä»ãå ããŠæž¡ãããšã§ããŠãŒã¶ã欲ããæ å ±ã«é¢ããŠåçãããããšãã§ããŸãã
ååã®èšäºã§ã¯ãRAGã®æç« æ€çŽ¢ã§ãã䜿çšããããã¯ãã«æ€çŽ¢ã«ãããŠãã¯ãšãªã®æ¡ä»¶ã«ãã£ãæç« ãå€å®ã§ãããã調ã¹ãããã«ãã以å€ããæ°åã®å€§å°ããäŸãšããŠç°¡åãªå®éšãè¡ããçµæãšããŠé£ãããã§ãããšããå°è±¡ããã¡ãŸããã
ãã¯ãã«æ€çŽ¢ã§ã以å€ãããæ°åã®å€§å°ãã詊ããŠã¿ã | DevelopersIO
ä»åã¯ããã¯ãã«æ€çŽ¢ã«ãããŠæ¬²ããæ å ±ãåŸãããªããšãã«ãããããåå ãšãªã£ãŠããããªåé¡ç¹ãåãäžãããããããžã®å¯Ÿçæ¹æ³ãšæŠèŠã«ã€ããŠèšèŒããŸãã
ïŒä»¥åã«ããRAGã«ã€ããŠèããå 容ããRAGã䜿ã£ãŠåãçµãã å 容ããããŸãã®ã§ããã¡ããåãããŠã芧ãã ããïŒ
- https://dev.classmethod.jp/articles/revise-retrieval-augmented-generation/
- https://dev.classmethod.jp/articles/implement-devio-articles-search-bot/
- https://dev.classmethod.jp/articles/implement-sales-documents-search-bot/
ïŒå°éã®åéã§ã¯ãªã調ã¹å§ããã°ããã§ãããããäžè¶³ããŠããç¹ã»ééã£ãŠããç¹ãªã©ããããããããŸããã®ã§ããäºæ¿ããã ããã°å¹žãã§ãïŒ
ç¶æ³ã®æŽçã»èšèã®å®çŸ©
ä»åã¯ä»¥äžã®ãããªç¶æ³ãæ³å®ããŠããŸãããŸãã䜿çšããèšèã¯ä»¥äžã®å 容ãæããŸãã
- åŠçãããŒ
- åçŽãªRAG
- ããã¥ã¡ã³ãå ã®æ€çŽ¢ïŒãã¯ãã«æ€çŽ¢ã§å©çšãã
- åçã®çæïŒåãåºããããã¥ã¡ã³ãã®ããã¹ããšè³ªåã®ããã¹ãããããã³ãããäœæããLLMã«å ¥åãã
- åçŽãªRAG
- å
¥åããŒã¿
- ããã¥ã¡ã³ãïŒæ€çŽ¢ããã察象ã倧éã«ããŒã¿ããããããã¥ã¢ã«ãã«ãŒã«ãªã©ã®èª¬æãæžãããŠããããšãæ³å®
- ãŠãŒã¶ã®è³ªåïŒã·ã¹ãã ãå©çšããããŠãŒã¶ã®è³ªåãããã¥ã¡ã³ãã«é¢ããŠç¥ããªãããšãæ³å®
- ããŒã¿ããŒã¹ïŒããã¥ã¡ã³ãã®ããã¹ããååŠçããæ€çŽ¢ãããã圢ã«ãããã®
ãã®èšäºã§ã¯ãããããã·ã¹ãã ãäœæããéã«ãæã£ããããªåçãçæãããªãã£ãå Žåãèããããåé¡ç¹ãããã«æ¹è¯ã§ããããªç¹ã«ã€ããŠæ€èšããŸãã
èããããåé¡ç¹ã»æ¹è¯ç¹
æç« ãæ€çŽ¢ããŠæ¬²ããæ å ±ãåãåºãããïŒïŒãã®æ å ±ãããšã«åçãLLMã«èãããããïŒãšãã«ãåçŽãªãã¯ãã«æ€çŽ¢ã§äžæãè¡ããªãå Žåã以äžã®éšåãåå ã®åè£ãšããŠèãããããã§ãã
ãã¯ãã«æ€çŽ¢ã®äœ¿ãæ¹ã®åé¡
åçŽãªãã¯ãã«æ€çŽ¢ã§ã¯ãããŠãŒã¶ã®è³ªåã®ãã¯ãã«ããšãããã¥ã¡ã³ããåå²ããããã¹ãã®ãã¯ãã«ããæ¯èŒããããšã§é¡äŒŒåºŠãèšç®ããŸããã以äžã®ç¹ãåé¡ã«ãªãå¯èœæ§ããããŸãã
- æ¯èŒããæç« å士ã®çš®é¡ããã£ãŠããªã
é¡äŒŒåºŠãèšç®ãããšããããšã¯ãæ¯èŒãããã®å士ã®çš®é¡ãåã£ãŠããããšãåæã«ãªãã¯ãã§ãã説ææãšèª¬ææã®æ¯èŒã¯ã§ããã¯ãã§ããããŠãŒã¶ã®è³ªåãšããã¥ã¡ã³ãå ã®èª¬ææã®æ¯èŒã¯å°ããºã¬ãçš®é¡ãæ¯èŒããŠãããšèšãã粟床ãäžããåå ã«ãªãããã§ãã
äŸãã°ã質åã®ããã¹ãã§ã¯ãããã«ã€ããŠããããªãã®ã§ãããã©ããããè¯ããæããŠãã ãããã®ããã«æžãããç€Ÿå æç« ãªã©ã®æç« ã§ã¯ãããã®æ¹æ³ããããã®éã¯ä»¥äžããæç¶ãããŠãã ãããã®ããã«æžãããŠããããšãæ³å®ãããæäœãªã©ãç°ãªãããšãå€ããã§ãã
ïŒâ æ¯èŒããæç« ãæããæ¹ãè¯ãïŒ
-
é¡äŒŒåºŠã®äœ¿ç𿹿³ãé©åã§ã¯ãªã
ãããããã¯ãã«æ€çŽ¢ã§åŠç¿ã§äœ¿ãããããŒã¿ã»ããã«ãããŠãããã¹ãå士ã®é¡äŒŒåºŠã¯ãïŒã€ã®æç« ãåã話é¡ã§ããããã人éãè©äŸ¡ããŠããã±ãŒã¹ãå€ãã§ããã€ãŸããäžèšã®ãããªã±ãŒã¹ã§è¡ããããããæç« ããã質åã®åçã«ãªã£ãŠãããããšã¯å°ããããŠãããããæ¬æ¥ã®äœ¿ãæ¹ãšã¯ç°ãªã£ãŠãããšèšããããã粟床ãäžããåå ã«ãªãããã§ãã
äŸãã°ããå°å¹Žãç å Žã§ãåãã€ãã£ãŠããŸãããšãåäŸãå ¬åã§éãã§ããŸãããšããïŒã€ã®æç« ãé¡äŒŒããŠããããšã¯ããããŸããããå°å¹Žã¯ã©ãã§äœãããŠããŸããïŒããšãåäŸãå ¬åã§éãã§ããŸãããé¡äŒŒããŠãããã¯ïŒããŒã¿ã»ããã«ç¡ãããïŒããããŸãããããããåŸè ã®ãã¢ã®é¡äŒŒåºŠã¯ããçšåºŠé«ããªããŸãããåè ã®ãã¢ã»ã©é«ããªããªãããšãäºæ³ãããŸãã
ïŒâ ãæç« ã質åã®åçã«äœ¿çšã§ãããããåºåã§ããããã«ã¢ãã«ãå€ããæ¹ãè¯ãïŒ
ãã¯ãã«æ€çŽ¢èªäœã®åé¡
ãããã¹ãããã¯ãã«åããŠïŒã€ã®ããã¹ãã®é¡äŒŒåºŠã枬ãããšããææ³ãã®ãã®ã«ã以äžã®ãããªå¶çŽïŒâ éçïŒãããããã§ãã
- æ¡ä»¶ã«åèŽããç®æãæ£ç¢ºã«åãåºãã®ã¯é£ãã
ååã®èšäºã«æžããéããã以å€ããæ°åã®å€§å°ãªã©ãå«ãã§ããŸããšããã®æ¡ä»¶ã該åœããç®æãæ£ç¢ºã«åãåºãã®ã¯é£ãããã§ãã
ãã ã幞ããªããšã«ãé¡äŒŒåºŠãäžçªé«ãããã¹ãã®åšèŸºã«è©²åœç®æãå«ãŸããŠããããæ¡ä»¶ã該åœããç®æãé¡äŒŒåºŠã¯ïŒäžçªã§ã¯ãªãã§ããïŒé«ããããåãåºãæ¹ã工倫ããã°è¯ãããã§ãã
åŸæ®µã®åŠçã§LLMã«ããã¹ããå ¥åããã®ã§ãããã§äžèŠãªæ å ±ã匟ãããšã¯å¯èœã§ãããéã«å¿ èŠãªæ å ±ãæããŠããŸãã®ã¯åé¡ã§ãã
ïŒâ æ¡ä»¶ã«åèŽããç®æãæŒãããªãããããã«ãæœåºç¯å²ã倧ããããå¿ èŠãããïŒ
-
ãŠãŒã¶ã®ããããæ€çŽ¢ã«å¯Ÿå¿ã§ããªã
ãŠãŒã¶ãããããæ€çŽ¢ã¯ãããªãæ¡ä»¶ãè€éã§ããããŒã¯ãŒãã§æ€çŽ¢ãããããããŒã¯ãŒããé€å€ãããæ¥æãäœæãã人ãªã©ã®ã¡ã¿æ å ±ã§çµã蟌ããã³ã³ããã¹ãæ§ãé«ã質åãããå Žåãªã©ããããŸããæç« ãã¯ãã«ã®æ¯èŒã¯å€§ãŸãã«æ€çŽ¢ããã«ã¯äœ¿ããŸãããããããè€éãªæ€çŽ¢ã¯ãããã察å¿ã§ããªããšæãããŸãã
ïŒâ ãŠãŒã¶ã®ããããæ€çŽ¢ãã«ããŒããããã«ãã»ãã®æ€çŽ¢æ¹æ³ã䜵çšããæ¹ãè¯ãïŒ
ïŒãããããã¯ãã«æ€çŽ¢ã®ã¡ãªããã¯ãæ§ã ãªçš®é¡ã®ããŒã¿ïŒç»åã»é³å£°ïŒããã¯ãã«åããŠåæã«æ€çŽ¢ã§ããç¹ããè¿äŒŒæè¿åæ¢çŽ¢ãå©çšã§ãé«éã«æ€çŽ¢ã§ããç¹ããšèšãããããšãå€ãããã§ããé«éã«éãçµã蟌ãåŠçãæ åœããããæ£ç¢ºãªæ€çŽ¢ã»å€æãå¿ èŠãªåŠçã¯å¥ã®æ¹æ³ãåããšãã倿®µéã®ä»çµã¿ã«ããããšã§ãåŠçæéãã³ã¹ããäžãããšããèãæ¹ã§ãïŒ
æ€çŽ¢ã®ä»çµã¿èªäœã®åé¡
ããã¯ãã¯ãã«æ€çŽ¢ã®è©±ã§ã¯ãªããªããŸãããæ€çŽ¢å šäœã®ä»çµã¿ãšããŠã以äžã®ç¹ãèæ ®ããæ¹ãè¯ãã§ãããã
- äžåã®æ€çŽ¢ã§ã¯æ¬²ããæ
å ±ãåãåºããªã
æç« ã®åœ¢åŒãæžãæ¹ã«ãäŸåããŸããã該åœç®æã®ããã¹ãã«åç §ãªã³ã¯ã貌ã£ãŠããã±ãŒã¹ããå¥ã®ç®æã«æžãããïŒã€ã®å å®¹ãæ¯èŒããçµæãç¥ãããã±ãŒã¹ãªã©ã1åã®æ€çŽ¢ã§æœåºããããã¹ãã§ã¯æ å ±ãäžååãªå ŽåãèããããŸããããã«ã¯ãæœåºããããã¹ãã®å 容ãèªåã§ææ¡ããŠãäžååãªèŠçŽ ãããã°å床ã¯ãšãªãèããŠãæ€çŽ¢ãç¹°ãè¿ããªããæ å ±ãéããŠããä»çµã¿ãå¿ èŠããã§ãã
ïŒâ åŸãããæ å ±ãããšã«èããªããè€æ°åæ€çŽ¢ãç¹°ãè¿ãä»çµã¿ãå¿ èŠïŒ
-
ãŠãŒã¶ã®è³ªåã®æ å ±ãããããååã§ãªãå¯èœæ§ããã
ããããããŠãŒã¶ã¯ããŒã¿ããŒã¹å ã®ææžã®å 容ãããã£ãŠããªãå ŽåããããŸãïŒããããã»ãšãã©ã®å ŽåïŒãããããã±ãŒã¹ã§ã¯ãææžãç¹å®ããã®ã«ååãªæ å ±ãã1åã®è³ªåã®äžã«å ¥ã£ãŠããªãããšãèããããŸããæ¯åãŠãŒã¶ã®è³ªåãããšã«ãã æ€çŽ¢ããã ãã ãšãããã¯è§£æ±ºã§ããªããããå¿ èŠãªæ å ±ããŠãŒã¶ã«èãè¿ããŠæããŠããã£ããããããããæ å ±ãªããããããšäŒããŠè³ªåãèããªãããŠãããããšãããããŒã«ããå¿ èŠãããããã§ãã
ïŒâ äŒè©±åœ¢åŒã«ããŠããåãã§ããä»çµã¿ãå¿ èŠïŒ
ïŒæ å ±æ€çŽ¢ïŒInformation RetrievalïŒãšããåèªã調ã¹ãŠãããšãå€ãã®å Žåãåã«ïŒåã ãããã¥ã¡ã³ãå ããã¯ãšãªã«é¢é£ããæ å ±ãååŸããããšãšããŠå®çŸ©ãããŠããŸãããã ãä»åã®ãããªã·ã¹ãã ã§ã¯ããã£ããããããšãããããªåœ¢åŒã«ããŠãŠãŒã¶ã«æäŸããŠãã = èªç¶èšèªãã€äŒè©±åœ¢åŒã§ãããšããã§ããç¹ããåæ§ã®ã€ã³ã¿ãã§ãŒã¹ã§ChatGPTã®ãããªâ質ã®é«ãâãäœéšããããšãããŠãŒã¶ãå¢ããŠããç¹ã¯èæ ®ãã¹ãã§ããä»åŸãŠãŒã¶ã¯ããããã·ã¹ãã ã«ãåãªããæ å ±æ€çŽ¢ãã ãã§ã¯ãªããããåãã察話ãã§ããããæèããã代ããã«äœæ¥ãããŠãããããšãæåŸ ããããã«ãªããæäŸããåŽãããã«å¿ããããšãæ±ããããã§ããããäŸãã°ããã¥ã¡ã³ãã®å 容ããã¹ãŠç¥ã£ãŠããé ã®è¯ãæ°ãå¹ã人éããããã以äžã®ãããªããšãã§ãããã§ãããæ å ±æ€çŽ¢ã»åççæã§å¯Ÿå¿ã§ããŠããã®ã¯äžéšãããããŸããïŒ
(å šäœããã»ã¹ã®åé¡)
å°ã話ã倧ãããªã£ãŠããŸããŸãããéçºã®ããã»ã¹ãšããŠä»¥äžã®ç¹ãæ€èšããäœå°ãããããšæããŸãã
- ãŠãŒã¶ãã©ã®ããã«äœ¿ããã¯äºæ³ããããªã
éçºè ãšããŠã¯ãŠãŒã¹ã±ãŒã¹ãæ³å®ããããã«æ²¿ã£ãã·ã¹ãã ãéçºããŸããããŠãŒã¹ã±ãŒã¹ã«æ²¿ããªã䜿ããæ¹ã¯ååšããŸãããªã®ã§ããŸãã¯ãããã¿ã€ãçã«äœæããŠã¿ãŠããŠãŒã¶ã®äœ¿ãæ¹ããäžè¶³ããŠããã±ãŒã¹ã远å ãããšãããã€ã³ããé²ãæ¹ã®æ¹ãäžæãããããã§ãã
ïŒâ ãããã¿ã€ãã³ã°ããŠåæããããã»ã¹ãå¿ èŠïŒ
-
ãŠãŒã¶ãæ £ããŠå€ãã£ãŠããã»ããŒã¿ãå€ãã
é·ãã·ã¹ãã ã䜿ã£ãŠãããšããŠãŒã¶ãæ £ããŠããããããŒã¿ãæŽæ°ã»è¿œå ãããŠããŸããããããã¥ã¡ã³ãã远å ããããå 容ã圢åŒãç°ãªã£ãŠããŠç²ŸåºŠãæªããªãããšããã±ãŒã¹ãæ³å®ãããŸãã
ïŒâ 宿çã«æ¹åããŠããä»çµã¿ãå¿ èŠïŒ
察ç
å察çã®æ¹éãåæ¹éã®å ·äœçãªæ¹æ³ïŒäžã®äžã§ææ¡ãããŠããæ¹æ³ãã¢ã€ãã£ã¢ïŒãããã«ãã£ãŠæåŸ ããã广ãšãå¿ èŠãªäœæ¥ïŒæéã»æéã»ã³ã¹ãïŒã«ã€ããŠè¿°ã¹ãŸãïŒèšäºãé·ããªã£ãŠããŸã£ãã®ã§ãæŠèŠã«ã€ããŠã®ã¿èšèŒããŸãããåæ¹æ³ã®è©³ããå 容ã«ã€ããŠã¯ãããããå¥ã®èšäºã«ããäºå®ã§ãïŒã
æ¹éïŒïŒEmbeddingã§æ¯èŒããããã¹ããæãã
æ¹æ³ïŒïŒïŒïŒè³ªåã工倫ãã
æ¹æ³ãšããŠã以äžã®ïŒã€ããããããã§ã
- 質åæãLLMã«æž¡ããŠãæ€çŽ¢ãããã圢ã«å€æãã
- å
å®¹ã»æ¹æ³
質åã®ããã¹ããLLMã«æž¡ããŠå€æãããæ¹æ³ã§ã
-
æåŸ ããã广
ããŒã¿ããŒã¹å ã®ããã¹ãã«è¿ãã¯ãŒãã圢åŒã§æ€çŽ¢ã§ããããæ£ç¢ºã«é¡äŒŒåºŠãèšç®ãããããšãæåŸ ã§ããŸã
-
æéã»ã³ã¹ã
æ¯åLLMãå®è¡ããåãåŠçæéã»ã³ã¹ããããããŸã
- å
å®¹ã»æ¹æ³
-
質åæãLLMã«æž¡ããŠãä»®ã®åçãèãããã
- å
容
質åã®ããã¹ãã«å¯ŸããŠïŒæ å ±ããªãç¶æ ã§ïŒä»®ã«åçããå Žåã®ããã¹ããLLMã«èãããããã®åçãå ¥åãšããŠãã¯ãã«æ€çŽ¢ããæ¹æ³ã§ãã
-
æåŸ ããã广
質åã®ããã¹ããããä»®ã®åçã®ããã¹ãã®æ¹ããããŒã¿ããŒã¹å ã®ããã¹ãã«è¿ã圢åŒã»æžãæ¹ã»å 容ã«ãªã£ãŠããŠãããæ£ç¢ºã«é¡äŒŒåºŠãèšç®ãããããšãæåŸ ã§ããŸã
-
é£ããããªç¹
å°éçšèªãäžè¬çã§ãªãçšèªãå«ãŸãããšãä»®ã®æç« ãèããããšãããããé£ãããã§ã
-
æéã»ã³ã¹ã
æ¯åLLMãå®è¡ããåãåŠçæéã»ã³ã¹ããããããŸã
-
è£è¶³
Hypothetical Document EmbeddingsïŒHyDEïŒãšåŒã°ããæ¹æ³ã§ãããLangChainã§ãchainã®äžã€ãšããŠå®è£ ãããŠããŸãïŒhttps://python.langchain.com/docs/modules/chains/additional/hydeïŒ
ä»åã®ã±ãŒã¹ã§ãããšããä»®ã®åçããšããããã¯ãä»®ã®ããã¥ã¡ã³ãããçæããæ¹ããããæ£ç¢ºãªé¡äŒŒåºŠã®èšç®ãã§ãããã§ã
- å
容
æ¹éïŒïŒïŒïŒããã¥ã¡ã³ãïŒããŒã¿ããŒã¹ïŒã工倫ãã
-
ä»®ã®QïŒAãäœæãã
- å
å®¹ã»æ¹æ³
ããã¥ã¡ã³ãã®ããã¹ããLLMã«æž¡ããŠãä»®ã®Q&Aãèããããæ¹æ³ã§ã
-
æåŸ ããã广
ãŠãŒã¶ã®è³ªåãšåæ§ã®è³ªåããã¹ããçæã§ããã°ãé¡äŒŒåºŠãé«ãèšç®ãããããšãæåŸ ã§ããŸã
-
é£ããããªç¹
QïŒAããŠãŒã¶ã®è³ªåãç¶²çŸ ãããããäžéæãªãšããããããŸãããŸããç¶²çŸ ããããšæããšå€§éã®QïŒAãçæããå¿ èŠããããã³ã¹ãããããããã§ã
-
è£è¶³
äœæããQïŒAã®ãã¡ãã©ãããã¯ãã«ã«å€æãããã¯ïŒéãïŒQã®éšåã®ã¿ã»Aã®éšåã®ã¿ãQ&Aå šäœïŒãããŸãã質åãšå 容ãæãããšããç¹ã§ã¯Qã®éšåã®ã¿ã倿ããã®ããŸãèããããŸãããã»ãã®ïŒã€ã詊ããŠã¿ãããïŒã€ã®çµæãçµã¿åãããã®ãè¯ãããã§ãã
- å
å®¹ã»æ¹æ³
æ¹éïŒïŒïŒïŒã©ã¡ãã工倫ãã
ç¶æ³ã«ãã£ãŠã¯ä»¥äžã®ãããªæ¹æ³ã§ã欲ãã粟床ãåŸããããããããŸãããããŸãæ å ±ããªãã£ãã®ã§ã¢ã€ãã£ã¢ã¬ãã«ã§ãã
- ã¿ã°ä»ããã
- å
容
ããã¥ã¡ã³ãã®ããã¹ããLLMã«å ¥åããŠã¿ã°ãä»ããã¿ã°ã®ãªã¹ããååŸããŸãã質åã®ããã¹ããåæ§ã«LLMã«å ¥åããŠãã©ã®ã¿ã°ã«è©²åœããããå€å®ãããŸããã¿ã°ã«è©²åœããããã¥ã¡ã³ãã®ããã¹ããåãåºããŸã
-
è£è¶³
ã¿ã°ä»ãã ãã§ããã°ãLLMã§ã¯ãªããAmazon Comprehendã®ãããªããã¹ãå ã®ãšã³ãã£ãã£ïŒãããã¯ãšãªãåèªïŒãæœåºããæ¹æ³ã§ãã§ãããããããŸããïŒã³ã¹ããæããããïŒ
- å
容
-
èŠçŽãçæãã
- å
容
ããã¥ã¡ã³ãã®ããã¹ããLLMã«å ¥åããèŠçŽãçæããŸãã質åã®ããã¹ããåæ§ã«LLMã«å ¥åããŠãæŠèŠïŒèŠçŽïŒãçæããŸãããããã®é¡äŒŒåºŠããã¯ãã«ã§èšç®ããŸãã
-
é£ããããªç¹
質åã®ããã¹ãã¯çãããšãå€ãã質åã®ããã¹ãã®æŠèŠãçæããïŒããã¥ã¡ã³ãã®èŠçŽãšæ¯èŒããããã®æç« ãäœæããïŒãšããã¿ã¹ã¯èªäœãäžæãããã®ãäžéæã§ã
-
è£è¶³
- å
容
ãããã ããã¥ã¡ã³ãã®èŠçŽãæ€çŽ¢ã«äœ¿çšãããšããç¹ã«é¢ããŠã¯ãLlamaIndexã®DocumentSummaryIndexãè¿ãåäœãããŠããããã§ãïŒæªèª¿æ»ïŒã
- åç
§ããã±ãŒã¹ãçæãã
- å
容
ããã¥ã¡ã³ãã®ããã¹ããLLMã«å ¥åããããã¹ãã®æ³å®ãããåç §ã±ãŒã¹ïŒãã®æç« ããã€åç §ãããè¯ããïŒãèããããŸãã質åã®ããã¹ããLLMã«å ¥åãããã®è³ªåãã©ãããç¶æ³ãªã®ããèããããŸããåç §ã±ãŒã¹ãšç¶æ³ã®é¡äŒŒåºŠããã¯ãã«ã§èšç®ããŸã
-
é£ããããªç¹
質åã®ããã¹ãã¯çãããšãå€ãã質åã®ããã¹ãã®æŠèŠãçæããïŒããã¥ã¡ã³ãã®èŠçŽãšæ¯èŒããããã®æç« ãäœæããïŒãšããã¿ã¹ã¯èªäœãäžæãããã®ãäžéæã§ã
- å
容
æ¹éïŒïŒãæç« ã質åã®åçã«äœ¿çšã§ãããããåºåã§ããããã«ã¢ãã«ãå€ãã
æ¹éïŒïŒïŒïŒãã¯ãã«åïŒã¢ãã«ïŒãæ¹è¯ãã
https://www.youtube.com/watch?v=3giqIW2pIW4ããåŒçš
- two-towerã¢ãã«ã䜿ã
- å
容
æ°ããã¢ãã«ãå©çšããŸãã質åã®ããã¹ãããã¯ãã«ã«ããéšåïŒäžå³äžå€®å·ŠïŒãšãããã¥ã¡ã³ãã®ããã¹ãããã¯ãã«ã«ããéšåïŒäžå³äžå€®å³ïŒãæã£ãŠããŠã質åãšããã¥ã¡ã³ãã®ãã¢ã«å¯ŸããŠãããããåèŽãããã®ã§ããã°2ã€ã®ãã¯ãã«ãè¿ããªãããã«ãåèŽããªããã®ã§ããã°é ããªãããã«åŠç¿ããããšããã¢ãã«ã§ãã
ã¬ã³ã¡ã³ããšã³ãžã³ãäœæããã®ãšåæ§ã®èãæ¹ã®ããã§ãã
-
倧å€ãããªç¹
ããããã¢ãã«ãåŠç¿ããããã®ããŒã¿ã»ãããå¿ èŠã§ã質åã®ããã¹ãã»è©²åœããããã¥ã¡ã³ãã®ããã¹ãã®ãã¢ãäœæããå¿ èŠããããŸãããŸããåŠç¿ãããããã®ã¹ã¯ãªãããåããæéããåŠç¿ãå®è¡ããã³ã¹ãããããããã§ãã
-
è£è¶³
ããŒã¿ã»ããïŒè³ªåã®ããã¹ãã»ããã¥ã¡ã³ãã®ããã¹ãã®ãã¢ïŒãäœæããæ¹æ³ãšããŠãå ã«å¥ã®æ€çŽ¢æ¹æ³ã§ã·ã¹ãã ãäœæããã©ããã質åãããæã©ãããããã¥ã¡ã³ãã«ãã©ãçãããããŠãŒã¶ã®æäœãåæããããšã§åŸãããšããããæ¹ããããããã§ã
QAçšã«åŠç¿æžã¿ã®ã¢ãã«ïŒuniversal-sentence-encoder-multilingual-qaïŒãæäŸãããŠããããã§ããããå©çšã§ãããªãåŠç¿ã«ãããæéãã³ã¹ãã¯äžèŠããã§ãïŒæªèª¿æ»ïŒãhttps://tfhub.dev/google/universal-sentence-encoder-multilingual-qa/3
two-towerã¢ãã«ã§ãããã¥ã¡ã³ãïŒããŒã¿ã»ããïŒã®ãã¯ãã«ã¯äºåã«èšç®ããŠããããšãã§ããŸãããªã®ã§ã質ååãæ¥ããšãã«ã¯ã質åæããã¯ãã«åããåŠçãšããã¯ãã«ã®å士ã®é¡äŒŒåºŠãèšç®ããåŠçã®ã¿ã§æžã¿ãŸããGoogleã®æ¹ã®çºè¡šã§ã¯ããã®æ€çŽ¢ãVertex AI Matching EngineïŒScaNNïŒãå©çšããããšã§é«éã«åŠçã§ããããšè¿°ã¹ãããŠããã®ã ãšæããŸãã
調ã¹ãŠãããšGoogleã®æ¹ã®çºè¡šè³æãå€ããããŸããã®ã§ãåèã«ãããŠããã ããŸãã
- å
容
-
ã»ãã«ããèªäœã§ã¢ãã«ãäœæããæ¹æ³ãããããã§ããã調ã¹ãããŠããªãã®ã§ãä»åŸèª¿æ»ããäºå®ã§ãã
æ¹éïŒïŒæœåºç¯å²ã倧ãããã
æ¹éïŒïŒïŒïŒæç« ãåãåºãåŠçããžãã¯ãæ¹è¯ãã
é¡äŒŒåºŠãèšç®ããåŸãã©ã®ããŒããåãåºããã®åŠçããžãã¯ãæ¹è¯ããŸãïŒéåžžã¯ãã¹ã³ã¢ãé«ããã®ããããã€ãã®ããŒããåãåºããŸãïŒãLlamaIndexã«ãPostprocessorãšãããããã«è©²åœããã¯ã©ã¹ããããŸãã
- ååŸã®ããŒãããŸãšããŠååŸãã
- å
容
ã¹ã³ã¢ãé«ãããŒãã®ååŸã«è©²åœç®æããããããšä»®å®ãããã®ååŸããŸãšããŠååŸããŸããLlamaIndexã§ã¯PrevNextNodePostprocessorãšããã¯ã©ã¹ã§ãååŸã®Nodeããäžå®æ°ïŒãã©ã¡ãŒã¿ã§æå®ãããæ°ïŒãããŸãšããŠåãåºããšãããã®ã§ãã
-
ãã¬ãŒããªãã«ãªãç¹
ããã¥ã¡ã³ãã®ããã¹ããå€ãåãåºãããšã«ãªãã®ã§ãåŸæ®µã®åŠçã§LLMã«ãããããã³ããã®éãå¢ããã³ã¹ããå¢ããããéãç®æãåèã«ããŠæå³ããªãåçãåŸãããå¯èœæ§ãé«ããªããŸãã
- å
容
-
æç« ã®éå±€æ§é ãææ¡ã§ããããã«ããŠã芪èŠçŽ ãååŸãã
- å
容
ã¹ã³ã¢ãé«ãããŒããããéå±€ïŒç« ã»ç¯ã»èšäºïŒã«è©²åœç®æããããããšä»®å®ããã¹ã³ã¢ãé«ãå åŒèŠçŽ ãããã€ããã£ããããã®èŠªèŠçŽ ãååŸããããšã§è©²åœç®æãå«ããŠåãåºããææ³ã§ããããã¥ã¡ã³ãå ã®éå±€æ§é ãææ¡ããããã«ãäºåã«ããã¥ã¡ã³ããè§£æããŠããå¿ èŠããããŸã
-
倧å€ãããªç¹
æç« ã®éå±€æ§é ãè§£æããåŠçå¿ èŠããããŸãããçŸç¶ããããæ©èœã«è©²åœããã©ã€ãã©ãªããªããããªã®ã§ãèªäœããå¿ èŠãããããã§ããããã¥ã¡ã³ãã®ãã¡ã€ã«ããšã«æžãæ¹ã¯ç°ãªãã§ãããããç¹ã«ãããã¥ã¡ã³ããç¬èªã®æ§æãããŠããããè§£æãé£ãããã¡ã€ã«ã®çš®é¡ãå©çšããŠãããªã©ãæç« ã®æ§æãè§£æãã«ããå Žåã¯å®è£ ãããã«å€§å€ããã§ãã
HTMLãMarkdownã§ããã°éå±€çã«æžãããŠãããšæãããŸãããPPTãWordã®ãã¡ã€ã«ã¯é£ããããšãäºæ³ãããŸãã
-
è£è¶³
LlamaIndexã«ã¯ãTreeIndexãšããã¯ã©ã¹ãããã®ã§ãããããã¯æç« ã«åãããæšæ§é ãäœæããããã§ã¯ãªããåã«ãã£ã³ã¯åãããã®ãäžå®æ°ããšã«ãŸãšããŠæšæ§é ã«ãããã®ã§ãã
- å
容
æ¹éïŒïŒïŒïŒããã¹ãã倧ããåå²ãã
-
ããã¹ãåå²ã®ãã©ã¡ãŒã¿ã調æŽãã
- å
容
ããã¹ãã倧ããåå²ããããšã§ã該åœç®æãå«ããããã ãããšããèãæ¹ã§ããããã¹ãåå²ã®ãã©ã¡ãŒã¿ãšããŠã¯ããã£ã³ã¯ã®ãµã€ãºãšãªãŒããŒã©ãããããµã€ãºããããŸããããã倧ããããããšã§ã該åœç®æãå«ããããå¯èœæ§ããããŸãã
-
é£ããããªç¹
1ã€ã®ãã£ã³ã¯ã®åéãå¢ããã®ã§ããã¯ãã«æ€çŽ¢ã®ç²ŸåºŠãäœããªãå¯èœæ§ããããŸãã
-
è£è¶³
ã¢ã€ãã£ã¢ã¬ãã«ã®æ¡ã§ããå€åé£ãããšæããŸãã
- å
容
æ¹éïŒïŒã»ãã®æ€çŽ¢æ¹æ³ã䜵çšãã
-
å 容
ãã¯ãã«æ€çŽ¢ã ããªãä»ã®æ€çŽ¢ææ³ãå©çšããæ¹æ³ã§ã
-
倧å€ãããªç¹
ãŠãŒã¶ãšã®ã€ã³ã¿ãã§ãŒã¹ã¯äŒè©±èª¿ã§ããããšãèãããšããŠãŒã¶ã®è³ªåãããæ€çŽ¢æ¡ä»¶ã»ã¯ãšãªãèããä»çµã¿ãå¿ èŠããã§ããããã¯LLMã«èããããŠããŸãã®ãè¯ãããã§ãã
ããŒã¿ããŒã¹ã®èšèšã»æ§ç¯ã倧å€ãããããŸãããèªåã¯ããããæ€çŽ¢ãµãŒãã¹ãªã©ã䜿çšããããšãç¡ãã®ã§ããã®ãããã¯ãŸã ããã£ãŠããŸããã
-
è£è¶³
ã¯ã©ãŠããµãŒãã¹ãOSSã䜿ãããšã«ãªããšæããŸããã¯ã©ãŠããµãŒãã¹ãšããŠã¯ãAzure Coginitive SearchãAmazon KendraãGoogle Cloud Searchãšãã£ããã®ãæããããŸãïŒã»ãã«ããããããããŸãïŒ
è€æ°ã®æ€çŽ¢çµæãçµ±åããŠå床ã©ã³ã¯ãã€ãçŽããre-rankãšããä»çµã¿ãããããã§ãããã®ææ³ã®äžã€ãšããŠãCross-encoder re-rankingãšããææ³ããããŸããããã¯è€æ°ã®æ€çŽ¢çµæïŒããã¥ã¡ã³ãã®ããã¹ãïŒãšã質åããã¹ãã®é¡äŒŒåºŠãå¥ã®ææ³ã§èšç®ãããšãããã®ã§ãã
ã³ã¹ããåŠçæéãèš±ããªããå šéšã®æ€çŽ¢çµæãããããLLMã«å ¥åãã質åã®åçãšããŠå©çšã§ãããããèããããããšããã®ããããããããŸããã
æ¹éïŒïŒèããªããè€æ°åæ€çŽ¢ãç¹°ãè¿ã
æ¹éïŒïŒïŒïŒAgentãå©çšãã
-
å 容
LangChainã«å®è£ ãããŠããAgentã®ãããªãäžããããã¯ãšãªïŒã¿ã¹ã¯ã®æç« ïŒãšããŒã«ãããšã«ãèªåŸçã«èããŠãªããããŒã«ãå®è¡ããŠçµæãè¿ãæ©èœãå©çšããæ¹æ³ã§ããä»åã®å Žåãæ€çŽ¢æ©èœãããŒã«ãšããŠAgentäžããAgentã¯ãŠãŒã¶ããã®è³ªåã«åçããã®ã«å¿ èŠãªããŒã¿ãããããèªåã§èãæ€çŽ¢ããæ€çŽ¢çµæã§äžè¶³ããŠããæ å ±ãããã°éææ€çŽ¢ããããšãããããŒã«ãªããŸãã
-
é£ããããªç¹
çæ³çã«ã¯ãã¹ãŠèªåŸçã«åããŠããŠãŒã¶ã質åããã°ããŸããŸãªæ€çŽ¢ãè¡ãããŠåçãåž°ã£ãŠããã¯ãã§ãããå®éã«ãã£ãŠã¿ããšãæèã®éçšã§ããããªèãã«ãªã£ãããããŒã«ã®å®è¡ã®ä»æ¹ããããããªããåçãã§ãªããšããããšãèµ·ããããã§ãã
ãã®ãããã¯ãŸã æèããã³ãããããŒã«ã®äžãæ¹ããã©ã®ã¢ãã«ãå©çšããããªã©ã詊è¡é¯èª€ããå¿ èŠãããå°è±¡ã§ãã
æ¹éïŒïŒäŒè©±åœ¢åŒã«ããŠäœåãããåãã§ãã
æ¹éïŒïŒïŒïŒAgent + Human as a Toolãå©çšãã
-
å 容
LnagChainã®Agenté¢é£ã®æ©èœãšããŠãHuman as a Toolãšããèãæ¹ããããŸããæèã®éçšã§ãäžåãŠãŒã¶ã«è³ªåãè¿ãããå ¥åãæ±ããããšã§ãäžè¶³ããŠããæ å ±ã远å ããããšãã§ããŸãã
-
è£è¶³
Human as a Toolã®äœ¿ãæ¹ãšããŠãå°éã®äººã«ã€ãªããšããã®ãããã ãšæããŸããäŸãã°ç€Ÿå ã®ãã£ããããããªããæ åœéšçœ²ã®äººã«AgentãããããªãéšåãèããŠããã®åçãããšã«AgentããŠãŒã¶ã«è¿ããšãããããŒã«ãªããŸãã
ã©ãããæãçãããïŒ
æåã«æ€èšããã¹ãã¯ããããããã¯ãã«æ€çޢ以å€ã®æ¹æ³ãæ¡çšãããã©ããïŒæ¹éïŒïŒã ãšæããŸãããã®æ€çŽ¢ææ³ã詊ããŠãèŠä»¶ã«åãã³ã¹ããåŠçæéã«åãŸãã粟床ãäžããã®ã§ããã°ãç°¡åã«æ¹è¯ã§ãããã§ãããŸããå¥ã®æ€çŽ¢ææ³ãåäœã§å©çšããŠç²ŸåºŠãããŸãæ¹åãããªããŠããè€æ°ã®æ€çŽ¢ææ³ãçµã¿åãããæ¹åŒãèããããŸãã
ã»ãã®æ€çŽ¢ææ³ãèŠä»¶ã«åããªãå Žåãªã©ããã¯ãã«æ€çŽ¢åäœã§ããã¥ã¡ã³ããæ€çŽ¢ããå Žåã¯ããã¯ãã«æ€çŽ¢ãæ¹è¯ããæ¹æ³ïŒæ¹éïŒïœïŒïŒããAgentãå©çšããæ¹æ³ã詊ãïŒæ¹éïŒïœïŒïŒã詊ãããšã«ãªããšæãããŸããAgentãå©çšããå ŽåïŒæ¹éïŒã»ïŒïŒã¯æ€çŽ¢æ©èœãããŒã«ãšããŠãããããšã«ãªãã®ã§ãæ€çŽ¢æ©èœã®æ¹è¯ïŒæ¹éïŒïœïŒïŒãå ã®æ¹ãçãè¯ãã§ãããããŸãæ¹éïŒã®ãããªç°¡åãªå·¥å€«ã§æžãã°äžçªæ¥œã ãšæãããæ¹éïŒã»æ¹éïŒã¯å°ãèªäœããéšåãå€ããæéãæéããããããã§ãã
ãªã®ã§ãæ¹éïŒã»ïŒã»ïœïŒ or ïŒïœã»ïŒã»ïŒã®é ããªãšæããŸãã
ãŸãšã
ããã¥ã¡ã³ãã«é¢ããŠè³ªåãã§ãããã£ããããããäœæããããšãæ³å®ããæç« æ€çŽ¢ã®æ¹æ³ãšããŠãã¯ãã«æ€çŽ¢ã䜿çšããéã«ãèµ·ããããªåé¡ç¹ãšå¯Ÿçã«ã€ããŠèããå 容ããŸãšããŠã¿ãŸããã
ä»åŸã¯ãä»åæããåæ¹æ³ã«ã€ããŠèª¿ã¹ãã詊ããŠããããšæã£ãŠããŸãã
åèã«ãããŠããã ãããµã€ãã»ããŒãž
https://cloud.google.com/vertex-ai/docs/matching-engine/train-embeddings-two-tower?hl=ja
https://arxiv.org/abs/2004.12832
https://blog.reachsumit.com/posts/2023/03/two-tower-model/#fn:5
https://qdrant.tech/articles/hybrid-search/
https://cloud.google.com/vertex-ai/docs/matching-engine/train-embeddings-two-tower?hl=ja
https://www.youtube.com/watch?v=3giqIW2pIW4
https://dev.classmethod.jp/articles/google-cloud-day-2022-recommend-model-two-tower-session-report/
è¬èŸ
äžæãããããããã¿ãããã«ãæè¡ãŸããã«ã€ããŠã®çžè«ã«ã®ã£ãŠããã ããŸãããããããšãããããŸããã












