paint-brush
AI এর 100 দিন, 18 দিন: মাইক্রোসফ্ট শব্দার্থিক কার্নেল ব্যবহার করে একটি RAG তৈরি করাদ্বারা@sindamnataraj
1,593 পড়া
1,593 পড়া

AI এর 100 দিন, 18 দিন: মাইক্রোসফ্ট শব্দার্থিক কার্নেল ব্যবহার করে একটি RAG তৈরি করা

দ্বারা Nataraj5m2024/04/05
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

এই পোস্টে আমরা মাইক্রোসফ্টের শব্দার্থিক কার্নেল ব্যবহার করে একটি RAG তৈরির দিকে তাকাই।
featured image - AI এর 100 দিন, 18 দিন: মাইক্রোসফ্ট শব্দার্থিক কার্নেল ব্যবহার করে একটি RAG তৈরি করা
Nataraj HackerNoon profile picture

হেই সবাই! আমি নটরাজ , এবং ঠিক আপনার মত, আমি কৃত্রিম বুদ্ধিমত্তার সাম্প্রতিক অগ্রগতিতে মুগ্ধ হয়েছি। আমি বুঝতে পেরেছিলাম যে সমস্ত উন্নয়ন ঘটছে তার সাথে আমার সমান থাকতে হবে, আমি শেখার একটি ব্যক্তিগত যাত্রা শুরু করার সিদ্ধান্ত নিয়েছিলাম, এইভাবে AI এর 100 দিন জন্মেছিল! এই সিরিজের মাধ্যমে, আমি LLM সম্পর্কে শিখব এবং আমার ব্লগ পোস্টগুলির মাধ্যমে ধারণা, পরীক্ষা, মতামত, প্রবণতা এবং শিক্ষা শেয়ার করব। আপনি HackerNoon এ যাত্রা বরাবর অনুসরণ করতে পারেন এখানে অথবা আমার ব্যক্তিগত ওয়েবসাইট এখানে . আজকের নিবন্ধে, আমরা মাইক্রোসফ্টের শব্দার্থিক কার্নেল ব্যবহার করে কীভাবে একটি RAG বিকাশ করতে হয় তা দেখব।

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


অনুসরণ করার জন্য, আপনার ওপেন এআই এপিআই প্রয়োজন হবে।

ধাপ 1: শব্দার্থিক কার্নেল শুরু করুন

প্রথম ধাপ হল শব্দার্থিক কার্নেল শুরু করা এবং কার্নেলকে বলা যে আমরা ওপেন এআই-এর চ্যাট সমাপ্তি এবং ওপেন এআই-এর এমবেডিং মডেল ব্যবহার করতে চাই যা আমরা পরে এম্বেডিং তৈরি করতে ব্যবহার করব। আমরা কার্নেলকে বলব যে আমরা একটি মেমরি স্টোর ব্যবহার করতে চাই যা আমাদের ক্ষেত্রে ক্রোমা ডিবি হবে। মনে রাখবেন যে আমরা কার্নেলকে নির্দেশ দিচ্ছি যে এই মেমরি স্টোরটি স্থায়ী হওয়া দরকার।


 kernel = sk.Kernel() kernel.add_text_completion_service("openai", OpenAIChatCompletion("gpt-4",api_key)) kernel.add_text_embedding_generation_service("openai-embedding", OpenAITextEmbedding("text-embedding-ada-002", api_key)) # chrome db kernel.register_memory_store(memory_store=ChromaMemoryStore(persist_directory='mymemories2')) print("Made two new services attached to the kernel and made a Chroma memory store that's persistent.")

ধাপ 2 - এম্বেডিং তৈরি করুন

এই উদাহরণে, আমরা একটি RAG তৈরি করছি যা একটি SWOT বিশ্লেষণের প্রশ্নের উত্তর দিতে পারে যা আমরা একটি পিজা ব্যবসার জন্য তৈরি করেছি। তাই এটি করার জন্য আমরা SWOT বিশ্লেষণ করি এবং তাদের জন্য এম্বেডিংগুলি পাই এবং সংশ্লিষ্ট এমবেডিংগুলিকে "SWOT" নামক একটি সংগ্রহে সংরক্ষণ করি যা আমরা শেষ ধাপে তৈরি করেছিলাম স্থায়ী ডেটাস্টোরে।


 strength_questions = ["What unique recipes or ingredients does the pizza shop use?","What are the skills and experience of the staff?","Does the pizza shop have a strong reputation in the local area?","Are there any unique features of the shop or its location that attract customers?", "Does the pizza shop have a strong reputation in the local area?", "Are there any unique features of the shop or its location that attract customers?"] weakness_questions = ["What are the operational challenges of the pizza shop? (eg, slow service, high staff turnover)","Are there financial constraints that limit growth or improvements?","Are there any gaps in the product offering?","Are there customer complaints or negative reviews that need to be addressed?"] opportunities_questions = ["Is there potential for new products or services (eg, catering, delivery)?","Are there under-served customer segments or market areas?","Can new technologies or systems enhance the business operations?","Are there partnerships or local events that can be leveraged for marketing?"] threats_questions = ["Who are the major competitors and what are they offering?","Are there potential negative impacts due to changes in the local area (eg, construction, closure of nearby businesses)?","Are there economic or industry trends that could impact the business negatively (eg, increased ingredient costs)?","Is there any risk due to changes in regulations or legislation (eg, health and safety, employment)?"] strengths = [ "Unique garlic pizza recipe that wins top awards","Owner trained in Sicily at some of the best pizzerias","Strong local reputation","Prime location on university campus" ] weaknesses = [ "High staff turnover","Floods in the area damaged the seating areas that are in need of repair","Absence of popular calzones from menu","Negative reviews from younger demographic for lack of hip ingredients" ] opportunities = [ "Untapped catering potential","Growing local tech startup community","Unexplored online presence and order capabilities","Upcoming annual food fair" ] threats = [ "Competition from cheaper pizza businesses nearby","There's nearby street construction that will impact foot traffic","Rising cost of cheese will increase the cost of pizzas","No immediate local regulatory changes but it's election season" ] print("✅ SWOT analysis for the pizza shop is resident in native memory") memoryCollectionName = "SWOT" # lets put these in memory / vector store async def run_storeinmemory_async(): for i in range(len(strengths)): await kernel.memory.save_information_async(memoryCollectionName, id=f"strength-{i}", text=f"Internal business strength (S in SWOT) that makes customers happy and satisfied Q&A: Q: {strength_questions[i]} A: {strengths[i]}") for i in range(len(weaknesses)): await kernel.memory.save_information_async(memoryCollectionName, id=f"weakness-{i}", text=f"Internal business weakness (W in SWOT) that makes customers unhappy and dissatisfied Q&A: Q: {weakness_questions[i]} A: {weaknesses[i]}") for i in range(len(opportunities)): await kernel.memory.save_information_async(memoryCollectionName, id=f"opportunity-{i}", text=f"External opportunity (O in SWOT) for the business to gain entirely new customers Q&A: Q: {opportunities_questions[i]} A: {opportunities[i]}") for i in range(len(threats)): await kernel.memory.save_information_async(memoryCollectionName, id=f"threat-{i}", text=f"External threat (T in SWOT) to the business that impacts its survival Q&A: Q: {threats_questions[i]} A: {threats[i]}") asyncio.run(run_storeinmemory_async()) print("😶‍🌫️ Embeddings for SWOT have been generated and stored in vector db")

ধাপ 3 - আপনার প্রশ্ন জিজ্ঞাসা করুন

এখন যেহেতু আমাদের ডেটার এম্বেডিংগুলি ক্রোম ভেক্টর স্টোরে সংরক্ষিত আছে, আমরা পিৎজা ব্যবসার সাথে সম্পর্কিত প্রশ্ন জিজ্ঞাসা করতে পারি এবং উত্তর পেতে পারি৷


 #ask questions on swot potential_question = "What are the easiest ways to make more money?" counter = 0 async def run_askquestions_async(): memories = await kernel.memory.search_async(memoryCollectionName, potential_question, limit=5, min_relevance_score=0.5) display(f"### ❓ Potential question: {potential_question}") for memory in memories: if counter == 0: related_memory = memory.text counter += 1 print(f" > 🧲 Similarity result {counter}:\n >> ID: {memory.id}\n Text: {memory.text} Relevance: {memory.relevance}\n") asyncio.run(run_askquestions_async())


শব্দার্থিক কার্নেল ব্যবহার করে কীভাবে একটি RAG তৈরি করা যায় তার এটি একটি স্থূলভাবে সরলীকৃত সংস্করণ। LLM ব্যবহার করে ফ্রেমওয়ার্ক তৈরির সবচেয়ে জনপ্রিয় পছন্দ হল ল্যাংচেইন এবং আমরা আগে দেখেছি কিভাবে ল্যাংচেন ব্যবহার করে একটি RAG তৈরি করা যায়। যদিও ল্যাংচেইন আরও জনপ্রিয় কারণ আমরা আরও বেশি সংখ্যক কোম্পানিকে সরঞ্জাম তৈরি করতে দেখি, সেখানে আরও পরিশীলিত সরঞ্জাম থাকবে এবং আমি দেখেছি যে সেমান্টিক কার্নেলের কয়েকটি বিশেষ বৈশিষ্ট্য রয়েছে যা এটিকে আলাদা করে তোলে।


এটি AI এর 100 দিনের মধ্যে 18 তম দিনের জন্য।


আমি গড়ের উপরে নামে একটি নিউজলেটার লিখি যেখানে আমি বড় প্রযুক্তিতে ঘটছে এমন সবকিছুর পিছনে দ্বিতীয় ক্রম অন্তর্দৃষ্টি সম্পর্কে কথা বলি। আপনি যদি প্রযুক্তিতে থাকেন এবং গড় হতে না চান তবে এতে সদস্যতা নিন


AI এর 100 দিনের সর্বশেষ আপডেটের জন্য Twitter , LinkedIn বা HackerNoon- এ আমাকে অনুসরণ করুন বা এই পৃষ্ঠাটি বুকমার্ক করুন । আপনি যদি প্রযুক্তিতে থাকেন তবে আপনি এখানে প্রযুক্তি পেশাদারদের আমার সম্প্রদায়ে যোগদান করতে আগ্রহী হতে পারেন।