هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

اشنایدر الکتریک از Retrieval Augmented LLM در SageMaker استفاده می کند تا از به روز رسانی بلادرنگ در سیستم های ERP خود اطمینان حاصل کند | خدمات وب آمازون

تاریخ:

این پست با آنتونی مدیروس، مدیر مهندسی راه حل ها و معماری برای هوش مصنوعی آمریکای شمالی، و بلیک سانتچی، مدیر هوش تجاری، از اشنایدر الکتریک نوشته شده است. از دیگر کارشناسان اشنایدر الکتریک می توان به جسی میلر، سومیک چاودری، شاسوات باهولگاونکار، دیوید واتکینز، مارک کارلسون و باربارا اسلکزکوفسکی اشاره کرد. 

سیستم های برنامه ریزی منابع سازمانی (ERP) توسط شرکت ها برای مدیریت چندین عملکرد تجاری مانند حسابداری، فروش یا مدیریت سفارش در یک سیستم استفاده می شود. به ویژه، آنها به طور معمول برای ذخیره اطلاعات مربوط به حساب های مشتری استفاده می شوند. سازمان‌های مختلف در یک شرکت ممکن است از سیستم‌های ERP مختلف استفاده کنند و ادغام آنها یک چالش فنی پیچیده در مقیاس است که به دانش خاص دامنه نیاز دارد.

اشنایدر الکتریک پیشرو در تحول دیجیتال مدیریت انرژی و اتوماسیون صنعتی است. اشنایدر الکتریک برای برآورده کردن بهترین نیازهای مشتریان خود باید پیوندهای بین حساب های مشتریان مرتبط را در سیستم های ERP خود پیگیری کند. همانطور که پایگاه مشتریان آنها رشد می کند، مشتریان جدید روزانه اضافه می شوند و تیم های حساب آنها باید به صورت دستی این مشتریان جدید را مرتب کرده و آنها را به نهاد اصلی والدین مرتبط کنند.

تصمیم پیوند بر اساس جدیدترین اطلاعات موجود در اینترنت یا رسانه ها است و ممکن است تحت تأثیر خریدهای اخیر، اخبار بازار یا ساختار مجدد بخش قرار گیرد. یک مثال از پیوند دادن حساب، شناسایی رابطه بین آمازون و شرکت تابعه آن، Whole Foods Market [منبع].

اشنایدر الکتریک در حال استقرار مدل‌های زبان بزرگ برای توانایی‌هایشان در پاسخ‌گویی به سؤالات در حوزه‌های مختلف دانش است، تاریخی که این مدل آموزش داده شده، دانش آن را محدود می‌کند. آنها این چالش را با استفاده از یک مدل زبان بزرگ منبع باز Retriever-Augmented Generation که در دسترس است، حل کردند Amazon SageMaker JumpStart برای پردازش مقادیر زیادی از دانش بیرونی استخراج شده و نشان دادن روابط شرکتی یا عمومی در بین سوابق ERP.

در اوایل سال 2023، زمانی که اشنایدر الکتریک تصمیم گرفت بخشی از فرآیند پیوند حساب های خود را با استفاده از هوش مصنوعی (AI) خودکار کند، این شرکت با آزمایشگاه راه حل های یادگیری ماشین AWS (MLSL) همکاری کرد. با تخصص MLSL در مشاوره و اجرای ML، اشنایدر الکتریک توانست یک معماری هوش مصنوعی ایجاد کند که تلاش دستی در جریان کار پیوند آنها را کاهش دهد و دسترسی سریع‌تری به داده‌ها را به تیم‌های تحلیلی پایین‌دستی خود ارائه دهد.

هوش مصنوعی مولد

هوش مصنوعی مولد و مدل‌های زبان بزرگ (LLM) روشی را که سازمان‌های تجاری قادر به حل چالش‌های پیچیده سنتی مربوط به پردازش و درک زبان طبیعی هستند تغییر می‌دهند. برخی از مزایای ارائه شده توسط LLM عبارتند از توانایی درک بخش های بزرگ متن و پاسخ به سوالات مرتبط با تولید پاسخ های شبیه انسان. AWS با در دسترس قرار دادن گزینه های زیادی از طریق Amazon SageMaker JumpStart، آزمایش و تولید بارهای کاری LLM را برای مشتریان آسان می کند. بستر آمازونو آمازون تایتان.

کسب دانش خارجی

LLM ها به دلیل توانایی خود در فشرده سازی دانش بشری شناخته شده اند و توانایی های قابل توجهی در پاسخ به سؤالات در حوزه های مختلف دانش نشان داده اند، اما دانش آنها در تاریخ آموزش مدل محدود شده است. ما این بریدگی اطلاعات را با جفت کردن LLM با یک API جستجوی Google برای ارائه یک LLM تقویت‌شده بازیابی قدرتمند (RAG) که چالش‌های اشنایدر الکتریک را برطرف می‌کند، برطرف می‌کنیم. RAG قادر است مقادیر زیادی از دانش خارجی استخراج شده از جستجوی Google را پردازش کند و روابط شرکتی یا عمومی را در بین سوابق ERP به نمایش بگذارد.

به مثال زیر مراجعه کنید:

سوال: شرکت مادر وان مدیکال کیست؟
پرس و جو گوگل: "یک شرکت مادر پزشکی" → اطلاعات → LLM
پاسخ: وان مدیکال، یکی از شرکت های تابعه آمازون…

مثال قبلی (برگرفته از پایگاه داده مشتریان اشنایدر الکتریک) مربوط به خریدی است که در فوریه 2023 اتفاق افتاد و بنابراین به دلیل قطع دانش به تنهایی توسط LLM دستگیر نمی شود. تقویت LLM با جستجوی Google به روزترین اطلاعات را تضمین می کند.

مدل Flan-T5

در آن پروژه از مدل Flan-T5-XXL استفاده کردیم Flan-T5 خانواده مدل

مدل های Flan-T5 به صورت دستورالعمل تنظیم شده اند و بنابراین قادر به انجام وظایف مختلف NLP صفر شات هستند. در کار پایین دستی ما، نیازی به گنجاندن حجم وسیعی از دانش جهانی نبود، بلکه در پاسخ به سؤال با توجه به متنی از متون ارائه شده از طریق نتایج جستجو، به خوبی عمل می‌کردیم، و بنابراین، مدل T11 با پارامترهای 5B عملکرد خوبی داشت.

JumpStart استقرار راحت این خانواده مدل را از طریق فراهم می کند Amazon SageMaker Studio و SageMaker SDK. این شامل Flan-T5 Small، Flan-T5 Base، Flan-T5 Large، Flan-T5 XL و Flan-T5 XXL است. علاوه بر این، JumpStart چند نسخه از Flan-T5 XXL را در سطوح مختلف کوانتیزاسیون ارائه می دهد. ما Flan-T5-XXL را برای استفاده از استنتاج به نقطه پایانی مستقر کردیم آمازون SageMaker Studio Jumpstart.

مسیر به Flan-T5 SageMaker JumpStart

بازیابی Augmented LLM با LangChain

LangChain یک چارچوب محبوب و در حال رشد سریع است که امکان توسعه برنامه های کاربردی با LLM را فراهم می کند. بر اساس مفهوم است زنجیر، که ترکیبی از اجزای مختلف هستند که برای بهبود عملکرد LLM برای یک کار معین طراحی شده اند. به عنوان مثال، به ما امکان سفارشی سازی را می دهد پرسیدن و LLM ها را با ابزارهای مختلف مانند موتورهای جستجوی خارجی یا منابع داده ادغام کنید. در مورد استفاده ما، از گوگل استفاده کردیم سرپر کامپوننت برای جستجوی وب، و استقرار مدل Flan-T5-XXL در دسترس است آمازون SageMaker Studio Jumpstart. LangChain هماهنگی کلی را انجام می دهد و به صفحات نتیجه جستجو اجازه می دهد تا به نمونه Flan-T5-XXL وارد شوند.

Retrieval-Augmented Generation (RAG) شامل دو مرحله است:

  1. بازیابی تکه های متن مرتبط از منابع خارجی
  2. افزودنی از تکه های با زمینه در اعلان داده شده به LLM.

برای مورد استفاده اشنایدر الکتریک، RAG به شرح زیر است:

  1. نام شرکت داده شده با سوالی مانند "شرکت مادر X کیست" ترکیب می شود، که X شرکت داده شده است) و با استفاده از Serper AI به یک جستجوی گوگل ارسال می شود.
  2. اطلاعات استخراج شده با سؤال فوری و اصلی ترکیب شده و برای پاسخ به LLM ارسال می شود.

نمودار زیر این فرآیند را نشان می دهد.

گردش کار RAG

برای ایجاد نقطه پایانی از کد زیر استفاده کنید:

# Spin FLAN-T5-XXL Sagemaker Endpoint
llm = SagemakerEndpoint(...)

ابزار جستجوی فوری:

search = GoogleSerperAPIWrapper()
search_tool = Tool( name="Search", func=search.run, description="useful for when you need to ask with search", verbose=False)

در کد زیر، اجزای بازیابی و تقویت را با هم زنجیره می کنیم:

my_template = """
Answer the following question using the information. n
Question : {question}? n
Information : {search_result} n
Answer: """
prompt_template = PromptTemplate( input_variables=["question", 'search_result'], template=my_template)
question_chain = LLMChain( llm=llm, prompt=prompt_template, output_key="answer") def search_and_reply_company(company): # Retrieval search_result = search_tool.run(f"{company} parent company") # Augmentation output = question_chain({ "question":f"Who is the parent company of {company}?", "search_result": search_result}) return output["answer"] search_and_reply_company("Whole Foods Market") "Amazon"

