ذكاء البيانات التوليدية

إعادة ابتكار تجربة البيانات: استخدم الذكاء الاصطناعي التوليدي وبنية البيانات الحديثة لفتح الرؤى | خدمات أمازون ويب

التاريخ:

يوفر تنفيذ بنية بيانات حديثة طريقة قابلة للتطوير لدمج البيانات من مصادر مختلفة. من خلال تنظيم البيانات حسب مجالات الأعمال بدلاً من البنية التحتية ، يمكن لكل مجال اختيار الأدوات التي تناسب احتياجاته. يمكن للمؤسسات تعظيم قيمة بنية البيانات الحديثة الخاصة بها من خلال حلول الذكاء الاصطناعي التوليفية مع الابتكار المستمر.

تسمح قدرات اللغة الطبيعية للمستخدمين غير التقنيين بالاستعلام عن البيانات من خلال المحادثة باللغة الإنجليزية بدلاً من SQL المعقدة. ومع ذلك ، فإن تحقيق الفوائد الكاملة يتطلب التغلب على بعض التحديات. يجب أن تحدد نماذج اللغة والذكاء الاصطناعي مصادر البيانات المناسبة ، وتوليد استعلامات SQL فعالة ، وإنتاج استجابات متماسكة مع نتائج مضمنة على نطاق واسع. يحتاجون أيضًا إلى واجهة مستخدم لأسئلة اللغة الطبيعية.

بشكل عام ، يعد تنفيذ بنية البيانات الحديثة وتقنيات الذكاء الاصطناعي التوليدية باستخدام AWS نهجًا واعدًا لاستخلاص الأفكار الرئيسية ونشرها من البيانات المتنوعة والشاملة على نطاق المؤسسة. أحدث عرض للذكاء الاصطناعي التوليدي من AWS هو أمازون بيدروك، وهي خدمة مُدارة بالكامل وأسهل طريقة لبناء وتوسيع تطبيقات الذكاء الاصطناعي باستخدام النماذج الأساسية. تقدم AWS أيضًا نماذج أساسية من خلال أمازون سيج ميكر جومب ستارت as الأمازون SageMaker نقاط النهاية. إن الجمع بين نماذج اللغات الكبيرة (LLMs) ، بما في ذلك سهولة التكامل التي تقدمها Amazon Bedrock ، والبنية التحتية للبيانات القابلة للتطوير والموجهة نحو المجال ، تضع هذا كطريقة ذكية للاستفادة من المعلومات الوفيرة الموجودة في قواعد بيانات التحليلات المختلفة وبحيرات البيانات.

في المنشور ، نعرض سيناريو قامت فيه الشركة بنشر بنية بيانات حديثة مع وجود بيانات في قواعد بيانات متعددة وواجهات برمجة تطبيقات مثل البيانات القانونية على خدمة تخزين أمازون البسيطة (Amazon S3) ، تم تشغيل الموارد البشرية خدمة قاعدة بيانات الأمازون (Amazon RDS) والمبيعات والتسويق على الأمازون الأحمر، بيانات السوق المالية على حل مستودع بيانات تابع لجهة خارجية في ندفة الثلج، وبيانات المنتج كواجهة برمجة تطبيقات. يهدف هذا التنفيذ إلى تعزيز إنتاجية تحليلات أعمال المؤسسة وأصحاب المنتجات وخبراء مجال الأعمال. تم تحقيق كل هذا من خلال استخدام الذكاء الاصطناعي التوليدي في بنية شبكة المجال هذه ، والتي تمكن الشركة من تحقيق أهداف أعمالها بشكل أكثر كفاءة. يحتوي هذا الحل على خيار تضمين LLMs من JumpStart كنقطة نهاية SageMaker بالإضافة إلى نماذج الجهات الخارجية. نحن نوفر لمستخدمي المؤسسة وسيلة لطرح الأسئلة القائمة على الحقائق دون أن يكون لديهم معرفة أساسية بقنوات البيانات ، وبالتالي نستخلص تعقيدات كتابة استعلامات SQL البسيطة إلى المعقدة.

حل نظرة عامة

تطبق بنية البيانات الحديثة على AWS الذكاء الاصطناعي ومعالجة اللغة الطبيعية للاستعلام عن قواعد بيانات تحليلات متعددة. باستخدام خدمات مثل Amazon Redshift و Amazon RDS و Snowflake ، أمازون أثيناو غراء AWS، فهو ينشئ حلاً قابلاً للتوسع لدمج البيانات من مصادر مختلفة. استخدام لانجشين، مكتبة قوية للعمل مع LLMs ، بما في ذلك نماذج الأساس من Amazon Bedrock و JumpStart في أمازون ساجميكر ستوديو دفاتر الملاحظات ، وهو نظام تم إنشاؤه حيث يمكن للمستخدمين طرح أسئلة العمل باللغة الإنجليزية الطبيعية وتلقي إجابات ببيانات مستمدة من قواعد البيانات ذات الصلة.

يوضح الرسم البياني التالي العمارة.

تستخدم البنية الهجينة قواعد بيانات متعددة و LLM ، مع نماذج أساسية من Amazon Bedrock و JumpStart لتحديد مصدر البيانات ، وإنشاء SQL ، وإنشاء النصوص مع النتائج.

يوضح الرسم التخطيطي التالي خطوات سير العمل المحددة لحلنا.

الخطوات كالتالي:

  1. يقدم مستخدم الأعمال موجه سؤال باللغة الإنجليزية.
  2. من المقرر أن يتم تشغيل متتبع ارتباطات AWS Glue على فترات متكررة لاستخراج البيانات الوصفية من قواعد البيانات وإنشاء تعريفات الجدول في كتالوج بيانات AWS Glue. يتم إدخال كتالوج البيانات في سلسلة التسلسل 1 (انظر الرسم التخطيطي السابق).
  3. تُستخدم أداة LangChain ، وهي أداة للعمل مع LLMs والمطالبات ، في أجهزة كمبيوتر Studio المحمولة. يتطلب LangChain تعريف LLM. كجزء من التسلسل التسلسلي 1 ، يتم تمرير البيانات الوصفية للموجه وكتالوج البيانات إلى LLM ، مستضافة على نقطة نهاية SageMaker ، لتحديد قاعدة البيانات والجدول ذي الصلة باستخدام LangChain.
  4. يتم تمرير قاعدة البيانات والجدول الفوري والمُعرف إلى تسلسل السلسلة 2.
  5. ينشئ LangChain اتصالاً بقاعدة البيانات ويقوم بتشغيل استعلام SQL للحصول على النتائج.
  6. يتم تمرير النتائج إلى LLM لتوليد إجابة باللغة الإنجليزية مع البيانات.
  7. يتلقى المستخدم إجابة باللغة الإنجليزية على موجههم ، والاستعلام عن البيانات من قواعد البيانات المختلفة.

تشرح الأقسام التالية بعض الخطوات الأساسية مع التعليمات البرمجية المرتبطة. للتعمق أكثر في الحل والكود لجميع الخطوات الموضحة هنا ، راجع جيثب ريبو. يوضح الرسم البياني التالي تسلسل الخطوات المتبعة:

المتطلبات الأساسية المسبقة

يمكنك استخدام أي قواعد بيانات متوافقة مع SQLAlchemy لتوليد استجابات من LLMs و LangChain. ومع ذلك ، يجب أن يكون لقواعد البيانات هذه بياناتها الوصفية مسجلة في AWS Glue Data Catalog. بالإضافة إلى ذلك ، ستحتاج إلى الوصول إلى LLM من خلال مفاتيح JumpStart أو API.

الاتصال بقواعد البيانات باستخدام SQLAlchemy

يستخدم LangChain SQLAlchemy للاتصال بقواعد بيانات SQL. نقوم بتهيئة وظيفة LangChain SQLDatabase عن طريق إنشاء محرك وإنشاء اتصال لكل مصدر بيانات. فيما يلي عينة من كيفية الاتصال بملف إصدار متوافق مع Amazon Aurora MySQL قاعدة بيانات بدون خادم وتشمل فقط جدول الموظفين:

