AI में रुचि रखने वाले ऐप डेवलपर्स के लिए एक अच्छा शुरुआती बिंदु: Embeddings
(bawolf.substack.com)ऐप डेवलपर्स के लिए Embeddings उपयोग गाइड
- Vector embeddings विभिन्न इनपुट्स के बीच समानता मापने में प्रभावी होते हैं, इसलिए ये search और recommendation features के लिए उपयुक्त हैं। यह French या Japanese जैसी दूसरी भाषाओं में भी अच्छी तरह काम करते हैं।
- Pgvector, Postgres का एक extension है जिसमें embeddings को store और query किया जा सकता है। यह नया service जोड़े बिना SQL logic और embedding operations को जोड़ने की सुविधा देता है, इसलिए यह काफ़ी शक्तिशाली है।
- LLM से अलग, embeddings का उपयोग सामान्य deterministic code जैसा अनुभव देता है।
आइकन search और recommendation project विकास
- Pgvector setup के बाद, icon data को embedding vectors में encode करने की रणनीति बनाई जाती है।
- OpenAI के
text-embedding-3-smallमॉडल का उपयोग। - Cosine similarity के ज़रिए search query और हर icon embedding के बीच समानता मापी जाती है।
- Embedding search के साथ iconset filtering जैसी business logic को जोड़ा जाता है।
- Search query के लिए icon click data का उपयोग करने वाले ranking algorithm का उदाहरण दिया गया है।
- चुने गए icon से मिलते-जुलते icons recommend करने के लिए embeddings comparison का उपयोग।
implementation approach सारांश
- Vector DB के रूप में pgvector/Postgres चुना गया। MongoDB आदि दूसरे विकल्प भी मौजूद हैं।
- Development Typescript में, और
drizzle-ormका उपयोग। दूसरी languages/frameworks के लिए भी कई libraries उपलब्ध हैं। - App को Neon पर host किया गया है। fly.io, Supabase जैसी managed DB hosting services भी इस्तेमाल की जा सकती हैं।
- OpenAI के
text-embedding-3-smallembedding model का उपयोग। Huggingface leaderboard से दूसरे models भी चुने जा सकते हैं। - Icon properties में से search relevance अधिक रखने वाली चीज़ों को key-value pairs के रूप में embed किया जाता है।
- Distance function के रूप में Cosine similarity का उपयोग। Pgvector
l2 distanceऔरinner productभी support करता है। - Search results को top 50 तक सीमित रखा गया। Distance range का उपयोग करते समय इसे थोड़ा व्यापक रखकर
limitके साथ इस्तेमाल करने की सिफारिश है।
GN⁺ की राय
- ज़्यादातर projects में pgvector की तरह मौजूदा DB में vector functionality जोड़ने का तरीका काफ़ी होगा। अलग vector DB अपनाने की ज़रूरत शायद बड़े पैमाने की services में ही पड़े।
- Embedding search में business logic को स्वाभाविक रूप से जोड़ पाना एक बड़ा फ़ायदा है। SQL की ताकत का पूरा उपयोग किया जा सकता है।
- Ranking algorithm में user feedback data को शामिल करने का विचार अच्छा है। इससे search accuracy को लगातार बेहतर किया जा सकता है।
- LLM की तुलना में embedding-आधारित services का व्यवहार अधिक स्पष्ट होता है और debugging भी आसान होती है, इसलिए इन्हें वास्तविक service में लागू करना कहीं अधिक सरल लगता है।
- कई open source embedding models उपलब्ध हैं, इसलिए अगर अपना model विकसित करना कठिन हो, तब भी high-quality embeddings का आसानी से उपयोग किया जा सकता है।
1 टिप्पणियां
Hacker News राय
Hacker News टिप्पणियों का सार
RAG मॉडल का उपयोग करके दस्तावेज़ embedding और similarity search की सुविधा
sentence-transformersऔरfaissलाइब्रेरी का उपयोग करके आसानी से document embedding और similarity search लागू किया जा सकता हैembedding की बुनियादी अवधारणा को समझना
embedding generation process पर विस्तृत विवरण की कमी
They're a bit of a black boxकहा गया है और विस्तार से नहीं समझाया गयाhomonym handling की कठिनाई
vector store के बिना भी embedding का उपयोग संभव
@operator का उपयोग करके normalized query vector और record matrix के बीच dot product निकालकर similarity की गणना की जा सकती हैlocal environment में embedding logic चलाने का तरीका
technical documentation लिखने में embedding के उपयोग की संभावना
embedding को store और उपयोग करने के तरीके
AI में शुरुआत करने वाले developers के लिए पृष्ठभूमि ज्ञान की व्याख्या की कमी