ã¯ããã«
ãChatGPTã®åçãæ¬åœã«æ£ããã®ïŒãã瀟å ã®æ©å¯æ å ±ã¯æ±ããªãã®ïŒããææ°æ å ±ã«å¯Ÿå¿ã§ããªãã®ïŒã
çæAIã®å®çšåã«åããŠãå€ãã®ãšã³ãžãã¢ããããã課é¡ã«çŽé¢ããŠããŸãããããã®èª²é¡ã«å¯Ÿãã匷åãªè§£æ±ºçãšããŠæ³šç®ãéããŠããã®ããRAGïŒRetrieval-Augmented Generation ㌠æ€çŽ¢æ¡åŒµçæïŒã§ããäžæ¹ã§ãRAG ã¯ãã®åºæ¬çãªèãæ¹ããã€ã¬ã¯ãã«å®è£ ããã ãã§ã¯å€ãã®å¿çšã«ãããŠååãªç²ŸåºŠãçºæ®ã§ãããããžã§ã¯ãã PoC ããå ãžé²ãŸãªããšãã£ã課é¡ãç®ç«ã£ãŠããŸãã
æ¬ã·ãªãŒãºã§ã¯ãRAGã®åºç€ããå®è£ ã®è©³çްãŸã§ã以äžã®ãããªæ§æã§è§£èª¬ããŠãããŸãã
第ïŒç« ïŒå
¬éæžïŒ ㌠ãRAGã®åºç€ ㌠LLMã®éçãšRAGã«ãã解決ãžã®éã
第ïŒç« ïŒæ¬èšäºïŒ ㌠ãRAGãæ¯ããæè¡ ㌠ãã¯ãã«æ€çŽ¢ã®ä»çµã¿ãïŒåã蟌ã¿ã¢ãã«ãããã¯ãã«ããŒã¿ããŒã¹ãŸã§ïŒ
第ïŒç« ㌠ããã¯ãã«æ€çŽ¢ãïŒChromaDBç·šïŒ
第ïŒç« 以é
- åºæ¬çãªRAGã®ä»çµã¿ãšå®è£ æ¹æ³
- RAGã®æè¡ç課é¡ãšå®è·µçãªè§£æ±ºç
- RAGã®ææ°ååãšä»åŸã®å±æ
æ¬èšäºã®ç¬¬ïŒç« ㌠ãRAGãæ¯ããæè¡ ㌠ãã¯ãã«æ€çŽ¢ã®ä»çµã¿ãïŒåã蟌ã¿ã¢ãã«ãããã¯ãã«ããŒã¿ããŒã¹ãŸã§ïŒã§ã¯ãéæ§é åããŒã¿ã RAG ã§æŽ»çšããããã«æãããå©çšããããã¯ãã«ããŒã¿ããŒã¹ãšãæç« ãç»åãªã©ã®æå³ãèæ ®ããæ€çŽ¢ã®èŠãšãªãåã蟌㿠ã«çŠç¹ãåœãŠãŸãã
åŸç¶ã®åç« ã§ã¯ãçè«çãªè§£èª¬ã ãã§ãªããå®éã«åäœããå ·äœçãªã³ãŒãäŸãæäŸããŸããChromaDBã䜿çšããå®è£ äŸãæ€çŽ¢ç²ŸåºŠã®åäžã®ã¢ãããŒãã玹ä»ããŸãã
ãã®èšäºã¯ãŠã§ãããŒãOracle AI JAM Session #20 çæAIãããè³¢ã ㌠ãšã³ãžãã¢ã®ããã®RAGå ¥éãïŒ2024幎12æ18æ¥ïŒã®å 容ãããã詳现ãªè§£èª¬ãšãµã³ãã«ã³ãŒããå ããŠåæ§æããã·ãªãŒãºã®ç¬¬ïŒç« ã§ãã
ã»ãã·ã§ã³è³æãšãã¢ããã°ã©ã ãå çä¿®æ£ããŠãäžå¯§ã«è§£èª¬ããŠãããŸãã
ããã§ã¯ãçæAIãããè³¢ã ㌠ãšã³ãžãã¢ã®ããã® RAGå ¥é 第ïŒç« ãRAGãæ¯ããæè¡ ㌠ãã¯ãã«æ€çŽ¢ã®ä»çµã¿ãïŒåã蟌ã¿ã¢ãã«ãããã¯ãã«ããŒã¿ããŒã¹ãŸã§ïŒãå§ãŸããŸãïŒ
ãã¯ãã«ããŒã¿ããŒã¹ãšã¯
ãªãRAGã§ãã¯ãã«ããŒã¿ããŒã¹ã泚ç®ãããŠããã®ã
RAGã·ã¹ãã ã«ãããŠããã¯ãã«ããŒã¿ããŒã¹ã¯éæ§é åããŒã¿ã广çã«æŽ»çšããããã®éèŠãªæè¡ãšããŠæ³šç®ãããŠããŸãããã®äž»ãªçç±ã¯ä»¥äžã®éãã§ãã
-
æå³çãªæ€çŽ¢ã®å®çŸ
- åŸæ¥ã®ããŒã¯ãŒãæ€çŽ¢ãšç°ãªããæç« ã®æå³ãèæ ®ããæ€çŽ¢ãå¯èœ
- å矩èªãé¡äŒŒè¡šçŸãå«ãæç« ãæ€çŽ¢å¯èœ
- ãŠãŒã¶ãŒã®è³ªåã®æå³ã«æ²¿ã£ãæ å ±ã®ååŸãå¯èœ
-
å€§èŠæš¡ããŒã¿ãžã®å¯Ÿå¿
- äŒæ¥å ã®å€§éã®ææžãéæ§é åããŒã¿ãå¹ççã«æ€çŽ¢å¯èœ
- ã¹ã±ãŒã©ãã«ãªæ€çŽ¢åºç€ã®æ§ç¯ãå¯èœ
-
é«éãªæ€çŽ¢æ§èœ
- äºåã«èšç®ãããåã蟌ã¿ãã¯ãã«ã䜿çšããããšã§ãé«éãªæ€çŽ¢ãå¯èœ
- è¿äŒŒæè¿åæ¢çŽ¢ïŒApproximate Nearest NeighborïŒANNïŒïŒã«ãããå€§èŠæš¡ããŒã¿ã§ãå®çšçãªå¿çæéãå®çŸ
ããŒã¿ã®æ ŒçŽåœ¢åŒ
ChromaDB ãäŸã«ããã¯ãã«ããŒã¿ããŒã¹ã«æ ŒçŽãããŠããããŒã¿ã®æ§é ãèŠãŠã¿ãŸãããã
åã¬ã³ãŒãã¯ä»¥äžã®3ã€ã®èŠçŽ ã§æ§æãããŠããŸãã
- ããã¹ãã®ãã£ã³ã¯ ㌠å ã®ããã¥ã¡ã³ããåå²ããæç« ã®æç
- åã蟌ã¿ïŒãšã³ããã£ã³ã°ããã¯ãã«ïŒ ㌠ããã¹ããæ°å€åãããã¯ãã«è¡šçŸ
- ã¡ã¿ããŒã¿ ㌠ãœãŒã¹ããã¥ã¡ã³ãã®ååãªã©ã®ä»å æ å ±
åã蟌ã¿ïŒãšã³ããã£ã³ã°ïŒã®ä»çµã¿
åã蟌ã¿ã¯ãããã¹ããç»åãªã©ã®ããŒã¿ããã¯ãã«ç©ºéäžã®ç¹ãšããŠè¡šçŸããæ¹æ³ã§ãã
äžå³ã§ç€ºãããŠããããã«ãäŸãã°ç«ãç¬ãè»ãšãã£ãç°ãªããªããžã§ã¯ãã¯ãããããã®ç¹åŸŽãæ°å€åããããšã§å€æ¬¡å ãã¯ãã«ãšããŠè¡šçŸãããŸãã
ãã®ãã¯ãã«è¡šçŸã§ã¯ã以äžã®ãããªç¹åŸŽãæã¡ãŸãã
- 忬¡å ãç¹å®ã®ç¹åŸŽïŒãµããµã床ãã²ã床ãªã©ïŒã衚çŸ
- 䌌ãç¹åŸŽãæã€ãªããžã§ã¯ãã¯ããã¯ãã«ç©ºéäžã§è¿ãã«é 眮ããã
- ç¹åŸŽã®éãã倧ãããªããžã§ã¯ãã¯ã空éäžã§é¢ããŠé 眮ããã
ç»åãææžãªã©ã®ç¹åŸŽãæ°å€ãã¯ãã«ã®åœ¢ã§è¡šçŸãããã®ãç¹åŸŽãã¯ãã«ãšåŒã³ãŸããç¹åŸŽãã¯ãã«ã®äžã§ããç¹ã«æ·±å±€åŠç¿ã®è¡šçŸåŠç¿ã§åŸããããã®ãåã蟌ã¿ïŒãšã³ããã£ã³ã°ïŒ ãšåŒã³ãŸãïŒå³å¯ãªçšèªã®äœ¿ãåãã®å®çŸ©ãããããã§ã¯ãããŸããïŒããŸããæ·±å±€åŠç¿ã«ããåã蟌ã¿ãçæããæ©æ¢°åŠç¿ã¢ãã«ãåã蟌ã¿ã¢ãã«ãšåŒã³ãŸãã
ãã®åã蟌ã¿ïŒãšã³ããã£ã³ã°ïŒãç¹ããªããã¯ãã«ç©ºéãåã蟌ã¿ç©ºéãšåŒã³ãŸãã䌌ãäºç©ã¯ã䌌ãç¹åŸŽãæã¡ããã®å€æ¬¡å ã®åã蟌ã¿ç©ºéïŒãã¯ãã«ç©ºéïŒã®äžã§è¿ãã«äœçœ®ããããšãšãªããŸãã
åã蟌ã¿ã¢ãã«ã®ä»çµã¿
åã蟌ã¿ã¢ãã«ã«ã¯ã倧ããåããŠ2ã€ã®ã¢ãããŒãããããŸããStatic EmbeddingïŒéçåã蟌ã¿ïŒãš Transformer ããŒã¹ã®æèèæ ®ååã蟌ã¿ã§ãã
Static Embedding
Static Embeddingã¯ãWord2VecãGloVeãªã©ã«ä»£è¡šãããææ³ã§ãååèªã«å¯ŸããŠåºå®ãããåã蟌ã¿ãã¯ãã«ãå²ãåœãŠãŸãã
- ãŸããããã¹ãã¯ããŒã¯ã³ïŒåèªãéšåæååïŒã«åå²ãããŸã
- åããŒã¯ã³ã¯ãäºåã«åŠç¿ãããåºå®ã®ãã¯ãã«ã«å€æãããŸã
- ãã®ãã¯ãã«ã¯ãå€§èŠæš¡ãªããã¹ãã³ãŒãã¹ããåŠç¿ãããåèªã®å ±èµ·é¢ä¿ãåæ ããŠããŸã
å ±èµ·é¢ä¿ãšã¯ãããåèªãå¥ã®åèªãšäžç·ã«äœ¿ãããããåŸåã®ããšãæããŸãã
- ãã³ãŒããŒããšããåèªã¯ã飲ãããã«ããããè±ããéŠãããªã©ã®åèªãšå ±ã«åºçŸãããã
- ãç é¢ãã¯ãå»åž«ããçè·åž«ããæ²»çãã蚺å¯ããªã©ãšå ±ã«åºçŸããé »åºŠãé«ã
- ãããã°ã©ãã³ã°ãã¯ãã³ãŒãããéçºããèšèªãããã°ããªã©ãšå ±ã«ãã䜿ããã
Word2Vecãªã©ã®éçåã蟌ã¿ã¢ãã«ã¯ããã®å ±èµ·é¢ä¿ãå©çšããŠåèªã®æå³ããã¯ãã«åããŸãã倧éã®ããã¹ãããŒã¿ãåæããåèªå士ã®å ±èµ·ãã¿ãŒã³ãåŠç¿ããããšã§ãæå³çã«è¿ãåèªã¯äŒŒããããªãã¯ãã«è¡šçŸãæã€ããã«ãªããŸãã
Static Embeddingã®éèŠãªç¹åŸŽãšããŠãåèªã®æèéäŸåæ§ããããŸããäŸãã°ã"bank"ãšããåèªã¯ããéè¡ïŒbankïŒã§å£åº§ãéèšããããšããæã§ãããåæïŒbankïŒãæ£æ©ãããããšããæã§ããæèã«é¢ä¿ãªãåäžã®ãã¯ãã«è¡šçŸã«å€æãããŸãããã®ãããå€çŸ©èªã®ç°ãªãæå³ãåºå¥ã§ããªããšããå¶éããããŸãã
ãŸããååèªã®åã蟌ã¿ãã¯ãã«ã¯ãåŠç¿ããŒã¿å ã§ã®å ±èµ·é¢ä¿ããèšç®ãããåºå®å€ãšãªããŸããã€ãŸããäžåºŠåŠç¿ãå®äºãããšãååèªã«å¯Ÿå¿ãããã¯ãã«ã¯å€åãããåºå®ãããå€ãšããŠäœ¿çšãããŸãã
ã·ã³ãã«ã§å¹ççã§è»œéã§ããããããšããžããã€ã¹ããã©ãŠã¶ç°å¢ã§ã®å©çšã«é©ããŠããŸãã
æè¿ã§ã¯ãLLM åæ§ã«ã¢ãã³ã·ã§ã³æ©æ§ã«ããæèãèæ ®ããTransformerããŒã¹ã®åã蟌ã¿ã¢ãã«ïŒæ¬¡é ïŒã泚ç®ãããŠãŸãããStatic Embedding ã¯ãçŸåšã§ãçºå±ãç¶ããŠããŸãã2025幎1æ ã«ã以äžã®ãããªæ°ããç ç©¶ïŒã¢ãã«ãå ¬éãããŠããŸãã
- Train 400x faster Static Embedding Models with Sentence Transformers
- 100åéã§å®çšçãªæç« ãã¯ãã«ãäœãããæ¥æ¬èª StaticEmbedding ã¢ãã«ãå ¬é
次ã«ç޹ä»ããTransformerããŒã¹ã®ã¢ãã«ã§ã¯ãå€çŸ©èªã®æèäŸåæ§ãæããããæè»ãªåã蟌ã¿ãçæå¯èœãšãªã£ãŠããŸãã
TransformerããŒã¹ã®æèèæ ®ååã蟌ã¿
ããé«åºŠãªåã蟌ã¿ã¢ãã«ã¯ãBERTãGPTãªã©ã®Transformerã¢ãŒããã¯ãã£ãåºç€ãšããŠããŸãããããã®ã¢ãã«ã¯ãå ¥åããã¹ãã®æèãèæ ®ããŠåçã«åã蟌ã¿ãçæããŸãã
åŠçã®æµãã¯ä»¥äžã®ããã«ãªããŸãã
- ããã¹ãã¯ããŸãStatic Embeddingãšåæ§ã«ããŒã¯ã³ã«åå²ãããŸã
- åããŒã¯ã³ã¯ãåºæ¬çãªãã¯ãã«è¡šçŸã«å€æãããŸãããã®æ®µéã§ã¯ãStatic Embeddingã«äŒŒã圢ã§åèªã®åºæ¬çãªæå³ã衚çŸãããŸã
- ãããããéèŠãªéãã§ããTransformerã¢ãã«ã¯ãåšå²ã®åèªãšã®é¢ä¿æ§ïŒæèïŒãèšç®ããŸããããã¯ã人éãæç« ãèªããšãã«ååŸã®æèãèæ ®ããããšã«äŒŒãŠããŸã
- ãã®æèã®èšç®ãäœåºŠãç¹°ãè¿ãããšã§ãããæ·±ãçè§£ã«åºã¥ããæçµçãªåã蟌ã¿ãçæãããŸã
ãã®ã¢ãããŒãã®ç¹åŸŽã¯ãStatic Embeddingãšã¯ç°ãªããåãåèªã§ãæèã«ãã£ãŠç°ãªãåã蟌ã¿ãçæãããç¹ã§ããäŸãã°ã"bank"ãšããåèªã¯
- ãéè¡ã«è¡ãããšããæã§ã¯éèæ©é¢ãšããŠã®æå³ãåæ ããåã蟌ã¿ã«
- ãåæãæ£æ©ããããšããæã§ã¯æ²³å·æ·ãšããŠã®æå³ãåæ ããåã蟌ã¿ã«
ãããã倿ãããŸãã
äžå³ã¯ãåãåèªïŒ"bank"ïŒãç°ãªãæèã«ãããŠç°ãªãåã蟌ã¿ã«å€æãããäŸã§ãã

Wiedemann ãã®Does BERT Make Any Sense? Interpretable Word Sense Disambiguation with Contextualized Embeddings ããç°ãªãæèã«ããã"bank"ã®ã³ã³ããã¹ãåã蟌ã¿ã®äŸ
ãŸããæè¿ã®TransformerããŒã¹ã®ã¢ãã«ã¯ãå ¥åããã¹ããå¹ççã«åŠçããããã«ãæ§ã ãªããŒã¯ã³åæŠç¥ïŒBPEãWordPieceãSentencePieceãªã©ïŒãæ¡çšããŠããŸããããã«ãããæªç¥èªãè€åèªãé©åã«åŠçããããšãå¯èœã«ãªã£ãŠããŸãã
ãã®ããã«ãTransformerããŒã¹ã®ã¢ãã«ã¯ãããè±ããªæèæ å ±ãæããããšãã§ããäžæ¹ã§ãèšç®ã³ã¹ããé«ããªããšãããã¬ãŒããªãããããŸãã
ãŸããStatic Embedding ã¢ãã«ã§ããTransformerããŒã¹ã®ã¢ãã«ã§ãåã蟌ã¿ã¢ãã«ããåŸãããåºåã¯åããŒã¯ã³ã«å¯Ÿå¿ããåã蟌ã¿ãã¯ãã«ã®ç³»åãšãªãããããããå¹ççã«å©çšããããã®å·¥å€«ãå¿ èŠãšãªããŸãã
PoolingïŒããŒãªã³ã°ïŒã®åœ¹å²
åã蟌ã¿ã¢ãã«ã¯å ¥åããã¹ãã®åããŒã¯ã³ã«å¯Ÿå¿ããåã蟌ã¿ã®ç³»åãçæããŸãïŒããŒã¯ã³ã®æ°ã ãåã蟌ã¿ãçæãããïŒããããããã¯ãã«ããŒã¿ããŒã¹ã®ãããªå®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãææžããã¬ãŒãºå šäœã1ã€ã®åã蟌ã¿ãšããŠè¡šçŸããã»ããæ±ãããããå¹ççã§ããããã§éèŠãšãªãã®ããPoolingïŒããŒãªã³ã°ïŒãšåŒã°ããæäœã§ãã
Poolingã¯ãè€æ°ã®åã蟌ã¿ããåäžã®åã蟌ã¿è¡šçŸãçæããææ³ã§ããäž»ãªææ³ãšããŠä»¥äžããããŸãã
Mean PoolingïŒå¹³åããŒãªã³ã°ïŒ
æãäžè¬çãªã¢ãããŒãã®1ã€ã§ãå šãŠã®ããŒã¯ã³ã®åã蟌ã¿ã®å¹³åãåããŸããææžå šäœã®æå³ãåçã«åæ ãããç¹åŸŽããããŸãã
Max PoolingïŒæå€§ããŒãªã³ã°ïŒ
忬¡å ã§æå€§å€ãåãææ³ã§ããç¹ã«é¡èãªç¹åŸŽãæããã®ã«æå¹ã§ãããã ããææžã®äžéšã®æ å ±ã®ã¿ã匷調ãããå¯èœæ§ããããŸãã
CLS Token PoolingïŒCLSããŒã¯ã³ããŒãªã³ã°ïŒ
BERTãªã©ã®Transformerã¢ãã«ã§ãã䜿ãããææ³ã§ããæé ã«ç¹å¥ãªããŒã¯ã³ïŒ[CLS]ïŒãé 眮ãããã®ããŒã¯ã³ã®æçµå±€ã®åºåãææžå šäœã®è¡šçŸãšããŠäœ¿çšããŸããã¢ãã«ã¯åŠç¿æã«ããã®ããŒã¯ã³ãææžå šäœã®æå³ãèŠçŽããããã«èšç·ŽãããŠããŸãã
Attention PoolingïŒã¢ãã³ã·ã§ã³ããŒãªã³ã°ïŒ
ããŒã¯ã³ã®éèŠåºŠãåŠç¿å¯èœãªãã©ã¡ãŒã¿ãšããŠæã¡ãéã¿ä»ãå¹³åãèšç®ããææ³ã§ããæèã«å¿ããŠé©å¿çã«éèŠãªããŒã¯ã³ã匷調ã§ããŸãã
äžå³ã¯ãMean PoolingïŒå¹³åããŒãªã³ã°ïŒã®ã€ã¡ãŒãžã§ãã

