ãã¡ã€ã³ãã¥ãŒãã³ã°ãªãã§LLMã«ããŒã¿ãžã®ã¢ã¯ã»ã¹ãå¯èœã«ããŸããRAGã¯ãæ±çšèšèªã¢ãã«ãšãã¡ã€ã³åºæã®ç¥èãšã®éã®ã®ã£ãããåããŸãã

çµç¹ã®ããã¥ã¡ã³ãïŒå¥çŽæžãããªã·ãŒããã¬ããžããŒã¹ã補åããã¥ã¡ã³ããå»çèšé²ãªã©ïŒã«é¢ãã質åã«çããAIã¢ã·ã¹ã¿ã³ããæ§ç¯ããããšèããŠããå ŽåãLLMãããŒã¿ã«åºã¥ããŠãã¡ã€ã³ãã¥ãŒãã³ã°ããããšã¯ãé«äŸ¡ã§æéããããããã¬ãŒãã³ã°æç¹ããåºå®ãããã¢ãã«ãäœæããããšã«ãªããŸããLLMãã¯ãšãªæã«ææ°ã®ãã¡ã€ã³åºæã®æ å ±ã«ã¢ã¯ã»ã¹ãããã®æ å ±æºãåŒçšããããã¥ã¡ã³ãã«ååšããªãäºå®ã®ãã«ã·ããŒã·ã§ã³ãé¿ããããšãã§ããã¢ãŒããã¯ãã£ãå¿ èŠã§ããRAGïŒRetrieval-Augmented GenerationïŒã¯ããã®å®çŸæ¹æ³ã§ãã
Explore more design patterns and system architectures

ã¢ãã«ã¯ããèªäœã§åäœããããã§ã¯ãããŸãããã¢ãã«ã®ãã¬ãŒãã³ã°ãæ€èšŒããããã€ãç£èŠãè¡ããã€ãã©ã€ã³ãããå®éã®è£œåã§ãããã¢ãã«ã¯ãã®ææç©ã®äžã€ã«éããŸããã

MicrocosmWorks 㯠RAG ãã€ãã©ã€ã³ã«ãããç«¶å解決ãããœãŒã¹æš©åšã©ã³ãã³ã°ãã¿ã€ã ã¹ã¿ã³ãã«åºã¥ãææ°æ§éã¿ä»ãããããŠåååŸããã»ãŒãžããã®äž»åŒµãã©ãã ãåŒ·ãæ¯æããããè©äŸ¡ããä¿¡é ŒåºŠã¹ã³ã¢ãªã³ã°ãéããŠå®è£ ããŠããŸããççŸããããã»ãŒãžãååŸãããå Žåãåœç€Ÿã®ãã€ãã©ã€ã³ã¯æãæš©åšã®ããåçãæç€ºãããŠãŒã¶ãŒãæ å ±ã«åºã¥ããæææ±ºå®ãè¡ãããããäžäžèŽãšåºå žãéæã«è¡šç€ºããŸãããŸãããã¡ã€ã³ãšãã¹ããŒããäžæ£ç¢ºãªè§£æ±ºçã«ãã©ã°ãç«ãŠããããã£ãŒãããã¯ã«ãŒããæ§ç¯ããŠãããããã«ããæéã®çµéãšãšãã«ååŸã©ã³ãã³ã°ãåäžããŸãã
MicrocosmWorksã¯ãããã¥ã¡ã³ãæ§é ã«åºã¥ããŠç°ãªãæŠç¥ãé©çšããã³ã³ãã³ãã¢ãŠã§ã¢ãªãã£ã³ãã³ã°ã䜿çšããŠããŸããå ·äœçã«ã¯ãæ£æã«ã¯ã»ãã³ãã£ãã¯ãªæ®µèœåå²ãããããŒã³ã³ããã¹ããä¿æããããŒãã«ã«ã¯è¡ã¬ãã«ãŸãã¯ã»ã¯ã·ã§ã³ã¬ãã«ã®ãã£ã³ãã³ã°ããããŠã€ã³ããŒãã¹ããŒãã¡ã³ããä»å ããã³ãŒãã«ã¯é¢æ°ã¬ãã«ã®ãã£ã³ãã³ã°ãé©çšããŸããç§ãã¡ã¯åãã£ã³ã¯ã«ãããã¥ã¡ã³ãã¿ã€ãã«ãã»ã¯ã·ã§ã³éå±€ãã³ã³ãã³ãã¿ã€ããªã©ã®ã¡ã¿ããŒã¿ã§æ å ±ãä»å ããããšã§ãæ€çŽ¢ã¹ããŒãžã§ã¿ã€ãåºæã®ã¹ã³ã¢ãªã³ã°ãé©çšã§ããããã«ããŠããŸãããã®ã¢ãããŒãã¯ãç§ãã¡ã®ã¯ã©ã€ã¢ã³ããããžã§ã¯ãã«ãããæ€çŽ¢é¢é£æ§ãã³ãããŒã¯ã«ãããŠãçŽ æŽãªåºå®ãµã€ãºãã£ã³ãã³ã°ã25ã40%äžè²«ããŠäžåã£ãŠããŸãã
MicrocosmWorksã¯ãRAGãã€ãã©ã€ã³ã3ã€ã®åŽé¢ãããã¹ãããè©äŸ¡ããŒãã¹ãæ§ç¯ããŠããŸããããªãã¡ãæ€çŽ¢ã®é¢é£æ§ïŒé©åãªãã£ã³ã¯ãèŠã€ãã£ãŠãããïŒãåçã®å¿ 宿§ïŒçæãããåçãå®éã«æ€çŽ¢ãããã³ã³ãã³ããåæ ããŠãããïŒããããŠåçã®å®å šæ§ïŒè³ªåå šäœã«å¯Ÿå¿ããŠãããïŒã§ããç§ãã¡ã¯ãæ¢ç¥ã®åçãæã€ã¯ãšãªãæµå¯Ÿçãªãšããžã±ãŒã¹ãè€æ°ããã¥ã¡ã³ãã®çµ±åãå¿ èŠãšãã質åãå«ãããã¡ã€ã³ãšãã¹ããŒããšå ±ã«ãŽãŒã«ãã³ãã¹ãã»ãããäœæããŸãããã®è©äŸ¡ã¯CI/CDã§èªåçã«å®è¡ãããããããã¹ãŠã®ãã€ãã©ã€ã³ã®å€æŽã¯ãããã€åã«åºæºå質ã¡ããªã¯ã¹ã«å¯ŸããŠãã³ãããŒã¯ãããŸãã
MicrocosmWorks ã¯ãã客æ§ã®èŠæš¡ãã¯ãšãªãã¿ãŒã³ãéçšèŠä»¶ã«åºã¥ã㊠vector database ãéžå®ããŸãããããŒãžãã®ã·ã³ãã«ãã«ã¯ Pineconeããã€ããªãããªããŒã¯ãŒãã»vector æ€çŽ¢ã«ã¯ Weaviateããã§ã« PostgreSQL ã«æè³ããŠããããŒã ã«ã¯ pgvectorãé«ã¹ã«ãŒããããªã»ã«ããã¹ãåãããã€ã¡ã³ãã«ã¯ Qdrant ãæšå¥šããŠããŸãã1,000äž vector æªæºã®èŠæš¡ã§ã¯ãã»ãšãã©ã®éžæè¢ã 100ms æªæºã® latency ãå®çŸããŸãããæ°å vector ã®èŠæš¡ã«ãªããšãã®å·®ã¯é¡èã«ãªããindex typeãquantizationãããã³ sharding strategy ãæ¥µããŠéèŠã«ãªããŸããç§ãã¡ã¯ã¢ãŒããã¯ãã£èšèšãã§ãŒãºã§ãã客æ§ã®å®éã® embedding dimensions ãšã¯ãšãªãã¿ãŒã³ãåè£ãšãªããªãã·ã§ã³ã«å¯ŸããŠãã³ãããŒã¯ããŸãã
MicrocosmWorksã¯ããœãŒã¹ããã¥ã¡ã³ããªããžããªã®å€æŽãç£èŠãã倿Žãããã»ã¯ã·ã§ã³ã®ã¿ãre-chunkããã³re-embedããå®å šãªreindexãå¿ èŠãšããã«vector storeãæŽæ°ãããæŒžé²çãªåã蟌ã¿ãã€ãã©ã€ã³ãæ§ç¯ããŠããŸããåœç€Ÿã¯ãã»ã¯ã·ã§ã³ã¬ãã«ã§ã³ã³ãã³ãã®å€æŽãæ€åºããdocument fingerprintingãå®è£ ããŠããããã1ã€ã®æ®µèœã®ç·šéã§200ããŒãžå šäœã®ããã¥ã¡ã³ãã®ååŠçãããªã¬ãŒãããããšã¯ãããŸããããªã¢ã«ã¿ã€ã ã®é®®åºŠèŠä»¶ãæã€ã¯ã©ã€ã¢ã³ãã«ã¯ã倿Žãããã°ããã®ããã¥ã¡ã³ãããœãŒã¹ã·ã¹ãã ã«çŽæ¥åãåããããã®çµæãvector searchã®ããããšããŒãžããã©ã€ããªããªãŒãã«ã¬ã€ã€ãŒã远å ããŸãã
ç§ãã¡ã®ã¢ãŒããã¯ãã¯ããã®ãã¿ãŒã³ã䜿çšããŠã·ã¹ãã ãèšèšããã³æ§ç¯ããç¹å®ã®èŠä»¶ã«å¯Ÿå¿ããã®ããæäŒãã§ããŸãã
ãåãåããRAGã¯ããã¬ããžããŒã¹ããååŸãããã³ã³ããã¹ãã§LLMã®çæã匷åããŸããã¯ãšãªæã«ãã·ã¹ãã ã¯ãŠãŒã¶ãŒã®è³ªåãembeddingã«å€æãããã¯ãã«ããŒã¿ããŒã¹ã§æå³çã«é¡äŒŒããããã¥ã¡ã³ããã£ã³ã¯ãæ€çŽ¢ããæãé¢é£æ§ã®é«ããã£ã³ã¯ãLLMããã³ããã®ã³ã³ããã¹ããšããŠå«ããŸããããã«ãããã¢ãã«ã®å¿çãå®éã®ããã¥ã¡ã³ãã«åºã¥ããæ å ±æºã®åŒçšãå¯èœã«ãªããåãã¬ãŒãã³ã°ãªãã§ãã¬ããžããŒã¹ãæŽæ°å¯èœã«ä¿ã¡ãŸãããããã¯ã·ã§ã³RAGãã€ãã©ã€ã³ã¯ãåã蟌ã¿ïŒè§£æããã£ã³ãã³ã°ãembeddingïŒãæ€çŽ¢ïŒvector searchãrerankingãhybrid searchïŒãããã³çæïŒããã³ããæ§ç¯ãã¹ããªãŒãã³ã°ãã¬ãŒãã¬ãŒã«ïŒãåŠçããŸãã
ãã®ã¢ãŒããã¯ãã£ã«ã¯2ã€ã®ãã€ãã©ã€ã³ããããŸããåã蟌ã¿ãã€ãã©ã€ã³ã¯ãããã¥ã¡ã³ããè§£æïŒPDFãDOCXãHTMLããã®æœåºïŒããã£ã³ãã³ã°ïŒã»ãã³ãã£ãã¯ãŸãã¯ãªãŒããŒã©ããä»ãã®åºå®ãµã€ãºïŒãembeddingïŒembeddingã¢ãã«çµç±ïŒãããã³ã¹ãã¬ãŒãžïŒvector database + document storeïŒãéããŠåŠçããŸããã¯ãšãªãã€ãã©ã€ã³ã¯ããŠãŒã¶ãŒã®è³ªåãåãåããã¯ãšãªembeddingãçæããvector databaseããåè£ãã£ã³ã¯ãååŸããé¢é£æ§ã«ã€ããŠããããrerankããäžäœã®ãã£ã³ã¯ãã³ã³ããã¹ããšããŠããã³ãããæ§ç¯ããæ å ±æºã®åŒçšä»ãã§LLMå¿çãã¹ããªãŒãã³ã°ããŸãã
text-embedding-3-largeãCohereã®embed-v4ããŸãã¯ãªãŒãã³ãœãŒã¹ã®ä»£æ¿ïŒBGEãE5ïŒã®ãããªã¢ãã«ã䜿çšããŸããåã蟌ã¿ã«ã¯ãããåŠçãæ€çŽ¢ã«ã¯ã·ã³ã°ã«ã¯ãšãªåŠçãè¡ããŸãã| ã¬ã€ã€ãŒ | ãã¯ãããžãŒ |
|---|---|
| ããã¥ã¡ã³ãè§£æ | Unstructured, Apache Tika, LlamaParse, Docling, ã«ã¹ã¿ã OCR (Tesseract, AWS Textract) |
| Embedding | OpenAI text-embedding-3-large, Cohere embed-v4, BGE-M3, E5-large-v2 |
| Vector Database | Milvus, Pinecone, Qdrant, Weaviate, pgvector (å°èŠæš¡åã) |
| ããŒã¯ãŒãæ€çŽ¢ | Elasticsearch, OpenSearch, PostgreSQL full-text search |
| Reranking | Cohere Rerank, BGE Reranker, ColBERT v2, FlashRank |
| LLM | Claude (AI Gatewayçµç±), GPT-4, Gemini â AI SDKçµç±ã§ãããã€ããŒã«äŸåããªã |
| ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ | LangChain, LlamaIndex, ãŸãã¯ã«ã¹ã¿ã ãã€ãã©ã€ã³ (MWã®ãããã¯ã·ã§ã³åãæšå¥š) |
| å©çšãã¹ãã±ãŒã¹ | é¿ããã¹ãã±ãŒã¹ |
|---|---|
| ãŠãŒã¶ãŒãçµç¹ã®ç¹å®ã®ããã¥ã¡ã³ãã«åºã¥ããåçãå¿ èŠãšããå Žå | ãã¬ããžããŒã¹ã50ããŒãžæªæºã®å Žå â ã·ã¹ãã ããã³ããã«çŽæ¥å«ãã |
| ããã¥ã¡ã³ããé »ç¹ã«æŽæ°ãããAIãææ°æ å ±ãå¿ èŠãšããå Žå | ã¢ãã«ã«æ°ããã¹ãã«/è¡åãåŠç¿ãããå¿ èŠããããæ°ããäºå®ãžã®ã¢ã¯ã»ã¹ã§ã¯ãªãå ŽåïŒä»£ããã«ãã¡ã€ã³ãã¥ãŒãã³ã°ïŒ |
| æ å ±æºã®åŒçšãšç£æ»å¯èœæ§ãèŠä»¶ãšãªãå ŽåïŒæ³åŸãã³ã³ãã©ã€ã¢ã³ã¹ããã«ã¹ã±ã¢ïŒ | 質åãçŽç²ã«äŒè©±çã§ãããäºå®ã«åºã¥ããæ ¹æ ãå¿ èŠãšããªãå Žå |
| è€æ°ã®ãŠãŒã¶ãŒã°ã«ãŒããç°ãªãããã¥ã¡ã³ããµãã»ãããžã®ã¢ã¯ã»ã¹ãå¿ èŠãšããå ŽåïŒæš©éãã£ã«ã¿ãŒä»ãRAGïŒ | äºå®ã®æ£ç¢ºããç®çã§ã¯ãªããã¯ãªãšã€ãã£ãã©ã€ãã£ã³ã°ããŒã«ãæ§ç¯ããŠããå Žå |
MWã¯ãæ€çŽ¢å質ããRAGãã€ãã©ã€ã³ãæ§ç¯ããŸã â LLMããã³ããã«æãå ããåã«æ€çŽ¢ç²ŸåºŠããã³ãããŒã¯ããŸããå¹³å¡ãªæ€çŽ¢èœåãšåªããLLMãæã€RAGã·ã¹ãã ã¯ãèªä¿¡ã«æºã¡ã誀ã£ãåçãçæããŸããåœç€Ÿã®æšæºãã€ãã©ã€ã³ã«ã¯ãæ€çŽ¢è©äŸ¡ããŒãã¹ãå«ãŸããŠããŸããããã¯ãæ¢ç¥ã®é¢é£ããã¥ã¡ã³ããæã€ãã¹ãã¯ãšãªã®ã»ããã§ãããMRR@5ãšNDCG@10ã§æž¬å®ãããŸãããã£ã³ãã³ã°ãembeddingã¢ãã«ãrerankingããçæãæé©åããåã«æ€çŽ¢ã¡ããªã¯ã¹ãç®æšãããå€ã«éãããŸã§ç¹°ãè¿ãè¡ããŸããåœç€Ÿã¯ãæ³åŸææžã¬ãã¥ãŒããã«ã¹ã±ã¢ãã¬ããžããŒã¹ãå€èšèªã«ã¹ã¿ããŒãµããŒããªã©ãããŸããŸãªåéã§RAGã·ã¹ãã ãæ§ç¯ããŠããŸãããããã§åŸãããå ±éã®æèšã¯ãåçå質ã®80%ã¯æ€çŽ¢å質ã«äŸåããŠãããšããããšã§ãã
1äžåã®ãã¯ãã«ã§ããã°ãåãèŸŒã¿æ€çŽ¢ã¯å®¹æã§ãããããã1ååã®ãã¯ãã«ã§100ããªç§æªæºã®P99ãéæããããšãããšãããã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®åé¡ãšãªãããã®ãã¿ãŒã³ãããã解決ããŸãã