#connect to AWS Aurora MySQL
cluster_arn = <cluster_arn>
secret_arn = <secret_arn>
engine_rds=create_engine('mysql+auroradataapi://:@/employees',echo=True,
  connect_args=dict(aurora_cluster_arn=cluster_arn, secret_arn=secret_arn))
dbrds = SQLDatabase(engine_rds, include_tables=['employees'])

بعد ذلك ، نقوم ببناء المطالبات التي يستخدمها التسلسل التسلسلي 1 لتحديد قاعدة البيانات واسم الجدول بناءً على سؤال المستخدم.

إنشاء قوالب موجه ديناميكية

نستخدم AWS Glue Data Catalog ، المصمم لتخزين وإدارة معلومات البيانات الوصفية ، لتحديد مصدر البيانات لاستعلام المستخدم وبناء مطالبات لتسلسل السلسلة 1 ، كما هو مفصل في الخطوات التالية:

  1. نقوم ببناء كتالوج البيانات من خلال الزحف عبر البيانات الوصفية لمصادر البيانات المتعددة باستخدام اتصال JDBC المستخدمة في المظاهرة.
  2. باستخدام مكتبة Boto3 ، نقوم ببناء عرض موحد لكتالوج البيانات من مصادر بيانات متعددة. فيما يلي نموذج عن كيفية الحصول على البيانات الوصفية لجدول الموظفين من كتالوج البيانات لقاعدة بيانات Aurora MySQL:
 #retrieve metadata from glue data catalog
  glue_tables_rds = glue_client.get_tables(DatabaseName=<database_name>, MaxResults=1000)
    for table in glue_tables_rds['TableList']:
        for column in table['StorageDescriptor']['Columns']:
             columns_str=columns_str+'n'+('rdsmysql|employees|'+table['Name']+"|"+column['Name'])

يحتوي كتالوج البيانات المدمج على تفاصيل حول مصدر البيانات ، مثل المخطط وأسماء الجدول وأسماء الأعمدة. فيما يلي عينة من مخرجات كتالوج البيانات الموحد:

database|schema|table|column_names
redshift|tickit|tickit_sales|listid
rdsmysql|employees|employees|emp_no
....
s3|none|claims|policy_id

  1. نقوم بتمرير كتالوج البيانات الموحد إلى قالب المطالبة وتحديد المطالبات المستخدمة من قبل LangChain:
prompt_template = """
From the table below, find the database (in column database) which will contain the data (in corresponding column_names) to answer the question {query} n """+glue_catalog +""" Give your answer as database == n Also,give your answer as database.table =="""

تسلسل السلسلة 1: الكشف عن البيانات الوصفية المصدر لاستعلام المستخدم باستخدام LangChain و LLM

نقوم بتمرير قالب المطالبة الذي تم إنشاؤه في الخطوة السابقة إلى الموجه ، جنبًا إلى جنب مع استعلام المستخدم إلى نموذج LangChain ، للعثور على أفضل مصدر بيانات للإجابة على السؤال. يستخدم LangChain نموذج LLM الذي نختاره للكشف عن البيانات الوصفية للمصدر.

استخدم الكود التالي لاستخدام LLM من JumpStart أو طرز الجهات الخارجية:

#define your LLM model here
llm = <LLM>
#pass prompt template and user query to the prompt
PROMPT = PromptTemplate(template=prompt_template, input_variables=["query"])
# define llm chain
llm_chain = LLMChain(prompt=PROMPT, llm=llm)
#run the query and save to generated texts
generated_texts = llm_chain.run(query)

يحتوي النص الذي تم إنشاؤه على معلومات مثل أسماء قاعدة البيانات والجداول التي يتم تشغيل استعلام المستخدم وفقًا لها. على سبيل المثال ، بالنسبة لاستعلام المستخدم "تسمية جميع الموظفين بتاريخ ميلاد هذا الشهر" ، generated_text لديه المعلومات database == rdsmysql و database.table == rdsmysql.employees.

بعد ذلك ، نقوم بتمرير تفاصيل مجال الموارد البشرية وقاعدة بيانات Aurora MySQL وجدول الموظفين إلى Chain Sequence 2.

تسلسل السلسلة 2: استرداد الاستجابات من مصادر البيانات للإجابة على استعلام المستخدم

بعد ذلك ، نقوم بتشغيل سلسلة قاعدة بيانات LangChain SQL لتحويل النص إلى SQL وتشغيل SQL الذي تم إنشاؤه ضمنيًا مقابل قاعدة البيانات لاسترداد نتائج قاعدة البيانات بلغة بسيطة يمكن قراءتها.

نبدأ بتحديد قالب موجه يوجه LLM لإنشاء SQL بلهجة صحيحة نحويًا ثم تشغيله على قاعدة البيانات:

_DEFAULT_TEMPLATE = """Given an input question, first create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.
Only use the following tables:
{table_info}
If someone asks for the sales, they really mean the tickit.sales table.
Question: {input}"""
#define the prompt
PROMPT = PromptTemplate( input_variables=["input", "table_info", "dialect"], template=_DEFAULT_TEMPLATE)

أخيرًا ، نقوم بتمرير LLM واتصال قاعدة البيانات والمطالبة إلى سلسلة قاعدة بيانات SQL وتشغيل استعلام SQL:

db_chain = SQLDatabaseChain.from_llm(llm, db, prompt=PROMPT)
response=db_chain.run(query)

على سبيل المثال ، بالنسبة لاستعلام المستخدم "تسمية جميع الموظفين بتاريخ ميلاد هذا الشهر" ، تكون الإجابة كما يلي:

Question: Name all employees with birth date this month SELECT * FROM employees WHERE MONTH(birth_date) = MONTH(CURRENT_DATE()); User Response:
The employees with birthdays this month are:
Christian Koblick
Tzvetan Zielinski

تنظيف

بعد تشغيل بنية البيانات الحديثة باستخدام الذكاء الاصطناعي التوليدي ، تأكد من تنظيف أي موارد لن يتم استخدامها. أغلق وحذف قواعد البيانات المستخدمة (Amazon Redshift و Amazon RDS و Snowflake). بالإضافة إلى ذلك ، احذف البيانات الموجودة في Amazon S3 وأوقف أي مثيلات دفتر ملاحظات Studio حتى لا تتحمل أي رسوم أخرى. إذا استخدمت JumpStart لنشر LLM كنقطة نهاية في الوقت الحقيقي لـ SageMaker ، فاحذف نقطة النهاية من خلال وحدة تحكم SageMaker أو Studio.

وفي الختام

في هذا المنشور ، قمنا بدمج بنية البيانات الحديثة مع الذكاء الاصطناعي التوليدي و LLMs داخل SageMaker. يستخدم هذا الحل العديد من نماذج الأساس لتحويل النص إلى نص من JumpStart بالإضافة إلى نماذج الجهات الخارجية. يحدد هذا النهج المختلط مصادر البيانات ، ويكتب استعلامات SQL ، وينشئ الاستجابات بنتائج الاستعلام. يستخدم Amazon Redshift و Amazon RDS و Snowflake و LLMs. لتحسين الحل ، يمكنك إضافة المزيد من قواعد البيانات وواجهة مستخدم للاستعلامات الإنجليزية والهندسة السريعة وأدوات البيانات. يمكن أن يصبح هذا طريقة ذكية وموحدة للحصول على رؤى من مخازن بيانات متعددة. للتعمق في الحل والكود الموضح في هذا المنشور ، تحقق من ملف جيثب ريبو . أيضا ، الرجوع إلى أمازون بيدروك لحالات الاستخدام في الذكاء الاصطناعي التوليدي ونماذج الأساس ونماذج اللغات الكبيرة.


الزائدة الدودية

يطالب سبيل المثال

