مهندسی اساساً به انجام عملی هنرمندانه در به وجود آوردن چیزی اشاره دارد. در هوش مصنوعی هدف تقلید از هوش یک انسان است. بر اساس همین اصل، مهندس دانش کسی است که سعی میکند فرآیند تصمیم گیری را برای حل مشکلات و مسائل پیچیده، از طریق هوش مصنوعی (AI) ممکن سازد. انسان بر اساس دانشی که دارد، از هوش خود برای تصمیم گیری استفاده میکند. سیستم تصمیم گیری انسان بسیار پیچیده است. عناصر متعددی همچون تجربیات قبلی، احساسات مختلف و نیز حقایقی که از منابع گوناگون درک کرده است در فرایند تصمیم گیری انسانها تاثیر دارد.
مهندسی دانش یک رشته تحصیلی است که در آن مهندسی تمام این فرایندهای فکری را برای حوزههای خاص انجام میدهیم. مهندسی دانش را میتوان به عنوان بلوک های سازنده هوش مصنوعی (AI) در نظر گرفت که تلاش میکند قضاوت یک انسان را با متخصصان در یک حوزه خاص تقلید کند. در ادامه این مطلب از گروه نرم افزار حسابداری محک بیشتر در خصوص مهندسی دانش و اهمیت آن صحبت میکنیم و خصوصیات یک مهندس دانش موفق را بررسی میکنیم.
مهندسی دانش چیست؟
شاید برای شما نیز این سوال مطرح شود که مهندسی دانش چیست؟ به زبان ساده، مهندسی دانش حوزهای از هوش مصنوعی (AI) است که در آن قوانینی ایجاد و بر روی دادهها اعمال میشود تا فرآیند تفکر یک متخصص انسانی شبیه سازی و تقلید شود. مهندسی دانش حوزهای است که بر ایجاد یک پایگاه دانش برای یک حوزه خاص متمرکز است. این حوزه شامل بررسی عمیق یک دامنه خاص، یادگیری تمام مفاهیم مهم در مورد آن دامنه و سپس تهیه پیش نویس خروجی معنادار است.
در مهندسی دانش میتوان کتابخانهای از روشهای حل مسئله و دانش جانبی مورد استفاده برای هر موضوع ایجاد کرد و بعدها، در صورت تشخیص مشکلات توسط سیستم، به عنوان راه حل از آنها استفاده نمود. همچنین، نرم افزار به دست آمده میتواند به تشخیص، عیب یابی و حل مسئله، هم به تنهایی و به صورت مستقل و هم در نقش پشتیبان از یک عامل انسانی، کمک کند.
مهندسی دانش راهی برای پردازش اطلاعات مربوط به یک حوزه خاص است و در آن نحوه پردازش فرایندها، اقدامات و تصمیماتی که یک متخصص در یک حوزه خاص انجام میدهد شبیه سازی میشود. به عنوان مثال، اگر بخواهیم فرایند تدریس برای کودکان در درس ریاضی را به صورت خودکار انجام دهیم نیاز به دانش معلمان، کارشناسان موضوع، دادههای قبلی و نحوه عملکرد متخصصان حوزه ریاضیات داریم تا بتوانیم این فرآیند را شبیه سازی و خودکارسازی کنیم.
به طور عمومی برای انجام چنین کاری، ما نیاز به پردازش و فرآیندسازی متادیتاها داریم (همه چیز درباره دادهها، کیفیت، محتوا، ساختار، موضوعات و قالب آنها) تا بتوانیم یک تصویر کلی و بنیادی در خصوص عوامل کلیدی در فرایند تصمیم گیری حاصل کنیم. یک متخصص انسانی تعدادی از پارامترها را در نظر میگیرد و برخی از آنها را مهمتر از بقیه تشخیص میدهد. متخصص انسانی پس از در نظر گرفتن تمامی پارامترها، با استفاده از تجربه قبلی خود در حوزه، تغییرات و ترکیبات را انجام میدهد و به همه پارامترها وزن میدهد، سپس تصمیم میگیرد. شاید همه اینها فقط در بخشی از فرآیند اتفاق بیافتد، اما بررسی کل فرایند بسته به پیچیدگی مشکل، زمان زیادی میبرد.
مهندسی دانش شالودهای است که به ایجاد سیستمهای تخصصی کمک میکند؛ سیستمهایی که در آن دانش به برنامههای کامپیوتری تبدیل میشود. سیستم های تخصصی دارای یک پایگاه دانش عظیم و انعطاف پذیر هستند و با مکانیسمهایی ادغام شدهاند که نحوه استفاده از اطلاعات پایگاه دانش و اعمال آن را در موقعیتهای مختلف مشخص میکند. این سیستم های تخصصی از الگوریتم های یادگیری ماشین و یادگیری عمیق نیز استفاده میکنند تا مانند انسانها یاد بگیرند. امروزه از این سیستم های تخصصی در زمینههای آموزشی، بهداشت و درمان، خدمات مالی و حسابداری، تولید و غیره استفاده میشود.
هدف مهندسی دانش چیست؟
هدف اصلی مهندسی دانش کاهش تلاش و زمان مورد نیاز برای حل مسائل پیچیده و در مقیاس بزرگ است؛ مسائلی که حل آنها به صورت دستی بسیار زمانبر و سخت است. مهندسی دانش در صدد ایجاد سیستمهایی است که مثل انسان عمل میکنند و بر اساس دادههای تعریف شده فرآیند تصمیم گیری را، همچون یک انسان واقعی، تقلید میکنند.
یک مهندس دانش چه کاری انجام میدهد؟
مهندس دانش فردی است که منطق پیشرفتهای را در سیستمهای کامپیوتری با هدف شبیه سازی تصمیم گیری انسانی ایجاد میکند. این افراد پایگاههای دانش بزرگی را طراحی و توسعه میدهند و به ایجاد سیستمهای تخصصی برای پشتیبانی از قابلیتهای هوش مصنوعی کمک میکنند. بنابراین، نقش یک مهندس دانش، توسعه این سیستمهای تخصصی با جمعآوری اطلاعات مورد نیاز و ادغام آن در قالبی سیستماتیک قبل از استقرار آن برای کاربران نهایی است.
مهندسان دانش را با عنوان مهندسان معنایی نیز میشناسند.
مهندسان دانش متخصصانی هستند که با سیستمهای تخصصی سروکار دارند؛ سیستمهایی که به دستیابی به سطوح بالاتری از بهره وری و دقت و در عین حال مقرون به صرفه بودن کمک میکنند. سیستمهایی که آنها توسعه میدهند ممکن است جایگزین انسانها شوند یا حداقل به اندازه انسانها مؤثر و مفید باشند.
وظایف و مسئولیتهای مهندس دانش
مسئولیتهای یک مهندس دانش را میتوان به 4 دسته اصلی تقسیم کرد که عبارتند از: ارزیابی، استخراج، ساختاربندی و اعتبار سنجی.
در مرحله اول، یعنی ارزیابی، مهندس دانش با تجزیه و تحلیل یک مشکل سروکار دارد. در اینجا او تصمیم میگیرد که چه دانشی موردنیاز است و از کجا باید دادههای آن را جمع آوری کند.
در مرحله دوم، دانش موردنیاز استخراج میشود. مهندس دانش تعدادی از تکنیکهای پیشرفته مختلف را برای استخراج دانش مورد نیاز به کار میگیرد. بعد از اینکه دانش جمع آوری شد، در قالب یک سیستم، پایگاه داده، پایگاه دانش یا دارایی دانش تخصصی ساختار مییابد.
ساختار و قالب مدنظر ایجاد و سپس با دانش استخراج شده یکپارچه میشود.
در نهایت، مهندس دانش مسئول تأیید دارایی نهایی و اعتبارسنجی سیستم دانش نهایی است.
وظایف یک مهندس دانش عبارتند از:
- توسعه، حفظ و بهبود مستمر محتوای پایگاه دانش، طبقه بندی و سازماندهی آن
- تفسیر دادهها با مقایسه هدف و ارزشهای واقعی
- کار روی فرآیندهای مدیریت، ایجاد و استفاده از دانش
- طبقه بندی رویدادها
- پیکربندی سیستمهای پیچیده با در نظر گرفتن شرایط مختلف
- شناسایی علل خطاها و کاهش خطاهای کاری
- حمایت از ابتکارات و اهداف کسب و کار و ترسیم اثرات دانش
- اجرای تغییرات و راهکارها
- از بین بردن شرایط بحرانی با اقدامات عملی
- برنامه ریزی مجموعهای از اقدامات برای رسیدن به یک هدف خاص
- ارائه مشاورههای گفتگو محور و تخصص محور به سایر افراد
- پیش بینی اتفاقات بر اساس رویدادهای خاص
- کار با کارشناسان موضوع مربوطه و دانشمندان داده ها
مهارت های تخصصی مهندس دانش
نقش یک مهندس دانش یک نقش بسیار تخصصی است و به مجموعه خاصی از مهارتهای منحصر به فرد نیاز دارد. برای مثال، دانش زبانهای برنامه نویسی کامپیوتر مانند Python، Java، Clojure، React و غیره در این نقش ضروری است.
دیگر الزامات فنی که یک مهندس دانش باید داشته باشد، دانش اولیه LAMP (مخفف چهار کلمه ی PHP ,MySQL-Server Apache ,Linux)، آشنایی با زیرساختهای سخت افزاری و توزیع نرم افزارهای سیستمی است. همچنین، دانش کاری در خصوص چارچوب ITIL و مدیریت دانش نیز از الزامات و نیازهای اساسی یک مهندس دانش هستند.
مهندسان دانش برای انجام یک کار عالی به مهارتهای نرم نیز نیاز دارند. آنها مشکل گشا هستند و میتوانند به چندوظیفه در آن واحد رسیدگی کنند. همچنین از مهارتهای برقرای ارتباط قوی برخوردارند و با استدلال منطقی عالی عمل میکنند. این مهارتها برای کار کردن با حجم عظیم دادههای دانش بسیار مهم هستند. مهارت مهم دیگر توانایی تحقیق و جمع آوری اطلاعات است که ممکن است از طیف گستردهای از منابع و سیستمها انجام شود.
مهارتهای موردنیاز یک مهندس دانش عبارتند از:
- دانش بالا در خصوص زبانهای برنامه نویسی از جمله پایتون، جاوا و غیره
- آشنایی با ابزارهای توسعه پایگاه داده و مفاهیم پایگاه داده رابطهای
- دانش اولیه تحویل برنامه از جمله مدیریت انتشار
- داشتن تجربه در خصوص کار با ابزارهای مهندسی دانش مبتنی بر استاندارد، مثل SQL، RDF، SPARQL، OWL، SHACL
- آشنایی با ساختار اطلاعات و هوش تجاری (BI)
- درک استانداردهای معنایی و داشتن تجربه در خصوص توسعه مدلهای معنایی
- استفاده از انجمنها و مجامع به اشتراک گذاری دانش در امر پشتیبانی
- دانش بالا در خصوص پردازش زبان طبیعی (NLP) و چرخه توسعه سیستم
- تجربه برنامه نویسی با Clojure یا ClojureScript یا موارد مشابه
- تجربه استفاده از RDBMS (سیستم مدیریت پایگاه داده رابطه ای) یا پایگاه داده پستگرس (PostgreSQL)
- الگوریتم سازی وظایف و مدل سازی فرآیندهای کسب و کار
- استعداد درک و توضیح اطلاعات فنی
- توجه عالی به جزئیات و کنجکاوی ذاتی در مورد فناوری
- توانایی انجام چند کار در مهلتهای زمانی محدود
پیشینه و الزامات آموزشی و تحصیلی
برای تبدیل شدن به یک مهندس دانش موفق، باید الزامات آموزشی خاصی را بگذرانید. مدرک کارشناسی در علوم رایانهای، فناوری اطلاعات یا برنامههای کاربردی کامپیوتر مبنای این نقش هستند و اخذ مدرک کارشناسی ارشد بسیار ارزشمند است. با ترکیب این الزامات آموزشی و چند سال تجربه کاری در زمینه مهندسی سیستمها و برنامههای کاربردی، دانش و بینش لازم برای نقش یک مهندس دانش را به دست خواهید آورد.
اغلب شرکتهایی که مهندسان دانش استخدام میکنند سابقه کار به عنوان مدیر پایگاه داده رابطهای را الزامی میدانند.
درآمد مهندسان دانش چقدر است؟
میزان درآمد مهندسان دانش بنابر سطح دانش، تجربه و سوابق کاری، و همچنین جغرافیا متفاوت است. برای مثال در ایالات متحده، متخصصان جوان میتوانند انتظار دستمزد سالانه در حدود 60000 دلار را داشته باشند. با چند سال تجربه حرفهای، متوسط حقوق یک مهندس دانش 83000 دلار است. یک مهندس دانش ارشد، چیزی حدود 140000 دلار در سال درآمد دارد.
فازهای مهندسی دانش
مهندسی دانش در حوزههای مختلف متفاوت است اما از مجموعه قوانین و رویههای یکسانی برای ایجاد سیستمهای تخصصی پیروی میکند. فازهای مهندسی دانش را میتوان در این موارد خلاصه کرد:
1- شناسایی وظایف
در اولین مرحله، وظایفی که باید انجام شوند تعریف میشوند. در یک حوزه، یک مشکل خاص یا ترکیبی از چندین مشکل مدنظر قرار میگیرند. این کار باید واقع بینانه باشد و کارشناس موضوع باید تصویر روشنی از آن داشته باشد تا بتوان روندهای بعدی را به انجام رساند.
2- کسب دانش
به محض اینکه مشکل به خوبی تعریف شد، در مرحله بعدی باید دانش و اطلاعات مربوط به مشکل یا مشکلات تعریف شده جمع آوری شود. برای برخی از مشکلات از داده های استاندارد استفاده میشود. به عنوان مثال، یک مشکل در مبدل حرارتی نیاز به داده های جدول بخار استاندارد در دمای X و فشار Y دارد تا مقدار آنتالپی را مشخص نماید.
3- تهیه نقشه راه
هنگامی که هدف و پایگاه دانش موردنیاز آماده شد، گام بعدی مربوط به آماده سازی نقشه راه است که با تقسیم هدف به مراحل کوچکتر و به وسیله پرسشنامهها و پایگاه دانش مرتبط انجام میشود. در اینجا کارشناس موضوع افکار خود را در مورد اینکه چگونه تصمیم میگیرد و چه پارامترهایی در تمام مراحل در نظر گرفته میشود، بیان میکند. راههای مختلفی برای حل برخی مشکلات وجود دارد و همه آنها باید در نظر گرفته شوند.
4- رمزگذاری
اکنون زمان تبدیل این دانش به زبان کامپیوتر است. در اینجا دانش با استفاده از توابع مختلف رمزگذاری میشود و همچنین در برخی موارد، برای یک کار خاص، از الگوریتم برای ایجاد یک مدل استفاده میشود. این مدلها میتوانند همانند یک متخصص، بر اساس پارامترهای موجود تصمیم گیری کنند. مطمئناً این مدلها توسط کارشناسان حوزه مربوطه به برنامه نویسان آموزش داده میشوند و روی مقدار کافی دادهها تست و آزمایش میشوند.
5- ارزیابی و رفع اشکال
در فرآیند ایجاد یک سیستم تخصصی، در هر مرحله، مدلها باید ارزیابی و اشکالات آنها برطرف شده و سپس به گردش کار اضافه شوند. به محض اینکه تمام وظایف کوچک ارزیابی شدند باید برای ایجاد یک سیستم تخصصی جامع گردآوری شوند. این سیستم مجدداً در مورد مشکلات مشابه مورد ارزیابی قرار میگیرد و در صورت وجود مشکل، اشکال زدایی میشود.
6- تعدیل و توضیح
در این مرحله، مدل متناسب با وظایف تعریف شده اصلاح و تعدیل شده و نحوه کار آن توضیح و شرح داده میشود.
مزایای استفاده از مهندسی دانش
ما در عصری زندگی میکنیم که برای انجام اکثر کارهای روزانه از چندین اپلیکیشن و وبسایت از طریق گوشیهای هوشمند استفاده میکنیم و در صورت مواجه شدن با هر مشکلی، از طریق یک مرکز پشتیبانی با یک کارشناس خبره به دنبال راهحل میگردیم تا با کمک آنها، مشکل خود را برطرف کنیم. سیستم های تخصصی که با مهندسی دانش ایجاد شدهاند میتوانند مانند کارشناسان انسانی به این موضوعات و مشکلات فورا رسیدگی کنند.
مزایای مهندسی دانش را میتوان در این موارد خلاصه کرد:
- مهندسی دانش به ایجاد یک سیستم تخصصی بهتر و کارآمدتر کمک میکند.
- دانش حوزههای مختلف را میتوان با هم در یکجا جمع کرد و به مشکلات پیچیده رسیدگی نمود.
- مدلهای ایجاد شده با مهندسی دانش قدرتمند و مشکلگشا هستند.
- هنگامی که مهندسی دانش با NLP (توانایی برنامههای رایانهای در درک زبان انسان) همراه می شود، میتواند جستجوها و پرسشهای کاربران را بخواند و مانند ربات چتها، راهکار ارائه دهد.
مهندسی دانش مهندسی آینده
در مهندسی دانش، ما سعی میکنیم از فرآیند فکری یک متخصص در یک حوزه خاص الگوبرداری کنیم. قاعده کلی این است که قبل از تصمیم گیری، وظایفی را تعیین کنید، سؤالات و مسائلی را مطرح کنید که یک متخصص انجام میدهد و یک نقشه راه برای رسیدن به نتیجه ایجاد کنید. برای رسیدن به هدف، این مدلها نیاز به دانش، تخصص، و رویکرد عیبیابی در صورت بروز مشکل دارند. مدل های ایجاد شده با مهندسی دانش قوی و بسیار دقیق هستند و میتوانند فرآیندهای حل مسئله را سریعتر و سادهتر کنند.
منابع: