يتيح هذا المشروع التفاعل مع قواعد البيانات العلائقية من خلال اللغة الطبيعية. على وجه التحديد ، يستخدم مزيجًا متناثرًا من الخبراء (MOE) MIXTRAL 8x7B ، لإنشاء استعلامات SQL ، وتفسير نتائج الجدولة المقابلة لها للعودة إلى المستخدم كإجابات. يقوم التطبيق بتعزيز أدوات استضافة Sagemaker لخدمة النموذج ، الذي يتم نشره بنقرات قليلة من Sagemaker JumpStart. لمزيد من التفاصيل ، يرجى الرجوع إلى هذا المدونة.
يمكنك حاليًا نشر Mixtral 8x7B على Sagemaker JumpStart بنقرة واحدة. توفر Amazon Sagemaker JumpStart طريقة مبسطة للوصول إلى أكثر من 100 طرز مختلفة من المصادر المفتوحة والمؤسسة الثالثة. من أجل إطلاق نقطة نهاية لاستضافة Mixtral 8x7B من Sagemaker JumpStart ، قد تحتاج إلى طلب زيادة في حصة الخدمة للوصول إلى مثيل ML.G5.48XLARGE لاستخدام نقطة النهاية . يمكنك بسهولة طلب زيادة الحصص من خلال وحدة التحكم AWS أو CLI أو API للوصول.
ستحتاج أيضًا إلى الوصول إلى مصدر بيانات علائقي. يتم استخدام Amazon Redshift كمصدر للبيانات الأساسي في هذا المنشور باستخدام قاعدة بيانات Tickit. تساعد قاعدة البيانات هذه على تتبع نشاط المبيعات لموقع الويب الخيالي ، حيث يشتري المستخدمون وبيع التذاكر عبر الإنترنت للأحداث الرياضية والعروض والحفلات الموسيقية.
يرجى مراجعة أي شروط ترخيص تنطبق على مجموعة البيانات مع فريقك القانوني وتأكيد أن قضية الاستخدام الخاصة بك تتوافق مع الشروط قبل المتابعة.
ستحتاج أولاً إلى إعداد مجموعة الانزياح الأحمر إذا لم يكن لديك مجموعة بالفعل. استخدم وحدة التحكم في Amazon Redshift أو CLI لإطلاق مجموعة مع نوع العقدة المطلوب وعدد العقد. تأكد من ملاحظة نقطة نهاية الكتلة واسم قاعدة البيانات وبيانات الاعتماد للاتصال.
بمجرد توفر الكتلة ، قم بإنشاء قاعدة بيانات جديدة وجداول في ذلك للاحتفاظ بالبيانات العلائقية. يمكنك تحميل البيانات لقاعدة بيانات TICKIT من S3 باتباع هذه الخطوات.
لاختبار أنك أضفت البيانات بنجاح إلى مجموعة الانزياح الأحمر الخاص بك. اتبع هذه الخطوات:
/* Find total sales on a given date. */
SELECT sum(qtysold)
FROM sales, date
WHERE sales.dateid = date.dateid AND caldate = '2008-01-05';
/* Find the top 10 buyers. */
SELECT firstname, lastname, total_quantity
FROM (SELECT buyerid, sum(qtysold) total_quantity
FROM sales GROUP BY buyerid
ORDER BY total_quantity
desc limit 10) Q, users
WHERE Q.buyerid = users.userid
ORDER BY Q.total_quantity desc;
إذا حصلت على ردود ناجحة ، فهذا يعني أنك قمت بتحميل بيانات قاعدة البيانات بشكل صحيح على الكتلة. يتيح محرر الاستعلام الادخار والجدولة ومشاركة الاستعلامات. يمكنك أيضًا عرض خطط الاستعلام وتفاصيل التنفيذ ومراقبة أداء الاستعلام.
نوصي بتشغيل هذا الكمبيوتر الدفتري في Amazon Sagemaker Studio. لذلك ، يجب أولاً إعداد مجال Sagemaker ، مع التأكد من أن لديه الأذونات المناسبة للتفاعل مع Amazon Redshift. بعد ذلك ، استنساخ مستودع GitHub في Sagemaker Studio Classic مع الأمر التالي:
git clone https://github.com/aws-samples/query-databases-with-natural-language.git
افتح Query-Amazon-Redshift-With-Mixtral-8x7b-instruct.ipynb دفتره لتشغيله من خلاله.

على مستوى عالٍ ، تتكون حلول Text2SQL مثل تلك الموجودة في هذا المستودع ، من ثلاثة مكونات أساسية:
مصدر البيانات المنظم : يمكن أن يكون هذا مصدر بيانات علائقية مثل Amazon RDS أو Amazon Aurora أو AWS Athena أو Snowflake. أنه يحتوي على بيانات العمل للاستعلام.
نموذج الأساس : نموذج لغة كبير (LLM) قادر على فهم مخطط البيانات لقاعدة بيانات المصدر ورسم أسئلة اللغة الطبيعية في استعلامات SQL المقابلة.
Orchestrator Back-End : يمكن تنفيذ برامج البرامج النصية للكود في بيئات مثل دفتر Sagemaker Studio Notebook أو وظيفة Lambda أو EC2 أو ECS. علاوة على ذلك ، يمكنك إضافة خدمة تزامن ، مثل وظائف خطوة AWS ، إذا لزم الأمر.
في الرمز الوارد في هذا المستودع ، فإن الهندسة المعمارية هي ما يلي:

التدفق الشامل على النحو التالي:
يسأل المستخدم سؤال اللغة الطبيعية التي يتم تمريرها إلى نموذج تعليمات Mixtral 8x7B ، الذي تم استضافته في Sagemaker.
تقوم LLM بتحليل السؤال ويستخدم المخطط الذي تم جلبه من قاعدة بيانات الانزياح نحو الأحمر المتصل لإنشاء استعلام SQL.
يتم تشغيل استعلام SQL ضد قاعدة البيانات. في حالة وجود خطأ ، يتم تنفيذ سير عمل إعادة المحاولة.
يتم نقل النتائج الجدولية المستلمة إلى LLM للتفسير وتحويلها إلى استجابة لغة طبيعية للسؤال الأصلي للمستخدم.
للحصول على خطوة خطوة بخطوة للتنفيذ ، يرجى مراجعة المدونة المرجعية.