ãã®ãããªããŒãªã³ã°ã«ããåã蟌ã¿ãæã£ãŠããç¹åŸŽãããçšåºŠåæ ãã€ã€å®¹éãåçã«å°ããããããšãã§ããã¹ãã¬ãŒãžå®¹éãæããããšãã§ããŸãããããŠãåŸã®æ€çŽ¢ã®éã®æŒç®éãå°ãªãããããšãã§ããŸãã
åã蟌ã¿ã®å¯èŠåã®äŸ
åã蟌ã¿ã®å¯èŠåã®äŸïŒäººäºéšéïŒçµçéšéãžã®è³ªåæïŒ

ããã¯ã人äºã»çµçåéšéãžã®ä»®æ³çãªè³ªåæã®åã蟌ã¿ã OCI Generative AI ãµãŒãã¹ã®ãã¬ã€ã°ã©ãŠã³ãã§ Cohere Embed Multilingual V3ïŒTransformerããŒã¹ïŒ ã§çæããåã蟌ã¿ãå¯èŠåãããã®ã§ãã1ãã20ã®äººäºéšéãžã®è³ªåã¯å³ååã«ã21ãã40ã®çµçéšéãžã®è³ªåã¯å·Šååã«åã£ãŠååžããŠããããšãããããŸãã
確ãã«Â æå³çãªäœãÂ ïŒæ·±å±€åŠç¿ãèŠåºããç¹åŸŽïŒãåã蟌ã¿ã«åæ ãããŠããããã§ãã
åã蟌ã¿ã®å¯èŠåã®äŸïŒç·åçå ¬éã®FAQïŒ
WizMap ã«ããå¯èŠå

