کتاب Machine Learning Infrastructure and Best Practices for Software Engineers: Take your machine learning software from a prototype to a fully fledged software system (زیرساختهای یادگیری ماشین و بهترین روشها برای مهندسان نرمافزار: نرمافزار یادگیری ماشین خود را از یک نمونه اولیه به یک سیستم نرمافزاری کامل تبدیل کنید) یک راهنمای ضروری برای مهندسین نرمافزار است که به حوزه یادگیری ماشینی وارد میشوند.
این کتاب که توسط متخصصان این حوزه تألیف شده است، کاوش جامعی از زیرساختهای حیاتی و بهترین شیوههای لازم برای ادغام یادگیری ماشین در جریانهای کاری توسعه نرمافزار ارائه میدهد.
کتاب Machine Learning Infrastructure and Best Practices for Software Engineers با تمرکز بر ایجاد همکاری یکپارچه بین تیمهای مهندسی نرمافزار و یادگیری ماشین، بینشهای ارزشمندی را در مورد ایجاد زیرساختهای یادگیری ماشینی مقیاسپذیر و کارآمد، اجرای بهترین شیوهها برای توسعه و استقرار مدل، و پیمایش چالشهای منحصربهفرد ادغام یادگیری ماشین در سیستمهای نرمافزاری ارائه میکند.
کتاب Machine Learning Infrastructure and Best Practices for Software Engineers شامل تعداد زیادی از توصیههای عملی، مثالهای واقعی و استراتژیهای عملی، «زیرساختهای یادگیری ماشین و بهترین روشها برای مهندسان نرمافزار» بهعنوان همراهی ارزشمند برای مهندسان نرمافزاری است که میخواهند از قدرت یادگیری ماشین در پروژههای خود استفاده کنند و در عین حال به بهترین شیوههای صنعت پایبند باشند.
همچنین استانداردها چه یک مهندس باتجربه یا یک تازه وارد در این زمینه باشید، این کتاب شما را با دانش و ابزارهای مورد نیاز برای شروع یک سفر موفقیتآمیز به تقاطع هیجانانگیز مهندسی نرمافزار و یادگیری ماشین مجهز میکند.
در ادامه مقدمهای از کتاب Machine Learning Infrastructure and Best Practices for Software Engineers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Machine Learning Infrastructure and Best Practices for Software Engineers:
یادگیری ماشینی در سالهای اخیر محبوبیت زیادی به دست آورده است. معرفی مدلهای زبان بزرگ مانند GPT-۳ و ۴ تنها باعث افزایش سرعت توسعه این رشته شد. این مدلهای بزرگ زبان به قدری قدرتمند شدهاند که آموزش آنها در رایانه محلی تقریباً غیرممکن است. با این حال، این به هیچ وجه ضروری نیست.
این مدلهای زبانی توانایی ایجاد ابزارهای جدید را بدون نیاز به آموزش آنها فراهم میکنند، زیرا میتوانند توسط پنجره زمینه و اعلان هدایت شوند.
در کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، هدف من نشان دادن این است که چگونه مدلهای یادگیری ماشینی را میتوان آموزش، ارزیابی و آزمایش کرد – هم در زمینه یک نمونه اولیه کوچک و هم در زمینه یک محصول نرمافزاری کامل. هدف اصلی این کتاب پر کردن شکاف بین دانش نظری و اجرای عملی یادگیری ماشین در مهندسی نرمافزار است.
هدف آن این است که شما را به مهارتهای لازم نه تنها برای درک، بلکه به طور مؤثر پیادهسازی و نوآوری با فناوریهای هوش مصنوعی و یادگیری ماشین در فعالیتهای حرفهای خود مجهز کند.
سفر ادغام یادگیری ماشین در مهندسی نرمافزار به همان اندازه که هیجانانگیز است، چالش برانگیز است. همانطور که ما در پیچیدگیهای زیرساختهای یادگیری ماشینی کاوش میکنیم، این کتاب به عنوان یک راهنمای جامع عمل میکند و در میان پیچیدگیها و بهترین شیوههایی که برای مهندسین نرمافزار حیاتی هستند، پیمایش میکند.
این برنامه برای پر کردن شکاف بین جنبههای نظری یادگیری ماشین و چالشهای عملی که در طول پیادهسازی در سناریوهای دنیای واقعی با آن مواجه است، طراحی شده است.
ما با کاوش در مفاهیم اساسی یادگیری ماشین شروع میکنیم و پایهای محکم برای کسانی که تازه وارد این حوزه شدهاند فراهم میکنیم. با پیشرفت ما، تمرکز به زیرساخت – ستون فقرات هر پروژه موفق یادگیری ماشینی – تغییر میکند. از جمعآوری و پردازش دادهها تا آموزش و استقرار مدل، هر مرحله بسیار مهم است و نیاز به بررسی و برنامهریزی دقیق دارد.
بخش قابل توجهی از کتاب به بهترین شیوهها اختصاص داده شده است. این شیوهها فقط دستورالعملهای نظری نیستند، بلکه از تجربیات واقعی زندگی و مطالعات موردی که تیم تحقیقاتی من در طول کارمان در این زمینه کشف کردهاند، نشأت گرفتهاند.
این بهترین شیوهها بینش ارزشمندی را در مورد رسیدگی به مشکلات رایج و اطمینان از مقیاسپذیری، قابلیت اطمینان و کارایی سیستمهای یادگیری ماشین ارائه میدهند.
علاوه بر این، ما به اخلاقیات الگوریتمهای یادگیری ماشینی و دادهها میپردازیم. ما نظریههای پشت اخلاق در یادگیری ماشین را بررسی میکنیم، به مجوز دادهها و مدلها نگاه دقیقتری میکنیم، و در نهایت، چارچوبهای عملی را بررسی میکنیم که میتوانند سوگیری در دادهها و مدلها را در یادگیری ماشین کمی کنند.
کتاب Machine Learning Infrastructure and Best Practices for Software Engineers فقط یک راهنمای فنی نیست. این یک سفر در چشم انداز در حال تکامل یادگیری ماشین در مهندسی نرمافزار است.
چه یک تازه کار مشتاق یادگیری باشید، چه یک حرفهای با تجربه که به دنبال افزایش مهارتهای خود هستید، هدف این کتاب این است که منبع ارزشمندی باشد که وضوح و جهت را در دنیای هیجانانگیز و همیشه در حال تغییر یادگیری ماشین ارائه میدهد.
کتاب Machine Learning Infrastructure and Best Practices for Software Engineers برای چه کسی است؟
این کتاب با دقت برای مهندسین نرمافزار، دانشمندان کامپیوتر و برنامهنویسانی که به دنبال کاربردهای عملی هوش مصنوعی و یادگیری ماشین در حوزه خود هستند، ساخته شده است. این محتوا برای انتقال دانش بنیادی در مورد کار با مدلهای یادگیری ماشینی طراحی شده است که از دید یک برنامهنویس و معمار سیستم مشاهده میشود.
پیش فرض کتاب آشنایی با اصول برنامهنویسی است، اما نیازی به تخصص در ریاضیات یا آمار ندارد. این رویکرد دسترسی به طیف وسیعتری از متخصصان و علاقهمندان در حوزه توسعه نرمافزار را تضمین میکند.
برای کسانی از شما که تجربه قبلی در پایتون ندارید، این کتاب نیاز به درک پایهای از زبان دارد. با این حال، این مواد برای تسهیل درک سریع و جامع از ضروریات پایتون ساخته شده است.
برعکس، برای کسانی که در پایتون مهارت دارند اما هنوز در برنامهنویسی حرفهای چاشنی کار ندارند، این کتاب به عنوان یک منبع ارزشمند برای انتقال به حوزه مهندسی نرمافزار با تمرکز بر برنامههای کاربردی هوش مصنوعی و ML عمل میکند.
آنچه کتاب Machine Learning Infrastructure and Best Practices for Software Engineers پوشش میدهد:
فصل ۱، یادگیری ماشینی در مقایسه با نرمافزارهای سنتی، به بررسی این میپردازد که این دو نوع سیستم نرمافزاری مناسبترین هستند.
ما در مورد فرآیندهای توسعه نرمافزاری که برنامهنویسان برای ایجاد هر دو نوع نرمافزار استفاده میکنند و همچنین با چهار نوع کلاسیک نرمافزار یادگیری ماشین – مبتنی بر قانون، نظارت، بدون نظارت و یادگیری تقویتی آشنا میشویم. در نهایت، با نقشهای مختلف دادهها در نرمافزارهای یادگیری ماشینی و سنتی آشنا میشویم.
فصل ۲ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، عناصر یک سیستم یادگیری ماشین، هر یک از عناصر یک سیستم یادگیری ماشین حرفهای را بررسی میکند. ما با درک اینکه کدام عناصر و چرا مهم هستند شروع میکنیم. سپس، نحوه ایجاد چنین عناصری و نحوه کار با کنار هم قرار دادن آنها در یک سیستم یادگیری ماشین واحد را بررسی میکنیم – به اصطلاح خط لوله یادگیری ماشین.
فصل ۳ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، دادهها در سیستمهای نرمافزاری – متن، تصاویر، کد و ویژگیها، سه نوع داده را معرفی میکند – تصاویر، متون و متن قالببندی شده (کد منبع برنامه).
ما بررسی میکنیم که چگونه هر یک از این نوع دادهها میتوانند در یادگیری ماشین استفاده شوند، چگونه باید حاشیهنویسی شوند، و برای چه هدفی. معرفی این سه نوع داده این امکان را برای ما فراهم میکند تا راههای مختلف حاشیهنویسی این منابع داده را بررسی کنیم.
فصل ۴ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، اکتساب داده، کیفیت داده و نویز، به موضوعات مرتبط با کیفیت دادهها عمیقتر میپردازد. ما یک مدل نظری را برای ارزیابی کیفیت دادهها طی میکنیم و روشها و ابزارهایی را برای عملیاتی کردن آن ارائه میدهیم. ما همچنین به مفهوم نویز در یادگیری ماشین و چگونگی کاهش آن با استفاده از روشهای مختلف توکنسازی نگاه میکنیم.
فصل ۵ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، کمیسازی و بهبود ویژگیهای داده، عمیقتر به ویژگیهای دادهها و چگونگی بهبود آنها میپردازد. برخلاف فصل قبل، ما به جای دادههای خام روی بردارهای ویژگی کار میکنیم.
بردارهای ویژگی در حال حاضر تبدیلی از دادهها هستند. بنابراین، ما میتوانیم ویژگیهایی مانند نویز را تغییر دهیم یا حتی نحوه درک دادهها را تغییر دهیم. ما روی پردازش متن تمرکز میکنیم، که امروزه بخش مهمی از بسیاری از الگوریتمهای یادگیری ماشینی است.
ما با درک چگونگی تبدیل دادهها به بردارهای ویژگی با استفاده از الگوریتمهای ساده، مانند کیسه کلمات، شروع میکنیم تا بتوانیم بر روی بردارهای ویژگی کار کنیم.
فصل ۶ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، پردازش دادهها در سیستمهای یادگیری ماشینی، به روشهای درهم تنیده شدن دادهها و الگوریتمها میپردازد. ما در مورد دادهها به صورت کلی صحبت میکنیم، اما در این فصل توضیح میدهیم که چه نوع دادهای در سیستمهای یادگیری ماشینی مورد نیاز است.
ما این واقعیت را توضیح میدهیم که همه انواع دادهها به شکل عددی استفاده میشوند – یا به عنوان بردار ویژگی یا به عنوان ماتریسهای ویژگی پیچیدهتر. سپس، نیاز به تبدیل دادههای بدون ساختار (به عنوان مثال، متن) را به دادههای ساخت یافته توضیح خواهیم داد. این فصل پایههایی را برای عمیقتر شدن هر نوع داده، که محتوای چند فصل بعدی است، خواهد گذاشت.
فصل ۷ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، مهندسی ویژگی برای دادههای عددی و تصویری، بر فرآیند مهندسی ویژگی برای دادههای عددی و تصویری تمرکز دارد. ما با مرور روشهای معمولی مانند تجزیه و تحلیل مؤلفه اصلی (PCA)، که قبلاً برای تجسم استفاده میکردیم، شروع میکنیم.
سپس به سراغ روشهای پیشرفتهتری مانند جاسازیهای شبکه تصادفی توزیع t-Student (t-SNE) و تجزیه و تحلیل مؤلفههای مستقل (ICA) میرویم. چیزی که در نهایت به آن میپردازیم استفاده از رمزگذارهای خودکار به عنوان تکنیک کاهش ابعاد برای دادههای عددی و تصویری است.
فصل ۸ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، مهندسی ویژگی برای دادههای زبان طبیعی، اولین گامهایی را بررسی میکند که فناوریهای ترانسفورماتور (GPT) را بسیار قدرتمند کرد – استخراج ویژگی از دادههای زبان طبیعی.
زبان طبیعی نوع خاصی از منبع داده در مهندسی نرمافزار است. با معرفی GitHub Copilot و ChatGPT، آشکار شد که ابزارهای یادگیری ماشین و هوش مصنوعی برای کارهای مهندسی نرمافزار دیگر علمی تخیلی نیستند.
فصل ۹ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، انواع سیستمهای یادگیری ماشین – مبتنی بر ویژگی و دادههای خام (یادگیری عمیق)، انواع مختلف سیستمهای یادگیری ماشین را بررسی میکند. از مدلهای یادگیری ماشینی کلاسیک مانند جنگل تصادفی شروع میکنیم و به مدلهای کانولوشنال و GPT میرویم که به آنها مدلهای یادگیری عمیق میگویند.
نام آنها از این واقعیت ناشی میشود که از دادههای خام به عنوان ورودی استفاده میکنند و اولین لایههای مدلها شامل لایههای استخراج ویژگی است. آنها همچنین برای یادگیری تدریجی ویژگیهای انتزاعی بیشتر طراحی شدهاند که دادههای ورودی در این مدلها حرکت میکنند. این فصل هر یک از این نوع مدلها را نشان میدهد و از یادگیری ماشینی کلاسیک به مدلهای هوش مصنوعی مولد پیشرفت میکند.
فصل ۱۰ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، آموزش و ارزیابی سیستمهای ML کلاسیک و شبکههای عصبی، کمی عمیقتر به فرآیند آموزش و ارزیابی میرود. ما با تئوری اساسی پشت الگوریتمهای مختلف شروع میکنیم و سپس نحوه آموزش آنها را نشان میدهیم.
ما با مدلهای کلاسیک یادگیری ماشین شروع میکنیم، که نمونهای از درختهای تصمیم است. سپس، به تدریج به سمت یادگیری عمیق حرکت میکنیم، جایی که هم شبکههای عصبی متراکم و هم برخی از انواع پیشرفتهتر شبکهها را بررسی میکنیم.
فصل ۱۱ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، آموزش و ارزیابی الگوریتمهای پیشرفته ML – GPT و رمزگذارهای خودکار، نحوه عملکرد مدلهای هوش مصنوعی مبتنی بر GPT و ترانسفورماتورهای نمایش رمزگذار دوطرفه (BERT) را بررسی میکند.
این مدلها برای تولید دادههای جدید بر اساس الگوهایی طراحی شدهاند که بر اساس آنها آموزش دیدهاند. ما همچنین به مفهوم رمزگذارهای خودکار نگاه میکنیم، جایی که یک رمزگذار خودکار را آموزش میدهیم تا تصاویر جدید را بر اساس دادههای آموزش دیده قبلی تولید کند.
فصل ۱۲ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، طراحی خطوط لوله یادگیری ماشین و آزمایش آنها، توضیح میدهد که چگونه هدف اصلی MLOها پر کردن شکاف بین تیمهای علم داده و عملیات، تقویت همکاری و اطمینان از اینکه پروژههای یادگیری ماشینی میتوانند به طور مؤثر و قابل اعتماد در مقیاس اجرا شوند، است.
MLOps به خودکارسازی و بهینهسازی کل چرخه زندگی یادگیری ماشین، از توسعه مدل گرفته تا استقرار و نگهداری کمک میکند، بنابراین کارایی و اثربخشی سیستمهای ML در تولید را بهبود میبخشد.
در این فصل از کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، میآموزیم که چگونه سیستمهای یادگیری ماشین در عمل طراحی و اجرا میشوند. این فصل نشان میدهد که چگونه خطوط لوله با تمرکز بر آزمایش خطوط لوله ML و استقرار آنها در Hugging Face به یک سیستم نرمافزاری تبدیل میشوند.
فصل ۱۳، طراحی و پیادهسازی نرمافزار قدرتمند ML در مقیاس بزرگ، نحوه ادغام مدل یادگیری ماشین با یک رابط کاربری گرافیکی برنامهریزی شده در Gradio و ذخیرهسازی در پایگاه داده را توضیح میدهد.
ما از دو نمونه از خطوط لوله یادگیری ماشین استفاده میکنیم – نمونهای از مدل برای پیشبینی عیوب از فصلهای قبلی و یک مدل هوش مصنوعی مولد برای ایجاد تصاویر از یک درخواست زبان طبیعی.
فصل ۱۴ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، اخلاق در اکتساب و مدیریت دادهها، با بررسی چند نمونه از سیستمهای غیراخلاقی که سوگیری را نشان میدهند، شروع میشود، مانند سیستمهای رتبهبندی اعتباری که اقلیتهای خاصی را جریمه میکنند. همچنین مشکلات استفاده از دادههای منبع باز و آشکارسازی هویت افراد را توضیح میدهیم.
با این حال، هسته اصلی فصل، توضیح و بحث در مورد چارچوبهای اخلاقی برای مدیریت دادهها و سیستمهای نرمافزاری، از جمله کدهای رفتاری IEEE و ACM است.
فصل ۱۵ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، اخلاق در سیستمهای یادگیری ماشین، بر تعصب در سیستمهای یادگیری ماشین تمرکز دارد. ما با بررسی منابع سوگیری و بحث مختصر در مورد این منابع شروع میکنیم. سپس راههایی را برای شناسایی سوگیریها، چگونگی به حداقل رساندن آنها، و در نهایت، نحوه انتقال سوگیریهای احتمالی به کاربران سیستم خود بررسی میکنیم.
فصل ۱۶ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، ادغام سیستمهای ML در اکوسیستمها، توضیح میدهد که چگونه بستهبندی سیستمهای ML در سرویسهای وب به ما اجازه میدهد تا آنها را به روشی بسیار انعطافپذیر در جریان کار ادغام کنیم.
به جای کامپایل کردن یا استفاده از کتابخانههای پیوندی پویا، میتوانیم اجزای یادگیری ماشینی را مستقر کنیم که از طریق پروتکلهای HTTP با استفاده از پروتکلهای JSON ارتباط برقرار میکنند. در واقع، ما قبلاً نحوه استفاده از آن پروتکل را با استفاده از مدل GPT-۳ که توسط OpenAI میزبانی میشود، دیدهایم.
در این فصل از کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، امکان ایجاد کانتینر Docker خودمان با یک مدل یادگیری ماشینی از پیش آموزش دیده، استقرار آن و ادغام آن با سایر اجزا را بررسی میکنیم.
فصل ۱۷ کتاب Machine Learning Infrastructure and Best Practices for Software Engineers، خلاصه و کجا برویم، همه بهترین شیوهها را دوباره مرور میکند و آنها را در هر فصل خلاصه میکند. علاوه بر این، ما همچنین به آنچه که آینده یادگیری ماشین و هوش مصنوعی ممکن است برای مهندسی نرمافزار بیاورد، بررسی میکنیم.
سرفصلهای کتاب Machine Learning Infrastructure and Best Practices for Software Engineers:
- Machine Learning Infrastructure and Best Practices for Software Engineers
- Contributors
- About the author
- About the reviewers
- Preface
- Part 1: Machine Learning Landscape in Software Engineering
- Machine Learning Compared to Traditional Software
- Elements of a Machine Learning System
- Data in Software Systems Text, Images, Code, and Their Annotations
- Data Acquisition, Data Quality, and Noise
- Quantifying and Improving Data Properties
- Part 2: Data Acquisition and Management
- Processing Data in Machine Learning Systems
- Feature Engineering for Numerical and Image Data
- Feature Engineering for Natural Language Data
- Part 3: Design and Development of ML Systems
- Types of Machine Learning Systems – Feature-Based and Raw Data-Based (Deep Learning)
- Training and Evaluating Classical Machine Learning Systems and Neural Networks
- Training and Evaluation of Advanced ML Algorithms – GPT and Autoencoders
- Designing Machine Learning Pipelines (MLOps) and Their Testing
- Designing and Implementing Large-Scale, Robust ML Software
- Part 4: Ethical Aspects of Data Management and ML. System Development
- Ethics in Data Acquisition and Management
- Ethics in Machine Learning Systems
- Integrating ML Systems in Ecosystems
- Summary and Where to Go Next
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Machine Learning Infrastructure and Best Practices for Software Engineers میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.