ਯੂਨਿਟ 2 / 11

ਏਮਬੈਡਿੰਗ ਅਤੇ ਵੈਕਟਰ ਡਾਟਾਬੇਸ ਤਰਕ

ਲਾਭ:

  • ਇਹ ਸਮਝੋ ਕਿ ਏਮਬੈਡਿੰਗ ਟੈਕਸਟ ਨੂੰ ਸਿਮੈਂਟਿਕ ਸਪੇਸ ਵਿੱਚ ਇੱਕ ਵੈਕਟਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ ਅਤੇ ਸਮਾਨ ਅਰਥ ਨਜ਼ਦੀਕੀ ਵੈਕਟਰ ਹਨ
  • ਇਹ ਦੱਸਣਾ ਕਿ ANN ਖੋਜ ਕੋਸਾਈਨ ਅਤੇ ਡੌਟ ਸਮਾਨਤਾ ਮੈਟ੍ਰਿਕਸ ਨਾਲ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ
  • ਲਾਗਤ, ਪੈਮਾਨੇ ਅਤੇ ਮੈਟਾਡੇਟਾ ਫਿਲਟਰਿੰਗ ਦੀ ਲੋੜ ਦੇ ਆਧਾਰ 'ਤੇ ਆਮ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਦੀ ਚੋਣ ਕਰਨਾ

RAG ਦੇ ਦਿਲ ਵਿੱਚ ਇੱਕ ਸਿੰਗਲ ਸਵਾਲ ਹੈ: "ਪਾਠ ਦਾ ਕਿਹੜਾ ਟੁਕੜਾ ਉਪਭੋਗਤਾ ਦੇ ਸਵਾਲ ਨਾਲ ਸਭ ਤੋਂ ਵੱਧ ਮਿਲਦਾ ਜੁਲਦਾ ਹੈ?" ਕੰਪਿਊਟਰ ਸੰਖਿਆਵਾਂ ਨਾਲ ਟੈਕਸਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ, ਸ਼ਾਬਦਿਕ ਨਹੀਂ। ਇਸ ਲਈ ਸਾਨੂੰ ਪਹਿਲਾਂ ਪਾਠ ਨੂੰ ਸੰਖਿਆਵਾਂ ਵਿੱਚ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ ਜੋ ਇਸਦੇ ਅਰਥ ਰੱਖਦੇ ਹਨ। ਇਹ ਉਹੀ ਹੈ ਜੋ ਏਮਬੈਡਿੰਗ ਹੈ: ਕਿਸੇ ਟੈਕਸਟ ਨੂੰ ਸੰਖਿਆਵਾਂ (ਵੈਕਟਰ) ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਬਦਲਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਜੋ ਉਸ ਟੈਕਸਟ ਦੇ ਅਰਥ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਇਸ ਯੂਨਿਟ ਨੂੰ ਪੂਰਾ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਪਤਾ ਲੱਗ ਜਾਵੇਗਾ ਕਿ ਏਮਬੈਡਿੰਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ, ਸਮਾਨਤਾ ਕਿਵੇਂ ਮਾਪੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਸਹੀ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਨੂੰ ਕਿਵੇਂ ਚੁਣਨਾ ਹੈ।

ਏਮਬੈਡਿੰਗ: ਕੋਆਰਡੀਨੇਟਸ ਵਿੱਚ ਅਰਥ ਦਾ ਅਨੁਵਾਦ ਕਰਨਾ

ਇੱਕ ਏਮਬੈਡਿੰਗ ਮਾਡਲ (ਇੱਕ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਸਿਖਲਾਈ ਪ੍ਰਾਪਤ ਨਕਲੀ ਬੁੱਧੀ) ਤੁਹਾਡੇ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਟੈਕਸਟ ਨੂੰ ਵੈਕਟਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, 1024 ਨੰਬਰ। ਇਸ ਵੈਕਟਰ ਨੂੰ ਇੱਕ ਬਹੁ-ਆਯਾਮੀ ਸਪੇਸ ਵਿੱਚ ਇੱਕ ਕੋਆਰਡੀਨੇਟ ਦੇ ਰੂਪ ਵਿੱਚ ਸੋਚੋ। ਜਾਦੂ ਇਹ ਹੈ: ਟੈਕਸਟ ਜੋ ਅਰਥਾਂ ਵਿੱਚ ਸਮਾਨ ਹਨ ਇਸ ਸਪੇਸ ਵਿੱਚ ਨਜ਼ਦੀਕੀ ਧੁਰੇ ਵਿੱਚ ਆਉਂਦੇ ਹਨ।

ਇੱਕ ਸਧਾਰਨ ਉਦਾਹਰਨ: “ਸਲਾਨਾ ਛੁੱਟੀ”, “ਛੁੱਟੀਆਂ ਦਾ ਹੱਕ” ਅਤੇ “ਸਾਲਾਨਾ ਅਦਾਇਗੀ ਛੁੱਟੀ” ਵੱਖੋ-ਵੱਖਰੇ ਸ਼ਬਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਪਰ ਅਰਥ ਇੱਕੋ ਹੀ ਹੁੰਦੇ ਹਨ — ਉਹਨਾਂ ਦੇ ਵੈਕਟਰ ਇੱਕ ਦੂਜੇ ਦੇ ਨੇੜੇ ਹੁੰਦੇ ਹਨ। "ਪੇਰੋਲ ਖਾਤਾ" ਇੱਕ ਵੱਖਰਾ ਮਾਮਲਾ ਹੈ - ਇਸਦਾ ਵੈਕਟਰ ਦੂਰ ਹੈ। ਇਸ ਲਈ ਉਪਭੋਗਤਾ ਪੁੱਛਦਾ ਹੈ "ਮੇਰੇ ਕੋਲ ਕਿੰਨੇ ਦਿਨਾਂ ਦੀਆਂ ਛੁੱਟੀਆਂ ਹਨ?" ਜਦੋਂ ਤੁਸੀਂ ਪੁੱਛਦੇ ਹੋ, ਤਾਂ ਅਸੀਂ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਵੀ ਲੱਭ ਸਕਦੇ ਹਾਂ ਜਿਸ ਵਿੱਚ "ਛੁੱਟੀ" ਸ਼ਬਦ ਨਹੀਂ ਹੈ ਪਰ ਲਿਖਿਆ ਹੈ "ਸਾਲਾਨਾ ਛੁੱਟੀ 14 ਦਿਨ ਹੈ"। ਇਹ ਉਹ ਹੈ ਜੋ ਕਲਾਸਿਕ ਕੀਵਰਡ ਖੋਜ (ਖੋਜ ਜੋ ਸ਼ਬਦ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ) ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਸੰਕੇਤ: "ਅਰਥ ਦੇ ਫਿੰਗਰਪ੍ਰਿੰਟ" ਵਜੋਂ ਏਮਬੈਡਿੰਗ ਬਾਰੇ ਸੋਚੋ। ਇੱਕੋ ਅਰਥ ਵਾਲੇ ਦੋ ਵਾਕਾਂ ਦੇ ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ ਇੱਕੋ ਜਿਹੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ; ਭਾਵੇਂ ਸ਼ਬਦ ਵੱਖਰੇ ਹੋਣ।

ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਨਿਯਮ: ਸਵਾਲ ਨੂੰ ਏਮਬੈਡ ਕਰਨ ਵੇਲੇ ਤੁਸੀਂ ਜੋ ਮਾਡਲ ਵਰਤਦੇ ਹੋ, ਉਹੀ ਮਾਡਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਏਮਬੈਡ ਕਰਨ ਵੇਲੇ ਵਰਤਦੇ ਹੋ। ਵੱਖ-ਵੱਖ ਮਾਡਲ ਵੱਖ-ਵੱਖ ਸਪੇਸ ਪੈਦਾ ਕਰਦੇ ਹਨ; ਕੋਆਰਡੀਨੇਟ ਬੇਮਿਸਾਲ ਬਣ ਜਾਂਦੇ ਹਨ।

ਸਮਾਨਤਾ ਨੂੰ ਕਿਵੇਂ ਮਾਪਣਾ ਹੈ?

ਇਹ ਮਾਪਣ ਲਈ ਕਈ ਤਰੀਕੇ ਹਨ ਕਿ ਦੋ ਵੈਕਟਰ ਕਿੰਨੇ ਸਮਾਨ ਹਨ। ਸਭ ਤੋਂ ਆਮ ਕੋਸਾਈਨ ਸਮਾਨਤਾ ਹੈ: ਇਹ ਦੋ ਵੈਕਟਰਾਂ ਵਿਚਕਾਰ ਕੋਣ ਨੂੰ ਮਾਪਦਾ ਹੈ। ਜੇਕਰ ਕੋਣ ਛੋਟਾ ਹੈ (ਵੈਕਟਰ ਇੱਕੋ ਦਿਸ਼ਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੇ ਹਨ), ਤਾਂ ਸਮਾਨਤਾ ਜ਼ਿਆਦਾ ਹੁੰਦੀ ਹੈ। ਮੁੱਲ −1 ਅਤੇ 1 ਦੇ ਵਿਚਕਾਰ ਹੈ; 1 ਦੇ ਨੇੜੇ = ਬਹੁਤ ਸਮਾਨ।

