Phase 2: Embeddings & Semantic Search

ਕੀਵਰਡ ਸਰਚ (Keyword search) ਉਦੋਂ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਸ਼ਬਦ ਬਿਲਕੁਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।

ਜੇਕਰ ਕਿਸੇ ਰੈਜ਼ਿਊਮੇ (resume) ਵਿੱਚ "team management" ਲਿਖਿਆ ਹੈ ਅਤੇ ਜੌਬ ਡਿਸਕ੍ਰਿਪਸ਼ਨ (job description) ਵਿੱਚ "leadership" ਦੀ ਮੰਗ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਇੱਕ ਬੇਸਿਕ ਸਰਚ ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ ਦਿਖਾਉਂਦੀ। ਸ਼ਬਦ ਵੱਖਰੇ ਹਨ, ਪਰ ਅਰਥ ਇੱਕੋ ਜਿਹੇ ਹਨ।

ਪੜਾਅ 2 ਇਸ ਸਮੱਸਿਆ ਨੂੰ embeddings ਅਤੇ semantic search ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਲ ਕਰਦਾ ਹੈ।

ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:

• Tokenization: ਕੰਪਿਊਟਰ ਸ਼ਬਦ ਨਹੀਂ ਪੜ੍ਹਦੇ। ਉਹ ਨੰਬਰ ਪੜ੍ਹਦੇ ਹਨ। ਇੱਕ tokenizer ਟੈਕਸਟ ਨੂੰ ਛੋਟੇ ਟੁਕੜਿਆਂ ਵਿੱਚ ਤੋੜਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ tokens ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ Token IDs ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਆਮ ਸ਼ਬਦ ਇੱਕ token ਬਣ ਜਾਂਦੇ ਹਨ। ਦੁਰਲੱਭ ਸ਼ਬਦ ਕਈ tokens ਵਿੱਚ ਵੰਡੇ ਜਾਂਦੇ ਹਨ।

• Embeddings: ਇੱਕ Token ID ਸਿਰਫ਼ ਇੱਕ ਲੇਬਲ ਹੈ। Embedding layer ਉਸ ID ਨੂੰ ਇੱਕ vector ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ। Vector ਨੰਬਰਾਂ ਦੀ ਇੱਕ ਲੰਬੀ ਸੂਚੀ ਹੁੰਦੀ ਹੈ ਜੋ ਅਰਥ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਇੱਕ ਨੰਬਰ ਦੀ ਬਜਾਏ, ਇੱਕ ਮਾਡਲ ਕਿਸੇ ਸੰਕਲਪ (concept) ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਕਈ dimensions ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।

• Dimensions: ਇਹਨਾਂ ਨੰਬਰਾਂ ਨੂੰ ਕੋਆਰਡੀਨੇਟਸ (coordinates) ਵਜੋਂ ਸਮਝੋ। ਇੱਕ dimension "frontend vs backend" ਨੂੰ ਦਰਸਾ ਸਕਦਾ ਹੈ। ਦੂਜਾ "web vs systems" ਨੂੰ ਦਰਸਾ ਸਕਦਾ ਹੈ। High-dimensional vectors ਮਾਡਲ ਨੂੰ "React" ਅਤੇ "JavaScript" ਨੂੰ ਇੱਕ ਗਣਿਤਕ ਸਪੇਸ (mathematical space) ਵਿੱਚ ਇੱਕ ਦੂਜੇ ਦੇ ਨੇੜੇ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ।

• Semantic Search: ਜਦੋਂ ਤੁਸੀਂ ਕੋਈ ਸਵਾਲ ਪੁੱਛਦੇ ਹੋ, ਤਾਂ ਸਿਸਟਮ ਤੁਹਾਡੇ ਸਵਾਲ ਨੂੰ ਇੱਕ vector ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਫਿਰ ਇਹ ਤੁਹਾਡੇ vector ਦੀ ਤੁਲਨਾ ਤੁਹਾਡੇ ਸਟੋਰ ਕੀਤੇ ਦਸਤਾਵੇਜ਼ਾਂ ਦੇ vectors ਨਾਲ ਕਰਦਾ ਹੈ।

• Cosine Similarity: ਇਹ ਦੋ vectors ਦੇ ਵਿਚਕਾਰ ਕੋਣ (angle) ਨੂੰ ਮਾਪਦਾ ਹੈ। ਜੇਕਰ vectors ਇੱਕੋ ਦਿਸ਼ਾ ਵਿੱਚ ਹਨ, ਤਾਂ ਉਹ ਸਮਾਨ ਹਨ। ਇਹ ਸਿਸਟਮ ਨੂੰ "resignation requirements" ਲੱਭਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਸੀਂ ਸਿਰਫ਼ "notice period" ਹੀ ਕਿਉਂ ਨਾ ਸਰਚ ਕੀਤਾ ਹੋਵੇ।

ਪ੍ਰੋਡਕਸ਼ਨ (production) ਲਈ ਮੁੱਖ ਸਬਕ:

  • Vector Databases: ਲੱਖਾਂ vectors ਨੂੰ ਸਰਚ ਕਰਨਾ ਹੌਲੀ ਹੁੰਦਾ ਹੈ। Pinecone ਜਾਂ Qdrant ਵਰਗੇ ਡੇਟਾਬੇਸ ਮਿਲੀਸੈਕਿੰਡਾਂ ਵਿੱਚ ਸਭ ਤੋਂ ਨੇੜਲੇ ਗੁਆਂਢੀਆਂ (nearest neighbors) ਨੂੰ ਲੱਭਣ ਲਈ indexing ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
  • Model Migrations: ਹਰ embedding ਮਾਡਲ ਇੱਕ ਵੱਖਰੇ ਗਣਿਤਕ ਸਪੇਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ OpenAI vector ਦੀ ਤੁਲਨਾ Cohere vector ਨਾਲ ਨਹੀਂ ਕਰ ਸਕਦੇ। ਜੇਕਰ ਤੁਸੀਂ ਮਾਡਲ ਬਦਲਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਪਣੇ ਸਾਰੇ ਡੇਟਾ ਨੂੰ re-embed ਕਰਨਾ ਪਵੇਗਾ।
  • Cost vs ROI: ਲੱਖਾਂ ਚੰਕਸ (chunks) ਨੂੰ re-embed ਕਰਨਾ ਮਹਿੰਗਾ ਹੁੰਦਾ ਹੈ। ਕੰਪਨੀਆਂ ਅਕਸਰ ਪੁਰਾਣੇ ਮਾਡਲਾਂ ਨਾਲ ਹੀ ਰਹਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਕਿ ਸਹੀ ਸ਼ੁੱਧਤਾ (accuracy) ਦਾ ਲਾਭ ਮਾਈਗ੍ਰੇਸ਼ਨ ਦੀ ਲਾਗਤ ਨੂੰ ਜਾਇਜ਼ ਨਾ ਠਹਿਰਾਵੇ।
  • ਹਮੇਸ਼ਾ ਆਪਣੇ raw text chunks ਨੂੰ ਸਟੋਰ ਕਰਕੇ ਰੱਖੋ। ਜੇਕਰ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਆਪਣੇ ਮਾਡਲ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਨਵੇਂ vectors ਬਣਾਉਣ ਲਈ ਪੁਰਾਣੇ ਟੈਕਸਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।

ਪੜਾਅ 2 ਉਹ ਹੈ ਜਿੱਥੇ ਅਸਲ ਬੁੱਧੀ (intelligence) ਕੰਮ ਕਰਦੀ ਹੈ।

Source: https://dev.to/surajrkhonde/phase-2-embeddings-semantic-search-3lco

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