مهندسی سریع

ترکیبی از زمینه و سوال را اعلان می گویند. ما متوجه شدیم که دستوری که استفاده کردیم (تغییرات در مورد درخواست شرکت مادر) برای بیشتر بخش‌های عمومی (دامنه‌ها) عملکرد خوبی داشت، اما به خوبی به آموزش یا مراقبت‌های بهداشتی تعمیم نمی‌یابد زیرا مفهوم شرکت مادر در آنجا معنی‌دار نیست. برای آموزش، ما از "X" استفاده کردیم در حالی که برای مراقبت های بهداشتی از "Y" استفاده کردیم.

برای فعال کردن این انتخاب سریع خاص دامنه، ما همچنین باید دامنه ای را که یک حساب معین به آن تعلق دارد شناسایی می کردیم. برای این، ما همچنین از یک RAG استفاده کردیم که در آن یک سوال چند گزینه ای "دامنه {account} چیست؟" به عنوان گام اول و بر اساس پاسخی که از مادر حساب با استفاده از دستور مربوطه به عنوان مرحله دوم پرسیدیم. کد زیر را ببینید:

my_template_options = """
Answer the following question using the information. n
Question :  {question}? n
Information : {search_result} n
Options :n {options} n
Answer: """ prompt_template_options = PromptTemplate(
input_variables=["question", 'search_result', 'options'],
template=my_template_options)
question_chain = LLMChain( llm=llm, prompt=prompt_template_options, output_key="answer") my_options = """
- healthcare
- education
- oil and gas
- banking
- pharma
- other domain """ def search_and_reply_domain(company):
search_result = search_tool.run(f"{company} ")
output = question_chain({ "question":f"What is the domain of {company}?", "search_result": search_result, "options":my_options})
return output["answer"] search_and_reply_domain("Exxon Mobil") "oil and gas"

دستورالعمل های خاص بخش، عملکرد کلی را از 55٪ به 71٪ دقت افزایش داده است. به طور کلی، تلاش و زمان سرمایه گذاری شده برای توسعه موثر پرسیدن به نظر می رسد به طور قابل توجهی کیفیت پاسخ LLM را بهبود می بخشد.

RAG با داده های جدولی (SEC-10k)

پرونده های SEC 10K منبع قابل اعتماد دیگری از اطلاعات برای شرکت های تابعه و زیرمجموعه ها است که سالانه توسط یک شرکت سهامی عام ثبت می شود. این پرونده ها مستقیماً در SEC در دسترس هستند ادگار یا از طریق  CorpWatch API

ما فرض می کنیم که اطلاعات در قالب جدول ارائه شده است. در زیر یک شبه است CSV مجموعه داده ای که قالب اصلی مجموعه داده SEC-10K را تقلید می کند. امکان ادغام چندگانه وجود دارد CSV منابع داده در یک دیتافریم ترکیبی پانداها:

# A pseudo dataset similar by schema to the CorpWatch API dataset
df.head()

index	relation_id source_cw_id	target_cw_id	parent subsidiary 1 90 22569 37 AMAZON WHOLE FOODS MARKET
873 1467 22569 781 AMAZON TWITCH
899 1505 22569 821 AMAZON ZAPPOS
900 1506 22569 821 AMAZON ONE MEDICAL
901 1507 22569 821 AMAZON WOOT!

LangChain یک لایه انتزاعی برای پانداها فراهم می کند create_pandas_dataframe_agent. دو مزیت کلیدی برای استفاده از LangChain/LLM برای این کار وجود دارد:

  1. پس از چرخش، به مصرف کننده پایین دستی اجازه می دهد تا به جای کد، با مجموعه داده به زبان طبیعی تعامل داشته باشد
  2. در مورد غلط املایی و روش های مختلف نامگذاری حساب ها قوی تر است.

نقطه پایانی را مانند بالا می چرخانیم و عامل را ایجاد می کنیم:

# Create pandas dataframe agent
agent = create_pandas_dataframe_agent(llm, df, varbose=True)

در کد زیر، ما رابطه والد/فرعی را پرس و جو می کنیم و عامل پرس و جو را به زبان pandas ترجمه می کند:

