Роздуми

While studying AI (both ML and AGI), I've made the following notes, which, possibly, will be of interest to others.

1. By "AI," we'll mark what is currently called "artificial intellect," but that's not intellect. This is just automation of solving certain tasks using specific machine decision-making algorithms - decision trees, neural networks, and some other mechanics. All those algorithms are based on data and require vast amounts of homogenous data for their operations and enhancements. It would be more appropriate to call this Data Science, yet the talk is not about science but about applications of this science. Hence AI. BUT this is not intellect as understood by humans.

2. Why is Python so popular in AI? The answer is quite unexpected. Python as a programming language for large products is not suitable. But its benefit is a fairly rapid mastery. BASIC of modernity of a kind. So, ML is not for programmers but for data scientists who may or may not be able to program. For them, Python is easier to master. The fact that everyone says "Python has more libraries" is not a problem because .NET also has ML.NET and wrappers for TensorFlow, Keras, etc. That is, if someone needs to implement ML in .NET - no problems. Is it possible to access Python from .NET? You can try using IronPython or approach the task via pythonnet. Thus, if you want libraries in Python, then there are solutions.

3. Various ML courses still teach primitive algorithms, "bricks." The nuance is that all these bricks have long been implemented in the above-mentioned libraries, and it is not algorithms that should be studied but when to use which algorithms. A modern data scientist will not write their own regression or some other primitive function - it's not just extra work (everything has already been written for us), but you are not able to use the implementation with ready-made bricks. It's like writing your SHA256 or AES128 - well, you wrote it, but then where to apply it, as all encryption libraries have and use their own implementations.

4. A consequence of (3) - a modern data scientist doesn't do programming at all but performs composition of blocks (low-code and no-code technologies) as well as builds and optimizes data pipelines. That's what is called MLOps now.

There exist two directions of operations and development of an AI specialist and AI business. The first one is the building of data pipelines, described in (4). That's a great job, well-paid and required by the market. But that is not programming. If you love "data" as an entity, then you'd like this job too. So, this work and this business are about data: the more data, the better. There are no genius ideas, disruptive technologies, sophisticated inventions, and similar breakthroughs. The foundations of ML are not rocket science: they have simple math and trivial data transformations. You will succeed in building a business here if you see data and know how to collect them and apply them to optimize certain business processes. To re-iterate, you need to possess huge amounts of data; only this gets you ahead of the competition.

The second direction of action is the application of the ideas and capabilities of ML in solving vertical market tasks and problems. AI activities and AI businesses in this direction grow from narrow and specific scientific and technological needs. Here, you may have little data (or no data at all). But you may make a breakthrough when solving a scientific or technological problem. For this direction, you first of all need to be a specialist in some subject - chemistry, physics, biology (or you should have such a specialist), and then you'd look for ideas and principles of ML and AI that you can apply in this specialist's work.

Everything between those two directions ("we can write code and we want to apply this knowledge in AI";) most often doesn't have practical applications and a business benefit. Consequently, the risks of such a business are not justified by the possible commercial results.

5. Could one use ML and AI for solving tasks X, Y, Z? Most likely, no. Modern AI, based on large datasets and data streams, is hardly applicable when you have little or no data. For this, you need other technologies like AGI. Those are, unfortunately, put behind because they don't bring quick money to large players capable of investing in those technologies.  
В процесі вивчення AI (як ML, так і AGI) зробив такі спостереження, які, можливо, будуть цікаві й іншим.

0. Абревіатурою AI далі позначатимемо те, що зараз називають штучним інтелектом, але це не є інтелект. Це просто автоматизація розв'язання певних задач за допомогою певних машинних алгоритмів прийняття рішень — дерева рішень, нейронні мережі та деякі інші алгоритми. Всі ці алгоритми побудовані на даних та вимагають для своєї роботи та розвитку великого обсягу однотипних даних. Правильніше було б це назвати Data Science, але йтиметься не про science, а про її практичне застосування. Тому AI. АЛЕ це ніяк не є інтелектом в людському розумінні.

1. Чому Python такий популярний в AI? Відповідь досить несподівана. Python як мова програмування для великих продуктів не годиться. Але його вигодою є досить швидке опанування. Такий собі BASIC сучасності. Так от, ML'ем займаються не програмісти, а data scientists, які можуть вміти, а можуть і не вміти програмувати. Для них Python зручніший в опануванні. Те, що всі говорять "на Python бібліотек більше" - це не є проблемою, оскільки в тому ж .NET є і ML.NET, і обгортки для TensorFlow, Keras тощо. Тобто, якщо комусь потрібно реалізувати ML в .NET - проблем жодних. Чи можна звертатися з .NET до Python? Можна спробувати використати IronPython або через pythonnet. Тобто, якщо хочеться бібліотек на Python, то рішення існують.

2. Курси, що вчать ML'у, викладають примітивні алгоритми, "цеглинки". Нюанс полягає в тому, що всі ці цеглинки вже давно реалізовано у вищезгаданих бібліотеках, і вчити(ся) слід не алгоритмам, а тому, коли які алгоритми застосовувати. Ну не буде сучасний data scientist писати свою регресію чи ще якийсь примітив — це не лише зайва робота (все вже написано до нас), але таку функцію потім не використаєш разом з готовими цеглинками. Це як написати свій SHA256 чи там AES128 - ну написав, але куди його потім, якщо всі бібліотеки з шифрування мають і використовують своє.

3. Наслідок з п.2: сучасний Data Scientist —  це вже не програмування взагалі, а складання кубиків (low code та no code технології) і побудова та оптимізація data pipelines. Це те ж, що називається MLOps.

4. Існує два напрямки роботи (і розвитку) AI-спеціаліста та AI-бізнесу. Перший — це описане в п.3 будівництво data pipelines. Це чудова високооплачувана і потрібна ринку робота. Але це не програмування. Якщо вам подобаються "дані" як сутність, то вам сподобається і така робота. Ця робота і цей бізнес — про дані. Що більше даних, то краще. Тут немає якихось геніальних ідей, новітніх технологій (те, на чому базується ML, —  це не rocket science, там проста математика і прості перетворення даних), хитрих винаходів і подібних проривів. Побудувати бізнес тут можна, якщо ви бачите дані і бачите, як їх зібрати і застосувати для оптимізації якогось бізнес-процесу. Повторюся, даних має бути дуже-дуже багато; лише це дає відрив від конкурентів.

Другий напрямок роботи — це застосування ідей та можливостей ML в розв'язанні вузькогалузевих задач. AI-роботи та AI-бізнеси в цьому напрямку виростають з вузьких наукових та технологічних потреб. Тут даних може не бути багато (або взагалі не бути). Але тут можливі прориви при розв'язанні науково-технологічних задач. Для цього напрямку слід спершу бути спеціалістом в предметній області — хімії, фізиці, біології (або мати такого спеціаліста), а тоді шукати, які ідеї та принципи ML та AI можна застосувати в роботі цього спеціаліста.

Те, що між цими напрямками ("ми вміємо програмувати і хочемо це вміння застосувати в AI";), найчастіше є натягуванням сови на глобус та не несе якоїсь практичної бізнес-вигоди. Відповідно, ризики ведення бізнесу не перекриваються можливим економічним ефектом.

5. Чи можна ML та AI використати для задач X, Y, Z? Швидше за все, ні. Сучасний AI, побудований на великих потоках даних, не застосовується в умовах малої кількості даних або їхньої відсутності. Для цього потрібні інші науки (зокрема, AGI), які зараз, на жаль, відсунуто на задній план тому, що вони здебільшого не приносять прибутку в короткостроковому періоді (2-3 роки).