Сделал в компании доклад о применении ИИ в архитектуре, давайте и вам расскажу.
Фокус в использовании подхода architecture as code: абсолютно все архитектурные артефакты у нас это тексты. С обычной документацией понятно, это и так некоторый набор текстовых файлов, чаще всего в макрдауне. Для них мы применяем структурный шаблон Arc42 — список из 12 пунктов, по которым нужно распределить информацию о проектируемой системе.
Структурный шаблон, во-первых, хорошо известен нейронкам, и они сразу понимают, о чём речь. Во-вторых, можно кинуться в модель бизнес-требованиям и очень быстро создать некий первоначальный набросок, от которого вы дальше уже пляшете, уточняя по пунктам и исправляя ошибки ИИ. Ну и, в-третьих, готовая структура с ящиками, по которым нужно всё раскладывать, это гораздо лучше, чем свалка ADR'ок, как это нередко бывает в компаниях.
Со схемами и диаграммами ещё интереснее. Берём инструменты со своими DSL-языками, такие, как Structurizr и PlantUML. Вся схема или диаграмма целиком определяется текстовым файлом. Можно применять Git со всеми его преимуществами. А для нейронок это родная среда: вы, как человек, смотрите на схему глазами, но нейронка работает с её DSL-файлом. Навскидку тут прирост эффективности даже больше, чем в программировании, потому что DSL это просто синтаксис, без смыслового наполнения, человеку его можно вообще не знать. Ты пишешь промпты, а смотришь уже на картинку, сгенерированную схему, и следующим промптом указываешь, где какие правки сделать. Нейронке при этом не приходится думать про потоки, асинхронность, типы данных, она просто правит текст как текст, поскольку у DSL нет поведения.
Тут как раз наиболее видна разница между рутинной и интеллектуальной частью работы. Как именно будет выглядеть схема, продумывает архитектор. Если доверить это нейронке, даже мощной, будет полно ошибок, неоптимальностей, неучтённых нюансов среды и так далее. Но вот само по себе написание синтаксиса — имба.
#dev@clockstackwheels
http://scikit-learn.org/stable/
scikit-learn
#Machine#Learning in Python
Simple and efficient tools for data mining and data analysis
Accessible to everybody, and reusable in various contexts
Built on #NumPy, #SciPy, and #matplotlib
Open source, commercially usable - BSD license
http://scitools.org.uk/iris/docs/latest/userguide/index.html
Iris seeks to provide a powerful, easy to use, and community-driven Python library for analysing and visualising #meteorological and #oceanographic data sets.
With Iris you can:
Use a single #API to work on your data, irrespective of its original format.
Read and write (CF-)netCDF, GRIB, and PP files.
Easily produce graphs and maps via integration with #matplotlib and #cartopy.
http://scitools.org.uk/cartopy/docs/latest/index.html
Cartopy is a Python package designed to make drawing maps for data analysis and visualisation as easy as possible.
#Cartopy makes use of the powerful #PROJ.4, #numpy and #shapely libraries and has a simple and intuitive drawing interface to #matplotlib for creating publication quality maps.
Some of the key features of cartopy are:
object oriented projection definitions
point, line, vector, polygon and image transformations between projections
integration to expose advanced mapping in matplotlib with a simple and intuitive interface
powerful vector data handling by integrating shapefile reading with Shapely capabilities
http://matplotlib.org/
#matplotlib is a python #2D#plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in #python scripts, the python and #ipython shell (ala MATLAB®* or Mathematica®†), web application servers, and six #graphical user interface toolkits.
screenshots
http://devarea.com/machine-learning-with-python-introduction/#.Whs6iCehU8o
#Machine_Learning With Python – Introduction
#Numpy is package for multi dimension arrays – very effective implementation
#Scipy – package for scientific programming , mathematics , signal processing and more
#Pandas – package for data handling
#Matplotlib – package for data visualization (graphs)
#Seaborn – extend Matplotlib with statistical graphs
#Scikits – many extensions to spicy for specific fields like x-ray, image processing , deep learning and many more