सामग्री पर जाएँ

ब्लॉग

RAG सिस्टम: एंटरप्राइज़ AI अनुप्रयोगों का भविष्य

LLMs को एंटरप्राइज़ ज्ञान के साथ संयोजित करना

  • Balinder Walia
  • 6 मिनट में पढ़ें
  • Updated

रिट्रीवल-ऑगमेंटेड जेनरेशन (RAG) क्रांति ला रहा है कि कैसे बड़े भाषा मॉडल को महंगे फाइन-ट्यूनिंग या मॉडल रीट्रेनिंग के बिना मालिकाना डेटा तक पहुंचने, समझने और तर्क करने में सक्षम बनाकर उद्यम एआई को तैनात करते हैं।

🎯RAG क्या है?

यह दृष्टिकोण एआई सिस्टम को बड़े भाषा मॉडल के लचीलेपन और तर्क क्षमताओं को बनाए रखते हुए आपके उद्यम ज्ञान के आधार पर सटीक, अद्यतन उत्तर प्रदान करने में सक्षम बनाता है।

🏗️ RAG सिस्टम आर्किटेक्चर

RAG आर्किटेक्चर अवलोकन- इंडेक्सिंग पाइपलाइन -दस्तावेज़स्प्लिट और amp; ओवरलैपएंबेडिंगटेक्स्ट-एम्बेड-3वेक्टर DBपाइनकोन / क्यूड्रेंट— क्वेरी पाइपलाइन —उपयोगकर्ता प्रश्नपुनर्प्राप्तसंदर्भ दस्तावेज़ग्राउंडेड प्रतिक्रिया + उद्धरणसटीक, स्रोत, मतिभ्रम-मुक्तदो-चरण वास्तुकला: ऑफ़लाइन अनुक्रमण + वास्तविक समय पुनर्प्राप्ति और amp; पीढ़ी

1. दस्तावेज़ प्रसंस्करण पाइपलाइन

Documents → Chunking → Embedding → Vector Store

// Example: Processing enterprise documents
const chunks = documentSplitter.split(document, {
  chunkSize: 1000,
  overlap: 200,
  preserveContext: true
});

const embeddings = await embeddingModel.embed(chunks);
await vectorDB.insert(embeddings, metadata);

2. क्वेरी प्रसंस्करण

User Query → Embed → Vector Search → Retrieve Top-K → LLM + Context → Response

// Example: Query processing
const queryEmbedding = await embeddingModel.embed(userQuery);
const relevantDocs = await vectorDB.search(queryEmbedding, {
  topK: 5,
  filters: { department: 'engineering' }
});

const response = await llm.generate({
  prompt: userQuery,
  context: relevantDocs,
  temperature: 0.7
});

3. प्रतिक्रिया पीढ़ी

LLM का उपयोग करके एक प्रतिक्रिया उत्पन्न करता है प्राकृतिक भाषा की गुणवत्ता को बनाए रखते हुए सटीकता और प्रासंगिकता सुनिश्चित करते हुए, संदर्भ को पुनः प्राप्त किया गया।

💡 उत्पादन के प्रमुख घटक RAG

1. वेक्टर डेटाबेस