# Example 1
query = "Who is the parent of WHOLE FOODS MARKET?"
agent.run(query) #### output
> Entering new AgentExecutor chain...
Thought: I need to find the row with WHOLE FOODS MARKET in the subsidiary column
Action: python_repl_ast
Action Input: df[df['subsidiary'] == 'WHOLE FOODS MARKET']
Observation:
source_cw_id	target_cw_id	parent subsidiary
22569 37 AMAZON WHOLE FOODS MARKET
Thought: I now know the final answer
Final Answer: AMAZON
> Finished chain.
# Example 2
query = "Who are the subsidiaries of Amazon?"
agent.run(query)
#### output
> Entering new AgentExecutor chain...
Thought: I need to find the row with source_cw_id of 22569
Action: python_repl_ast
Action Input: df[df['source_cw_id'] == 22569]
...
Thought: I now know the final answer
Final Answer: The subsidiaries of Amazon are Whole Foods Market, Twitch, Zappos, One Medical, Woot!...> Finished chain. 'The subsidiaries of Amazon are Whole Foods Market, Twitch, Zappos, One Medical, Woot!.'

نتیجه

در این پست، نحوه استفاده از بلوک‌های ساختمانی از LangChain برای تقویت یک LLM با قابلیت‌های جستجو را توضیح دادیم تا روابط بین حساب‌های مشتریان اشنایدر الکتریک را کشف کنیم. ما خط لوله اولیه را به یک فرآیند دو مرحله‌ای با شناسایی دامنه قبل از استفاده از یک درخواست خاص دامنه برای دقت بالاتر گسترش دادیم.

علاوه بر پرس و جو جستجوی Google، مجموعه داده هایی که ساختارهای شرکتی مانند پرونده های SEC 10K را به تفصیل شرح می دهند، می توانند برای تقویت بیشتر LLM با اطلاعات قابل اعتماد استفاده شوند. تیم اشنایدر الکتریک همچنین می‌تواند درخواست‌های خود را با تقلید از روش طبقه‌بندی برخی حساب‌های بخش عمومی توسعه و طراحی کند و دقت خط لوله را بیشتر بهبود بخشد. این قابلیت‌ها اشنایدر الکتریک را قادر می‌سازد تا ساختارهای سازمانی به‌روز و دقیق مشتریان خود را حفظ کند و توانایی انجام تجزیه و تحلیل در بالای این داده‌ها را باز کند.


درباره نویسنده

آنتونی مدیروس مدیر مهندسی راه حل ها و معماری در اشنایدر الکتریک است. او در ارائه ابتکارات AI/ML با ارزش بالا به بسیاری از فعالیت های تجاری در آمریکای شمالی تخصص دارد. او با 17 سال تجربه در اشنایدر الکتریک، دانش و تخصص فنی فراوانی را برای تیم به ارمغان می آورد.

بلیک سانسچی یک مدیر هوش تجاری در اشنایدر الکتریک است که رهبری یک تیم تجزیه و تحلیل متمرکز بر حمایت از سازمان فروش از طریق بینش های مبتنی بر داده را بر عهده دارد.

جاشوا لویجاشوا لوی مدیر ارشد علوم کاربردی در آزمایشگاه راه حل های یادگیری ماشین آمازون است، جایی که به مشتریان کمک می کند راه حل های AI/ML را برای حل مشکلات کلیدی کسب و کار طراحی و بسازند.

کوستا بلز یک دانشمند ارشد کاربردی با AWS MLSL با تمرکز بر هوش مصنوعی و پردازش اسناد است. او علاقه زیادی به ساخت برنامه های کاربردی با استفاده از نمودارهای دانش و NLP دارد. او حدود 10 سال تجربه در ساخت راه حل های داده و هوش مصنوعی برای ایجاد ارزش برای مشتریان و شرکت ها دارد.

اود ژنو یک دانشمند کاربردی در انکوباتور آمازون GenAI است، جایی که به مشتریان کمک می کند تا مشکلات کلیدی کسب و کار را از طریق ML و AI حل کنند. او قبلاً یک محقق در ML نظری بود و از استفاده از دانش خود برای ارائه راه حل های پیشرفته به مشتریان لذت می برد.

دکتر سراجوس سالکین دانشمند کاربردی در آزمایشگاه راه حل یادگیری ماشین AWS است. او به مشتریان AWS کمک می کند تا با ساخت راه حل های AI/ML به تجارت خود سرعت بخشند. علایق تحقیقاتی او یادگیری ماشین چندوجهی، هوش مصنوعی مولد و کاربردهای ML در مراقبت های بهداشتی است.

زیچن وانگ، دکترا، دانشمند ارشد کاربردی در AWS است. او با چندین سال تجربه تحقیقاتی در توسعه ML و روش های آماری با استفاده از داده های بیولوژیکی و پزشکی، با مشتریان در سراسر عمودی مختلف برای حل مشکلات ML آنها کار می کند.

آنتون گریدین یک معمار راه حل اصلی است که از حساب های صنعتی جهانی پشتیبانی می کند که در خارج از شهر نیویورک مستقر است. او بیش از 15 سال تجربه در ساخت برنامه های کاربردی امن و تیم های مهندسی پیشرو دارد.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