Twio ਨੇ pgvector ਦੀ ਬਜਾਏ Vertex AI Search ਕਿਉਂ ਚੁਣਿਆ

ਅਸੀਂ Twio ਵਿੱਚ ਆਪਣਾ ਪਹਿਲਾ RAG ਸਿਸਟਮ pgvector ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਇਆ ਸੀ। ਇਹ ਇੱਕ ਤੇਜ਼ ਚੋਣ ਸੀ। ਸਾਡਾ ਡੇਟਾ PostgreSQL ਵਿੱਚ ਸੀ। ਉੱਥੇ embeddings ਜੋੜਨਾ ਆਸਾਨ ਸੀ।

ਜਿਵੇਂ-ਜਿਵੇਂ ਅਸੀਂ ਵਧੇ (scaled ਹੋਏ), ਸਾਡੀ ਸਮੱਸਿਆ ਬਦਲ ਗਈ। ਅਸੀਂ ਹੁਣ ਇਹ ਨਹੀਂ ਪੁੱਛਦੇ ਸੀ ਕਿ vectors ਨੂੰ ਕਿਵੇਂ ਸਟੋਰ ਕਰਨਾ ਹੈ। ਅਸੀਂ ਇਹ ਪੁੱਛਦੇ ਸੀ ਕਿ ਹਜ਼ਾਰਾਂ ਅਸਪਸ਼ਟ ਬ੍ਰੋਕਰ ਦਸਤਾਵੇਜ਼ਾਂ, ਈਮੇਲਾਂ ਅਤੇ ਅਟੈਚਮੈਂਟਸ ਨੂੰ ਕਿਵੇਂ ਸਮਝਿਆ ਜਾਵੇ।

Twio ਲੋਨ ਬ੍ਰੋਕਰਾਂ ਦੀ ਸੇਵਾ ਕਰਦਾ ਹੈ। ਇੱਕ ਸਿੰਗਲ ਕੇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ: • ਈਮੇਲ ਥ੍ਰੈਡਸ (Email threads) • ਪੇਅਸਲਿੱਪਾਂ ਅਤੇ ਬੈਂਕ ਸਟੇਟਮੈਂਟਸ • ਲੋਨ ਫਾਰਮ ਅਤੇ ਲੈਂਡਰ ਨਿਯਮ • ਹੱਥ ਨਾਲ ਲਿਖੇ ਨੋਟਸ

AI ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦੇਣੇ ਚਾਹੀਦੇ ਹਨ: • ਕਿਹੜੀ ਈਮੇਲ ਵਿੱਚ ਗੁੰਮ ਹੋਈ ਲੋੜ (requirement) ਦਾ ਜ਼ਿਕਰ ਕੀਤਾ ਗਿਆ ਸੀ? • ਕੀ ਇਹ ਬੈਂਕ ਸਟੇਟਮੈਂਟ ਆਮਦਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੀ ਹੈ? • ਇਸ ਉਧਾਰ ਲੈਣ ਵਾਲੇ (borrower) ਲਈ ਸਾਰੇ ਦਸਤਾਵੇਜ਼ਾਂ ਦਾ ਸਾਰ (summarize) ਦਿਓ।

ਜੇਕਰ retrieval ਕਮਜ਼ੋਰ ਹੈ, ਤਾਂ ਜਵਾਬ ਵੀ ਕਮਜ਼ੋਰ ਹੋਵੇਗਾ। ਜੇਕਰ parsing ਗਲਤ ਹੈ, ਤਾਂ ਮਾਡਲ ਗਲਤ ਸਬੂਤ ਦੇਖੇਗਾ। RAG ਸਾਡੇ ਉਤਪਾਦ ਦੀ ਯਾਦਦਾਸ਼ਤ ਹੈ।

