Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Вам стоит использовать Scala в машинном обучении
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuriy Artamonov
June 08, 2019
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Вам стоит использовать Scala в машинном обучении
Yuriy Artamonov
June 08, 2019
More Decks by Yuriy Artamonov
See All by Yuriy Artamonov
Survival Tips on Project Reactor and Spring WebFlux
jreznot
0
63
Intellij IDEA Plugins Crash Course
jreznot
0
110
How IntelliJ IDEA Performance Improved: Past, Present, and Future
jreznot
0
81
Look ma - No Indexing!
jreznot
0
48
Как улучшить жизнь команды в IDE и с чего начать
jreznot
0
160
Modern UI Test Automation with Selenium Libraries
jreznot
2
3.2k
IDE в помощь специалисту по тестированию
jreznot
0
86
Мигрируй это!
jreznot
0
130
How We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
jreznot
0
330
Other Decks in Programming
See All in Programming
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
850
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
Go 1.27 における memory allocation の高速化
andpad
0
350
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
570
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
220
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
120
MySQLとPostgreSQLって何が違うの?
akagami
0
150
Dockerfile CMD for Node.js
grazie1999
0
140
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
240
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
170
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
440
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
260
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
590
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
RailsConf 2023
tenderlove
30
1.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
420
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
350
Agile that works and the tools we love
rasmusluckow
331
22k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
A designer walks into a library…
pauljervisheath
211
24k
The agentic SEO stack - context over prompts
schlessera
0
880
Transcript
Вам стоит использовать Scala для ML! Юрий Артамонов Haulmont
Наш план 1. Что за язык 2. Где тут код
писать 3. Какие есть библиотеки 2 И где то там про Machine Learning ещё будет
Не этот мужик 3
Язык программирования акроним от Scalable Language 4
История развития • Дизайн языка разработан в 2001 (EPFL) •
Автор - Martin Odersky • 2006 - Scala 2.0 • 2011 - Typesafe Inc. (сейчас Lightbend Inc.) 5
Кто пользуется этим всем 6
Лучше всего подходит для • Big Data • Data Science
• Web Applications • Distributed Systems • Concurrency and Parallelism • Scientific Computations: NLP, Numerical Computing, Data Visualization 7
Сильная статическая типизация 8 Слабая Сильная Динамическая Статическая
Multiplatform • JVM • JavaScript - Scala.js • Native -
Scala Native (LLVM based) 9
Functional + Object Oriented 1. Высокоуровневый язык сочетающий OOP и
FP 2. Краткий синтаксис без мусора 3. Статическая типизация и вывод типов 10
Type Inference • Компилятор выводит тип переменных • Тип фиксируется
первым присваиванием • IDE это всё понимает! 11
Разные штуки • Case Classes • Type Aliases • Implicit
Conversions • Extension Methods 12
Pattern Matching • Сравнение по образцу - switch на стероидах
• Поддерживает деконструкцию • Полезно вместе с case classes 13
Concurrency & Asynchronous • Future & Promise • Async /
Await • Akka ! • java.util.concurrent 14
Scalaz / Tagless Final / ZIO / etc • Scalaz
- для пуристов • Неразмеченные Конечные Интепретаторы • ZIO - хитрый и асинхронный IO Это не наш случай! 15 Читать нечитаемый код Писать нечитаемый код
Машинное обучение обширный подраздел искусственного интеллекта, изучающий методы построения алгоритмов,
способных обучаться 16
Задачи • классификация • кластеризация • регрессия • восстановление плотности
распределения • ... 17
18
Инструменты Ну не на листочке же матрицы умножать 19
Чернющий REPL > sbt console 20
VS Code and Language Server • Scala syntax • sbt
plugin • autocompletion Рефакторинг не поддерживается :( 21
IntelliJ IDEA + Scala plugin • sbt / Gradle /
Maven • Syntax highlighting • Inspections • Refactoring ! • Worksheets 22
IntelliJ IDEA Worksheets • Интерактивный REPL • Можно править код
• Интегрирован в IDE ! • Доступны все библиотеки и код проекта 23
Интерактивные консоли • Apache Zeppelin • Scala Notebook • Spark
Notebook • Databricks 24
Библиотеки Как нанести непоправимую пользу окружающим 25
Akka • Actor model • Concurrency • Parallel computations •
Distributed systems 26
Breeze NLP • Breeze - linear algebra, numerical computing and
optimization • Epic - structured text processor • Puck - GPU powered parser 27
ND4J • ND Arrays - multidimensional arrays in memory with
flat layout • Off-heap and memory effective • Native libraries interop 28
Apache Spark • In-Memory • Big Data Processing • Distributed
Computations • DataFrames • Spark SQL 29
Spark ML Run ML pipelines on Spark Check ML guides:
https://spark.apache.org/docs/1.2.2/ml-guide.html 30
Apache PredictionIO • Machine Learning Server • Batch Processing •
Real-time • Predefined Models: Clustering, Recommenders, Regression, NLP, ... 31
Deeplearning4j • Neural networks - tons of nertworks • Deep
learning • Image / Data processing • Optimized performance (OpenBLAS) • GPU supported 32
Smile Statistical Machine Intelligence and Learning Engine • Preprocessing •
Feature selection • Supervised learning • Unsupervised learning • Reinforcement learning 33
Визуализация данных • Breeze-viz • Vegas • Plotly 34
Vegas 35
Задачка #1 Классификация - Smile Пример: K-nearest neighbours 36
Задачка #2 - Cloud Load Balancing Регрессия - Deeplearning4j 37
Scala vs Python • Статическая типизация vs динамическая • Сложность
vs простота • Продакшен vs прототипы 38
Scala 3 coming soon... • Intersection & Union types •
Enumerations • Null safety • Opaque types ETA 2020 39
Вместо заключения • https://www.scala-exercises.org/ • Functional Programming in Scala (Coursera)
• Big Data Analysis with Scala and Spark (Coursera) • Programming Reactive Systems (Edx) 40