نطاق قاعدة البيانات / API موجه SQL (تم إنشاؤه بواسطة LLM) الناتج
المبيعات والتسويق أمازون RedShift كم عدد مبيعات التذاكر هناك؟ SELECT COUNT(*) AS total_sales
FROM tickit.sales;
There are 172,456 ticket sales.
المبيعات والتسويق أمازون RedShift ما هي العمولة الإجمالية لمبيعات التذاكر لعام 2008؟ SELECT SUM(commission) AS total_commission
FROM tickit.sales
WHERE EXTRACT(YEAR FROM saletime) = 2008
The total commission for ticket sales in the year 2008 was $16,614,814.65.
شروط وأحكام S3 كم عدد عمليات الاحتيال التي حدثت في عام 2023؟ SELECT count(*)
FROM claims
WHERE extract(year from write_time) = 2023 AND fraud = 1;
There were 164 fraud claims in 2023.
شروط وأحكام S3 كم عدد السياسات التي تمت المطالبة بها هذا العام؟ SELECT count(*)
FROM claims;
There were 5000 claims made this year.
الموارد البشرية أمازون أورورا ماي إس كيو إل قم بتسمية جميع الموظفين بتاريخ ميلادهم هذا الشهر SELECT * FROM employees
WHERE MONTH(birth_date) = MONTH(CURRENT_DATE());
The employees with birthdays this month are:
Christian Koblick
Tzvetan Zielinski
Kazuhito Cappelletti
Yinghua Dredge
الموارد البشرية أمازون أورورا ماي إس كيو إل كم عدد الموظفين الذين تم تعيينهم قبل عام 1990؟ SELECT COUNT(*) AS 'Number of employees hired before 1990'
FROM employees
WHERE hire_date < '1990-01-01'
29 employees were hired before 1990.
التمويل والاستثمارات ندفة الثلج ما هو أداء الأسهم الأفضل والأسوأ في مايو 2013؟ SELECT name, MAX(close) AS max_close, MIN(close) AS min_close
FROM all_stocks_5yr
WHERE date BETWEEN '2013-05-01' AND '2013-05-31'
GROUP BY name
ORDER BY max_close DESC, min_close ASC
The stock that performed the best in May 2013 was AnySock1 (ASTOCK1) with a maximum closing price of $842.50. The stock that performed the worst was AnySock2 (ASTOCK2) with a minimum closing price of $3.22.
التمويل والاستثمارات ندفة الثلج ما هو متوسط ​​حجم الأسهم المتداولة في يوليو 2013؟ SELECT AVG(volume) AS average_volume
FROM all_stocks_5yr
WHERE date BETWEEN '2013-07-01' AND '2013-07-31'
The average volume of stocks traded in July 2013 was 4,374,177
المنتج - الطقس API كيف هو الطقس الآن في مدينة نيويورك بالدرجات فهرنهايت؟

حول المؤلف

نافنيت توتيجا هو متخصص بيانات في Amazon Web Services. قبل الانضمام إلى AWS ، عملت Navneet كميسر للمؤسسات التي تسعى إلى تحديث هياكل البيانات الخاصة بها وتنفيذ حلول AI / ML الشاملة. وهي حاصلة على إجازة في الهندسة من جامعة ثابار ، بالإضافة إلى ماجستير في الإحصاء من جامعة تكساس إيه آند إم.

سوفيك كومار ناث هو مهندس حلول AI / ML مع AWS. يتمتع بخبرة واسعة في تصميم التعلم الآلي الشامل وحلول تحليل الأعمال في التمويل والعمليات والتسويق والرعاية الصحية وإدارة سلسلة التوريد وإنترنت الأشياء. نشر Sovik مقالات وحصل على براءة اختراع في مراقبة نموذج ML. حصل على درجتي ماجستير مزدوجتين من جامعة جنوب فلوريدا ، جامعة فريبورغ ، سويسرا ، ودرجة البكالوريوس من المعهد الهندي للتكنولوجيا ، خراجبور. خارج العمل ، يستمتع سوفيك بالسفر وركوب العبارة ومشاهدة الأفلام.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة