paint-brush
কিভাবে একটি প্রোডাকশন-গ্রেড Text2SQL ইঞ্জিন তৈরি করবেনদ্বারা@datastax
1,323 পড়া
1,323 পড়া

কিভাবে একটি প্রোডাকশন-গ্রেড Text2SQL ইঞ্জিন তৈরি করবেন

দ্বারা DataStax11m2024/08/13
Read on Terminal Reader

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

টেক্সট2এসকিউএল-এ LLM-এর ভূমিকা সম্পর্কে জানুন, এই ক্ষমতার অন্তর্নিহিত চ্যালেঞ্জগুলি নিয়ে আলোচনা করুন এবং Skypoint টিমের একটি নতুন text2SQL ইঞ্জিন SherloQ অন্বেষণ করুন।
featured image - কিভাবে একটি প্রোডাকশন-গ্রেড Text2SQL ইঞ্জিন তৈরি করবেন
DataStax HackerNoon profile picture

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


কিন্তু text2SQL, এমন একটি ক্ষমতা যা প্রাকৃতিক ভাষাকে কাঠামোগত ক্যোয়ারী ল্যাঙ্গুয়েজ স্টেটমেন্টে রূপান্তর করে, গেমটিকে পরিবর্তন করেছে। টেক্সট2এসকিউএল-এর মাধ্যমে, ফিনান্স এক্সিকিউটিভ প্রাকৃতিক ভাষা ব্যবহার করে ডাটাবেসের সাথে সরাসরি যোগাযোগ করতে পারে। উদাহরণস্বরূপ, একজন ব্যবহারকারী একটি ব্যবসা-মুখী প্রশ্ন ইনপুট করতে পারেন যেমন "গত মাসে প্রতিটি গ্রাহকের জন্য গড় অর্ডার মান কত ছিল?"


টেক্সট-টু-এসকিউএল এআই ইঞ্জিন প্রশ্নটি প্রক্রিয়া করবে এবং সংশ্লিষ্ট SQL কোয়েরি তৈরি করবে:


Select customer_id, AVG(order_value) AS average_order_value FROM orders WHERE order_date >= DATE_SUB(CURRDATE(), INTERVAL 1 MONTH) GROUP BY customer_id;


তারপর ডাটাবেসের বিরুদ্ধে এটি চালান এবং ব্যবহারকারীর কাছে ফলাফল প্রদর্শন করুন।


এই প্রবন্ধে, আমরা text2SQL-এ LLM-এর ভূমিকা ব্যাখ্যা করব, এই ক্ষমতার অন্তর্নিহিত চ্যালেঞ্জগুলি নিয়ে আলোচনা করব এবং SherloQ অন্বেষণ করব, স্কাইপয়েন্ট টিম দ্বারা তৈরি একটি অত্যন্ত নির্ভুল এবং মজবুত text2SQL ইঞ্জিন৷

টেক্সট2এসকিউএল-এ এলএলএম-এর ভূমিকা

বড় ভাষা মডেল (LLMs) এর সাহায্যে text2SQL রূপান্তর করার ক্ষমতা উল্লেখযোগ্যভাবে উন্নত হয়েছে। এই মডেলগুলি মানুষের মতো টেক্সট বুঝতে এবং তৈরি করতে প্রচুর পরিমাণে ডেটা এবং শক্তিশালী নিউরাল নেটওয়ার্ক আর্কিটেকচার ব্যবহার করে। বিভিন্ন ডেটাসেটের উপর প্রশিক্ষণের মাধ্যমে, এলএলএমগুলি এসকিউএল কোয়েরিতে প্রাকৃতিক ভাষার অনুবাদ সহ বিভিন্ন কাজ জুড়ে সাধারণীকরণ করতে পারে।


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


" স্পাইডার: কমপ্লেক্স এবং ক্রস-ডোমেন শব্দার্থিক পার্সিং এবং টেক্সট-টু-এসকিউএল টাস্কের জন্য একটি বড়-স্কেল মানব-লেবেলযুক্ত ডেটাসেট " বিভিন্ন ডোমেন জুড়ে জটিল SQL কোয়েরির মডেলের প্রশিক্ষণ এবং মূল্যায়নের জন্য একটি ব্যাপক ডেটাসেট প্রদান করে। এই ডেটাসেটটি মডেল পারফরম্যান্সের জন্য একটি শক্তিশালী বেঞ্চমার্ক প্রদান করে টেক্সট2এসকিউএল-এ অত্যাধুনিক অগ্রগতির ক্ষেত্রে অগ্রণী ভূমিকা পালন করেছে।


উপরন্তু, " PALM: Scaling Language Modeling with Pathways ," কিভাবে উন্নত প্রশিক্ষণ কৌশল, যেমন মডেলের আকার স্কেল করা এবং প্রশিক্ষণের পথ অপ্টিমাইজ করা, টেক্সট2এসকিউএল সহ বিভিন্ন অ্যাপ্লিকেশনে মডেলের কর্মক্ষমতা বাড়াতে পারে তা অন্বেষণ করে।


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

এসকিউএলকোডার

এসকিউএলকোডারের মূল উদ্দেশ্য হল প্রাকৃতিক ভাষা ইনপুটকে এসকিউএল কোয়েরিতে রূপান্তর করা। অন্যান্য সাধারণ-উদ্দেশ্য মডেলের বিপরীতে, SQLCoderকে SQL-এর জন্য নির্দিষ্ট ডেটাতে পরিমার্জিত করা হয়েছে, তাই এটি SQL কোয়েরি বোঝার এবং তৈরি করার ক্ষেত্রে বিশেষভাবে কার্যকর। SQLCoder স্পাইডার ডেটাসেটে একটি উল্লেখযোগ্য কর্মক্ষমতা প্রদর্শন করে, একটি জটিল, এবং text2SQL সিস্টেমের জন্য ক্রস-ডোমেন বেঞ্চমার্ক।


SQLCoder 64.6% নির্ভুলতার সাথে প্রশিক্ষণে দেখা যায় না এমন অভিনব স্কিমাগুলির জন্য সঠিক SQL কোয়েরি তৈরি করে। এটি GPT-3.5-টার্বো এবং টেক্সট-ডেভিন্সি-003-কে ছাড়িয়ে যায়, যেগুলি তার আকারের 10x বেশি মডেল। এটি বিভিন্ন এবং জটিল SQL কোয়েরি পরিচালনা করার জন্য SQLCoder এর ক্ষমতা হাইলাইট করে, যা উৎপাদন পরিবেশের জন্য গুরুত্বপূর্ণ।

GPT 3.5/GPT 4

GPT-3.5 এবং GPT-4 (জেনারেটিভ প্রাক-প্রশিক্ষিত ট্রান্সফরমার) হল সবচেয়ে উন্নত এবং কার্যকর সাধারণ-উদ্দেশ্য ভাষার মডেলগুলির মধ্যে কয়েকটি। উভয় মডেলই অল্প-শট শেখার ক্ষেত্রে দক্ষতা অর্জন করে, দ্রুত ন্যূনতম উদাহরণ সহ নতুন কাজের সাথে খাপ খাইয়ে নেয়, যা সীমিত ইনপুট থেকে SQL কোয়েরি তৈরির জন্য আদর্শ।


উদাহরণ স্বরূপ, যখন স্পাইডার ডেটাসেটে মূল্যায়ন করা হয়, GPT-3.5-টার্বোতে 60.6% প্রশিক্ষণে দেখা যায় নি, যেখানে GPT-4-এর 74.3% অর্জন করা হয়।


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

PaLM SQL

PaLM (পাথওয়েস ল্যাঙ্গুয়েজ মডেল) এসকিউএল হল গুগলের তৈরি আরেকটি শক্তিশালী মডেল। PaLM SQL-এর উন্নত ক্ষমতা এবং স্থাপত্য এটিকে SQL কোয়েরিতে প্রাকৃতিক ভাষা অনুবাদ করতে এবং জটিল এবং বিভিন্ন ডাটাবেস স্কিমাগুলিকে আরও নির্ভুলতার সাথে পরিচালনা করতে অত্যন্ত দক্ষ করে তোলে।


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


উত্পাদনের পরিবেশগুলি দৃঢ়তা, অভিযোজনযোগ্যতা এবং বাস্তব-বিশ্বের ব্যবসায়িক ব্যবহারকারীদের কাছ থেকে অস্পষ্ট প্রম্পটগুলি মোকাবেলা করার ক্ষমতার দাবি করে। অতএব, একটি টেক্সট2এসকিউএল ইঞ্জিনের তিনটি বৈশিষ্ট্য প্রদর্শন করা উচিত যা উৎপাদন-গ্রেড হিসাবে বিবেচিত হবে:


বিভিন্ন ক্যোয়ারী ফর্মুলেশন বোঝার ক্ষমতা - সিনট্যাক্টিক্যালি ভিন্ন ইউজার প্রম্পট একই SQL ক্যোয়ারীতে কমানো যেতে পারে; একটি ভাল টেক্সট2এসকিউএল ইঞ্জিন ব্যবহারকারীর প্রম্পটের পিছনে অনুপ্রেরণা বুঝতে সক্ষম হওয়া উচিত, ডেটা মডেলের প্রসঙ্গটি মাথায় রেখে, এবং সেই অনুযায়ী এসকিউএল কোয়েরি তৈরি করা উচিত।


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


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


এটি নিশ্চিত করা উচিত যে ইঞ্জিনের কাজগুলি কোয়েরি সম্পাদনে উল্লেখযোগ্য দেরি না যোগ করে - একজন ব্যবহারকারী রিয়েল-টাইমে যে উত্তরগুলি আশা করে তা রিয়েল-টাইমে ফিরে আসা উচিত। এর মানে হল যে ইঞ্জিনটিকে সর্বাধিক প্রথম তিনটি চেষ্টার মধ্যে সর্বোত্তম প্রশ্ন তৈরি করা উচিত।

SherloQ উপস্থাপন করা হচ্ছে

SherloQ হল Skypoint-এর text2SQL ইঞ্জিন যা স্বাভাবিক ভাষা থেকে SQL-এ প্রশ্ন অনুবাদ করে। একটি কাস্টম ইন-হাউস (ক্যোয়ারী জেনারেশনের জন্য LLM এর আর্কিটেকচারের একটি উল্লেখযোগ্য অংশ), SherloQ এর কার্যকারিতা ডেটা কোয়েরি করার ক্ষমতা বাড়ানোর জন্য ডিজাইন করা উন্নত উপাদানগুলির সংমিশ্রণ থেকে আসে৷ SherloQ ক্যোয়ারী অনুবাদে উচ্চ নির্ভুলতা, শক্তিশালী ত্রুটি পরিচালনা এবং নির্বিঘ্নে গর্বিত উত্পাদন ডাটাবেস সিস্টেমের সাথে একীকরণ, এটিকে বড় আকারের ডেটা পরিবেশের জন্য উপযুক্ত করে তোলে।



পরের কয়েকটি বিভাগে, আমরা SherloQ-এর অভ্যন্তরীণ স্থাপত্যের বিশদ বিবরণ নিয়ে আলোচনা করব এবং উৎপাদন সেটিংসে এটি ব্যবহার করে আমরা যে ফলাফল অর্জন করেছি তার কিছু শেয়ার করব।

SherloQ এর আর্কিটেকচারাল উপাদান

SherloQ এর আর্কিটেকচারে একাধিক চলমান টুকরা রয়েছে যা প্রতিটি সিস্টেমের নির্ভুলতা, নির্ভরযোগ্যতা এবং লেটেন্সি উন্নত করতে কাজ করে। এখানে স্থাপত্যের একটি ওভারভিউ:




ব্যবহারকারীর ইনপুট - ব্যবহারকারীর ইনপুট একটি প্রাকৃতিক ভাষা প্রশ্ন।