ãã¡ãã¯ãç·åçã®ãµã€ãã§å
¬éãããŠããåœã»å°æ¹å
±éçžè«ãã£ããããã GovbotïŒã¬ãããïŒã«æèŒãããŠããååéã®FAQããŒã¿ïŒå
šåéïŒã®ãåããã WiZMap ã§æ¬¡å
åæžïŒäºæ¬¡å
ãžå°åœ±ïŒããŠå¯èŠåãããã®ã§ããWiMapã®ãã¢ãµã€ã ã§ã€ã³ã¿ã©ã¯ãã£ãã«èŠãŠããã ãããšãã§ããŸããå§çž®ãããäºæ¬¡å
空éã®äžã§ã䌌ããåãããéãŸã£ãŠããããšãèŠãŠããã ãããšãã§ããŸãã
ãªããWizMap ã«äœ¿ãæ¹ã¯äžèšã®èšäºã§ã玹ä»ããŠããŸãã
UMAP ã«ããå¯èŠåïŒïŒïŒ

ãã¡ãã¯ãå
çšãšåãç·åçãå
¬éããŠãã FAQ ã®ãåããã UMAP ã§å¯èŠåãããã®ã§ãããåãããã倧åé¡ãæ¯ã«ã¯ã©ã¹ã¿ãŒã圢æããŠããããšãããããŸãã
ãã¡ãã®æé ãäžã®èšäºã§ã玹ä»ããŠãŸãã
UMAP ã¯ã屿çãªæ§é ã«æ³šç®ããŠåŒ·èª¿ããããå®é以äžã«ã¯ã©ã¹ã¿ã®ååšã匷調ãããŠããŸãããšããããŸããã€ãŸããæ¬åœã¯ååšããŠããªãã¯ã©ã¹ã¿ãèŠããŠããŸãããšããããŸããPCAãªã©ã®å€§å±çãªæ§é ã«æ³šç®ããææ³ãšäœµçšããããšãå¿
èŠã§ãã
ãŸãããã«ãã¢ãŒãã«ãªåã蟌ã¿ã®å Žåã«ã¯ãäºç©ã®æå³çãªã¯ã©ã¹ã¿ã®åã«ã¢ãŒãã«æ¯ã®ã¯ã©ã¹ã¿ãèŠããŠããŸãäžèŠã¢ãŒãã«ãè¶ããé¡äŒŒæ§ãåã蟌ã¿ã«åæ ãããŠããªãããã«èŠããŠããŸãããšããããŸããäŸãã°ãããã¹ããšç»åã®ãã«ãã¢ãŒãã«ãªåã蟌ã¿ã UMAP ã§å¯èŠåãããšãããã¹ãããçæããåã蟌ã¿ã®ã¯ã©ã¹ã¿ãšããããšã¯å¥ã«ç»åããçæããå蟌ã¿ã®ã¯ã©ã¹ã¿ãèŠããŠããŸããç«ããšããããã¹ããšç«ã®ç»åãåã蟌ã¿ç©ºéäžã§è¿ãã«äœçœ®ããŠããªãããã«èŠããŠããŸãããšããããŸãã
X ã«æçš¿ãããŠããäŸ ãŒ https://x.com/yuji_amanogawa/status/1876186079629644032
UMAP ã«ããå¯èŠåïŒïŒïŒ
ãã¡ãã¯ãå çšãšåãç·åçãå ¬éããŠãã FAQ ã®ãåãããšãåçããé£çµã㊠ã UMAP ã§å¯èŠåãããã®ã§ããèµ€ã¯ãå£ããå ¥ã£ãŠããQAã§ãéã¯ãã®ä»ã衚ããŠããŸãã
103äžåã150äžåã106äžåã130äžåã®å£ã«é¢ããQAïŒèµ€ïŒãéãŸã£ãŠããããšãèŠãŠåããŸãã
ãã¯ãã«æ€çŽ¢ã®ä»çµã¿
åã蟌ã¿ç©ºéïŒãã¯ãã«ç©ºéïŒã®äžã§äŒŒããã®ãèŠã€ããã«ã¯ãåã蟌ã¿éã®è·é¢ãèšç®ããŠãæãè¿ãã«äœçœ®ããåã蟌ã¿ãèŠã€ããã°ããããšãšãªããŸãã
ããã§ããã¯ãã«ããŒã¿ããŒã¹ã®ãã¯ãã«æ€çŽ¢ã¯ãäžå³ã«ç€ºãããŠããããã«ãã¯ãšãªïŒæ€çŽ¢ãããå 容ïŒã®åã蟌ã¿ãšç»é²ãããŠããããŒã¿ã®åã蟌ã¿ãšã®è·é¢ãèšç®ããããšã§è¡ãããŸããäž»ãªè·é¢ã®ææšãšããŠä»¥äžããããŸãã
- L2è·é¢ïŒãŠãŒã¯ãªããè·é¢ïŒ ㌠空éäžã®çŽç·çãªè·é¢ïŒãŠãŒã¯ãªããè·é¢ãšãåŒã°ããã3次å 空éã®ãããçŽèгçãªè·é¢ã«çžåœïŒ
- ã³ãµã€ã³è·é¢ ㌠ãã¯ãã«éã®è§åºŠã«åºã¥ãè·é¢ïŒ1 â ã³ãµã€ã³é¡äŒŒåºŠïŒ
- å ç©ïŒããããããã¯ãïŒ ãŒ ãã¯ãã«ãšãã¯ãã«ã®å ç©ãè§åºŠã«å ããŠããã¯ãã«ã®å€§ãããåæ ããææšã倧ãããïŒã«æ£èŠåãããšã³ãµã€ã³é¡äŒŒåºŠãšåç
è¿äŒŒæè¿åæ¢çŽ¢ïŒANN ㌠Approximate Nearest NeighborïŒãšã¯
ã¯ãšãªã®åã蟌ã¿ãšæãé¡äŒŒããæ€çŽ¢å¯Ÿè±¡ã®åã蟌ã¿ã k åèŠã€ãåºãéãã¯ãšãªæã®åã蟌ã¿ãšãããŒã¿ããŒã¹å ã®ãã¹ãŠã®æ€çŽ¢å¯Ÿè±¡æã®åã蟌ã¿ãšã®è·é¢ãèšç®ããè·é¢ãè¿ãé ã« k åã®åã蟌ã¿ãéžã³åºã k-æè¿åïŒkNN ㌠k-Nearest NeighborsïŒã§ã¯èšå€§ãªè·é¢èšç®ãå¿ èŠãšãªããŸããããã¯å³å¯è§£ãæ±ããããšãã§ããŸããèšç®ã³ã¹ããéåžžã«é«ããå®çšçã§ã¯ãããŸãããããã§ãè¿äŒŒæè¿åæ¢çŽ¢ïŒANNïŒãšããææ³ã䜿çšããŸãã
ANNã¯ãå®å
šãªç²ŸåºŠãå°ãç ç²ã«ãã代ããã«ãåçã«æ€çŽ¢é床ãåäžãããŸãã
ANNã¯ãäžè¬ã«ä»¥äžã®ãããªç¹åŸŽãæã£ãŠããŸãã
-
ã€ã³ããã¯ã¹æ§ç¯
- æ€çŽ¢åã«åã蟌ã¿ããŒã¿ã«å¯ŸããŠç¹æ®ãªã€ã³ããã¯ã¹æ§é ãæ§ç¯ããŸããããã«ãããæ€çŽ¢æã®æ¢çŽ¢ç©ºéãå€§å¹ ã«åæžã§ããŸã
-
è¿äŒŒæ§
- å®å šãªæ¢çŽ¢ãšæ¯ã¹ãŠãããããªç²ŸåºŠã®äœäžã¯èš±å®¹ãã代ããã«ãæ°æ¡ã®ãªãŒããŒã§æ€çŽ¢é床ãåäžãããŸã
-
ã¡ã¢ãªå¹ç
- ã€ã³ããã¯ã¹æ§é ã«ãããã¡ã¢ãªäœ¿çšéãšæ€çŽ¢é床ã®ãã¬ãŒããªãã調æŽã§ããŸã
代衚çãªã¢ã«ãŽãªãºã ã«ã¯ãHNSWïŒHierarchical Navigable Small WorldïŒ ããããŸãããªãŒãã³ãœãŒã¹ã§äººæ°ã® Chromadb ã®ã€ã³ããã¯ã¹ã¯ HNSW ã¢ã«ãŽãªãºã ãæ¡çšããŠããŸãããŸããOracle Database 23ai ã®AI Vector Search ã¯è€æ°ã®ã€ã³ããã¯ã¹ã»ã¿ã€ãããµããŒãããŠããŸããã€ã³ã¡ã¢ãªè¿åã°ã©ãã»ãã¯ãã«çŽ¢åŒãäœæããããšã«ããHNSWã¢ã«ãŽãªãºã ãå©çšå¯èœãšãªããªãã