ਮਾਪਦੰਡ

ਇਹ ਕੀ ਮਾਪਦਾ ਹੈ?

ਇਸਨੂੰ ਕਦੋਂ ਤਰਜੀਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ?

ਕੋਸਾਈਨ

ਵੈਕਟਰਾਂ ਵਿਚਕਾਰ ਕੋਣ (ਦਿਸ਼ਾ)

ਸਭ ਤੋਂ ਆਮ; ਟੈਕਸਟ ਸਿਮੈਂਟਿਕ ਸਮਾਨਤਾ ਵਿੱਚ ਡਿਫੌਲਟ

ਡਾਟ ਉਤਪਾਦ

ਦਿਸ਼ਾ + ਵਿਸ਼ਾਲਤਾ ਇਕੱਠੇ

ਜੇਕਰ ਵੈਕਟਰਾਂ ਨੂੰ ਸਾਧਾਰਨ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਕੋਸਾਈਨ ਵਾਂਗ ਹੀ ਨਤੀਜਾ ਦਿੰਦਾ ਹੈ; ਤੇਜ਼ ਹੈ

ਯੂਕਲੀਡੀਅਨ (ਯੂਕਲੀਡੀਅਨ ਦੂਰੀ)

ਕੋਆਰਡੀਨੇਟਸ ਵਿਚਕਾਰ ਸਿੱਧੀ ਦੂਰੀ

ਕੁਝ ਕਲੱਸਟਰਿੰਗ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ; ਟੈਕਸਟ ਵਿੱਚ ਘੱਟ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ

ਅਭਿਆਸ ਵਿੱਚ, ਜ਼ਿਆਦਾਤਰ ਏਮਬੈਡਿੰਗ ਮਾਡਲ ਸਧਾਰਣ ਵੈਕਟਰ ਪੈਦਾ ਕਰਦੇ ਹਨ (ਆਕਾਰ ਨੂੰ 1 ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ); ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਕੋਸਾਈਨ ਅਤੇ ਬਿੰਦੀ ਉਤਪਾਦ ਇੱਕੋ ਕ੍ਰਮ ਦਿੰਦੇ ਹਨ। ਅਧਰੰਗ ਨਾਲ ਫੈਸਲਾ ਨਾ ਕਰੋ: ਕੋਸਾਈਨ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ।

ਲੱਖਾਂ ਵੈਕਟਰਾਂ ਵਿੱਚ, ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਉਹਨਾਂ ਦੀ ਤੁਲਨਾ ਕਰਨਾ ਹੌਲੀ ਹੈ। ਇਸ ਲਈ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ANN (ਲਗਭਗ ਨਜ਼ਦੀਕੀ ਨੇਬਰ) ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ANN ਬਹੁਤ ਜਲਦੀ "ਸਹੀ ਨਜ਼ਦੀਕੀ" ਦੀ ਬਜਾਏ "ਲਗਭਗ ਸਭ ਤੋਂ ਨਜ਼ਦੀਕੀ" ਲੱਭਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, HNSW ਨਾਮਕ ਵਿਧੀ 10 ਮਿਲੀਅਨ ਵੈਕਟਰਾਂ ਲਈ ਵੀ ਕੁਝ ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ ਨਤੀਜੇ ਵਾਪਸ ਕਰ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਸ਼ੁੱਧਤਾ ਦੇ ਇੱਕ ਛੋਟੇ ਬਲੀਦਾਨ ਲਈ ਬਹੁਤ ਗਤੀ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ.

ਵੈਕਟਰ ਡਾਟਾਬੇਸ ਕੀ ਕਰਦਾ ਹੈ?

ਇੱਕ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਇੱਕ ਵਾਰ ਵਿੱਚ ਤਿੰਨ ਕੰਮ ਕਰਦਾ ਹੈ: (1) ਵੈਕਟਰ ਸਟੋਰ ਕਰਦਾ ਹੈ, (2) ਇੱਕ ਪੁੱਛਗਿੱਛ ਵੈਕਟਰ ਨਾਲ ਮਿਲਦੇ-ਜੁਲਦੇ ਵੈਕਟਰਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਲੱਭਦਾ ਹੈ, (3) ਹਰੇਕ ਵੈਕਟਰ ਦੇ ਅੱਗੇ ਮੈਟਾਡੇਟਾ ਦੁਆਰਾ ਫਿਲਟਰ ਕਰਦਾ ਹੈ। ਮੈਟਾਡੇਟਾ ਉਹ ਟੈਗ ਹਨ ਜੋ ਤੁਸੀਂ ਉਸ ਟੁਕੜੇ ਨਾਲ ਜੋੜਦੇ ਹੋ: ਸਰੋਤ ਫਾਈਲ, ਮਿਤੀ, ਵਿਭਾਗ, ਗੋਪਨੀਯਤਾ ਪੱਧਰ, ਆਦਿ। ਐਂਟਰਪ੍ਰਾਈਜ਼ RAG ਵਿੱਚ ਮੈਟਾਡੇਟਾ ਫਿਲਟਰਿੰਗ ਮਹੱਤਵਪੂਰਨ ਹੈ; ਕਿਉਂਕਿ ਤੁਹਾਨੂੰ "ਸਿਰਫ਼ ਵਿੱਤ ਵਿਭਾਗ ਦੇ 2025 ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਖੋਜ" ਵਰਗੀਆਂ ਪਾਬੰਦੀਆਂ ਸੈੱਟ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਦੀ ਲੋੜ ਹੈ।

# ਵੈਕਟਰ ਡੇਟਾਬੇਸ (ਸੰਕਲਪਿਕ)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("ਸਾਲਾਨਾ ਅਦਾਇਗੀ ਛੁੱਟੀ 14 ਦਿਨ ਹੈ..."), ਟੈਕਸਟ="ਸਾਲਾਨਾ ਅਦਾਇਗੀ ਛੁੱਟੀ 14 ਦਿਨ ਹੈ...", ਮੈਟਾਡੇਟਾ={"ਸਰੋਤ": "ik_el_kitabi", "Kipate:" "partabi" ਵਿੱਚ ਰਜਿਸਟਰ ਕਰੋ। "2025-06", "ਗੋਪਨੀਯਤਾ": "ic"})

# ਮੈਟਾਡਾਟਾ ਫਿਲਟਰ ਕੀਤੀ ਖੋਜ (ਸੰਕਲਪਿਕ) ਨਤੀਜਾ = vektor_db.search( vektor=embed("ਮੇਰੇ ਕੋਲ ਕਿੰਨੇ ਦਿਨਾਂ ਦੀ ਛੁੱਟੀ ਹੈ?"), top_k=4, ਫਿਲਟਰ={"ਡਿਪਾਰਟਮੈਂਟ": "HR", "ਗੋਪਨੀਯਤਾ": ["ਅੰਦਰੂਨੀ", "ਚਾਲੂ"]})

ਸਹੀ ਡਾਟਾਬੇਸ ਦੀ ਚੋਣ

ਵਾਹਨ

ਫੀਚਰਡ ਪਹਿਲੂ

ਅਨੁਕੂਲ ਸਥਿਤੀ

ਬਿਲਟ-ਇਨ / ਫਾਈਲ-ਅਧਾਰਿਤ (ਏਮਬੈਡਡ ਲਾਇਬ੍ਰੇਰੀ)

ਕੋਈ ਸਥਾਪਨਾ ਨਹੀਂ, ਸਿੰਗਲ ਮਸ਼ੀਨ

ਪ੍ਰੋਟੋਟਾਈਪ, ਛੋਟੀ ਕਿੱਟ (<ਕੁਝ ਲੱਖ ਹਿੱਸੇ)

ਪ੍ਰਬੰਧਿਤ ਕਲਾਉਡ ਸੇਵਾ

ਸਕੇਲਿੰਗ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਤੁਹਾਡੀ ਜ਼ਿੰਮੇਵਾਰੀ ਨਹੀਂ ਹੈ

ਉਤਪਾਦਨ, ਤੇਜ਼ੀ ਨਾਲ ਵਧ ਰਿਹਾ ਡੇਟਾ, ਛੋਟੀ ਟੀਮ

ਤੁਹਾਡੇ ਆਪਣੇ ਸਰਵਰ 'ਤੇ ਓਪਨ ਸੋਰਸ

ਪੂਰਾ ਨਿਯੰਤਰਣ, ਤੁਹਾਡਾ ਡੇਟਾ ਤੁਹਾਡਾ ਰਹਿੰਦਾ ਹੈ

ਗੋਪਨੀਯਤਾ ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ, ਮੌਜੂਦਾ ਬੁਨਿਆਦੀ ਢਾਂਚਾ

ਮੌਜੂਦਾ ਡਾਟਾਬੇਸ ਨੂੰ ਜੋੜਨਾ

ਤੁਸੀਂ ਵੱਖਰੇ ਸਿਸਟਮਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਨਹੀਂ ਕਰਦੇ ਹੋ

DB ਵਿੱਚ ਵੈਕਟਰ ਸਹਿਯੋਗ ਜੋੜਨਾ ਜੋ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਵਰਤਦੇ ਹੋ

ਚੁਣਨ ਵੇਲੇ ਪੁੱਛੋ: ਕਿੰਨੇ ਟੁਕੜੇ ਹੋਣਗੇ? ਮੈਟਾਡੇਟਾ ਫਿਲਟਰਿੰਗ ਕਿੰਨੀ ਮਹੱਤਵਪੂਰਨ ਹੈ? ਕੀ ਡੇਟਾ ਕੰਪਨੀ (ਗੁਪਤਤਾ) ਤੋਂ ਬਾਹਰ ਜਾ ਸਕਦਾ ਹੈ? ਕੀ ਟੀਮ ਬੁਨਿਆਦੀ ਢਾਂਚੇ ਦਾ ਸੰਚਾਲਨ ਕਰ ਸਕਦੀ ਹੈ? ਛੋਟੀ ਜਿਹੀ ਸ਼ੁਰੂਆਤ ਕਰਨਾ ਅਤੇ ਲੋੜ ਅਨੁਸਾਰ ਵਿਸਤਾਰ ਕਰਨਾ ਅਕਸਰ ਬੁੱਧੀਮਾਨ ਹੁੰਦਾ ਹੈ।

ਕਮਜ਼ੋਰ ਪਹੁੰਚ / ਮਜ਼ਬੂਤ ਪਹੁੰਚ

ਕਮਜ਼ੋਰ (ਸਾਦਾ ਏਮਬੈਡਿੰਗ ਸਟੋਰ ਕਰਨਾ, ਕੋਈ ਮੈਟਾਡੇਟਾ ਨਹੀਂ):

ਬਸ ਟੈਕਸਟ ਅਤੇ ਵੈਕਟਰ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ। ਖੋਜ: 4 ਸਭ ਤੋਂ ਮਿਲਦੇ-ਜੁਲਦੇ ਵੈਕਟਰ ਵਾਪਸ ਕਰੋ। # ਸਮੱਸਿਆ: "ਸਿਰਫ਼ ਮੌਜੂਦਾ HR ਦਸਤਾਵੇਜ਼" ਵਾਂਗ ਫਿਲਟਰ ਨਹੀਂ ਕਰ ਸਕਦੇ; # ਪੁਰਾਣੇ/ਅਣਅਧਿਕਾਰਤ ਹਿੱਸੇ ਵੀ ਜਵਾਬ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।

ਸ਼ਕਤੀਸ਼ਾਲੀ (ਅਮੀਰ ਮੈਟਾਡੇਟਾ + ਫਿਲਟਰ ਕੀਤੀ ਖੋਜ):

ਹਰੇਕ ਹਿੱਸੇ ਵਿੱਚ ਸਰੋਤ, ਮਿਤੀ, ਵਿਭਾਗ ਅਤੇ ਗੋਪਨੀਯਤਾ ਟੈਗ ਸ਼ਾਮਲ ਕਰੋ। ਖੋਜ ਦੌਰਾਨ ਉਪਭੋਗਤਾ ਦੇ ਅਧਿਕਾਰ ਅਤੇ ਵਰਤਮਾਨਤਾ ਦੇ ਅਨੁਸਾਰ ਫਿਲਟਰ ਕਰੋ: filter = {"privacy": user_authority, "date_date": "2024-01"}# ਇਸ ਤਰ੍ਹਾਂ, ਨਤੀਜਾ ਸੁਰੱਖਿਅਤ ਅਤੇ ਅੱਪ-ਟੂ-ਡੇਟ ਦੋਵੇਂ ਹੈ।

ਤਿੰਨ ਮਿੰਨੀ ਕੇਸ

ਕੇਸ 1 — ਗਲਤ ਮਾਡਲ ਮਿਸ਼ਰਣ। ਇੱਕ ਟੀਮ ਨੇ ਮਾਡਲ A ਦੇ ਨਾਲ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਏਮਬੈਡ ਕੀਤਾ ਅਤੇ ਮਾਡਲ B ਦੇ ਨਾਲ ਸਵਾਲ। ਖੋਜਾਂ ਨੇ ਅਰਥਹੀਣ ਨਤੀਜੇ ਦਿੱਤੇ, ਅਤੇ ਸਹੀ ਜਵਾਬ ਦਰ 31% ਰਹੀ। ਜਦੋਂ ਮੈਂ ਇੱਕ ਸਿੰਗਲ ਮਾਡਲ (ਦੋਵੇਂ ਇੱਕੋ ਏਮਬੈਡਿੰਗ ਮਾਡਲ) ਵਿੱਚ ਬਦਲਿਆ, ਤਾਂ ਦਰ 88% ਤੱਕ ਵਧ ਗਈ। ਪਾਠ: ਪ੍ਰਸ਼ਨ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਇੱਕੋ ਥਾਂ ਵਿੱਚ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।

ਕੇਸ 2 - ਮੈਟਾਡੇਟਾ ਤੋਂ ਬਿਨਾਂ ਗੋਪਨੀਯਤਾ ਜੋਖਮ। ਇੱਕ ਹੈਲਥਕੇਅਰ ਕੰਪਨੀ ਵਿੱਚ, ਵਿਭਾਗ ਦੇ ਸਾਰੇ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਬਿਨਾਂ ਮੈਟਾਡੇਟਾ ਦੇ ਇੱਕ ਪੂਲ ਵਿੱਚ ਸੁੱਟ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਜਦੋਂ ਇੱਕ ਸੇਲਜ਼ ਐਸੋਸੀਏਟ ਨੇ ਇੱਕ ਸਵਾਲ ਪੁੱਛਿਆ, ਤਾਂ ਸਿਸਟਮ ਨੇ ਮਰੀਜ਼ ਦੇ ਡੇਟਾ ਦੇ ਇੱਕ ਹਿੱਸੇ ਨੂੰ ਪ੍ਰਸੰਗਿਕ ਬਣਾਇਆ। ਜਦੋਂ ਮੈਟਾਡੇਟਾ + ਫਿਲਟਰ ਜੋੜਿਆ ਗਿਆ ਸੀ (ਪ੍ਰਮਾਣਿਕਤਾ ਪੱਧਰ ਦੇ ਅਨੁਸਾਰ), ਇਸ ਜੋਖਮ ਨੂੰ ਖਤਮ ਕਰ ਦਿੱਤਾ ਗਿਆ ਸੀ; ਮੁੜ ਪ੍ਰਾਪਤੀ ਵਿੱਚ, 12 ਅਣਅਧਿਕਾਰਤ ਟੁਕੜੇ ਬਿਲਕੁਲ ਨਹੀਂ ਲਿਆਂਦੇ ਗਏ ਹਨ।

ਕੇਸ 3 - ਸਕੇਲ ਅੜਚਨ। ਇੱਕ ਈ-ਕਾਮਰਸ ਕੰਪਨੀ ਨੇ ਇੱਕ ਸਧਾਰਨ "ਸਕੈਨ ਆਲ" ਵਿਧੀ ਨਾਲ 8 ਮਿਲੀਅਨ ਉਤਪਾਦ ਵੇਰਵੇ ਦੀ ਖੋਜ ਕੀਤੀ; ਹਰੇਕ ਪੁੱਛਗਿੱਛ ਵਿੱਚ 6 ਸਕਿੰਟ ਲੱਗ ਗਏ। ਜਦੋਂ ਅਸੀਂ HNSW-ਅਧਾਰਿਤ ANN 'ਤੇ ਸਵਿਚ ਕੀਤਾ, ਤਾਂ ਸਮਾਂ ਘਟ ਕੇ 45 ਮਿਲੀਸਕਿੰਟ ਹੋ ਗਿਆ, ਸ਼ੁੱਧਤਾ ਵਿੱਚ ਸਿਰਫ 1% ਦਾ ਨੁਕਸਾਨ ਹੋਇਆ। ਪਾਠ: ਵੱਡੇ ਸੈੱਟ ਵਿੱਚ ANN ਲਾਜ਼ਮੀ ਹੈ।

