টেক্সট এম্বেডিং মডেল

টেক্সট এম্বেডিং মডেলগুলি প্রাথমিকভাবে টেক্সটের ভেক্টর প্রতিনিধিত্ব নির্ণয় করার জন্য ব্যবহৃত হয়। এখানে, "ভেক্টর" শব্দটি অংকের ভেক্টর, যা বৈশিষ্ট্য ভেক্টর নামেও পরিচিত। ডেভেলপার হিসাবে, আপনাকে জানতে হবে যে, একটি টেক্সট এম্বেডিং মডেল একটি টেক্সটের বৈশিষ্ট্য ভেক্টর নির্ণয় করতে পারে, এবং তারপর ভেক্টর সদৃশতা গণনা করে, এর মাধ্যমে সেই টেক্সটের সাথে সাদৃশ বৈশিষ্ট্য সনাক্ত করতে পারে।

টোক: টেক্সট এম্বেডিং মডেলের মৌলিক ধারণার জন্য, টেক্সট এম্বেডিং মডেলের পরিচিতি টিউটোরিয়ালে দেখুন।

ভেক্টর সনাক্তকরণ এবং কীওয়ার্ড-ভিত্তিক অনুসন্ধান মধ্যে পার্থক্য

  • ভেক্টর অনুসন্ধান শব্দ ভেক্টরের অর্থবোধক সাদৃশ্যে ভিত্তি করে। এটি পার্থক্য সনাক্ত করতে পারে যেকোনো অনুসন্ধানের মধ্যে, যদি অনুসন্ধানের শব্দ এবং ফলাফলের শব্দ সামগ্রিকভাবে মেলে না তবেই, কিন্তু সেগুলি সাদৃশ হলে সংবাদ খুঁজে পাওয়া যায়। ভেক্টর অনুসন্ধান শব্দগুলির ভেক্টর স্পেসে বর্গমূলে ম্যাপ করে এবং ভেক্টর মধ্যে সাদৃশতা গণনা করে। এটা মানে করে যে, যদি শব্দগুলি উদ্ধৃত না হয়, তবে তারা সাধারণভাবে সাদৃশ হলেই সংস্পর্শিত প্রাপ্তি করা যাবে।
  • অন্যদিকে, কীওয়ার্ড-ভিত্তিক অনুসন্ধান হল একটি সাধারণ স্ট্রিং ম্যাচিং প্রক্রিয়া। এটি কেবলমাত্র প্রস্তুতি শব্দগুলির ফলাফল দেয় যা এক্ষেত্রে মিলুয়ার্থি অভিধানে অভিধানগুলি দেখায়। যদি একটি নথি বিভিন্ন শব্দ ব্যবহার করে, যদি তারা অনুসন্ধানর্থিভাবে সাদৃশ হয়, তবে তারা মেলে না।

এমবেডিংস ক্লাস হল এম্বেডিং মডেলের সাথে অবলম্বন করার জন্য ডিজাইন করা একধরণের ক্লাস। এম্বেডিং মডেলের অনেক প্রদায়ক আছে (উদাহরণস্বরূপ, ওপেনএআই, কোহিয়ার, হাগিং ফেস, ইত্যাদি), এবং এই ক্লাসের নকশাটি সব প্রদায়কের জন্য একটি মানক ইন্টারফেস প্রদান করার জন্য গড়ে তোলা।

এমবেডিংস ক্লাস সাধারণভাবে টেক্সটের ভেক্টর প্রতিনিধিত্ব তৈরি করে। ভেক্টর অনুসন্ধানের মাধ্যমে, উদাহরণস্বরূপ, ভেক্টর স্থানে সবচেয়ে সাদৃশ টেক্সট স্নিপেটগুলি অনুসন্ধান করতে পারে।

ল্যাংচেনের মূল এমবেডিংস ক্লাসে দুটি মেথড ব্যক্ত করা হয়: একটি হল নথি অবতরণ করা, আরেকটি হল জিজ্ঞাসার অবতরণ করা। প্রথমটি একাধিক টেক্সট ডেভেলপমেন্ট হিসাবে ইনপুট হিসেবে ধারণ করে, যখন দ্বিতীয়টি একটি টেক্সট ইনপুট হিসেবে ধারণ করে। তাদের একই মেথড হওয়ার কারণ হ'ল, কিছু এমবেডিং প্রদায়ক তাদের অনুসন্ধান এবং জিজ্ঞাসায় বিভিন্ন এমবেডিং পদ্ধতি ব্যবহার করে।

দ্রুত শুরু

নিচে অনুসরণ করে দেখানো হল ওপেনএআইএর এমবেডিং মডেল ব্যবহার করা উদাহরণ:

কনফিগারেশন

প্রথমে, আমাদের প্রয়োজন পূরণ app পরিক্ষকিক করা হল। ল্যাংচেনের বেশিরভাগ বিভিন্ন টেক্সট এম্বেডিং মডেল আছে (যেমনঃ ওপেনএআই, কোহিয়ার, হাগিং ফেস, ইত্যাদি), এবং ডেভেলপারদের আইচ্ছিত মডেলগুলির ডিপেনডেনসিগুলি তাদের অনুযায়ী ইনস্টল করতে হয়।

pip install langchain-openai

সংখ্যাচলিত হলে ডেপ্যারীর মাধ্যমে ওপেনএআই কী কনফিগার করুন:

export OPENAI_API_KEY="..."

যদি আপনি চান না যে, আপনি যদি চান, যদি আপনি চান, আপনি প্রত্যাশ্যই ওপেনআই এলএলএম ক্লাসে ইনিশিয়ালাইজ করার সময় ডিরেক্টর পাস করতে পারেন:

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings(openai_api_key="...")

অথবা, আপনি প্যারামিটার ছাড়াই ইনিশিয়ালাইজ ব্যবহার করতে পারেন:

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings()

embed_documents

পাঠ্যে এমবেডিং মডেলের ভেক্টর বৈশিষ্ট্য গণনা করুন:

embeddings = embeddings_model.embed_documents(
    [
        "হ্যালো!",
        "ওহ, হ্যালো!",
        "আপনার নাম কী?",
        "আমার বন্ধুরা আমাকে ওয়ার্ল্ড নামায় ডাকে",
        "হ্যালো ওয়ার্ল্ড!"
    ]
)
len(embeddings), len(embeddings[0])
(৫, ১৫৩৬)

embed_query

এই ফাংশনটি কিউয়ারি টেক্সটের ভেক্টর বৈশিষ্ট্য গণনা করে। সাধারণভাবে, এটি একটি ফিচার ভেক্টরে প্রশ্ন বদলা শব্দ ভ্যর্টকিচান করার মধ্যে অংশ নিয়ে, এবং তারপর এই ভেক্টর ব্যবহার করে ভেক্টর ডাটাবেসে সাদৃশ টেক্সটগুলি জিজ্ঞাসা করা।

embedded_query = embeddings_model.embed_query("মুক্তিহীন কথায় নাম কী উল্লেখ করা হয়েছিল?")
embedded_query[:5]
[0.0053587136790156364,
 -0.0004999046213924885,
 0.038883671164512634,
 -0.003001077566295862,
 -0.00900818221271038]