Oracle AI Vector Search æè¡è©³çް p.13ããåçš
HNSWã¯å€å±€ã®ã°ã©ãæ§é ãæ§ç¯ããäžäœå±€ããåŸã ã«äžäœå±€ãžãšæ¢çŽ¢ç¯å²ãçµã蟌ãããšã§ãå¹ççã«é¡äŒŒããåã蟌ã¿ãèŠã€ãåºãã¢ã«ãŽãªãºã ã§ãã
ãã®HNSWã¢ã«ãŽãªãºã ã¯ã以äžã®ãããªã¡ãã£ãšå€ãã£ãééã®æ
ã«äŸããããšãã§ããŸãã
çŠå²¡ã«ãã人ãééã«ä¹ã£ãŠç§»åããªããæž¯åºã®ãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãé§
ãè¿ãé ã«ïŒã€æ¢ããŠãããšããŸãã
ãã ããæ¢çŽ¢ã«ããã£ãŠã¯
- æ°å¹¹ç·ã«ä¹ã£ãŠãããšãã¯ãåæ°å¹¹ç·é§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ããç¥ãããšãã§ãã
- åšæ¥ç·ã«ä¹ã£ãŠãããšãã¯ãååšæ¥ç·é§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ããç¥ãããšãã§ãã
- å°äžéã«ä¹ã£ãŠãããšãã¯ãåå°äžéé§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ããç¥ãããšãã§ãã
ãšããå¶çŽæ¡ä»¶ããããšããŸãã
ããŠãæåã«çŠå²¡ã§æ°å¹¹ç·ã«ä¹è»ããŸã
- ä¹è»ãããæ°å¹¹ç·ã®äžè»é§ ãèããŸãã䜿ããæ å ±ã¯ãåæ°å¹¹ç·é§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ãã§ãããªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãæ°å¹¹ç·ã®é§ ã¯ãè¿ãé ã«ãäŸãã°ãæ±äº¬é§ ãåå·é§ ãæ°æšªæµé§ ãå€§å®®é§ ãšãªãããã§ãïŒæ±æµ·éæ°å¹¹ç·ãæ±åæ°å¹¹ç·ã®éãã¯ãã®éç¡èŠããŸãïŒ
- ããã§ãç®çå°ã«æãè¿ãæ±äº¬é§ ã§æ°å¹¹ç·ãäžè»ããŸã
- æ±äº¬é§ ã§ã¯å±±æç·ïŒåšæ¥ç·ïŒã«ä¹è»ããŸã
- 次ã«å±±æç·äžè»é§ ãèããŸãã䜿ããæ å ±ã¯ãåå±±æç·é§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ãã§ãããªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãå±±æç·ã®é§ ã¯ãè¿ãé ã«ãäŸãã°ãæ°æ©é§ ãææ¥œçºé§ ãæµæŸçºé§ ãšãªããããããŸããïŒåŒççæ°ã®æãªã®ã§ã¯ãããŠãæ°ã«ããªãã§ãã ããïŒ
- ããã§ãç®çå°ã«æãè¿ãæ°æ©é§ ã§äžè»ããŸã
- æ°æ©é§ ã§ã¯é座ç·ïŒå°äžéïŒã«ä¹è»ããŸã
- 次ã«é座ç·äžè»é§ ãèããŸãã䜿ããæ å ±ã¯ãåé座ç·é§ ãšãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã®è·é¢ã ãã§ãããªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãé座ç·ã®é§ ã¯ãè¿ãé ã«ãäŸãã°ãå€èåãéå±±äžäžç®ã衚åéãšãªããŸã
以äžã®æ¢çŽ¢ã§ããã®çŠå²¡ãåºçºãã人ã¯ããªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãäžäœïŒé§ ã¯å€èåé§ ãéå±±äžäžç®é§ ã衚åéé§ ã§ããããšãèŠã€ããŸãããHNSWã«ãããã¯ãã«æ€çŽ¢ã§ããã°ããªã©ã¯ã«éå±±ã»ã³ã¿ãŒã¯ã¯ãšãªãŒã®åã蟌ã¿ãå€èåé§ ã¯ãã¯ãšãªãŒã«æã䌌ãŠããããã¥ã¡ã³ãã®åã蟌ã¿ã衚ããŠããŸãã
HNSWã®ãã©ã¡ãŒã¿
å€èååšèŸºã®å°å³ãèŠããšçŽç·è·é¢ã§ãªã©ã¯ã«éå±±ã»ã³ã¿ãŒã«è¿ãé§
ãšããŠãå代ç°ç·ä¹æšåé§
ãå€§æ±æžç·åœç«ç«¶æå Žé§
ãç·æŠç·ä¿¡æ¿çºé§
ãããããšãããããŸããäžã®äŸã®æ¢çŽ¢ã§ã¯é座ç·ã®ã¿ãæ¢çŽ¢ããŠãããããããã®é§
ãèŠéããŠããŸãããããäžäœ5é§
ãæ¢ããŠãããšããããããã®åè£é§
ãèŠéããŠãªã©ã¯ã«éå±±ã»ã³ã¿ãŒããé ãé座ç·ã®é§
ããªã¹ãããŠããŸãæ£ããäžäœ5é§
ãèŠã€ããããšã¯ã§ããªãã£ãã¯ãã§ããå®éã® HNSW ã§ã¯ãã®ãããªç¶æ³ãç·©åããããã«æ¢çŽ¢ããç¯å²ãåºãåãããã«å®è£
ãããŠããŸãããã®åºããæå®ãããã©ã¡ãŒã¿ã¯ãexploration factorïŒæ¢çŽ¢ä¿æ°ïŒããããã¯åã«efãšåŒã°ãããã®ã§ãOracle Database 23ai AI Vector Search ã§ããã°ãEFSEARCH ãChromadb ã§ããã°ãsearch_ef ãã©ã¡ãŒã¿ã§ãã
次åã第3ç« ã§ã¯ããã®æ¢çŽ¢ä¿æ°ãäžé©åãªå Žåã«HNSWãé¢çœãïŒå°ã£ãïŒæ¯èããèŠããäŸãã玹ä»ããŸãã
ãã©ã¡ãŒã¿èª¿æŽãããŒã¿ããŒã¹ã«ä»»ãã
HNSWã«ã¯ããã®æ€çŽ¢æã®æ¢çŽ¢ä¿æ°ä»¥å€ã«ãæ§èœãšç²ŸåºŠã®ãã¬ãŒããªãã調æŽããããã€ãã®ãã©ã¡ãŒã¿ããããå€§èŠæš¡ãªã·ã¹ãã ã§ã¯ãããã®ãã©ã¡ãŒã¿ã®èª¿æŽãéèŠãšãªããŸãïŒãåè ㌠Hierarchical Navigable Small World玢åŒã®çè§£ïŒããããããããã®ãã©ã¡ãŒã¿ã¯çŽèгçã«åããããããã®ã§ã¯ãªã調æŽãé£ããããšããããŸããOracle Database 23ai AI Vector Search ã§ã¯ãã€ã³ããã¯ã¹äœææãæ€çŽ¢æã«ãããã®ãã©ã¡ãŒã¿ãçŽæ¥æå®ãã代ããã«ç®æšãšãªã粟床ãæå®ããŠããã©ã¡ãŒã¿ã®èª¿æŽã¯ Oracle Database ã«ä»»ããããšãã§ããŸãã
HNSWãªã©ã®è¿äŒŒè¿åæ€çŽ¢ãå³å¯è§£ã®ãã¡ã©ã®çšåºŠãã«ããŒããŠããããšãã search recall@k ãšããã¡ããªãã¯ããããŸãããã¯ãã«ããŒã¿ããŒã¹ã®æ€çŽ¢ç²ŸåºŠãšãã£ãå Žåã«ã¯ãããæããŠããŸãã
RAG ãšãã¯ãã«æ€çŽ¢ã®ç²ŸåºŠ
ïŒRAG ã®è§£èª¬ãããåã§ãããã®ç¯ã«ã¯ RAG ã«é¢ããåºæ¬çãªç¥èãåæãšããèšè¿°ãå«ãŸããŸããïŒ
ãã¯ãã«ããŒã¿ããŒã¹ã®æè¡çãªåŽé¢ããèŠãå Žåã®"粟床"ã¯ãã®ã«ããŒçã§ãããRAG ã®å®åã§ã¯ãLLM ãåççæã«å¿
èŠãªããŒã¿ããã¯ãã«ããŒã¿ããŒã¹ãã©ãã ãåã£ãŠæ¥ããããéèŠãšãªããŸããããã¯ãContext Recall ãšåŒã°ããŸãããã¯ãã«ããŒã¿ããŒã¹ãã®ãã®ã®æ€çŽ¢ç²ŸåºŠãšã¯ç°ãªãããšã«æ³šæãå¿
èŠã§ããContext Recall ã¯ãäž»ã«ä»¥äžã®4ã€ã®èŠå ã§æ±ºãŸããŸãã
- ããŒã¿ããŒã¹ã«ç»é²ãããŠãããŒã¿ã®è³ª
- å ã®ããŒã¿ã®è³ª ㌠ããããåçã§ããæ å ±ãå«ãŸããŠããã
- ãã£ã³ã¯ã®è³ª ㌠äŸãã°ãFAQããã£ã³ã¯åå²ããéã«ãFAQãæ ŒçŽããCSVãã¡ã€ã«ãåçŽã«ãã£ã³ã¯åå²ããã ãã ãšãã質åæïŒåçã®å é éšåããå«ãŸãããã£ã³ã¯ããåçã®äžéšãã ããå«ãŸãããã£ã³ã¯ããåçã®äžéšã𿬡ã®è³ªåæããå«ãŸãããã£ã³ã¯ãªã©ãã§ããŠããŸããŸãããããæ€çŽ¢å¯Ÿè±¡ãšããå Žåããåçã®äžéšãã ããå«ããã£ã³ã¯ãèŠã€ããããšã¯å°é£ã§ããã±ãŒã¹ããããŸããããåçã®äžéšã𿬡ã®è³ªåããå«ããã£ã³ã¯ã¯åççæã«ããã£ãŠã¯ãã€ãºãšãªãå¯èœæ§ããããŸããåãã£ã³ã¯ã«ã質åæãšåçã®äžéšããã»ããã§å«ãŸãããããªååŠçãå¿ èŠã§ã
- åã蟌ã¿ã®è³ª
- åã蟌ã¿ã¢ãã«ãçæããåã蟌ã¿ïŒãã¯ãã«ïŒãã©ã®çšåºŠå ã®ããŒã¿ã®æå³ãåæ ã§ããŠããã
- ãã£ã³ã¯ãµã€ãºãšååŸä»¶æ°
- 倧ããªãã£ã³ã¯ãïŒã€ã®åã蟌ã¿ã«æŒã蟌ãã°å¿ ç¶çã«æ å ±ã¯èãŸããŸãããã£ã³ã¯ãå°ããããããååŸä»¶æ°ãå°ãªããã°æ å ±ã®åãããŒããå¢ããŸã
- ãã£ã³ã¯ãµã€ãºãšååŸä»¶æ°ãå€ãããšãã® Context Recall ã«ã€ããŠã¯åŸç¶ã®ç« ã§å ·äœäŸãã玹ä»ããŸã
- ãæ¥ãã®å Žåã¯ãã¡ãã®ã¢ãŒã«ã€ãåç» ã® 52å17ç§ãã1æé42ç§ããããèŠãŠã¿ãŠãã ãã
- ãã¯ãã«ããŒã¿ããŒã¹ã®æ€çŽ¢ç²ŸåºŠ
- è¿äŒŒè¿åæ€çŽ¢ãå³å¯è§£ã®ã©ã®çšåºŠãã«ããŒããŠããã
ã€ãŸãããã¯ãã«ããŒã¿ããŒã¹ã®æ€çŽ¢ç²ŸåºŠã¯ãContext Recall ã®ç²ŸåºŠã®èŠå ã®ã²ãšã€ã«éããŸããã
ãŸããæè¿ã® Toward Optimal Search and Retrieval for RAG ãšããè«æã§ã¯ãRAG ã«ãããŠã¯ããã® search recall@k ã 70% çšåºŠãŸã§èœãšããŠã RAG ã®æ§èœã«ã¯ããŸã圱é¿ããªãããšãå ±åãããŠããŸãããŸããæ€çŽ¢ç²ŸåºŠãäžããããšã§ãããæ€çŽ¢é床ãšã¡ã¢ãªå¹çãåäžã§ããã¡ãªãããããããšã瀺åãããŠããŸãã
å®éã®PoCãããžã§ã¯ããªã©ã«ãããŠæåãããããžã§ã¯ãã¯ãããŒã¿ã®è³ªãã«éç¹ã眮ããŠããŸããæå ã®ããŒã¿ããšããããæŸã蟌ãã§äœãèµ·ãããèŠãŠã¿ããšãã£ãPoCã¯ãçŸæç¹ã§ã¯æ§åèŠããšããçµè«ã§çµãã£ãŠããŸãããã§ããå°æ¥çã«ã¯ãAIãšãŒãžã§ã³ãæè¡ããã«ãã¢ãŒãã«ãªã©ãé§äœ¿ããRAG ã®ãããŒãžããµãŒãã¹ããã®ãããããã¹ãŠè§£æ±ºããŠãããããšãæåŸ ããããšããã§ããã仿¥æç¹ã§ã¯ããšã³ãžãã¢ã®çæ§ã掻èºããå Žé¢ã§ããã
æ€çŽ¢ã®å®è¡äŸ
èªç¶èšèª ã§ èªç¶èšèª ãæ€çŽ¢
äžå³ã¯å®éã®æ€çŽ¢ã®æ§åã瀺ããŠããŸãã
- æ€çŽ¢ã¯ãšãªïŒäŸ ãŒ ãæŠäºãæããæ ç»ãïŒãåã蟌ã¿ã¢ãã«ã«ãã£ãŠãã¯ãã«åããã
- ãã®ãã¯ãã«ãšãããŒã¿ããŒã¹ã«æ ŒçŽãããåãã£ã³ã¯ã®åã蟌ã¿ãã¯ãã«ãšã®è·é¢ãèšç®ããã
- æãè¿ãïŒãã¯ãã«éã®è·é¢ãè¿ã â äºç©ã®é¡äŒŒåºŠãé«ãïŒäžäœkä»¶ã®çµæãè¿ããã
ãã®äŸã§ã¯ãçæAIã¢ããªã±ãŒã·ã§ã³ã®ãã¬ãŒã ã¯ãŒã¯ã§ãã LangChain ã® similarity_search_with_score()ã¡ãœããã䜿çšããŠãè·é¢ã®ã¹ã³ã¢ãšå
±ã«äžäœ3ä»¶ã®æ€çŽ¢çµæãååŸããŠããŸããã¹ã³ã¢ãå°ããã»ã©ãã¯ãšãªã«è¿ãïŒããé¡äŒŒããŠããïŒããšã瀺ããŠããŸãã
èªç¶èšèª ã§ ç»åãæ€çŽ¢

ã壮倧ãªå®å®ã®ã¹ãã¯ã¿ã¯ã«ããšããããã¹ãã§ç»åãæ€çŽ¢ããäŸã§ãã
ç»å ã§ ç»åãæ€çŽ¢

å³äžã§ã¢ããããŒãããç»åã®åã蟌ã¿ã§ãã¯ãã«ããŒã¿ããŒã¹å
ã®ç»åã®åã蟌ã¿ãæ€çŽ¢ãããã®ã§ãã
ãã®ããã«ããã¯ãã«ããŒã¿ããŒã¹ã¯ãããã¹ããç»åãªã©ã®ããŒã¿ã®æå³çãªé¡äŒŒæ§ã«åºã¥ãæ€çŽ¢ãå¯èœã«ããRAGã·ã¹ãã ã«ãããŠéèŠãªåœ¹å²ãæãããŠããŸãã
ãªãããã®èšäºã§ã¯ãäž»ã«ããã¹ãã®åã蟌ã¿ãæ±ããŸãããäžã®ç»åæ€çŽ¢ã®ãããªãã«ãã¢ãŒãã«ïŒèªç¶èšèªãšç»åïŒãªæ€çŽ¢ãåã蟌ã¿ã«ã€ããŠã¯ã以äžã®èšäºãšãŠã§ãããŒã®ã¢ãŒã«ã€ãåç»ã§è§£èª¬ããŠããŸãã
ãŸãšã
æ¬ç« ã§ã¯ãRAGãæ¯ããéèŠãªæè¡èŠçŽ ã§ãããã¯ãã«æ€çŽ¢ã®ä»çµã¿ã«ã€ããŠè§£èª¬ããŸãããç¹ã«ä»¥äžã®ç¹ã«ã€ããŠè©³ããèŠãŠããŸããã
- ãã¯ãã«ããŒã¿ããŒã¹ã¯ãããã¹ãã®æå³ãèæ ®ããæ€çŽ¢ãå¯èœã«ããå€§èŠæš¡ããŒã¿ã«å¯Ÿããé«éãªæ€çŽ¢ãå®çŸããæè¡ã§ã
- åã蟌ã¿ïŒãšã³ããã£ã³ã°ïŒã«ã¯ãåºå®çãªStatic Embeddingãšãæèãèæ ®ã§ããTransformerããŒã¹ã®2ã€ã®ã¢ãããŒãããããããããã«ç¹åŸŽããããŸã
- ããŒãªã³ã°åŠçã«ãããããŒã¯ã³åäœã®åã蟌ã¿ããææžå šäœã衚çŸããåäžã®åã蟌ã¿ãã¯ãã«ãçæããå¹ççãªæ€çŽ¢ãå¯èœã«ããŠããŸã
- è¿äŒŒæè¿åæ¢çŽ¢ïŒANNïŒãçšããããšã§ãè¥å¹²ã®ç²ŸåºŠäœäžãšåŒãæãã«æ€çŽ¢é床ãå€§å¹ ã«åäžãããããšãã§ããŸã
- æè¿ã®ç ç©¶ã§ã¯ãRAGã·ã¹ãã ã«ãããŠæ€çŽ¢ç²ŸåºŠïŒsearch recall@kïŒã70%çšåºŠãŸã§äžããŠãæ§èœã«ããŸã圱é¿ããªãããšãå ±åãããŠãããæ€çŽ¢é床ãšã®ãã©ã³ã¹ãåãããšãå¯èœã§ã
ãã®ãããªæè¡çåºç€ã®çè§£ã¯ãRAGã·ã¹ãã ãå®è£ ã»éçšããäžã§éèŠãšãªããŸããæ¬¡ç« ã§ã¯ããããã®ç¥èãæŽ»ãããªãããå®éã®ãã¯ãã«ããŒã¿ããŒã¹ã§ããChromaDBã䜿çšããå ·äœçãªå®è£ æ¹æ³ã«ã€ããŠè§£èª¬ããŠãããŸãã
ç¶ãã®ãæ¡å
ãçæAIãããè³¢ã ㌠ãšã³ãžãã¢ã®ããã®RAGå
¥éïŒç¬¬ïŒç« ïŒãRAGãæ¯ããæè¡ ㌠ãã¯ãã«æ€çŽ¢ã®ä»çµã¿ãïŒåã蟌ã¿ã¢ãã«ãããã¯ãã«ããŒã¿ããŒã¹ãŸã§ïŒããæåŸãŸã§ãèªã¿ããã ãããããšãããããŸãã
åŸæ¥å
¬éäºå®ã®åŸç¶ã®ç« ã§ã¯ç¬¬ïŒç« ã§ããã¯ãã«æ€çŽ¢ãïŒChromaDBç·šïŒããããŠã第ïŒç« 以éã§ã¯ããåºæ¬çãªRAGã®ä»çµã¿ãšå®è£
æ¹æ³ãããRAGã®æè¡ç課é¡ãšå®è·µçãªè§£æ±ºçãããRAGã®ææ°ååãšä»åŸã®å±æãã«ã€ããŠæ±ãäºå®ã§ãã
é¢é£èšäºã®ãæ¡å






