এবং কীওয়ার্ড ভিত্তিক অনুসন্ধানকে বিদায় বলুন
GPT 3+ বা ChatGPT, প্রম্পট ইঞ্জিনিয়ারিং স্বজ্ঞাতভাবে বোঝা সহজ। ওয়েবে এবং সোশ্যাল মিডিয়াতে উপলব্ধ অনেক গাইড এবং উদাহরণ সহ। যেমন
এমবেডিং, প্রোগ্রামিং প্রয়োজন, এবং এটি কিভাবে কাজ করে তার বিভিন্ন পাল্টা স্বজ্ঞাত আচরণের কারণে কম বোঝা যায়। কিন্তু, অনুসন্ধানের জন্য একটি অত্যন্ত শক্তিশালী হাতিয়ার, বা বিদ্যমান টেক্সট-ভিত্তিক মডেলগুলির সাথে একসাথে ব্যবহার করা, অন্যান্য সম্ভাব্য ব্যবহারের ক্ষেত্রে।
এম্বেডিংগুলি যুক্তিযুক্তভাবে একটি সমান শক্তিশালী টুল, এআই টুলকিটের মধ্যে, নির্দেশনা মডেলের জন্য। বিভিন্ন শব্দ এবং বাক্য, এমনকি সমগ্র ভাষা জুড়ে অনুসন্ধান পরিচালনা করার ক্ষমতার কারণে। যেকোন প্রশ্নের জন্য প্রাসঙ্গিক নথি অনুসন্ধানের উপর ফোকাস করা।
উদাহরণস্বরূপ, এটি একটি ইংরেজি ভিত্তিক ডকুমেন্টেশন থেকে অনুসন্ধান এবং উত্তর পাওয়ার জন্য ব্যবহার করা যেতে পারে। ইংরেজীতে ...
অথবা জাপানি...
অথবা অন্য কোনো ভাষা যা এআই মডেল সমর্থন করে।
ভেক্টর এম্বেডিং অনুসন্ধান, বা অন্যান্য কাজ যেমন প্রশ্ন-উত্তর, পাঠ্য শ্রেণিবিন্যাস এবং পাঠ্য তৈরি করার জন্য ব্যবহার করা যেতে পারে।
মনে রাখবেন যে এই নিবন্ধটি অনুসন্ধানের দিকে দৃষ্টি নিবদ্ধ করে, উত্তর দেওয়ার প্রক্রিয়াটি একটি ফলো-আপ নিবন্ধে রয়েছে।
একটি ভেক্টর এমবেডিং তৈরি করতে, কেউ একটি এমবেডিং এআই মডেল ব্যবহার করবে, যা যেকোনো পাঠ্যকে (একটি বৃহৎ নথি, একটি বাক্য বা এমনকি একটি শব্দ) একটি "N মাত্রা বিন্যাসে" রূপান্তর করে, যাকে ভেক্টর বলা হয়।
উদাহরণস্বরূপ একটি বাক্য যেমন How do I write a UI test script with Uilicious?
OpenAI text-embedding-ada-002 মডেলের মাধ্যমে একটি অ্যারেতে (একটি ভেক্টর বলা হয়) রূপান্তর করা যেতে পারে: [0.010046141, -0.009800113, 0.014761676, -0.022538893, ... an a 1000+ numbers]
এই ভেক্টরটি AI মডেলের পাঠ্যের সংক্ষিপ্ত বোঝার প্রতিনিধিত্ব করে। এটিকে এমন একটি ভাষায় লেখা "N-শব্দের সারাংশ" হিসাবে ভাবা যেতে পারে যা শুধুমাত্র AI বুঝতে পারে।
যেখানে সংশ্লিষ্ট নথিগুলির একে অপরের থেকে একটি ঘনিষ্ঠ দূরত্ব থাকবে, নথি সম্পর্কে AI-এর বোঝার উপর ভিত্তি করে (এবং শুধুমাত্র এর পাঠ্য নয়)।
এটি ক্লাসিক সার্চ ইঞ্জিনের সাধারণ কীওয়ার্ড অনুসন্ধানের বাইরে একটি বড় লাফ, কারণ এটি বাক্যের গঠন এবং ভাষার বৈচিত্র্যগুলি পরিচালনা করতে পারে (যদি AI মডেলকে উক্ত ভাষা বোঝার জন্য প্রশিক্ষণ দেওয়া হয়)।
নিম্নলিখিতটিকে একটি অনুমানমূলক উদাহরণ হিসাবে নিন, 2 মাত্রার জায়গায় ভুলভাবে অতি সরলীকৃত করুন যাতে এটি বোঝা সহজ হয়:
যা দৃশ্যত 2D স্পেসে নিম্নলিখিত হিসাবে উপস্থাপন করা যেতে পারে।
উদাহরণস্বরূপ, D1,2,3 হল বিভিন্ন উপায়ে Uilicious কীভাবে ব্যবহার করা যায় তার সাথে সম্পর্কিত সমস্ত নথি এবং একটি ক্লাস্টারে একত্রিত করা হয়েছে
D4 এবং D5, সহজভাবে লিঙ্ক হওয়া এবং এর বাইরে কোন অন্তর্নিহিত মান না থাকায়, অন্য একটি ক্লাস্টারে আলাদাভাবে গোষ্ঠীভুক্ত করা হয়েছে।
অধিকন্তু, D1 এবং D2 আরও একত্রে গোষ্ঠীভুক্ত করা হয়েছে, কারণ এগুলি আমাদের নিজস্ব জাভাস্ক্রিপ্ট-ভিত্তিক টেস্টিং ভাষা ব্যবহার করে Uilicious টেস্টিং কমান্ড সম্পর্কে।
যদিও D3 আলাদাভাবে গোষ্ঠীভুক্ত করা হয়েছে, কারণ এটি সরাসরি আমাদের পরিকাঠামোতে ওয়েব ড্রাইভার প্রোটোকল ব্যবহার করার বিষয়ে, যা একটি ভিন্ন ব্যবহারের ক্ষেত্রে এবং দর্শকদের জন্য উদ্দিষ্ট।
একইভাবে, Q1 এবং Q2-এর জন্য, বাক্যের গঠন এবং ভাষার মধ্যে তীব্র পার্থক্য থাকা সত্ত্বেও, কারণ এটি মূলত একই প্রশ্ন, দুটি প্রশ্ন একসাথে গোষ্ঠীভুক্ত করা হয়েছে।
অতিরিক্তভাবে, যদিও প্রশ্নটিকে প্রযুক্তিগতভাবে উভয় উপায়ে ব্যাখ্যা করা যেতে পারে (ইউলিসিয়াস টেস্ট স্ক্রিপ্ট, বা ওয়েবড্রাইভার প্রোটোকল ব্যবহার করে), কারণ প্রশ্নটি ওয়েবড্রাইভারের উপর ইউলিসিয়াস টেস্ট স্ক্রিপ্টিংয়ের ব্যবহার বোঝায়, এর অবস্থান D1 এবং D2 এর "কাছের" এবং এর থেকে আরও দূরে D3.
যেমন, কীওয়ার্ডগুলিতে বিশাল ওভারল্যাপ থাকা সত্ত্বেও, গ্রুপিংয়ের এই সূক্ষ্মতাগুলি এম্বেডিংয়ের মধ্যে এনকোড করা AI দ্বারা ক্যাপচার করা হয়। কীওয়ার্ড অনুসন্ধানে এর স্বতন্ত্র পার্থক্য হাইলাইট করা
বাস্তবে, যাইহোক, একটি অতি সরলীকৃত 2 মাত্রার বিন্যাসের পরিবর্তে যা মানুষের পক্ষে বোঝা সহজ, একটি এমবেডিং সহজেই 1,000+ মাত্রার অ্যারে হতে পারে। এই অ্যারেটি ব্যবহৃত নির্দিষ্ট AI মডেলের জন্য অনন্য, এবং অন্য AI মডেলের এম্বেডিংয়ের সাথে মিশ্রিত করা যাবে না।
যদিও অতিরিক্ত সরলীকৃত 2 মাত্রার উদাহরণ, একটি প্রশ্ন (বা একটি দৃষ্টিকোণ) এর সাথে তুলনামূলকভাবে গ্রুপ করার উচ্চ-স্তরের ধারণা বোঝার জন্য ভাল, এটি সঠিকভাবে একটি N-মাত্রাকে উপস্থাপন করে না।
জটিল N মাত্রা গণিতের কারণে, আপনার এমন পরিস্থিতি হতে পারে, যেখানে A B এর কাছাকাছি হতে পারে, B C এর কাছাকাছি হতে পারে, কিন্তু A এবং C একে অপরের থেকে অনেক দূরে বিবেচনা করা যেতে পারে। যা একটি অত্যন্ত পাল্টা স্বজ্ঞাত গোটচা।
এই ধরনের দূরত্ব শুধুমাত্র তখনই উপযোগী হয় যখন একই বিন্দুর সাপেক্ষে ব্যবহার করা হয় এবং সূত্রগুলি ব্যবহার করা হয়। যা ব্যবহার করেও হিসাব করা যায়
যদিও প্রতিটি সূত্রের কার্যকারিতার নিজস্ব সুবিধা এবং অসুবিধা রয়েছে, বিভিন্ন ব্যবহারের ক্ষেত্রে। পাঠ্য অনুসন্ধানের জন্য, এটি সাধারণত গৃহীত হয় যে ইউক্লিডীয় দূরত্ব বেশিরভাগ ক্ষেত্রে "ভালভাবে কাজ করে" এবং অন্যান্য পদ্ধতিগুলি প্রান্তের ক্ষেত্রে "যথেষ্ট ভাল"।
যার সবকটি, একটি একক বিন্দুর সাপেক্ষে এন-ডাইমেনশনকে একক মাত্রা (দূরত্ব) কমাতে কার্যকরভাবে ব্যবহৃত হয়। এর ফলে, প্রশ্ন করা প্রশ্নের উপর নির্ভর করে গ্রুপিংগুলি ব্যাপকভাবে পরিবর্তিত হতে পারে।
দূরত্বের এই "আপেক্ষিকতা" প্রকৃতি, ক্লাসিক ডাটাবেস অনুসন্ধান সূচকগুলিকে অকার্যকর করে তোলে।
যদি এর কোন মানে না হয়, তাহলে গণিত এন-স্ফিয়ারের সাহায্যে এইভাবে 4 মাত্রার স্থান সঠিকভাবে কল্পনা করা হয়।
এখন 1,000 মাত্রা কল্পনা করুন? হ্যাঁ এটা কোন মানে হয়.
তাই পিএইচডি পেপার দিয়ে এই বিষয়টিকে লাইনচ্যুত না করে, আমি এটিকে শুধুমাত্র গণিতের অধ্যাপকদের বিশ্বাস হিসাবে সংক্ষিপ্ত করব।
আমাদের যা বোঝা দরকার তা হল সাধারণভাবে, দুটি ভেক্টর এম্বেডিং পয়েন্টের মধ্যে দূরত্ব যত কাছাকাছি হবে, তাদের একে অপরের সাথে প্রাসঙ্গিক হওয়ার সম্ভাবনা তত বাড়বে।
একটি বাস্তব বাস্তবায়নের দৃষ্টিকোণ থেকে। প্রথমে ইউক্লিডীয় দূরত্ব ব্যবহার করে শুরু করুন। আপনার ব্যবহারের ক্ষেত্রে ট্রায়াল এবং ত্রুটির মাধ্যমে আরও ভাল ফলাফলের জন্য সূক্ষ্ম সুর করা অন্যান্য সূত্রগুলি ব্যবহার করার আগে বিবেচনা করুন (প্রস্তাবিত নয়)।
তাই দেওয়া হয়েছে যে আমরা বিভিন্ন নথিকে এম্বেডিং-এ রূপান্তর করতে পারি, আমরা এখন একটি ডাটাবেসের মধ্যে সংরক্ষণ করতে পারি এবং এটির সাথে অনুসন্ধান করতে পারি।
যাইহোক, একটি এসকিউএল ডাটাবেস পাঠ্যের সাথে অনুসন্ধানের বিপরীতে, অনুসন্ধান এবং অনুসন্ধান করা ডেটা উভয়ই ভেক্টর এম্বেডিং। এর মানে হল যে ঐতিহ্যগত ডাটাবেস অনুসন্ধান সূচীগুলি অকার্যকর হয় যখন এটি এম্বেডিংয়ের জন্য অনুসন্ধানের জন্য আসে।
আমরা আপনার সমস্ত নথি এমবেডিং, প্রি-কম্পিউটেড এবং একটি ভেক্টর অনুসন্ধান ডাটাবেসে সংরক্ষণ করতে পারি। যা তারপরে সবচেয়ে কাছের দূরত্ব অনুসারে র্যাঙ্ক করা ম্যাচগুলির একটি তালিকা প্রদান করতে ব্যবহার করা যেতে পারে।
এটি বিদ্যমান ভেক্টর ডাটাবেস ব্যবহার করে করা যেতে পারে যেমন
উল্লেখ্য একটি প্রধান জিনিস, ভেক্টর অনুসন্ধান "ডাটাবেস প্রযুক্তি" তুলনামূলকভাবে নতুন। যেখানে ভেক্টর সার্চ ডাটাবেসের একটি বৃহৎাংশ ফেসবুক, স্পটিফাই বা গুগলের মতো কোম্পানীতে প্রাপ্ত ব্যবহারের জন্য ডিজাইন করা হয়েছে, যার আকার মিলিয়ন বা বিলিয়ন আকারে রেকর্ড করা হয়েছে। এবং ছোট ডেটাসেটের জন্য অপ্টিমাইজ করা নাও হতে পারে।
আগামী কয়েক বছরে এটি একটি ক্রমাগত পরিবর্তনশীল ক্ষেত্র হতে চলেছে, এখানে একটি গিথুব 'অসাধারণ-তালিকা' রয়েছে যা ভবিষ্যতে ভেক্টর অনুসন্ধান ডেটাবেসগুলিকে ট্র্যাক করতে এবং খুঁজে পেতে সহায়তা করবে
যেমন, সাধারণভাবে, আমরা (<10,000 ~ 100,000 এম্বেডিং) এর ছোট ডেটাসেটের জন্য পেয়েছি, এমবেডিং ডেটাসেটকে মেমরিতে রাখা এবং ব্রুট-ফোর্সিং ইউক্লিডিয়ান-দূরত্ব-বর্গ অনেক ব্যবহারের ক্ষেত্রে "যথেষ্ট ভাল" এবং কিছু সময় আনুষ্ঠানিকভাবে ছাড়িয়ে যাবে নিম্নলিখিত মত কিছু সহ ডাটাবেস সমাধান (যার ডিস্ক/নেটওয়ার্ক ওভারহেড থাকবে)।
এই পদ্ধতির সুস্পষ্ট নেতিবাচক দিক হল যে পুরো ডেটাসেটটি ওভারহেড ছাড়াই মেমরিতে ফিট করার জন্য যথেষ্ট ছোট হতে হবে।
নির্বিশেষে আপনি স্থানীয় ইন-মেমরি এমবেডিং অনুসন্ধান, বা একটি আনুষ্ঠানিক ভেক্টর অনুসন্ধান ডাটাবেস ব্যবহার করছেন।
এমবেডিং অনুসন্ধান হল একটি সাজানো এবং র্যাঙ্ক অ্যালগরিদম যা বিভিন্ন ভাষা এবং পরিস্থিতির সাথে নমনীয়ভাবে কাজ করে। পাঠক হিসাবে আপনার জন্য প্রশ্ন হল আপনি কিভাবে এটি ব্যবহার করতে পারেন। এটি একটি সম্ভাব্য Google অনুসন্ধান প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে, বা অন্যান্য সরঞ্জামগুলির সাথে, চ্যাট থেকে শুরু করে গেমগুলিতে। সম্ভাবনাগুলি অন্তহীন এবং অন্বেষণের জন্য উন্মুক্ত।
~ পরের বার পর্যন্ত 🖖 দীর্ঘজীবি হোক এবং সমৃদ্ধ হোক
ইউজিন চেহ @ tech-talk-cto.com
মূলত এখানে পোস্ট করা হয়েছে: https://substack.tech-talk-cto.com/p/introducing-ai-embeddings-and-how
ব্যবহৃত সমস্ত চিত্র, তাদের যথাযথ বৈশিষ্ট্য সহ