pgvector ਸਾਡੇ ਪਹਿਲੇ ਵਰਜ਼ਨ ਲਈ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਸੀ ਕਿਉਂਕਿ: • ਇਸ ਲਈ ਕਿਸੇ ਨਵੇਂ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਦੀ ਲੋੜ ਨਹੀਂ ਸੀ। • ਇਸਦੀ ਲਾਗਤ ਘੱਟ ਸੀ। • ਇਸ ਨਾਲ ਆਸਾਨ SQL debugging ਸੰਭਵ ਸੀ। • ਇਸਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਲਾਗੂ (ship) ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ।

ਪਰ pgvector ਇੱਕ RAG ਪਾਈਪਲਾਈਨ ਦਾ ਸਿਰਫ਼ ਇੱਕ ਹਿੱਸਾ ਹੈ। ਬਾਕੀ ਕੰਮ ਸਾਡੇ 'ਤੇ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਸੀ: • ਅਟੈਚਮੈਂਟਸ ਡਾਊਨਲੋਡ ਕਰਨਾ। • OCR ਰਾਹੀਂ PDFs ਅਤੇ ਸਕੈਨ ਕੀਤੇ ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਟੈਕਸਟ ਕੱਢਣਾ। • ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ chunking ਵਿੱਚ ਵੰਡਣਾ ਅਤੇ embeddings ਬਣਾਉਣਾ। • metadata ਅਤੇ retrieval queries ਡਿਜ਼ਾਈਨ ਕਰਨਾ। • indexes ਅਤੇ ranking ਨੂੰ ਟਿਊਨ ਕਰਨਾ। • ਡੇਟਾਬੇਸ ਲੋਡ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨਾ।

ਇੱਕ ਸਾਫ਼ PDF ਆਸਾਨ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਸਕੈਨ ਕੀਤੀ ਹੋਈ ਬੈਂਕ ਸਟੇਟਮੈਂਟ ਮੁਸ਼ਕਲ ਹੁੰਦੀ ਹੈ। ਪੰਜ ਅਟੈਚਮੈਂਟਸ ਅਤੇ ਟੇਬਲਾਂ ਵਾਲੀ ਈਮੇਲ ਹੋਰ ਵੀ ਮੁਸ਼ਕਲ ਹੁੰਦੀ ਹੈ। pgvector ਦੇ ਨਾਲ, ਸਾਨੂੰ ਉਸ ਪਾਈਪਲਾਈਨ ਦੀ ਹਰ ਕਮਜ਼ੋਰੀ ਨੂੰ ਸੁਧਾਰਨਾ ਪਿਆ।

ਲਾਗਤ ਸਾਡੇ ਕਲਾਉਡ ਬਿੱਲ ਤੋਂ ਹਟ ਕੇ ਸਾਡੇ ਇੰਜੀਨੀਅਰਿੰਗ ਸਮੇਂ 'ਤੇ ਆ ਗਈ। ਇੰਜੀਨੀਅਰਿੰਗ ਸਮਾਂ ਸਾਡਾ ਸਭ ਤੋਂ ਸੀਮਤ ਸਰੋਤ ਸੀ।

ਤੁਲਨਾ: • ਸਕੈਨ ਕੀਤੇ ਦਸਤਾਵੇਜ਼: ਅਸੀਂ pgvector ਦੇ ਨਾਲ OCR ਬਣਾਉਂਦੇ ਹਾਂ। Vertex ਜ਼ਿਆਦਾਤਰ ਦਸਤਾਵੇਜ਼ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ। • ਦਸਤਾਵੇਜ਼ਾਂ ਨਾਲ ਸਬੰਧਤ ਸਵਾਲ: ਅਸੀਂ pgvector ਦੇ ਨਾਲ queries ਅਤੇ ranking ਡਿਜ਼ਾਈਨ ਕਰਦੇ ਹਾਂ। Vertex managed search ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। • ਅਟੈਚਮੈਂਟਸ ਦਾ ਵਧਣਾ (bursts): Postgres pgvector ਦੇ ਨਾਲ ਲੋਡ ਚੁੱਕਦਾ ਹੈ। Vertex ਲੋਡ ਨੂੰ ਸਾਡੇ ਮੁੱਖ ਡੇਟਾਬੇਸ ਤੋਂ ਬਾਹਰ ਰੱਖਦਾ ਹੈ। • ਲਾਗਤ: pgvector ਦੀ ਸਰਵਿਸ ਲਾਗਤ ਘੱਟ ਹੈ। Vertex ਦੀ ਇੰਜੀਨੀਅਰਿੰਗ ਅਤੇ ਰੱਖ-ਰਖਾਅ (maintenance) ਦੀ ਲਾਗਤ ਘੱਟ ਹੈ।