স্টেট এজেন্ট Eeecutor- আমাদের একটি LangChain ইন্টারফেসের বাস্তবায়ন যা কার্যকরী প্রক্রিয়া জুড়ে রাষ্ট্রকে ট্র্যাক করে। এটি কার্যকর করার সময় যুক্তি এবং স্মৃতির অবস্থা ট্র্যাক করতে Redis এবং DataStax Astra DB ব্যবহার করে। নির্বাহক বিভিন্ন মডিউলের মধ্যে সমন্বয় সাধন করে অপারেশনের প্রবাহ পরিচালনা করে।


এটি নিশ্চিত করে যে ব্যবহারকারীর ইনপুটগুলি সঠিকভাবে পার্স করা হয়েছে, প্রক্রিয়া করা হয়েছে এবং পরবর্তী উপাদানগুলিতে ফরোয়ার্ড করা হয়েছে, ইনপুট থেকে SQL ক্যোয়ারী জেনারেশনে একটি প্রবাহ বজায় রাখে।


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


SherloQ এর রাষ্ট্রীয় সরঞ্জাম :

  • ক্যোয়ারী জেনারেশন টুলটি প্রাথমিক এসকিউএল কোয়েরি তৈরি করতে পুনরুদ্ধার করা কয়েকটি শট কোয়েরি, ডেটা মডেল প্রসঙ্গ এবং ডিবি স্কিমা ব্যবহার করে। এটি পার্সড স্কিমা তথ্য ব্যবহার করে এবং প্রাসঙ্গিক উদাহরণ থেকে শেখার মাধ্যমে জেনারেট করা SQL কোয়েরির যথার্থতা এবং প্রাসঙ্গিকতা বাড়ায়।


  • পুনরায় চেষ্টা করার সরঞ্জামটি ক্যোয়ারী সম্পাদনের সময় নিক্ষিপ্ত যেকোন ত্রুটি বিশ্লেষণ করে এবং একটি প্রশ্ন পুনরায় তৈরি করে যা ত্রুটিটি সমাধান করে।


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

SherloQ এর কর্মক্ষমতা বাড়ানোর জন্য ডেটা ইনপুট এবং কৌশল

SherloQ-এর কর্মক্ষমতা বাড়াতে, আমরা বিভিন্ন কৌশল নিযুক্ত করি এবং মডেলটিকে গুরুত্বপূর্ণ ডেটা ইনপুট প্রদান করি। এর মধ্যে রয়েছে কাঠামোগত পচন, কয়েকটি শট উদাহরণ, ডেটা মডেল প্রসঙ্গ পুনরুদ্ধার, প্রতিফলন, এবং একটি পুনরায় চেষ্টা করার পদ্ধতি। প্রাকৃতিক ভাষা ইনপুট থেকে সুনির্দিষ্ট এবং প্রাসঙ্গিক SQL কোয়েরি তৈরি করার মডেলের ক্ষমতা উন্নত করার জন্য প্রতিটি অংশ অপরিহার্য।

কাঠামোগত পচন

কাঠামোগত পচনশীলতায়, ব্যবহারকারীর প্রম্পটকে তার মৌলিক অংশে বিভক্ত করা হয়। কোয়েরির প্রয়োজনীয় উপাদানগুলির উপর ফোকাস করা এবং চিহ্নিত করা মডেলটিকে সঠিক SQL তৈরি করতে সাহায্য করে। যেমন:


ইনপুট: XYZ Corp দ্বারা সরবরাহ করা সমস্ত আইটেমের জন্য বর্তমান পরিমাণ কত?

আউটপুট: ["বর্তমান পরিমাণ উপলব্ধ", "সমস্ত আইটেম", "XYZ কর্প দ্বারা সরবরাহ করা"]

কয়েকটি শট উদাহরণ

