لنگچین چیست؟
لنگچین یک چارچوب منبع باز برای ساخت برنامههایی مبتنی بر مدلهای زبانی بزرگ (LLMs) است. مدلهای زبانی بزرگ، مدلهای یادگیری عمیقی هستند که روی مقادیر عظیمی از دادهها از پیش آموزش دیدهاند و میتوانند به پرسوجوهای کاربران پاسخ دهند—برای مثال، پاسخ به سؤالات یا ایجاد تصاویر از دستورات متنی. لنگچین ابزارها و انتزاعهایی را ارائه میدهد تا قابلیتهای سفارشیسازی، دقت و ارتباط اطلاعات تولیدشده توسط این مدلها را بهبود بخشد. به عنوان مثال، توسعهدهندگان میتوانند از اجزای لنگچین برای ساخت زنجیرههای جدید دستورات یا سفارشیسازی قالبهای موجود استفاده کنند. همچنین، لنگچین شامل اجزایی است که به مدلهای زبانی اجازه میدهد بدون نیاز به آموزش مجدد، به مجموعه دادههای جدید دسترسی پیدا کنند.
چرا لنگچین مهم است؟
مدلهای زبانی بزرگ در پاسخ به دستورات در زمینههای عمومی عملکرد خوبی دارند، اما در حوزههای خاصی که روی آنها آموزش ندیدهاند، با مشکل مواجه میشوند. دستورات، پرسوجوهایی هستند که افراد برای دریافت پاسخ از مدل زبانی استفاده میکنند. برای مثال، یک مدل زبانی میتواند تخمینی از هزینه یک کامپیوتر ارائه دهد. با این حال، نمیتواند قیمت یک مدل خاص از کامپیوتر را که شرکت شما میفروشد، فهرست کند.
برای انجام این کار، مهندسان یادگیری ماشین باید مدل زبانی را با منابع داده داخلی سازمان یکپارچه کنند و مهندسی دستورات را به کار گیرند—تمرینی که در آن یک دانشمند داده ورودیها را برای یک مدل مولد با ساختار و زمینه خاصی پالایش میکند.
لنگچین مراحل میانی را برای توسعه برنامههای پاسخگو به داده سادهسازی میکند و مهندسی دستورات را کارآمدتر میکند. این چارچوب برای توسعه برنامههای متنوع مبتنی بر مدلهای زبانی بهصورت آسانتر طراحی شده است، از جمله چتباتها، پاسخ به سؤالات، تولید محتوا، خلاصهسازها و غیره.
بخشهای بعدی مزایای لنگچین را شرح میدهند.
بازاستفاده از مدلهای زبانی
با لنگچین، سازمانها میتوانند مدلهای زبانی را برای برنامههای خاص حوزه بدون نیاز به آموزش مجدد یا تنظیم دقیق بازاستفاده کنند. تیمهای توسعه میتوانند برنامههای پیچیدهای را با ارجاع به اطلاعات اختصاصی برای تقویت پاسخهای مدل بسازند. برای مثال، میتوانید از لنگچین برای ساخت برنامههایی استفاده کنید که دادهها را از اسناد داخلی ذخیرهشده میخوانند و آنها را به پاسخهای گفتوگویی خلاصه میکنند. میتوانید یک جریان کاری تولید تقویتشده با بازیابی (RAG) ایجاد کنید که اطلاعات جدیدی را به مدل زبانی در طول دستور دادن معرفی میکند. پیادهسازی جریانهای کاری آگاه از زمینه مانند RAG، توهم مدل را کاهش میدهد و دقت پاسخ را بهبود میبخشد.
سادهسازی توسعه هوش مصنوعی
لنگچین توسعه هوش مصنوعی (AI) را با انتزاع پیچیدگیهای یکپارچهسازی منابع داده و پالایش دستورات ساده میکند. توسعهدهندگان میتوانند دنبالهها را سفارشی کنند تا برنامههای پیچیده را بهسرعت بسازند. به جای برنامهنویسی منطق تجاری، تیمهای نرمافزاری میتوانند قالبها و کتابخانههای ارائهشده توسط لنگچین را اصلاح کنند تا زمان توسعه را کاهش دهند.
پشتیبانی از توسعهدهندگان
لنگچین ابزارهایی را برای توسعهدهندگان هوش مصنوعی فراهم میکند تا مدلهای زبانی را با منابع داده خارجی متصل کنند. این چارچوب منبع باز است و توسط یک جامعه فعال پشتیبانی میشود. سازمانها میتوانند از لنگچین بهصورت رایگان استفاده کنند و از سایر توسعهدهندگان مسلط به این چارچوب پشتیبانی دریافت کنند.
لنگچین چگونه کار میکند؟
با لنگچین، توسعهدهندگان میتوانند یک مدل زبانی را بهصورت انعطافپذیر برای زمینههای تجاری خاص با تعیین مراحل مورد نیاز برای تولید نتیجه دلخواه سازگار کنند.
زنجیرهها
زنجیرهها اصل اساسی هستند که اجزای مختلف هوش مصنوعی را در لنگچین نگه میدارند تا پاسخهای آگاه از زمینه ارائه دهند. یک زنجیره، مجموعهای از اقدامات خودکار از پرسوجوی کاربر تا خروجی مدل است. برای مثال، توسعهدهندگان میتوانند از یک زنجیره برای:
- اتصال به منابع داده مختلف.
- تولید محتوای منحصربهفرد.
- ترجمه به چندین زبان.
- پاسخ به پرسوجوهای کاربران.
پیوندها
زنجیرهها از پیوندها تشکیل شدهاند. هر اقدامی که توسعهدهندگان برای تشکیل یک دنباله زنجیرهای به هم متصل میکنند، پیوند نامیده میشود. با پیوندها، توسعهدهندگان میتوانند وظایف پیچیده را به چندین وظیفه کوچکتر تقسیم کنند. نمونههایی از پیوندها شامل:
- قالببندی ورودی کاربر.
- ارسال پرسوجو به یک مدل زبانی.
- بازیابی دادهها از ذخیرهسازی ابری.
- ترجمه از یک زبان به زبان دیگر.
در چارچوب لنگچین، یک پیوند ورودی را از کاربر دریافت میکند و آن را به کتابخانههای لنگچین برای پردازش منتقل میکند. لنگچین همچنین امکان بازآرایی پیوندها را برای ایجاد جریانهای کاری هوش مصنوعی مختلف فراهم میکند.
بررسی اجمالی
برای استفاده از لنگچین، توسعهدهندگان چارچوب را در پایتون با دستور زیر نصب میکنند:
pip install langchain
سپس توسعهدهندگان از بلوکهای ساخت زنجیره یا زبان بیان لنگچین (LCEL) برای تشکیل زنجیرهها با دستورات برنامهنویسی ساده استفاده میکنند. تابع chain() آرگومانهای یک پیوند را به کتابخانهها منتقل میکند. دستور execute() نتایج را بازیابی میکند. توسعهدهندگان میتوانند نتیجه پیوند فعلی را به پیوند بعدی منتقل کنند یا آن را بهعنوان خروجی نهایی بازگردانند.
در زیر نمونهای از یک تابع زنجیره چتبات آورده شده است که جزئیات محصول را به چندین زبان بازمیگرداند:
chain([
retrieve_data_from_product_database(),
send_data_to_language_model(),
format_output_in_a_list(),
translate_output_in_target_language()
])
اجزای اصلی لنگچین چیست؟
با استفاده از لنگچین، تیمهای نرمافزاری میتوانند سیستمهای مدل زبانی آگاه از زمینه را با ماژولهای زیر بسازند.
رابط مدل زبانی
لنگچین APIهایی را ارائه میدهد که توسعهدهندگان میتوانند از طریق آنها مدلهای زبانی را از کد خود متصل کرده و پرسوجو کنند. توسعهدهندگان میتوانند با مدلهای عمومی و اختصاصی مانند GPT، Bard و PaLM با لنگچین از طریق فراخوانیهای ساده API به جای نوشتن کد پیچیده تعامل کنند.
قالبهای دستور
قالبهای دستور، ساختارهای از پیش ساختهشدهای هستند که توسعهدهندگان برای قالببندی مداوم و دقیق پرسوجوها برای مدلهای هوش مصنوعی استفاده میکنند. توسعهدهندگان میتوانند یک قالب دستور برای برنامههای چتبات، یادگیری چندنمونهای یا ارائه دستورالعملهای خاص به مدلهای زبانی ایجاد کنند. علاوه بر این، آنها میتوانند قالبها را در برنامهها و مدلهای زبانی مختلف بازاستفاده کنند.
عاملها
توسعهدهندگان از ابزارها و کتابخانههایی که لنگچین ارائه میدهد برای تشکیل و سفارشیسازی زنجیرههای موجود برای برنامههای پیچیده استفاده میکنند. یک عامل، زنجیره خاصی است که مدل زبانی را وادار میکند تا بهترین دنباله را در پاسخ به یک پرسوجو تعیین کند. هنگام استفاده از یک عامل، توسعهدهندگان ورودی کاربر، ابزارهای موجود و مراحل میانی ممکن را برای دستیابی به نتایج دلخواه ارائه میدهند. سپس، مدل زبانی یک دنباله عملی از اقداماتی را که برنامه میتواند انجام دهد، بازمیگرداند.
ماژولهای بازیابی
لنگچین امکان طراحی سیستمهای RAG را با ابزارهای متعددی برای تبدیل، ذخیره، جستجو و بازیابی اطلاعات فراهم میکند که پاسخهای مدل زبانی را پالایش میکنند. توسعهدهندگان میتوانند بازنماییهای معنایی اطلاعات را با جاسازی کلمات ایجاد کرده و آنها را در پایگاههای داده برداری محلی یا ابری ذخیره کنند.
حافظه
برخی از برنامههای مدل زبانی گفتوگویی پاسخهای خود را با اطلاعات بهیادآمده از تعاملات گذشته پالایش میکنند. لنگچین به توسعهدهندگان اجازه میدهد تا قابلیتهای حافظه را در سیستمهای خود بگنجانند. این چارچوب از موارد زیر پشتیبانی میکند:
- سیستمهای حافظه ساده که جدیدترین مکالمات را به یاد میآورند.
- ساختارهای حافظه پیچیده که پیامهای تاریخی را تجزیه و تحلیل میکنند تا مرتبطترین نتایج را بازگردانند.
بازخوردها
بازخوردها کدهایی هستند که توسعهدهندگان در برنامههای خود قرار میدهند تا رویدادهای خاصی در عملیات لنگچین را ثبت، نظارت و جریان دهند. برای مثال، توسعهدهندگان میتوانند با استفاده از بازخوردها ردیابی کنند که یک زنجیره چه زمانی برای اولین بار فراخوانده شده و خطاهایی که با آن مواجه شدهاند.