उद्यम के लिए लोकप्रिय विकल्प स्केलेबल, उत्पादन के लिए बढ़िया

  • Weaviate:ओपन-सोर्स, GraphQL मिल्वस:ओपन-सोर्स, GPU-त्वरित, अरबों वैक्टर को संभालता है
  • pgvector:PostgreSQL एक्सटेंशन, परिचित टूलिंग
  • 2. एम्बेडिंग मॉडल

    चुनें आपकी आवश्यकताओं पर आधारित:

    • BGE (BAAI):ओपन-सोर्स, SOTA प्रदर्शन
    • E5:माइक्रोसॉफ्ट का ओपन मॉडल, मजबूत पुनर्प्राप्ति

    3. चंकिंग रणनीतियाँ

    चंकिंग:विषयों/अनुभागों पर विभाजन

  • स्लाइडिंग विंडो:संदर्भ संरक्षण के लिए ओवरलैपिंग विखंडन
  • पदानुक्रमित चंकिंग:लंबे दस्तावेज़ों के लिए बहु-स्तरीय
  • 🚀 उन्नत RAG तकनीक

    एंटरप्राइज RAG पाइपलाइनPDFअनुबंधडेटाबेसETLपार्स और amp; खंडएम्बेडवेक्टर स्टोरएंबेडिंगमेटाडेटापुनर्प्राप्तिहाइब्रिड खोजपुनः रैंकिंगउपयोगकर्ता क्वेरीLLMसंवर्धितसंकेत + संदर्भ→ प्रतिक्रियाप्रतिक्रिया + उद्धरणगुणवत्ता स्कोर और amp; स्रोतफीडबैक लूप (गुणवत्ता सुधार)निरंतर गुणवत्ता सुधार के साथ एंड-टू-एंड पाइपलाइन

    1. हाइब्रिड खोज

    पारंपरिक के साथ वेक्टर खोज को मिलाएं सर्वोत्तम परिणामों के लिए कीवर्ड खोज:

    // Hybrid search implementation
    const vectorResults = await vectorDB.search(queryEmbedding, { topK: 10 });
    const keywordResults = await fullTextSearch(query, { topK: 10 });
    
    // Reciprocal Rank Fusion
    const combinedResults = reciprocalRankFusion(
      vectorResults,
      keywordResults,
      { k: 60 }
    );

    2. पुन: रैंकिंग

    क्रॉस-एनकोडर पुन: रैंकिंग के साथ प्रासंगिकता में सुधार करें:

    const rerankedResults = await reranker.rerank({
      query: userQuery,
      documents: retrievedDocs,
      topK: 5
    });

    3. क्वेरी विस्तार

    बेहतर रिकॉल के लिए कई क्वेरी विविधताएं उत्पन्न करें:

    const expandedQueries = await llm.generate({
      prompt: `Generate 3 variations of: ${userQuery}`,
      temperature: 0.8
    });
    
    const allResults = await Promise.all(
      expandedQueries.map(q => vectorDB.search(embed(q)))
    );
    
    const deduplicatedResults = deduplicate(allResults);

    4. प्रासंगिक संपीड़न

    पुनर्प्राप्त दस्तावेज़ों से अप्रासंगिक जानकारी हटाएं:

    const compressedDocs = await contextualCompressor.compress({
      query: userQuery,
      documents: retrievedDocs,
      maxTokens: 2000
    });

    🎯 वास्तविक दुनिया में उपयोग के मामले

    1. ग्राहक सहायता ज्ञान आधार

    चुनौती:एजेंटों को उत्पाद दस्तावेज़ीकरण, नीतियों और पिछले समाधानों तक त्वरित पहुंच की आवश्यकता है।

    समाधान:RAG सिस्टम सभी समर्थन दस्तावेज़ों को अनुक्रमित करता है, जिससे AI 80% प्रश्नों का तुरंत उत्तर देने में सक्षम होता है।

    परिणाम:

    • औसत हैंडलिंग समय 65% कम हो गया
    • ग्राहक संतुष्टि बढ़कर 4.8/5 हो गई
    • एजेंट उत्पादकता 3x
    • बढ़ी

    2. कानूनी दस्तावेज़ विश्लेषण

    चुनौती:वकील केस कानून और अनुबंधों पर शोध करने में घंटों बिताते हैं।

    ​​समाधान:RAG उद्धरण ट्रैकिंग के साथ लाखों कानूनी दस्तावेज़।

    परिणाम:

    • शोध का समय घंटों से घटाकर मिनटों में किया गया
    • स्वचालित अनुबंध समीक्षा से प्रति वकील 40 घंटे/सप्ताह की बचत होती है
    • स्रोत उद्धरणों के साथ बेहतर सटीकता

    3. DevOps दस्तावेज़ीकरण

    चुनौती:इंजीनियरों को बुनियादी ढांचे, रनबुक और सर्वोत्तम प्रथाओं के बारे में त्वरित उत्तर चाहिए।

    समाधान: सभी DevOps दस्तावेज़ों, संगम पृष्ठों और घटना रिपोर्टों परRAG प्रणाली।

    परिणाम:

    • उत्तर खोजने के समय में 75% की कमी
    • ऑनबोर्डिंग का समय 60% कम हुआ
    • घटना का समाधान 50% तेज

    🔒 एंटरप्राइज RAG सर्वोत्तम अभ्यास

    1. डेटा गोपनीयता और सुरक्षा

    • भूमिका-आधारित अभिगम नियंत्रण लागू करें (RBAC)
    • आराम और पारगमन में वेक्टर एन्क्रिप्ट करें
    • संवेदनशील डेटा के लिए निजी तैनाती का उपयोग करें
    • सभी प्रश्नों के लिए ऑडिट लॉगिंग लागू करें

    2. गुणवत्ता और सटीकता

    • हाइब्रिड खोज (वेक्टर + कीवर्ड) का उपयोग करें
    • प्रासंगिकता के लिए पुन: रैंकिंग लागू करें
    • उद्धरण/स्रोत ट्रैकिंग जोड़ें
    • उत्तर गुणवत्ता की निगरानी और मूल्यांकन करें
    • महत्वपूर्ण निर्णयों के लिए ह्यूमन-इन-द-लूप

    3. प्रदर्शन और स्केल

    • कैश लगातार क्वेरी
    • अनुमानित निकटतम पड़ोसी (ANN) खोज का उपयोग करें
    • क्वेरी बैचिंग लागू करें
    • विलंबता की निगरानी करें और धीमे पथों को अनुकूलित करें
    • क्षैतिज रूप से स्केल वेक्टर DB

    4. मूल्यांकन मेट्रिक्स

    इन KPI को ट्रैक करें:

    • पुनर्प्राप्ति परिशुद्धता/रिकॉल:क्या हमें सही दस्तावेज़ मिल रहे हैं?
    • उत्तर सटीकता:क्या उत्तर सही हैं?
    • विलंबता:क्वेरी से प्रतिक्रिया तक का समय (लक्ष्य:<2s)
    • उपयोगकर्ता संतुष्टि:अंगूठे ऊपर/नीचे प्रतिक्रिया
    • प्रति क्वेरी लागत:एंबेडिंग + LLM + बुनियादी ढांचे की लागत

    📊 प्रदर्शन बेंचमार्क

    उत्पादन

  • एंड-टू-एंड विलंबता:1-3 सेकंड जिसमें LLM पीढ़ी
  • सटीकता:85-95% मानव विशेषज्ञों की तुलना में
  • स्केल:लाखों दस्तावेजों, हजारों समवर्ती उपयोगकर्ताओं को संभालता है
  • लागत:$0.001-0.01 प्रति क्वेरी (फाइन-ट्यूनिंग से 10-100x सस्ता)
  • 🛠️ कार्यान्वयन उदाहरण

    पाइनकोन और OpenAI के साथ संपूर्ण RAG सिस्टम:

    import { OpenAI } from 'openai';
    import { Pinecone } from '@pinecone-database/pinecone';
    
    class EnterpriseRAG {
      constructor() {
        this.openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
        this.pinecone = new Pinecone({ apiKey: process.env.PINECONE_API_KEY });
        this.index = this.pinecone.index('enterprise-kb');
      }
    
      async ingest(documents) {
        // 1. Chunk documents
        const chunks = documents.flatMap(doc => 
          this.chunkDocument(doc, { size: 1000, overlap: 200 })
        );
    
        // 2. Generate embeddings
        const embeddings = await this.openai.embeddings.create({
          model: 'text-embedding-3-large',
          input: chunks.map(c => c.text)
        });
    
        // 3. Store in vector DB
        await this.index.upsert(
          chunks.map((chunk, i) => ({
            id: chunk.id,
            values: embeddings.data[i].embedding,
            metadata: {
              text: chunk.text,
              source: chunk.source,
              timestamp: Date.now()
            }
          }))
        );
      }
    
      async query(question, options = {}) {
        // 1. Embed query
        const queryEmbedding = await this.openai.embeddings.create({
          model: 'text-embedding-3-large',
          input: question
        });
    
        // 2. Search vector DB
        const searchResults = await this.index.query({
          vector: queryEmbedding.data[0].embedding,
          topK: options.topK || 5,
          includeMetadata: true
        });
    
        // 3. Build context
        const context = searchResults.matches
          .map(match => match.metadata.text)
          .join('
    
    ');
    
        // 4. Generate response
        const completion = await this.openai.chat.completions.create({
          model: 'gpt-4-turbo-preview',
          messages: [
            {
              role: 'system',
              content: 'Answer based on the provided context. Cite sources.'
            },
            {
              role: 'user',
              content: `Context:
    ${context}
    
    Question: ${question}`
            }
          ],
          temperature: 0.7
        });
    
        return {
          answer: completion.choices[0].message.content,
          sources: searchResults.matches.map(m => m.metadata.source),
          confidence: searchResults.matches[0].score
        };
      }
    }
    
    // Usage
    const rag = new EnterpriseRAG();
    
    // Ingest documents
    await rag.ingest(myDocuments);
    
    // Query
    const result = await rag.query(
      'What is our incident response procedure?'
    );
    
    console.log(result.answer);
    console.log('Sources:', result.sources);

    🔮 RAG का भविष्य

    टेक्स्ट, छवियों और वीडियो का संयोजन

  • एजेंट
  • अनुकूली RAG:सिस्टम जो उपयोगकर्ता की प्रतिक्रिया से सीखते हैं
  • वास्तविक समय RAG:इंटरैक्टिव अनुप्रयोगों के लिए उप-सेकंड विलंबता
  • 📚 संसाधन

    आपके एंटरप्राइज़ डेटा को AI-संचालित अंतर्दृष्टि में बदलने के लिए तैयार हैं?RAG सिस्टम सटीक, स्केलेबल और लागत प्रभावी AI अनुप्रयोगों की नींव हैं