মডেলটিকে কয়েকটি শট এসকিউএল উদাহরণ আকারে রেফারেন্স প্রশ্ন দেওয়া হয়েছে, যা এটিকে অনুরূপ প্যাটার্নের উপর ভিত্তি করে এসকিউএল কোয়েরি তৈরি করতে সহায়তা করে। এই উদাহরণগুলি বিভিন্ন প্রম্পটের জন্য সঠিকভাবে নতুন SQL কোয়েরি তৈরি করার মডেলের ক্ষমতাকে উন্নত করে যাতে এটি উদ্দেশ্যযুক্ত প্রশ্নের গঠন এবং বিন্যাস চিনতে সহায়তা করে। এখানে কয়েকটি উদাহরণ দেওয়া হল:


উদাহরণ 1

ইনপুট: উপলব্ধ 20 ইউনিটের কম পরিমাণ সহ আইটেম দেখান।

আউটপুট: স্টক থেকে নির্বাচন করুন যেখানে পরিমাণ_উপলব্ধ < 20;


উদাহরণ 2

ইনপুট: $100 এর উপরে দামের আইটেম সহ বিক্রেতাদের তালিকা করুন।

আউটপুট: নির্বাচন করুন * বিক্রেতাদের থেকে WHERE Vendor_ID IN (যেখানে ইউনিট_মূল্য > 100 আইটেম থেকে ভেন্ডর_আইডি নির্বাচন করুন);


আমরা গতিশীলভাবে Astra DB থেকে শব্দার্থগত মিল ব্যবহার করে সবচেয়ে অনুরূপ কয়েকটি শট উদাহরণ নির্বাচন করি যা আমাদের ভেক্টর ডাটাবেস। ভেক্টর ডাটাবেস আমাদেরকে নতুন ইনপুট কোয়েরির কাঠামো এবং বিষয়বস্তুতে সবচেয়ে কাছের উদাহরণগুলি খুঁজে বের করার অনুমতি দেয়, নিশ্চিত করে যে মডেলটি সঠিক SQL কোয়েরি তৈরি করতে সবচেয়ে প্রাসঙ্গিক নিদর্শনগুলি ব্যবহার করতে পারে।


আমাদের উৎপাদন পরিবেশে, আমরা প্রতি ক্যোয়ারীতে গড়ে প্রায় দুটি কয়েক শট উদাহরণ করি। আমাদের অভিজ্ঞতায়, নির্ভুলতা উন্নত করতে আরও কয়েকটি-শট উদাহরণ যোগ করা একটি মাপযোগ্য অনুশীলন নয়।

ডেটা মডেল প্রসঙ্গ

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


যেমন:

মেট্রিক কোড: " MGMTFEE " -> বর্ণনা: "সম্পত্তি পরিচালনার জন্য ফি সংগৃহীত - ব্যবস্থাপনা ফি"

এসকিউএল ডিবি স্কিমা

SQL DB স্কিমা হল উপলব্ধ ডেটার কাঠামোগত উপস্থাপনা। টেবিল এবং এর কলাম উভয় টীকা দিয়ে স্কিমা সমৃদ্ধ করা হয়। এটি কলাম, তাদের বিবরণ এবং ডেটা প্রকার সহ টেবিলের নাম এবং বিবরণ অন্তর্ভুক্ত করে।


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

প্রতিফলন

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


এই পরিস্থিতিগুলি মডেলটিকে সাফল্যের প্রতিলিপি করতে বা অতীতে দেখা অনুরূপ প্রশ্নের ব্যর্থতা এড়াতে সহায়তা করে। এই পদক্ষেপটি বর্তমানের সাথে সবচেয়ে শব্দার্থগতভাবে অনুরূপ প্রশ্নগুলি খুঁজে পেতে Astra DB-কেও ব্যবহার করে।

মেকানিজম পুনরায় চেষ্টা করুন

SherloQ ডাটাবেস থেকে প্রাপ্ত ত্রুটিগুলি ব্যবহার করে একটি পুনঃপ্রচেষ্টা প্রক্রিয়া অন্তর্ভুক্ত করে। যখন একটি জেনারেট করা SQL ক্যোয়ারী একটি ত্রুটি দেখা দেয়, তখন ইঞ্জিন ক্যোয়ারী সংশোধন করতে একটি পূর্বনির্ধারিত টেমপ্লেট সহ একটি এজেন্ট ব্যবহার করে:


