হেই সবাই! আমি নটরাজ , এবং ঠিক আপনার মতো, আমি কৃত্রিম বুদ্ধিমত্তার সাম্প্রতিক অগ্রগতিতে মুগ্ধ হয়েছি। আমি বুঝতে পেরেছিলাম যে সমস্ত উন্নয়ন ঘটছে তার সাথে আমার সমান থাকতে হবে, আমি শেখার একটি ব্যক্তিগত যাত্রা শুরু করার সিদ্ধান্ত নিয়েছিলাম, এইভাবে 100 দিনের AI জন্ম হয়েছিল! এই সিরিজের মাধ্যমে, আমি LLM সম্পর্কে শিখব এবং আমার ব্লগ পোস্টগুলির মাধ্যমে ধারণা, পরীক্ষা, মতামত, প্রবণতা এবং শিক্ষাগুলি শেয়ার করব। আপনি এখানে হ্যাকারনুন বা আমার ব্যক্তিগত ওয়েবসাইটের যাত্রা অনুসরণ করতে পারেন। আজকের নিবন্ধে, আমরা GPT-4 এর সাহায্যে একটি শব্দার্থিক কার্নেল তৈরি করতে চাই।
Semantic Kernel হল Microsoft এর একটি ওপেন সোর্স SDK যা ডেভেলপারদের চ্যাটবট, RAG, কপিলট এবং এজেন্ট সহ AI অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এটি ল্যাংচেন যা করে তার অনুরূপ। আমরা সম্ভবত এটিকে ল্যাংচেইনের জন্য মাইক্রোসফ্টের উত্তর হিসাবে কল করতে পারি।
এটি বিদ্যমান সফ্টওয়্যারকে এক্সটেনসিবল করার জন্য ডিজাইন করা হয়েছে এবং এআই বৈশিষ্ট্যগুলিকে প্রকাশ করা সহজ। এটি এমনভাবে ডিজাইন করা হয়েছে যে অ্যাপ্লিকেশনগুলি তাদের AI মডেলগুলিকে সময়ের সাথে সর্বশেষ এবং সর্বশ্রেষ্ঠ সংস্করণে আপডেট করতে চায়।
যদিও স্থানটি খুব দ্রুত বিকশিত হচ্ছে এখানে আমরা শব্দার্থিক কার্নেল অন্বেষণ করার সময় কিছু সংজ্ঞা মনে রাখতে হবে।
শব্দার্থিক কার্নেল কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য, পাঠ্যের একটি অংশ নেওয়া এবং এটিকে 140 অক্ষরের টুইটে রূপান্তর করার উদাহরণ দেওয়া যাক। কিন্তু আমরা সিমেন্টিক কার্নেল ব্যবহার করে এটি করব। আমরা এখানে পূর্ববর্তী পোস্টগুলিতে অনুরূপ সংক্ষিপ্তসার করেছি ।
আমি সিমেন্টিক কার্নেলের পাইথন লাইব্রেরি ব্যবহার করব, কিন্তু যেহেতু সেমান্টিক কার্নেল মাইক্রোসফ্ট দ্বারা তৈরি করা হয়েছে আপনি এটি C# এও করতে পারেন। মাইক্রোসফ্ট থেকে পাবলিক ডকুমেন্টেশন দেখুন কিভাবে এটি করতে হবে।
নীচে আমরা শব্দার্থিক কার্নেল শুরু করছি এবং পাঠ সমাপ্তির জন্য LLM হিসাবে OpenAI-এর gpt-4 মডেল ব্যবহার করতে বলে এর পাঠ্য সমাপ্তি পরিষেবা সেট আপ করছি।
import semantic_kernel as sk from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, OpenAIChatCompletion import os from IPython.display import display, Markdown import asyncio from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file api_key = os.environ['OPENAI_API_KEY'] kernel = sk.Kernel() kernel.add_text_completion_service("openai", OpenAIChatCompletion("gpt-4",api_key)) print("Kernel Initiated")
শব্দার্থিক কার্নেল জগতে, আমাদের কাছে শব্দার্থিক ফাংশনের একটি ধারণা রয়েছে যা একটি নেটিভ ফাংশন থেকে আলাদা। একটি নেটিভ ফাংশন হল নিয়মিত ফাংশন যা আমরা যেকোনো প্রোগ্রামিং ভাষায় লিখি। শব্দার্থিক ফাংশনগুলি পুনরাবৃত্তিযোগ্য LLM প্রম্পটগুলির এনক্যাপসুলেশন যা কার্নেল দ্বারা সাজানো যেতে পারে। আপনি পরবর্তী ধাপে শব্দার্থিক ফাংশন কী তা সম্পর্কে আরও ভাল ধারণা পাবেন যেখানে আমরা একটি লিখব।
এখানে আমরা একটি প্রম্পট sk_prompt তৈরি করি যা 140 টিরও কম অক্ষরে সংযোগের সংক্ষিপ্ত বিবরণ দেয় (এই অনুশীলনের সাথে এটিই আমাদের লক্ষ্য)। তারপরে আমরা কার্নেল এবং স্টোরের সাথে একটি শব্দার্থিক ফাংশন তৈরি করার জন্য একটি ইনপুট হিসাবে প্রম্পটটি পাস করি যা আমাদেরকে অবজেক্ট summary_function দেয় যা আমাদের তৈরি করা শব্দার্থিক ফাংশনকে উপস্থাপন করে এবং এটি কার্নেলের মাধ্যমে বারবার অ্যাক্সেস করা যায়। মনে রাখবেন যে যখন আমরা একটি শব্দার্থিক ফাংশন তৈরি করি তখন আমরা একটি গ্রাহক প্রম্পট ব্যবহার করি এবং LLM কনফিগারেশন তথ্য যেমন max_tokens, তাপমাত্রা ইত্যাদি দিচ্ছি, এখন নেটিভ বনাম শব্দার্থিক ফাংশনগুলির পূর্ববর্তী ছবিতে ফিরে যান এবং এটি আরও অর্থপূর্ণ হবে।
sk_prompt = """ {{$input}} Summarize the content above in less than 140 characters. """ summary_function = kernel.create_semantic_function(prompt_template = sk_prompt, description="Summarizes the input to length of an old tweet.", max_tokens=200, temperature=0.1, top_p=0.5) print("A semantic function for summarization has been registered.")
এখন আমরা ভেরিয়েবল sk_input ব্যবহার করে যে টেক্সটটি সংক্ষিপ্ত করতে চাই সেটি তৈরি করি এবং সেম্যাটিক ফাংশনটিকে kernal এর মাধ্যমে কল করি এবং তারপর ফলাফল প্রদর্শন করি।
sk_input = """ Let me illustrate an example. Many weekends, I drive a few minutes from my house to a local pizza store to buy a slice of Hawaiian pizza from the gentleman that owns this pizza store. And his pizza is great, but he always has a lot of cold pizzas sitting around, and every weekend some different flavor of pizza is out of stock. But when I watch him operate his store, I get excited, because by selling pizza, he is generating data. And this is data that he can take advantage of if he had access to AI. AI systems are good at spotting patterns when given access to the right data, and perhaps an AI system could spot if Mediterranean pizzas sell really well on a Friday night, maybe it could suggest to him to make more of it on a Friday afternoon. Now you might say to me, "Hey, Andrew, this is a small pizza store. What's the big deal?" And I say, to the gentleman that owns this pizza store, something that could help him improve his revenues by a few thousand dollars a year, that will be a huge deal to him. """ # using async to run the semantic function async def run_summary_async(): summary_result = await kernel.run_async(summary_function, input_str=sk_input) display(summary_result) asyncio.run(run_summary_async())
আমি যে আউটপুট পেয়েছি তা এখানে:
AI একটি ছোট পিৎজা স্টোরের মালিককে তার স্টক অপ্টিমাইজ করতে সাহায্য করার জন্য বিক্রয় ডেটা বিশ্লেষণ করতে পারে, সম্ভাব্যভাবে তার বার্ষিক আয় বৃদ্ধি করে৷
শব্দার্থিক কার্নেলের আরও ক্ষমতা রয়েছে যেমন শব্দার্থিক ফাংশন এবং নেটিভ ফাংশন একসাথে ব্যবহার করা এবং শক্তিশালী এআই অ্যাপ্লিকেশন তৈরি করার জন্য ডিজাইন করা হয়েছে। আমি ভবিষ্যতে পোস্টে তাদের সম্পর্কে আরো লিখব.
এটি AI এর 100 দিনের মধ্যে 8 তম দিনের জন্য।
আমি গড়ের উপরে নামে একটি নিউজলেটার লিখি যেখানে আমি বড় প্রযুক্তিতে ঘটছে এমন সবকিছুর পিছনে দ্বিতীয় ক্রম অন্তর্দৃষ্টি সম্পর্কে কথা বলি। আপনি যদি প্রযুক্তিতে থাকেন এবং গড় হতে না চান তবে এতে সদস্যতা নিন ।
AI এর 100 দিনের সর্বশেষ আপডেটের জন্য আমাকে Twitter , LinkedIn বা ** HackerNoon **-এ অনুসরণ করুন। আপনি যদি প্রযুক্তিতে থাকেন তবে আপনি এখানে প্রযুক্তি পেশাদারদের আমার সম্প্রদায়ে যোগদান করতে আগ্রহী হতে পারেন।
আগের দিন 7: ল্যাংচেইন ব্যবহার করে আপনার ডেটার জন্য কীভাবে চ্যাট-জিপিটি তৈরি করবেন?