প্রকল্প সম্পর্কে

dve (dve vector engine) হলো Apple ডিভাইসে স্থানীয়ভাবে ভেক্টর এমবেডিং তৈরি ও অনুসন্ধানের একটি লাইব্রেরি। এটি Zig দিয়ে তৈরি, এবং পরীক্ষামূলক Swift বাইন্ডিংও পাওয়া যায়। প্রকল্পটি নিজেকে প্রাথমিক পর্যায়ের ও সক্রিয়ভাবে উন্নয়নাধীন বলে বর্ণনা করে, এবং GitHub-এ বাগ রিপোর্ট, ইস্যু ও পুল রিকোয়েস্ট স্বাগত জানায়। ব্যবহার মূলত একটি ডিরেক্টরি খোলার কেন্দ্রে, যেখানে ভেক্টর ডেটাবেস সংরক্ষণ করা হবে, একটি মডেল নির্বাচন করা, এবং তারপর টেক্সট এমবেড ও অনুসন্ধান করা। Zig উদাহরণে, std.fs.cwd().makeOpenPath দিয়ে একটি ডিরেক্টরি তৈরি করা হয়, dve.VectorEngine(.mpnet_embedding) দিয়ে একটি মডেল বেছে নেওয়া হয়, এবং একটি অ্যালোকেটর ও ডিরেক্টরি দিয়ে ইঞ্জিনটি আরম্ভ করা হয়। embedText দিয়ে টেক্সট এন্ট্রি যোগ করা হয়, যেখানে কী এন্ট্রিটিকে চিহ্নিত করে (সাধারণত একটি ফাইল পাথ)। অনুসন্ধান একটি কোয়েরি স্ট্রিং ও একটি ফলাফল বাফার নেয়, এবং সাদৃশ্য অনুসারে সাজানো ফলাফল ফেরত দেয়; উদাহরণে কৃত্রিম বুদ্ধিমত্তা সম্পর্কে একটি কোয়েরি "doc1" কী-যুক্ত এন্ট্রির সঙ্গে মিলে যাওয়া দেখানো হয়েছে। README-তে Zig ও Swift-এ সম্পূর্ণ কার্যকর ডেমোর জন্য একটি examples ডিরেক্টরির দিকে এবং ইনস্টলেশন, উপলব্ধ মডেলের বিকল্প ও সুবিধা-অসুবিধা, এবং সম্পূর্ণ ব্যবহারের বিবরণের জন্য USAGE.md-এর দিকে ইঙ্গিত করা হয়েছে। বলা হয়েছে যে প্রেরণা হলো, ভেক্টর অনুসন্ধান অ্যাপের জন্য উপযোগী, কিন্তু ডিভাইসে চালানো বাস্তবায়ন খুঁজে পাওয়া কঠিন। ডেভেলপাররা সাধারণত ক্লাউড API-এর মধ্যে বেছে নেন, যা খরচ ও তৃতীয় পক্ষের নির্ভরতা যোগ করে, অথবা Hugging Face Transformers-এর মতো ভারী অল-ইন-ওয়ান ফ্রেমওয়ার্ক। README-তে যুক্তি দেওয়া হয়েছে যে এটি বিশেষত Apple প্ল্যাটফর্মে তীব্র, যেখানে ML ফ্রেমওয়ার্কগুলো অপ্রতিরোধ্যভাবে Linux সার্ভারকে অগ্রাধিকার দেয়, CoreML খারাপভাবে ডকুমেন্টেড, এবং ক্রস-প্ল্যাটফর্ম লাইব্রেরিগুলো খুব কমই macOS বা iOS অ্যাপে পরিষ্কারভাবে সংহত হয়। dve এই শূন্যতা পূরণের লক্ষ্য রাখে, Apple দিয়ে শুরু করে, তবে পোর্টেবিলিটিকে একটি মূল ডিজাইন লক্ষ্য হিসেবে বিবেচনা করে। প্রকল্পটি তিনটি মূল নীতি তালিকাভুক্ত করে: পোর্টেবল, অর্থাৎ এটি অল্প কিছু লাইব্রেরি ব্যবহার করা উচিত যাতে যেকোনো প্ল্যাটফর্মে সহজে ব্যবহার করা যায়; সরল, অর্থাৎ যুক্তিসঙ্গত ডিফল্টসহ একটি সরল কিন্তু কনফিগারযোগ্য ইন্টারফেস; এবং স্থানীয়, অর্থাৎ এটি পারফরম্যান্টভাবে চলা উচিত এবং কখনো নেটওয়ার্ক কল করা উচিত নয়। রোডম্যাপে রয়েছে Linux সমর্থন যোগ করা, Swift বাইন্ডিং আরও স্থিতিশীল করা, C/C++ বাইন্ডিং আরও স্থিতিশীল করা, iOS সমর্থন, মাল্টি-মোডাল এমবেডিং সমর্থন, টেক্সট ডকুমেন্টের মধ্যে লিংক ডাউনলোড করে সেগুলো এমবেড করা, mpnet ও Apple NL-এর বাইরে একাধিক মডেল ধরনের সমর্থন, এবং একটি প্রক্রিয়ার মধ্যে একাধিক ডেটাবেস ইনস্ট্যান্সের সমর্থন।