"""

আপনার কাজ হল ANSI SQL এর সাথে সামঞ্জস্যপূর্ণ করার জন্য একটি প্রশ্ন থেকে জেনারেট করা একটি ভুল SQL কোয়েরি ঠিক করা। এই নির্দেশিকাগুলি অনুসরণ করুন: সঠিক উত্তরগুলি নিশ্চিত করতে প্রশ্ন, ডাটাবেস স্কিমা এবং প্রাপ্ত ত্রুটি বার্তাটি যত্ন সহকারে বিশ্লেষণ করুন। বিভ্রান্তি এড়াতে টেবিল উপনাম ব্যবহার করুন।


উদাহরণস্বরূপ, SELECT t1.col1, t2.col1 FROM table1 AS t1 JOIN table2 AS t2 ON t1.id = t2.id .


রেশন গণনা করার সময়, সর্বদা লবটিকে একটি ফ্লোটে রূপান্তর করুন। নীচের বিন্যাস ব্যবহার করুন:

কাজ:

[প্রশ্ন] {user_input} [/QUESTION] প্রশ্নের সমাধান করার জন্য একটি SQL ক্যোয়ারী তৈরি করুন: {sql_query} শেষ সম্পাদনের সময় প্রাপ্ত ত্রুটির বার্তাটি হল: {error_message}

প্রতিক্রিয়া:

উপরের ইনপুটগুলির উপর ভিত্তি করে, এখানে সংশোধন করা SQL কোয়েরি রয়েছে: {response_sql} """

ফলাফল তুলনা করা: SherloQ বাস্তবায়নের আগে এবং পরে

উন্নত এলএলএম এবং একটি সু-পরিকল্পিত সিস্টেম ব্যবহার করে, SherloQ এসকিউএল কোয়েরি তৈরি করে যা আরও সুনির্দিষ্ট এবং প্রসঙ্গের সাথে প্রাসঙ্গিক। এখানে, আমরা লেটেন্সি এবং নির্ভুলতার মেট্রিক্স ব্যবহার করে SherloQ এর আগে এবং পরে ব্যবহারকারীর প্রম্পটের ফলাফল তুলনা করি।

এক উৎপাদন প্রশ্ন ব্যবহার করে তুলনা

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


ব্যবহারকারীর প্রম্পট: "2022 জুড়ে সিএম সুবিধার জন্য হাউসকিপিং খরচের ত্রৈমাসিক প্রবণতা নির্ধারণ করুন।"


SherloQ এর আগে

  • জেনারেট করা প্রশ্ন

    • SUM(Total_Amount_Numerator) / SUM(Total_Amount_Denominator) skypoint_metric_fact_denormalized_vw থেকে হাউসকিপিং_ব্যয় হিসাবে নির্বাচন করুন যেখানে সুবিধা_নাম = 'CM' এবং বছর = 2022 এবং মেট্রিক_একটি গ্রুপের নাম = 'বিনাম_পরিমাণ'


  • সমস্যা চিহ্নিত করা হয়েছে

    • Quarter_Number দ্বারা কোয়েরি গোষ্ঠী কিন্তু এটি নির্বাচন করে না, যা অসম্পূর্ণ ফলাফলের কারণ হতে পারে।

    • Metric_Code এর মত আরো নির্দিষ্ট শনাক্তকারীর পরিবর্তে Metric_Name ব্যবহার করুন।

    • শূন্য দ্বারা সম্ভাব্য বিভাজন SUM(Total_Amount_Denominator) এ পরিচালিত হয় না।


  • গড় বিলম্ব: 29 সেকেন্ড

    আগে-শের্লোকিউ সেটআপে প্রম্পট ইঞ্জিনিয়ারিং সহ GPT-3.5 এর সংমিশ্রণ এবং প্রতি ব্যবহারকারীর প্রম্পটে 5+ কয়েকটি শট কোয়েরি ব্যবহার করা হয়েছিল।


SherloQ এর সাথে

  • জেনারেট করা প্রশ্ন
    • নির্বাচন করুন বছর, ত্রৈমাসিক_সংখ্যা, SUM(মোট_পরিমাণ_সংখ্যা) / COALESCE(SUM(NULLIF(Total_Amount_Denominator,0)),1) skypoint_metric_fact_denormalized_vwWHERE = 'পরিমাণ_পরিমাণ 2022 গ্রুপ ত্রৈমাসিক_সংখ্যা অনুসারে, বছর ক্রম অনুসারে ত্রৈমাসিক_সংখ্যা ASC;


  • উন্নতি উল্লেখ করা হয়েছে
  • কোয়েরির মধ্যে রয়েছে Quarter_Number, প্রয়োজনীয় ত্রৈমাসিক ব্রেকডাউন প্রদান করে।
  • মেট্রিক_কোড ক্ষেত্রটি ব্যবহার করা হয়, মেট্রিকের জন্য আরও সুনির্দিষ্ট শনাক্তকারী প্রদান করে।
  • COALESCE(SUM(NULLIF(Total_Amount_Denominator,0)),1) ফাংশন শূন্য ত্রুটি দ্বারা সম্ভাব্য বিভাজন পরিচালনা করে।
  • ফলাফল ত্রৈমাসিক প্রবণতা প্রতিফলিত করার জন্য Quarter_Number দ্বারা আদেশ করা হয়।
  • গড় বিলম্ব: 10 সেকেন্ড


প্রোডাকশন ওয়ার্কলোডের বেঞ্চমার্কের উপর ভিত্তি করে, নীচের ফলাফলগুলি আমরা SherloQ এর আগে এবং এর সাথে নির্ভুলতা এবং নির্ভরযোগ্যতার বিষয়ে রিপোর্ট করি:

  • SherloQ এর আগে
    • নির্ভুলতা: 65%

    • নির্ভরযোগ্যতা: 60%


  • SherloQ এর সাথে
    • নির্ভুলতা: 92%

    • নির্ভরযোগ্যতা: 90%


উপরের ফলাফলগুলি একটি অভ্যন্তরীণ বেঞ্চমার্ক স্যুট থেকে আঁকা হয়েছে যা ক্যাশিংয়ের প্রভাবগুলিকে (আমাদের অভ্যন্তরীণ সিস্টেমের পাশাপাশি মডেলগুলিতে) অস্বীকার করার জন্য পৃথক শনাক্তকারীর সাথে প্রতিটি প্রম্পট 100 বার কার্যকর করে। স্যুটটি কত ঘন ঘন একই রকম প্রতিক্রিয়া দেবে তা পরিমাপ করে একটি বেঞ্চমার্ক প্রতিক্রিয়া এবং নির্ভরযোগ্যতার সাথে প্রত্যাবর্তিত প্রতিক্রিয়ার তুলনা করে নির্ভুলতা পরিমাপ করে।


তুলনাটি স্পষ্টভাবে বর্ণনা করে যে SherloQ-এর সুবিধাগুলি প্রাকৃতিক ভাষার প্রশ্নগুলিকে সঠিক SQL কোয়েরিতে রূপান্তরিত করে৷ SherloQ এর পরে সামগ্রিক কর্মক্ষমতা 30% উন্নত হয়েছে। পূর্বে উত্পন্ন প্রশ্নগুলি অসম্পূর্ণ ফলাফল এবং ত্রুটি পরিচালনার অভাবের মতো সমস্যায় ভুগছিল, যা নির্ভুলতা এবং নির্ভরযোগ্যতা উভয়কেই প্রভাবিত করে।


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


স্কাইপয়েন্ট প্ল্যাটফর্মের অন্যান্য অংশগুলি অন্বেষণ করতে বা স্কাইপয়েন্ট এআই-এর একটি ডেমো বুক করতে, স্কাইপয়েন্ট ওয়েবসাইটে যান।


লিখেছেন অলোক রাজ, লিড এআই ইঞ্জিনিয়ার, স্কাইপয়েন্ট, এবং সায়নদীপ সরকার, হেড অফ ইঞ্জিনিয়ারিং, স্কাইপয়েন্ট