ਇੱਕ ਡੇਟਾਬੇਸ ਐਕਸਟੈਂਸ਼ਨ ਵਜੋਂ pgvector ਸਸਤਾ ਹੈ। ਇੱਕ ਉਤਪਾਦ ਫੈਸਲੇ (product decision) ਵਜੋਂ Vertex ਸਸਤਾ ਹੈ।

Vertex ਸਾਡੀ ਚਾਰ ਤਰੀਕਿਆਂ ਨਾਲ ਮਦਦ ਕਰਦਾ ਹੈ: • ਪ੍ਰਬੰਧਨ ਲਈ ਘੱਟ ਇਨਫਰਾਸਟ੍ਰਕਚਰ। • ਰੱਖ-ਰਖਾਅ ਲਈ ਘੱਟ ਦਸਤਾਵੇਜ਼-ਪ੍ਰੋਸੈਸਿੰਗ ਲੌਜਿਕ। • Postgres ਵਪਾਰਕ ਲੈਣ-ਦੇਣ (business transactions) 'ਤੇ ਕੇਂਦਰਿਤ ਰਹਿੰਦਾ ਹੈ। • ਜਿਵੇਂ-ਜਿਵੇਂ ਸਾਡੇ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਮਾਤਰਾ ਵਧਦੀ ਹੈ, ਇਹ ਵੀ scale ਹੁੰਦਾ ਹੈ।

Vertex ਮੁਫ਼ਤ ਨਹੀਂ ਹੈ। ਪਰ ਆਪਣਾ OCR, indexing, ਅਤੇ ranking ਬਣਾਉਣ ਦੀ ਵੀ ਇੱਕ ਲਾਗਤ ਹੁੰਦੀ ਹੈ। ਅਸੀਂ ਉਹ ਲਾਗਤ ਇੰਜੀਨੀਅਰਾਂ ਦੇ ਹਫ਼ਤਿਆਂ ਦੇ ਰੂਪ ਵਿੱਚ ਅਦਾ ਕਰਦੇ ਹਾਂ।

pgvector ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੇਕਰ: • ਤੁਹਾਡੇ ਡੇਟਾ ਦੀ ਮਾਤਰਾ ਦਰਮਿਆਨੀ ਹੈ। • ਤੁਹਾਡੇ ਦਸਤਾਵੇਜ਼ ਪਹਿਲਾਂ ਹੀ ਸਾਫ਼ ਟੈਕਸਟ ਹਨ। • ਤੁਹਾਨੂੰ ਸਖ਼ਤ SQL ਫਿਲਟਰਿੰਗ ਦੀ ਲੋੜ ਹੈ। • ਤੁਸੀਂ ਇੱਕ ਤੇਜ਼, ਘੱਟ ਲਾਗਤ ਵਾਲਾ ਪਹਿਲਾ ਵਰਜ਼ਨ ਚਾਹੁੰਦੇ ਹੋ।

ਸਾਡਾ ਸਬਕ ਸਧਾਰਨ ਹੈ: ਉਸ ਟੂਲ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਜੋ ਤੁਹਾਨੂੰ ਸਭ ਤੋਂ ਤੇਜ਼ੀ ਨਾਲ ਸਿੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਉਸ ਟੂਲ ਵੱਲ ਵਧੋ ਜੋ ਤੁਹਾਨੂੰ ਸਭ ਤੋਂ ਵਧੀਆ ਕੰਮ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।

Source: https://dev.to/twio_ai/why-twio-chose-vertex-ai-search-over-pgvector-for-production-rag-51jm

Optional learning community: https://t.me/GyaanSetuAi