ਆਮ ਗਲਤੀਆਂ

  • ਸਵਾਲ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਵੱਖ-ਵੱਖ ਮਾਡਲਾਂ ਨਾਲ ਜੋੜਨਾ: ਨਤੀਜੇ ਅਰਥਹੀਣ ਹਨ; ਹਮੇਸ਼ਾ ਇੱਕ ਮਾਡਲ.
  • ਮੈਟਾਡੇਟਾ ਛੱਡਣਾ: ਤੁਸੀਂ ਫਿਲਟਰ ਨਹੀਂ ਕਰ ਸਕਦੇ; ਤੁਸੀਂ ਗੋਪਨੀਯਤਾ ਅਤੇ ਅਪ-ਟੂ-ਡੇਟਨੇਸ ਦਾ ਨਿਯੰਤਰਣ ਗੁਆ ਦਿੰਦੇ ਹੋ।
  • ਏਨਕ੍ਰਿਪਸ਼ਨ ਲਈ ਏਮਬੈਡਿੰਗ ਦੀ ਗਲਤੀ: ਏਮਬੈਡਿੰਗ ਉਲਟ ਜਾਣ ਵਾਲੀ ਜਾਣਕਾਰੀ ਰੱਖਦਾ ਹੈ; ਇਹ ਮੰਨਣਾ ਗਲਤ ਹੈ ਕਿ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ "ਲੁਕਾਇਆ" ਹੈ।
  • ਇੱਕ ਛੋਟੇ ਸੈੱਟ 'ਤੇ ਬੇਲੋੜੇ ਵੱਡੇ ਬੁਨਿਆਦੀ ਢਾਂਚੇ ਦਾ ਨਿਰਮਾਣ: 5,000 ਹਿੱਸਿਆਂ ਲਈ ਪ੍ਰਬੰਧਿਤ ਇੱਕ ਵਿਸ਼ਾਲ ਕਲੱਸਟਰ ਬੇਲੋੜੀ ਜਟਿਲਤਾ ਹੈ।
  • ਸਮਾਨਤਾ ਦੇ ਮਾਪਦੰਡ ਬਾਰੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਚਿੰਤਾ ਨਾ ਕਰੋ: ਟੈਕਸਟ ਵਿੱਚ ਕੋਸਾਈਨ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ; ਵਧੀਆ ਟਿਊਨਿੰਗ ਬਾਅਦ ਵਿੱਚ ਆਉਂਦੀ ਹੈ.
ਸਾਵਧਾਨ: ਏਮਬੈਡਿੰਗ ਸੰਖਿਆਵਾਂ ਵਿੱਚ ਟੈਕਸਟ ਦੇ ਅਰਥ ਨੂੰ ਏਮਬੈਡ ਕਰਦਾ ਹੈ, ਪਰ ਸਮੱਗਰੀ ਨੂੰ "ਨਸ਼ਟ" ਨਹੀਂ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਵੈਕਟਰ ਡਾਟਾਬੇਸ ਲੀਕ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਅਸਲ ਸਟੋਰ ਕੀਤੇ ਟੈਕਸਟ (ਜ਼ਿਆਦਾਤਰ ਸਥਾਪਨਾਵਾਂ ਵਿੱਚ ਟੈਕਸਟ ਵੀ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ) ਨਾਲ ਵੀ ਸਮਝੌਤਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਵੈਕਟਰ ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਇਸ ਦੇ ਅੰਦਰ ਦਸਤਾਵੇਜ਼ਾਂ ਵਾਂਗ ਗੁਪਤ ਰੱਖੋ।

ਸੰਖੇਪ ਵਿੱਚ

  • ਏਮਬੈਡਿੰਗ ਟੈਕਸਟ ਨੂੰ ਸੰਖਿਆਵਾਂ ਦੇ ਇੱਕ ਵੈਕਟਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ ਜੋ ਇਸਦਾ ਅਰਥ ਰੱਖਦਾ ਹੈ; ਸਮਾਨ ਅਰਥ ਨਜ਼ਦੀਕੀ ਵੈਕਟਰ ਹਨ।
  • ਸਮਾਨਤਾ ਅਕਸਰ ਕੋਸਾਈਨ ਦੁਆਰਾ ਮਾਪੀ ਜਾਂਦੀ ਹੈ; ਸਧਾਰਣ ਵੈਕਟਰਾਂ ਲਈ, ਬਿੰਦੀ ਉਤਪਾਦ ਉਹੀ ਨਤੀਜਾ ਦਿੰਦਾ ਹੈ।
  • ਵੱਡੇ ਡੇਟਾ ਵਿੱਚ, ANN (ਉਦਾਹਰਨ ਲਈ, HNSW) ਸਟੀਕ ਖੋਜ ਨੂੰ ਬਦਲਦਾ ਹੈ: ਸ਼ੁੱਧਤਾ ਦੇ ਥੋੜੇ ਬਲੀਦਾਨ ਦੇ ਨਾਲ ਮਹਾਨ ਗਤੀ।
  • ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਵੈਕਟਰ ਸਟੋਰੇਜ + ਸਮਾਨਤਾ ਖੋਜ + ਮੈਟਾਡੇਟਾ ਫਿਲਟਰਿੰਗ ਕਰਦਾ ਹੈ; ਐਂਟਰਪ੍ਰਾਈਜ਼ RAG ਲਈ ਮੈਟਾਡੇਟਾ ਜ਼ਰੂਰੀ ਹੈ।
  • ਸਵਾਲ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇੱਕੋ ਏਮਬੈਡਿੰਗ ਮਾਡਲ ਨਾਲ ਅਨੁਵਾਦ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ; ਨਹੀਂ ਤਾਂ ਧੁਰੇ ਦੀ ਤੁਲਨਾ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।

ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ

ਤੁਹਾਡੇ ਦੁਆਰਾ ਪਿਛਲੀ ਇਕਾਈ ਵਿੱਚ ਚੁਣੇ ਗਏ ਦਸਤਾਵੇਜ਼ ਵਿੱਚੋਂ 10 ਛੋਟੇ ਅੰਸ਼ (ਹਰੇਕ ਵਿੱਚ 3-6 ਵਾਕ) ਕੱਢੋ। (1) ਹਰੇਕ ਟੁਕੜੇ ਲਈ ਘੱਟੋ-ਘੱਟ ਤਿੰਨ ਮੈਟਾਡੇਟਾ ਟੈਗ ਡਿਜ਼ਾਈਨ ਕਰੋ (ਸਰੋਤ, ਮਿਤੀ, ਅਤੇ ਤੁਹਾਡੇ ਵਪਾਰਕ ਸੰਦਰਭ ਲਈ ਇੱਕ ਤੀਜਾ ਢੁਕਵਾਂ: ਵਿਭਾਗ, ਉਤਪਾਦ, ਗੋਪਨੀਯਤਾ, ਆਦਿ)। (2) ਲਿਖੋ ਕਿ 3 ਵੱਖ-ਵੱਖ ਉਪਭੋਗਤਾ ਪ੍ਰਸ਼ਨਾਂ ਲਈ ਕਿਹੜਾ ਮੈਟਾਡੇਟਾ ਫਿਲਟਰ ਲਾਗੂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। (3) 3 ਪ੍ਰਸ਼ਨ-ਭਾਗ ਜੋੜੇ ਲੱਭੋ ਜੋ ਵੱਖੋ-ਵੱਖ ਸ਼ਬਦਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹੇ ਅਰਥਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ (ਉਦਾਹਰਨ ਲਈ, “ਛੁੱਟੀ ਦਾ ਹੱਕ” ↔ “ਸਾਲਾਨਾ ਛੁੱਟੀ”) ਅਤੇ ਇੱਕ ਵਾਕ ਵਿੱਚ ਦੱਸੋ ਕਿ ਉਹ ਕੀਵਰਡ ਖੋਜ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਣਗੇ ਪਰ ਏਮਬੈਡਿੰਗ ਨਾਲ ਮੇਲ ਖਾਂਣਗੇ।

ਚੈੱਕਲਿਸਟ

  • [ ] ਮੈਂ ਦੱਸ ਸਕਦਾ/ਸਕਦੀ ਹਾਂ ਕਿ ਏਮਬੈਡਿੰਗ ਟੈਕਸਟ ਨੂੰ ਸਿਮੈਂਟਿਕ ਸਪੇਸ ਵਿੱਚ ਵੈਕਟਰ ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ ਅਤੇ ਸਮਾਨ ਅਰਥ ਨੇੜੇ ਹੁੰਦੇ ਹਨ।
  • ਮੈਂ ਜਾਣਦਾ ਹਾਂ ਕਿ [ ] ਕੋਸਾਈਨ ਸਮਾਨਤਾ ਕੋਣ ਨੂੰ ਮਾਪਦੀ ਹੈ ਅਤੇ ਟੈਕਸਟ ਵਿੱਚ ਡਿਫੌਲਟ ਤਰਜੀਹ ਹੈ।
  • [ ] ਮੈਂ ਦੱਸ ਸਕਦਾ ਹਾਂ ਕਿ ਵੱਡੇ ਡੇਟਾ ਵਿੱਚ ANN ਕਿਉਂ ਜ਼ਰੂਰੀ ਹੈ।
  • [ ] ਮੈਂ ਜਾਣਦਾ ਹਾਂ ਕਿ ਗੁਪਤਤਾ ਅਤੇ ਤਾਜ਼ਗੀ ਨਿਯੰਤਰਣ ਲਈ ਮੈਟਾਡੇਟਾ ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹੈ।
  • [ ] ਮੈਂ ਉਸੇ ਏਮਬੈਡਿੰਗ ਮਾਡਲ ਨਾਲ ਪ੍ਰਸ਼ਨ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਦੇ ਨਿਯਮ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹਾਂ।