যেহেতু এলএলএম প্রযুক্তিগুলি আরও মূলধারার গ্রহণযোগ্যতা লাভ করে এবং বাস্তুতন্ত্র পরিপক্ক হতে শুরু করে, সংস্থাগুলি এলএলএম প্রযুক্তি ব্যবহারের সীমা এবং খরচ চিনতে শুরু করেছে। অনেক উদ্যোগ, মূলত এলএলএম প্রযুক্তির প্রয়োগ সম্পর্কে উত্সাহী, কেন্দ্রীভূত উদ্যোগ পরিত্যাগ করেছে, পরিবর্তে তাদের কর্মপ্রবাহে চ্যাটজিপিটি এবং ক্লডের মতো পরিষেবাগুলিকে অন্তর্ভুক্ত করার জন্য বিকেন্দ্রীভূত প্রচেষ্টাকে উত্সাহিত করার কৌশল অনুসরণ করেছে।
এই ঘটনার জন্য বেশ কয়েকটি কারণ রয়েছে। এলএলএম দক্ষতার অভাব, এমএলওপির প্রয়োজনীয়তা এবং বিশেষায়িত জিপিইউ অবকাঠামোর উপর নির্ভরতা বড় আকারের এআই উদ্যোগ বাস্তবায়নে বাধা। এর মধ্যে, তবে, সবচেয়ে কাঁটা সমস্যা হল জিপিইউগুলির উপর নির্ভরতা।
এই নিবন্ধে, আমরা GPU নির্ভরতার দ্বারা উদ্ভূত নির্দিষ্ট অসুবিধাগুলি নিয়ে আলোচনা করব, একটি সম্ভাব্য সমাধান অন্বেষণ করব এবং এই এলাকায় কাজ করা ট্রেলব্লাজিং কোম্পানিগুলির একটি থেকে একটি উত্তেজনাপূর্ণ উদাহরণ দেখব।
সর্বাধিক সর্বজনীনভাবে উপলব্ধ এবং উচ্চ পারফরম্যান্স মডেল, যেমন GPT-4, Llama 2, এবং Claude, সবই অত্যন্ত বিশেষায়িত GPU পরিকাঠামোর উপর নির্ভর করে। GPT-4, বাণিজ্যিকভাবে উপলব্ধ একটি বৃহত্তম মডেল, বিখ্যাতভাবে 8 A100 GPU-এর একটি ক্লাস্টারে চলে। Llama 2 এর 70B মডেল, যা অনেক ছোট, তবুও যুক্তিসঙ্গত গতিতে চালানোর জন্য কমপক্ষে একটি A40 GPU প্রয়োজন৷
এই স্তরের GPU প্রয়োজনীয়তা কার্যত স্থানীয়ভাবে এই মডেলগুলি চালানোর সম্ভাবনাকে পূর্বাভাস দেয় - একটি A100 GPU, ধরে নিই যে আপনি একজন বিক্রেতা খুঁজে পেতে পারেন, এর দাম $25,000 এর কাছাকাছি। একবার আপনি GPU গুলি পেয়ে গেলে, সার্ভারগুলি সেট আপ এবং বজায় রাখার জন্য আপনার বিশেষ দক্ষতার প্রয়োজন৷ খুব কম সংস্থাই এলএলএম প্রযুক্তি নিয়ে পরীক্ষা-নিরীক্ষা করার জন্য এই ধরনের ব্যয় বহন করতে ইচ্ছুক।
এই সমস্যা সমাধানের জন্য, বেশ কয়েকটি স্টার্টআপ এবং ক্লাউড প্রদানকারী ব্যাপক PaaS অফার তৈরি করেছে। কিছু পরিষেবা যেমন প্রতিলিপি, যা আমি অতীতের নিবন্ধ এবং প্রকল্পগুলিতে ব্যবহার করেছি, ব্যবহারকারীদের GPU সার্ভার ভাড়া করতে এবং ব্যবহৃত সময়ের গণনার জন্য অর্থ প্রদান করতে দেয়। অন্যান্য প্রদানকারী, যেমন OpenAI এবং Anthropic, তাদের মডেলগুলিকে প্রতি-টোকেন API হিসাবে অফার করে, যা অবকাঠামোগত জটিলতাগুলিকে আরও বিমূর্ত করে। যাইহোক, এই পরিষেবাগুলির জন্য একটি বহিরাগত নেটওয়ার্কে ডেটা পাঠানোর প্রয়োজন হয়, যা এই পরিষেবাগুলি ব্যবহার করে গোপনীয়তা-সচেতন সংস্থাগুলির জন্য একটি নন-স্টার্টার করে তোলে৷ অতিরিক্তভাবে, এই পরিষেবাগুলির মধ্যে অনেকগুলি চাহিদা বৃদ্ধির সময় ঘাটতিতে ভুগছে কারণ GPU ব্যবহার প্রাপ্যতাকে ছাড়িয়ে যায়, যা তাদের উত্পাদন-সমালোচনামূলক কাজের চাপের জন্য অবিশ্বস্ত বিকল্প করে তোলে।
উপরন্তু, GPU সময়, তাদের জন্য যেভাবেই চার্জ করা হোক না কেন, বড় কম্পিউট কাজের জন্য ব্যয়বহুল - যে কোম্পানিগুলি এই GPUগুলির মালিক এবং পরিচালনা করে, তাদের বিনিয়োগের উপর একটি রিটার্ন প্রয়োজন। যদিও এই খরচগুলি পরীক্ষামূলক ব্যবহারের ক্ষেত্রে প্রায় নগণ্য, বাণিজ্যিক ব্যবহারের ক্ষেত্রে প্রায়ই বড় প্রসঙ্গ, ফাইন-টিউনিং বা মাল্টি-শট উদাহরণ এমবেড করার প্রয়োজন হয়। এই খরচগুলি দত্তক নেওয়ার ক্ষেত্রে একটি উল্লেখযোগ্য বাধার প্রতিনিধিত্ব করে, বিশেষত বড় ডেটাসেট বা বড় মার্কিন সংস্থাগুলির আর্থিক সংস্থানগুলির অভাব রয়েছে এমন সংস্থাগুলির জন্য৷
পূর্ববর্তী একটি নিবন্ধে, আমরা জিপিইউগুলির উপর নির্ভরতা কমাতে একটি কৌশল হিসাবে প্যারামিটার কম্প্রেশন অন্বেষণ করেছি। আজকের নিবন্ধে, আমরা কোয়ান্টাইজেশন নামে আরেকটি উত্তেজনাপূর্ণ কৌশল অন্বেষণ করব।
আমরা অনুসন্ধানে ডুব দেওয়ার আগে, যাইহোক, আমরা প্রথমে কোয়ান্টাইজেশন সম্পর্কে কিছুটা শিখতে চাই।
এই বিভাগে, আমরা সংক্ষেপে পরিমাপকরণের মূল বিষয়গুলি নিয়ে যাব। যাইহোক, আপনি যদি আপনার কম্পিউটারে স্থানীয়ভাবে শক্তিশালী LLM চালানোর উপায় খুঁজছেন, তাহলে আপনি নির্দ্বিধায় আপাতত এই বিভাগটি এড়িয়ে যেতে পারেন এবং পরে ফিরে আসতে পারেন। এলএলএমওয়্যার, যে কোম্পানির প্রযুক্তি আমরা আজ ব্যবহার করব, সে কিছু আশ্চর্যজনক টুল তৈরি করেছে যা আপনাকে পরিমাপকৃত মডেলগুলির সাথে শুরু করতে দেয় এই সমস্ত কিছুর পেছনের সি/সি++ বাস্তবায়নে না গিয়ে।
কোয়ান্টাইজেশন একটি কৌশল যা নিম্ন-নির্ভুল সংখ্যাসূচক প্রকারগুলি ব্যবহার করে একটি এলএলএম চালানোর গণনাগত এবং মেমরির প্রয়োজনীয়তা হ্রাস করতে চায়। অনেক জনপ্রিয় ওপেন সোর্স মডেল, যেমন লামা, ফ্যালকন এবং আলপাকা, পাইটর্চকে অন্তর্নিহিত কাঠামো হিসাবে ব্যবহার করে। ডিফল্টরূপে, PyTorch মডেলগুলি 32-বিট ফ্লোটিং পয়েন্ট ব্যবহার করে, যার অর্থ একটি একক প্যারামিটার GPU মেমরিতে 32 "বিট" নেয়। কোয়ান্টাইজেশনের লক্ষ্য এই প্যারামিটারগুলিকে 16-বিট ফ্লোটিং পয়েন্ট, 8-বিট পূর্ণসংখ্যা বা এমনকি 4-বিট পূর্ণসংখ্যা দিয়ে প্রতিস্থাপন করা। সফল কোয়ান্টাইজেশন গণনাগত গতিতে নাটকীয় উন্নতির দিকে নিয়ে যায় এবং মেমরির ব্যবহার হ্রাস করে, যার অর্থ বড় মডেলগুলি নিম্ন-প্রান্তের GPU, এমবেডেড গ্রাফিক চিপস, বা এমনকি CPU-তে চালানোর যোগ্য হয়ে ওঠে। এই ধারণাটি কিছু সময়ের জন্য ছিল - প্রযুক্তি পরিপক্ক হওয়ার সাথে সাথে পাইটর্চ নিজেই 16-বিট ফ্লোটিং পয়েন্ট এবং মডেল সংকলনের জন্য সমর্থন যোগ করেছে, তবে পাইটর্চ কাঠামোর প্রাথমিক নকশার সিদ্ধান্তের কারণে অগ্রগতি ধীর হয়েছে।
এই মুহুর্তে, এটি আশ্চর্য হওয়া স্বাভাবিক, এটি কি মডেলটির যথার্থতাকে মারাত্মকভাবে হ্রাস করবে না? সংক্ষিপ্ত উত্তর হ্যাঁ, কিন্তু শুধুমাত্র যদি আপনি এটি অসতর্কভাবে করেন। প্রতিটি অপ্টিমাইজেশান অন্তর্নিহিত ট্রেড-অফের সাথে আসে, কিন্তু কিছু বিশেষ কৌশলের সাহায্যে, গবেষকরা উচ্চ পরিমাণের মডেলের বাইরে অবিশ্বাস্যভাবে স্থিতিশীল কর্মক্ষমতা টেনে আনতে সক্ষম হয়েছেন। যদিও আমরা চরম প্রযুক্তিগত বিশদে যাব না, চলুন এখনই ব্যবহৃত সবচেয়ে সাধারণ কৌশলগুলির বিস্তৃত স্ট্রোকগুলিতে যাই। আপনি যদি আরও জানতে চান, আপনি HuggingFace থেকে একটি গাইডে এটি সম্পর্কে আরও জানতে পারেন।
ক্যালিব্রেটেড কোয়ান্টাইজেশন
কোয়ান্টাইজেশন প্রক্রিয়া চলাকালীন, মডেলের মাধ্যমে একটি ক্রমাঙ্কন ডেটাসেট চালানো হয়। প্রতিটি প্যারামিটারের মান রেকর্ড করা হয়, এবং পরিসীমা কীভাবে পরিমাপ করা হয় তা নির্ধারণ করতে ব্যবহৃত হয়। অনুমান করে ক্রমাঙ্কন ডেটাসেটটি সেই ইনপুটগুলির প্রতিনিধি যা মডেলটি সম্মুখীন হবে, এর ফলে মডেলটির উন্নত নির্ভুলতা দেখা যায়।
কোয়ান্টাইজেশন-সচেতন
যেখানে ক্যালিব্রেটেড কোয়ান্টাইজেশন প্রশিক্ষণের পরে ঘটে, কোয়ান্টাইজেশন-সচেতন প্রশিক্ষণ প্রশিক্ষণের সময় মডেলটিকে অপ্টিমাইজ করার চেষ্টা করে। মডেলটি প্রশিক্ষণের সময়, অ্যাক্টিভেশনগুলি একটি "জাল কোয়ান্টাইজেশন" এর মাধ্যমে করা হয়, যা সম্ভবত কোয়ান্টাইজেশন প্রক্রিয়া দ্বারা প্রবর্তিত হবে এমন ত্রুটিগুলি অনুকরণ করে৷ মডেলটি তখন ত্রুটিগুলির সাথে খাপ খাইয়ে নিতে সক্ষম হয়, যার ফলে একটি আরও শক্তিশালী মডেল তৈরি হয় যা বিশেষভাবে সম্ভাব্য বিকৃতিগুলির সাথে খাপ খাইয়ে নিতে পারে।
যদিও PyTorch কোয়ান্টাইজেশন এবং অপ্টিমাইজেশনগুলি ফ্রেমওয়ার্ক ডিজাইনের দ্বারা দীর্ঘ অবরুদ্ধ ছিল, দুটি সাম্প্রতিক ওপেন-সোর্স প্রযুক্তি এই বাধাগুলি ভেঙ্গেছে এবং কোয়ান্টাইজেশন প্রযুক্তিগুলিকে সাধারণ জনগণের কাছে আরও বেশি অ্যাক্সেসযোগ্য করে তুলেছে। এর সংক্ষিপ্তভাবে নীচে তাদের কভার করা যাক.
Llama.cpp
Llama.cpp জর্জি গারগানভের একটি প্রকল্প ছিল লামা মডেলটিকে C/C++ এ পোর্ট করার জন্য। এটি PyTorch দ্বারা প্রবর্তিত জটিলতা থেকে পরিত্রাণ পেয়েছে, এবং নেটিভ বাস্তবায়নের ফলে কোয়ান্টাইজেশন সরাসরি প্রয়োগ করা যেতে পারে। অতএব, ফলস্বরূপ মডেলটি 4-বিট পর্যন্ত পূর্ণসংখ্যা পরিমাপ সহ চলতে পারে, উচ্চ-প্যারামিটার-গণনা লামা মডেলগুলিকে একটি বিশেষ GPU ছাড়াই চালানোর অনুমতি দেয়।
ফ্যালকন এবং মিস্ট্রালের মতো জনপ্রিয় মডেলগুলি সহ ওপেন-সোর্স মডেলগুলির একটি তালিকা অন্তর্ভুক্ত করার জন্য এই প্রকল্পটি সম্প্রদায়ের দ্বারা সম্প্রসারিত হয়েছে।
GGUF
মডেল তথ্য সংরক্ষণ এবং স্থানান্তর করার জন্য GGUF হল Llama.cpp-এর ফাইল বিন্যাস। কোয়ান্টাইজড মডেলগুলি এই বিন্যাসে সংরক্ষণ করা হয় যাতে সেগুলি শেষ-ব্যবহারকারী দ্বারা লোড এবং চালানো যায়। GGUF হল GGML-এর উত্তরসূরি ফর্ম্যাট এবং এর লক্ষ্য হল GGML-এ আরও এক্সটেনসিবিলিটি, পশ্চাদমুখী সামঞ্জস্য এবং স্থিতিশীলতা প্রদান করে উন্নতি করা এবং এখনও দ্রুত বিকাশের অনুমতি দেওয়া।
একটি সার্বজনীন ফাইল ফরম্যাটের বিকাশ ওপেন-সোর্স সম্প্রদায়ের জন্য Llama.cpp-কে অন্যান্য মডেলগুলিকে অপ্টিমাইজ করার জন্য প্রসারিত করার দরজা খুলে দিয়েছে এবং TheBloke এবং LLMWare-এর মতো উদ্ভাবকরা জনপ্রিয় ওপেন-সোর্স মডেলগুলিকে ছোট করার জন্য গত কয়েক মাস ধরে কাজ করছে।
আজকের উদাহরণে, আমরা LLMWare দ্বারা প্রদত্ত ওপেন-সোর্স লাইব্রেরি এবং কোয়ান্টাইজড মডেলগুলি ব্যবহার করব, যা দ্রুত বিশেষায়িত RAG ওয়ার্কফ্লো তৈরির জন্য সুবিধাজনক সরঞ্জাম সরবরাহ করে৷
এলএলএমওয়্যার, আইনী এবং আর্থিক শিল্পে বিশেষজ্ঞ একটি জেনারেটিভ এআই কোম্পানি, কোয়ান্টাইজেশন সম্প্রদায়ের সাথে সক্রিয়ভাবে জড়িত। যেমনটি আমি আগে লিখেছি, গোপনীয়তা-সচেতন সেক্টরগুলিতে তাদের ফোকাস তাদের ক্ষুদ্রকরণ প্রযুক্তির সাথে পরীক্ষা এবং উদ্ভাবনের জন্য একটি স্বাভাবিক প্রার্থী করে তোলে।
পূর্বে, আমি তাদের RAG-অপ্টিমাইজ করা BLING মডেলগুলি সম্পর্কে লিখেছিলাম যেগুলি চুক্তি পর্যালোচনা এবং আর্থিক বিশ্লেষণের মতো বিশেষ কাজের জন্য 1 থেকে 3 বিলিয়ন প্যারামিটার মডেলগুলির মধ্যে অবিশ্বাস্য কার্যক্ষমতা কমিয়ে দেয়৷ যদিও এই ধরনের প্যারামিটার গণনা সহ বেশিরভাগ ওপেন-সোর্স মডেলগুলি শুধুমাত্র খেলনা সমস্যাগুলির জন্য উপযোগী হতে থাকে, এলএলএমওয়্যার এই মডেলগুলিকে সংকীর্ণভাবে লক্ষ্যযুক্ত কাজের জন্য প্রশিক্ষণের মাধ্যমে উত্পাদন-প্রস্তুত কর্মক্ষমতা তৈরি করতে সক্ষম। এই ক্ষুদ্রাকৃতির মডেলগুলি তখন বাহ্যিক GPU ছাড়াই চলতে সক্ষম হয়, যার ফলে গোপনীয়তা এবং মাপযোগ্যতা বৃদ্ধি পায়।
ড্রাগন হল এলএলএম-এর একটি সংগ্রহ যা তাদের BLING কাজিনদের আরও শক্তিশালী সংস্করণ হিসেবে ভাবা যেতে পারে। ড্রাগনের আসল উদ্দেশ্য ছিল একই নির্দেশনা ফাইন-টিউনিং কৌশল ব্যবহার করে একটি উচ্চতর প্যারামিটার মডেলকে প্রশিক্ষণ দেওয়া, যে ব্যবহারকারীদের আরও কর্মক্ষমতা প্রয়োজন এবং নিম্ন-প্রান্তের জিপিইউতে অ্যাক্সেস রয়েছে তাদের একটি বিকল্প প্রদান করা।
যোগ করা পরামিতি গণনার ফলে আরও শক্তিশালী মডেল তৈরি হয়েছে যা বৃহত্তর প্রসঙ্গ উইন্ডোগুলিকে লিভারেজ করতে পারে এবং আরও জটিল আউটপুট তৈরি করতে পারে, তবে ব্যবহারকারীর আরও বিশেষ হার্ডওয়্যার যেমন একটি GPU-এম্বেডেড ল্যাপটপ বা একটি GPU সংযুক্ত একটি ক্লাউড কম্পিউট কন্টেইনার থাকা প্রয়োজন। যাইহোক, তারা এখনও অত্যন্ত বড় মডেলগুলির তুলনায় একটি উন্নতির প্রতিনিধিত্ব করেছে, যার জন্য দুষ্প্রাপ্য A40 বা A100 GPU গুলিতে অ্যাক্সেসের জন্য অপেক্ষা করতে হবে।
উপরে দেওয়া, এটা সহজে দেখা যায় কেন কোয়ান্টাইজেশন এলএলএমওয়্যারের এআই টুলের স্যুটে একটি উল্লেখযোগ্য উন্নতি করেছে। কোয়ান্টাইজেশনের মাধ্যমে, একজন ব্যবহারকারী BLING মডেলের মতো একই পরিবেশে ড্রাগন-টায়ার মডেল চালাতে পারে, যা কমোডিটি কম্পিউটারে অনেক বেশি শক্তিশালী বিশ্লেষণের অনুমতি দেয়।
গত মাসে, এলএলএমওয়্যার বেশ কয়েকটি ড্রাগন মডেলের কোয়ান্টাইজড সংস্করণ প্রকাশ করেছে। আজ, আমরা একটি আইনি বিশ্লেষণ RAG সমস্যা সহ Llama-এর উপরে নির্মিত LLMWare-এর ড্রাগন মডেলের মূল্যায়ন করব এবং অনুরূপ BLING মডেলের সাথে তুলনা করব। আগ্রহীরা অন্যান্য মডেলগুলিও অন্বেষণ করতে পারেন - একটি মিস্ট্রাল-ভিত্তিক মডেল এবং একটি Yi-ভিত্তিক মডেল এই লেখার সময় এলএলএমওয়্যার থেকে উপলব্ধ। উপরন্তু, LLMWare Llama.cpp মডেলের চলমান অনুমানগুলিকে ctransformers লাইব্রেরির সাথে তাদের আঁটসাঁট একীকরণের সাথে একটি হাওয়ায় পরিণত করেছে, যা gguf মডেলগুলিকে PyTorch ভিত্তিক মডেলগুলির সাথে নির্বিঘ্নে অদলবদল করতে দেয়৷
আমরা এই পরীক্ষার জন্য M1 চিপ সহ একটি ম্যাকবুক এয়ার ব্যবহার করব, যার অর্থ আমরা এই অনুশীলনের জন্য শুধুমাত্র ব্যাপকভাবে উপলব্ধ হার্ডওয়্যার ব্যবহার করব।
মনে রাখবেন যে আমার আগের নিবন্ধে, আমরা আইন অনুসন্ধানের উপর দৃষ্টি নিবদ্ধ করে একটি RAG অ্যাপ্লিকেশন তৈরি করেছি। আমরা বেশ কয়েকটি বড় আইনের মাধ্যমে দ্রুত অনুসন্ধান করতে ভেক্টর অনুসন্ধান ব্যবহার করেছি, যোগ্য সুযোগ অঞ্চল অংশীদারিত্বের আগ্রহ সম্পর্কে আমাদের প্রশ্নের সাথে প্রাসঙ্গিক বিভাগ খুঁজে পেয়েছি এবং একটি BLING মডেলের মাধ্যমে প্রশ্নটি চালিয়েছি। আজকের নিবন্ধে, আমরা LLMWare-এর কোয়ান্টাইজড ড্রাগন মডেলের মাধ্যমে একই প্রশ্ন চালাব এবং এটি BLING মডেলের চেয়ে ভাল পারফর্ম করে কিনা তা নির্ধারণ করব।
মডেল তুলনার উপর ফোকাস করার জন্য এবং প্রয়োজনীয় পূর্ব জ্ঞানের পরিমাণ কমাতে, আমরা অনেকগুলি PDF পার্সিং এবং ভেক্টর অনুসন্ধান ম্যানুয়ালি করব। মডেলের জন্য সমস্যাটিকে কৃত্রিমভাবে কঠিন করে তোলার এটির অতিরিক্ত সুবিধা রয়েছে - LLMWare-এর ডিফল্ট এম্বেডিং অনুসন্ধান উত্স উপাদানকে প্রায় 1000 টোকেনে পরিণত করে, কিন্তু ম্যানুয়ালি পার্সিং পরিচালনা করা আমাদেরকে প্রায় 3000 টোকেন পর্যন্ত প্রসঙ্গটি বাম্প করতে দেয়৷ এটি আমাদের ড্রাগন এবং BLING মডেলের মধ্যে পার্থক্য স্পষ্টভাবে প্রদর্শন করতে সাহায্য করবে।
যাইহোক, আপনি LLMWare-এর বাকী ইকোসিস্টেমের সাথে সহজে একীভূত করতে সক্ষম হবেন যদি আপনি LLMWare-এ আমার শেষ নিবন্ধ থেকে সেটআপের ধাপগুলি অনুসরণ করে তাদের সরঞ্জামগুলিকে লাভবান করতে চান। প্রকৃতপক্ষে, আপনি যদি এই নিবন্ধ থেকে BLING মডেলের নামটি কোয়ান্টাইজড ড্রাগন মডেলের সাথে প্রতিস্থাপন করেন, তবে সবকিছু নির্বিঘ্নে চালানো উচিত।
আর কিছু না করে, শুরু করা যাক!
প্রথমে, আসুন প্রয়োজনীয় নির্ভরতাগুলি আমদানি করি:
import sklearn import sklearn.metrics # for cosine similarity from llmware.prompts import Prompt import time import os from openai import OpenAI from PyPDF2 import PdfReader client = OpenAI() # the library now loads the key automatically as an environment variable.
আমরা এখন PDF লোড করতে পারি। আগের উদাহরণে, আমরা বেশ কয়েকটি বড় আইন লোড করেছি, কিন্তু আজকের জন্য, আমরা শুধুমাত্র 2017 সালের ট্যাক্স কাট এবং চাকরি আইনের PDF সংস্করণে ফোকাস করব।
reader = PdfReader([path to PDF of tax cuts and jobs act])
এখন আমরা প্রতিটি পৃষ্ঠার জন্য এমবেডিং তৈরি করতে পারি:
embeddings = [] for pg in reader.pages: text = pg.extract_text() embeddings.append(client.embeddings.create( input=text, model="text-embedding-ada-002" ).data[0].embedding)
আসুন আমরা যে প্রশ্নটি জিজ্ঞাসা করতে যাচ্ছি তার জন্য এম্বেডিংগুলিও তৈরি করি:
question = 'What is a qualified opportunity zone partnership interest?' q_embed = client.embeddings.create( input=question, model="text-embedding-ada-002" ).data[0].embedding
হাতে এম্বেডিং দিয়ে, আমরা একটি ভেক্টর অনুসন্ধান করতে পারি। কারণ আমাদের অনুসন্ধানের স্থান ছোট, আমরা এটি ম্যানুয়ালি করতে পারি।
cos_sim = [(idx, sklearn.metrics.pairwise.cosine_similarity([e], [q_embed])[0][0]) for idx, e in enumerate(embeddings)]
এখন আমরা সবচেয়ে প্রাসঙ্গিক পৃষ্ঠাটি নিতে পারি (যা সূচী 132 বা পৃষ্ঠা 133 যদি আপনি ফলাফলগুলি যাচাই করতে চান):
most_relevant = sorted(cos_sim, key=lambda x: x[1], reverse=True)[0][0]
এবং এর সাথে, আমরা সবচেয়ে গুরুত্বপূর্ণ পদক্ষেপে এসেছি। আমরা কোয়ান্টাইজড লামা ড্রাগন মডেলের সাথে একটি LLMWare প্রম্পটার অবজেক্ট ইনস্ট্যান্ট করব। প্রম্পট ক্লাস এখানে গুরুত্বপূর্ণ কারণ এটি আমাদের জন্য প্রম্পট ইঞ্জিনিয়ারিং পরিচালনা করে এবং নিশ্চিত করে যে আমাদের প্রম্পট ড্রাগনের প্রশিক্ষণ ডেটার কাঠামোর সাথে সামঞ্জস্যপূর্ণ। প্রম্পট ক্লাসটি স্বয়ংক্রিয়ভাবে llamacpp বাইন্ডিং পরিচালনা করে, তাই আপনি অন্যান্য মডেলের মতোই কোয়ান্টাইজড ড্রাগন মডেল ব্যবহার করতে পারেন।
model_name = "llmware/dragon-llama-7b-gguf" prompter = Prompt().load_model(model_name) response = prompter.prompt_main(question, context='\n\n'.join([reader.pages[132].extract_text()]), prompt_name="default_with_context", temperature=0.3)
কিছুক্ষণ অপেক্ষা করুন, এবং আপনি ফাংশন কল রিটার্ন দেখতে পাবেন। এখন ফলাফল প্রিন্ট করুন:
print(response['llm_response'])
এবং আপনি নিম্নলিখিত মত কিছু দেখতে হবে:
• A capital or profits interest acquired by the qualified opportunity fund after December 31, 2017, from the partnership solely in exchange for cash; •As of the time such interest was acquired, the partnership was a qualified opportunity zone business (or, in the case of a new partnership, it was being organized for purposes of being a qualified opportunity zone business); •During substantially all of the qualified opportunity fund's holding period for such interest, the partnership qualified as a qualified opportunity zone business.
এটি বেশ ভাল উত্তর!
তুলনা করার জন্য, আসুন দেখি কিভাবে একটি BLING মডেল একই সমস্যায় কাজ করবে। একটি সমস্যা যা আমরা আশা করতে পারি তা হল বড় প্রসঙ্গ আকার একটি নিম্ন-প্যারামিটার মডেলকে "আবিষ্ট" করতে পারে এবং একটি কম তথ্যপূর্ণ উত্তরের দিকে নিয়ে যেতে পারে। আমার পূর্ববর্তী পরীক্ষাগুলিতে, শিয়ারড লামা 2.7b এই সমস্যার জন্য সেরা পারফর্মারদের মধ্যে একটি ছিল, তাই আমি এটিকে BLING মডেলের প্রতিনিধি হিসাবে ব্যবহার করার সিদ্ধান্ত নিয়েছি।
model_name_2 = "llmware/bling-sheared-llama-2.7b-0.1" prompter2 = Prompt().load_model(model_name_2) response = prompter2.prompt_main(question, context='\n\n'.join([reader.pages[132].extract_text()]), prompt_name="default_with_context", temperature=0.3)
কিছু প্রক্রিয়াকরণের পরে, আপনি এই মত কিছু দেখতে হবে.
A qualified opportunity zone partnership interest is a capital or profits interest in a domestic partnership if such interest is acquired by the qualified opportunity fund after December 31, 2017, from the partnership solely in exchange for cash.
প্রতিক্রিয়া এখনও ভাল কিন্তু ড্রাগন মডেল দ্বারা বন্দী কিছু বিবরণ মিস. বিশেষত, উত্তরটি হোল্ডিং পিরিয়ডের প্রয়োজনীয়তা এবং নতুন ব্যবসায়িক ক্ষেত্রে মিস করে। এটি বৃহত্তর প্রসঙ্গ প্রক্রিয়াকরণের সাথে নিম্ন-প্যারামিটার মডেলের অসুবিধা সম্পর্কে আমাদের প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ। আগ্রহী পাঠকরা এমনকি নিম্ন প্যারামিটার মডেল ব্যবহার করে বা প্রদত্ত প্রসঙ্গের আকার বাড়িয়ে এই পরীক্ষাটি প্রসারিত করতে পারেন। আপনি দেখতে পাবেন প্রভাব ক্রমবর্ধমানভাবে আরও স্পষ্ট হয়ে উঠছে, যার পরে মডেলটি একটি সংক্ষিপ্ত, বিকৃত উত্তর দেবে।
এই পরীক্ষা থেকে, এটা স্পষ্ট হওয়া উচিত যে কোয়ান্টাইজড ড্রাগন মডেলগুলি মডেলের নির্ভুলতার সাথে লক্ষণীয়ভাবে আপস না করেই তাদের উদ্দেশ্যপ্রণোদিত ব্যবহারের ক্ষেত্রে নিম্ন-প্যারামিটার মডেলগুলিকে ছাড়িয়ে যেতে সক্ষম।
এবং এর সাথে, আমরা একটি বাস্তব-বিশ্ব ব্যবহারের ক্ষেত্রে সমাধান করার জন্য একটি কোয়ান্টাইজড মডেল ব্যবহার করেছি এবং প্রক্রিয়াটিতে এর কার্যকারিতা বৈশিষ্ট্য সম্পর্কে শিখেছি!
আজ, আমরা এলএলএম কোয়ান্টাইজেশনের উত্তেজনাপূর্ণ ক্ষেত্রটি অন্বেষণ করেছি এবং দেখেছি যে কীভাবে এলএলএমওয়্যারের মতো কোম্পানিগুলি তাদের বিশেষায়িত ভাষা মডেলগুলিকে উন্নত করতে এই উন্নয়নগুলির সুবিধা নিচ্ছে৷ যেমন আমি আগে যুক্তি দিয়েছি, ক্ষুদ্রকরণ AI প্রযুক্তির ব্যাপকভাবে গ্রহণের জন্য সবচেয়ে প্রতিশ্রুতিশীল পথগুলির মধ্যে একটিকে প্রতিনিধিত্ব করে। স্পেশালাইজেশন, ফাইন-টিউনিং এবং কোয়ান্টাইজেশন একত্রিত করে, এআই স্পেসে উদ্ভাবকরা মাপযোগ্য এবং পারফরম্যান্ট মডেল তৈরি করতে পারে যা বাস্তব-বিশ্বের সমস্যার সমাধান করে।
আপনি LLMWare-এর RAG ফ্রেমওয়ার্ক Github- এ এবং তাদের DRAGON এবং BLING মডেলগুলি LLMWare-এর Hugging Face repository- এ খুঁজে পেতে পারেন।
যাইহোক, আমি একটি উত্তেজনাপূর্ণ প্রকল্পে কাজ করছি যা উন্নয়নশীল বিশ্বে শিক্ষার বিপ্লব ঘটাতে ভাষা এআই এবং ক্ষুদ্রকরণ ব্যবহার করতে চায়। আমরা বিশ্বব্যাপী অবিশ্বাস্য অ্যাক্টিভিস্ট এবং শিক্ষাবিদদের সাথে কাজ করছি, এবং আমরা বিশ্বব্যাপী ডিজিটাল বিভাজন সেতুতে কাজ করছি। আপনি যদি আমার প্রকল্প সম্পর্কে আরও জানতে চান বা LLM স্পেসের উত্তেজনাপূর্ণ উন্নয়ন সম্পর্কে কথা বলতে চান, তাহলে অনুগ্রহ করে Github বা LinkedIn- এ আমার সাথে যোগাযোগ করতে দ্বিধা করবেন না।