1. এমবেডিং সম্পর্কে পরিচিতি
1.1. এমবেডিং কী
এমবেডিং, মেশিন লার্নিং এর ক্ষেত্রে, বিশেষত প্রাকৃতিক ভাষা প্রসেসিং (NLP) সমস্যা সমাধানে, পাঠ্য তথ্যকে সংখ্যামূলক ভেক্টরে পরিণত করতে একটি উপায়। মানুষের ভাষায়, শব্দ এবং বাক্যের অর্থটি তাদের প্রসঙ্গ এবং ব্যবহার দ্বারা নির্ধারণ করা হয়। এমবেডিং এর লক্ষ্য হল এই ভাষাবিজ্ঞান ইউনিটের অর্থশাস্ত্র ধারণা করা, যেটা কম্পিউটারকে তা বুঝতে এবং প্রসেস করতে সাহায্য করে।
এমবেডিং এর মৌলিক ধারণা হল শব্দগুলির মাঝে আনুসারিত মানের শব্দগুলিকে গণিতীয় স্থানে ম্যাপ করা, যা উচ্চ-মাত্রায়ান স্পেসে বিন্যাসিত হয়। এই উপায়ে, সেমান্টিক মানের পাশাপাশি শব্দ (যেমন, "রাজা" এবং "রানী") মাঝে সমীপ থাকবে। এমব্যাডিং মৌলিকভাবে ফ্লোটিং-পোইন্ট এরেগুলি দ্বারা গঠিত, যা দেয়, যেহেতু খুব ভিন্ন পাঠ অংশ (যেমন, "ডগ" এবং "ক্যানাইন") একই এমবেডিং প্রতিনিধিত্ব করতে পারে।
পরামর্শ: একটি অ্যাপ্লিকেশন ডেভেলপার হিসাবে, আপনি সহজে বুঝতে পারবেন যে দুটি পাঠ বাক্যের জন্য, তাদের এমবেডিং ভেক্টরের সমানতা মাত্রা উচ্চ।
1.2. এমবেডিং এর ব্যবহার
বিভিন্ন পরিস্থিতিতে এমবেডিং ব্যবহৃত হয়, এখানে কিছু মৌলিক ব্যবহারের উদাহরণ:
-
অনুসন্ধান: অনুসন্ধানের ফলাফলগুলি বিশ্লেষণ/পরিক্রমা টেক্সট বংশের প্রায়তন্ত্রিক ভাবে বিন্যাস করার জন্য এমবেডিং বৈশিষ্ট্য ব্যবহার।
-
ক্লাস্টারিং: এমবেডিং সহায়তা পেয়ে কে পাইবে এবং সামান্যভাবে বিশ্লেষণ করা যে প্রাতিষ্ঠানিক প্রসঙ্গের মধ্যে সামর্থিকভাবে মিলিত বিন্যাস করা।
-
প্রস্তাবনা পদ্ধতি: প্রস্তাবনা পদ্ধতি সংশ্লেষণের উপর ভিত্তি করে এমবেডিং ব্যবহার করার মাধ্যমে অন্যান্য পদ্ধতিতের সাথে পরিচিত বাস্তবায়ন।
-
বিসমিতি সনাক্ত করা: এমবেডিং ব্যবহার করা যেতে পারে প্রধান ডেটাসেটের থেকে পোলাদেনা পয়েন্ট চিহ্নিত করার জন্য।
-
বিসমিতি মাত্রা মাপন: এমবেডিং ব্যবহার করা যেতে পারে পাঠের মাঝে দ্বিিতিয় বিষয়বস্তুর মধ্যে সমানতা বিতর্ক করার জন্য।
-
শ্রেণীবিভাজন: পরিচিত লেবেল এম্বেডিং সঙ্গে প্রাউপতন জানার জন্য পাঠ তুলে ধরা এবং এটির বাংলা বিব্রান্তিতে বিস্তারিত করা।
2. ওপেনএআই এমবেডিং এর পরিচিতি
2.1. ওপেনএআই এমবেডিং মডেলস এর সংক্ষিপ্ত বিবরণ
ওপেনএআই এর তৃতীয়-প্রজন্মের এমবেডিং মডেল, text-embedding-3-small
এবং text-embedding-3-large
সহ একাধিক ভাষায় মোডেল উন্নততার সঙ্গে নির্মাণ করা। এই মডেলগুলি ওপেনএআই এর অনন্য গভীর লার্নিং প্রযুক্তিতে ভরি হয়, সাথে সাথে খরচ কমাতে চেষ্টা করে।
এই মডেলগুলির বৈশিষ্ট্য যা হল এমবেডিং প্রসেসিং করা যেতে বিশেষ ধরনের মডেল। উদাহরণস্বরূপ, text-embedding-3-small
এমবেডিং ভেক্টর প্রদান করে 1536-ব্য়াআবধারী ভেক্টরে, আর text-embedding-3-large
প্রদান করে 3072-ব্যআবধারী ভেক্টর, যেটা আরও প্রসঙ্গগত পাঠের বৈশেষ্যগুলি উঠানের জন্য। প্যারামিটার সমন্বয় করে, এমবেডিং এর আয়ামাগুলি নির্ধারণ করা যেতে পারে কোনও অ্যাপ্লিকেশন চিহ্নিত প্রয়োজনীয় হবে।
2.2. মডেল নির্বাচন এবং ব্যবহার
উপযোগের বিশেষ প্রয়োজনীয় প্রয়োজনীয়তা অনুসারে উপযোগী এমবেডিং মডেল নির্বাচন করা। এই ভিন্ন অ্যাপ্লিকেশন পরিস্থিতিতে নির্বাচন করার জন্য নির্দিষ্ট উপায় হলওয়া:
-
কর্মসংকোচ কোনো পরিস্থিতিতে: যদি আপনার থাকে বেশি বিস্তৃত সানামিক তথ্যে বেশি বিস্তৃত সেমান্টিক তথ্য অবলম্বন করা প্রয়োজিত হয়, উপশীর্ষক রিকমেন্ডেশন পদ্ধতি বা উউচ্চ-মানদণ্ডের পাঠ শ্রেণীবিভাজন যেমন, এটি সাধারণত সুনেো হয়
text-embedding-3-large
ব্যবহার করা। এই ছোট মডেলের চাইতে টাকার বেশি প্রদর্শন করে। -
একনি প্রযুক্তিতে ব্যয়বুদ্ধিসম্মত অ্যাপ্লিকেশন: বেশি বেশি তথ্য প্রসেসিং প্রয়োজন করে তবে বিরাম পরিস্থিতিতে, যেমন, প্রাথমিক তথ্য অনুসন্ধান বা দ্রুত তৈরির জন্য,
text-embedding-3-small
একটি অর্থপ্রদানকারী পরিবদ্ধকোনি। এটি খরচ প্রােরিত করা ছোট মডেল মেধা বজায় রাখা যোেডিতর্থ দরকারে। -
বহুভাষিয় পরিস্থিতিতে: এই এমবেডিং মডেলগুলি দ্বিধাপ্তিতে বিশেষত উচ্চ ব্যাবচ্যতা বা বহুভাষিয়, বৈশ্বিক বিপণনে ব্যবহারে অনেক উপযোগী।
উচিত এমবেডিং মডেল নির্বাচন গানিতিক প্রয়োজন, ডাটা জটিলতা, এবং পারফরম্যান্স এবং অনুমান মাধ্যমের মধ্যে স্পষ্ট জো
3.1 এম্বেডিংস API কল করতে curl
ব্যবহার
curl
হল একটি সাধারণভাবে ব্যবহৃত কমান্ড-লাইন টুল যা HTTP রিকোয়েস্ট প্ঠোের করতে ব্যবহার হয়। নিচের উদাহরণ দেখায় কিভাবে curl
ব্যবহার করে টেক্সটের এম্বেডিং প্রতিনিধিত্ব অর্জন করতে হয়:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "মেশিন লার্নিং হল কৃত্রিম বুদ্ধিমত্তা এর শাখা।",
"model": "text-embedding-3-small"
}'
উপরের কমান্ডে, $OPENAI_API_KEY
ভ্যারিয়েবলটি ব্যবহারকারীর OpenAI API কী ধরে রাখে, যা ব্যবহারকারীর বৈধ কী দিয়ে প্রয়োগে আনতে হবে।
এই কমান্ড অনুসারে, OpenAI এম্বেডিংস API প্রতিক্রিয়া ফিরিয়ে দেবে যা টেক্সটের এম্বেডিং প্রতিনিধিত্ব অন্তর্ভুক্ত থাকবে। নিচে এম্বেডিংস API কলের একটি উদাহরণ দেয়া হল:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // এখানে ফিচার ভেক্টর
-0.006929283495992422,
-0.005336422007530928,
... // বাকিগুলি প্রদর্শনের জন্য অবশিষ্ট সংখ্যা অপসরণ
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 পাইথন ক্লায়েন্ট ব্যবহার করে এম্বেডিংস API কল করা
curl
দ্বারা অটোমোি চলায়োে ছাোঀ িদায় এম্বেডিংস এপআইতে আন্তর্ভুক্তক ট্রো াক কলরঀিেথে স ামক প্যাথন ক্লায়েন্টও ব্যাবহার করা যোড়া. নজট এম্ভডিংেব্িং্স বাগোয়ােরি পাবোা জন০নদঅং ইস্কাুান। এই জনসোর
িল গরব্দ করোআত ছড়াং অায়িকে পানর বাজে কজও যা জনড্রজ্ড ০opens কল্প করো তৃনে আর হয়।
import openai
openai.api_key = 'YOUR_OPENAI_API_KEY' # আপনার OpenAI API কীটি দিয়ে পলাং
response = openai.Embedding.create(
input="কৃত্রিম বুদ্ধিমত্তা বিশ্বকে পরিবর্তন করছে।",
model="text-embedding-3-small"
)
embedding_vector = response['data'][0]['embedding']
print(embedding_vector)
এই পাইথন স্ক্রিপ্ট চালানোর মাধ্যমে, আপনি curl
ব্যবহার করার ধরনের একই এম্বেডিং ভেক্টর প্রাপ্ত করতে পারবেন। এই ভেক্টরটি হল একটি ফ্লোটিং-পয়েন্ট সংখ্যার তালিকা, যা এম্বেডিং স্পেসে ইনপুট টেক্সটের সংখ্যাত্মক প্রতিনিধিত্ব প্রদান করে।
কর্ল প্রত্ব্যুা নমানপ নইয়ানো খাী ফেব্াানাবাে ęকপ শ,double_strike: ভার্জো মোজে ুােঃ এাো।
3.2 এম্বেডিং ভেক্টরগুলি চালানো
OpenAI শুধুমাত্র এম্বেডিংস টেক্সট ভেক্টরগুলি পরিবর্তনহায় অ্ডাতায়িকাংগ মডাো। যদি আপনি এম্বেডিংগস ব্যবহার করে মানোর কাম-ওন্ছার বৈ্নাতিকটা ফেনডা করতে চান, তাো ভেক্টর ডাটাবেস, যেমন Qdrant, Chroma, এবআ িডুস, কে শিখো দুবনঁনাই অাথাজ িারবেন াানে: