SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
Spark for Reactive Machine Learning:
Building Intelligent Agents at Scale
Jeff Smith
@jeffksmithjr
x.ai is a personal assistant
who schedules meetings for you
Agents
Agents
Autonomous
Goal-oriented
Capable of learning
Reactive
Amy Ingram
x.ai/how-it-works/
Agents
Autonomous
Goal-oriented
Capable of learning
Reactive
Tech Stacks
You
Scala & Python
Spark
MongoDB
Machine Learning
nom nom, the data dog
Scala & Python
Spark & Akka
Couchbase
Machine Learning
Reactive + Machine Learning
Machine Learning Systems
Traits of Reactive Systems
Responsive
Resilient
Elastic
Message-Driven
Reactive Strategies
Reactive Machine Learning
Reactive Machine Learning
Generating Features
Machine Learning Systems
Feature Generation
Raw Data FeaturesFeature Generation Pipeline
Microblogging Data
Pipeline Failure
Raw Data FeaturesFeature Generation Pipeline
Raw Data FeaturesFeature Generation Pipeline
Supervising Feature Generation
Raw Data FeaturesFeature Generation Pipeline
Supervision
Original Features
object SquawkLength extends FeatureType[Int]
object Super extends LabelType[Boolean]
val originalFeatures: Set[FeatureType] = Set(SquawkLength)
val label = Super
Basic Features
object PastSquawks extends FeatureType[Int]
val basicFeatures = originalFeatures + PastSquawks
More Features
object MobileSquawker extends FeatureType[Boolean]
val moreFeatures = basicFeatures + MobileSquawker
Feature Collections
case class FeatureCollection(id: Int,
createdAt: DateTime,
features: Set[_ <: FeatureType[_]],
label: LabelType[_])
Feature Collections
val earlierCollection = FeatureCollection(101,
earlier,
basicFeatures,
label)
val latestCollection = FeatureCollection(202,
now,
moreFeatures,
label)
val featureCollections = sc.parallelize(
Seq(earlierCollection, latestCollection))
Fallback Collections
val FallbackCollection = FeatureCollection(404,
beginningOfTime,
originalFeatures,
label)
Fallback Collections
def validCollection(collections: RDD[FeatureCollection],
invalidFeatures: Set[FeatureType[_]]) = {
val validCollections = collections.filter(
fc => !fc.features
.exists(invalidFeatures.contains))
.sortBy(collection => collection.id)
if (validCollections.count() > 0) {
validCollections.first()
} else
FallbackCollection
}
Learning Models
Machine Learning Systems
Learning Models
Features ModelModel Learning Pipeline
Models of Love
Data Preparation
val labelIndexer = new StringIndexer()
.setInputCol("label")
.setOutputCol("indexedLabel")
.fit(instances)
val featureIndexer = new VectorIndexer()
.setInputCol("features")
.setOutputCol("indexedFeatures")
.fit(instances)
val Array(trainingData, testingData) = instances.randomSplit(
Array(0.8, 0.2))
Learning a Model
val decisionTree = new DecisionTreeClassifier()
.setLabelCol("indexedLabel")
.setFeaturesCol("indexedFeatures")
val labelConverter = new IndexToString()
.setInputCol("prediction")
.setOutputCol("predictedLabel")
.setLabels(labelIndexer.labels)
val pipeline = new Pipeline()
.setStages(Array(labelIndexer, featureIndexer, decisionTree,
labelConverter))
Evolving Modeling Strategies
val randomForest = new RandomForestClassifier()
.setLabelCol("indexedLabel")
.setFeaturesCol("indexedFeatures")
val revisedPipeline = new Pipeline()
.setStages(Array(labelIndexer, featureIndexer, randomForest,
labelConverter))
Deep Models of Artistic Style
Refactoring Command Line Tools
> python neural-art-tf.py -m vgg -mp ./vgg -c ./images/
bear.jpg -s ./images/style.jpg -w 800
def produce_art(content_image_path, style_image_path,
model_path, model_type, width, alpha, beta, num_iters):
Exposing a Service
class NeuralServer(object):
def generate(self, content_image_path, style_image_path,
model_path, model_type, width, alpha, beta, num_iters):
produce_art(content_image_path, style_image_path,
model_path, model_type, width, alpha, beta, num_iters)
return True
daemon = Pyro4.Daemon()
ns = Pyro4.locateNS()
uri = daemon.register(NeuralServer)
ns.register("neuralserver", uri)
daemon.requestLoop()
Encoding Model Types
object ModelType extends Enumeration {
type ModelType = Value
val VGG = Value("VGG")
val I2V = Value("I2V")
}
Encoding Valid Configuration
case class JobConfiguration(contentPath: String,
stylePath: String,
modelPath: String,
modelType: ModelType,
width: Integer = 800,
alpha: java.lang.Double = 1.0,
beta: java.lang.Double = 200.0,
iterations: Integer = 5000)
Finding the Service
val ns = NameServerProxy.locateNS(null)
val remoteServer = new PyroProxy(ns.lookup("neuralserver"))
Calling the Service
def callServer(remoteServer: PyroProxy, jobConfiguration:
JobConfiguration) = {
Future.firstCompletedOf(
List(
timedOut,
Future {
remoteServer.call("generate",
jobConfiguration.contentPath,
jobConfiguration.stylePath,
jobConfiguration.modelPath,
jobConfiguration.modelType.toString,
jobConfiguration.width,
jobConfiguration.alpha,
jobConfiguration.beta,
jobConfiguration.iterations).asInstanceOf[Boolean]
}))}
Profiles with Style
Hybrid Model learning
Features ModelModel Learning Pipeline
Publishing Models
Machine Learning Systems
Publishing Models
Model
Predictive
Service
Publishing Process
Detecting Fraud
False Negative
False Positive
Model Metrics
val trainingSummary = model.summary
val binarySummary = trainingSummary
.asInstanceOf[BinaryLogisticRegressionSummary]
binarySummary.roc
roc.show()
binarySummary.areaUnderROC
Model Metrics
val predictions = model.transform(testingData)
val evaluator = new BinaryClassificationEvaluator()
.setLabelCol("label")
.setRawPredictionCol("rawPrediction")
.setMetricName("areaUnderPR")
val areaUnderPR = evaluator.evaluate(predictions)
Building Lineages
val rawData: RawData
val featureSet: Set[FeatureType]
val model: ClassificationModel
val modelMetrics: BinaryLogisticRegressionSummary
Summary
Agents
Autonomous
Goal-oriented
Capable of learning
Reactive
Machine Learning Systems
Traits of Reactive Systems
Reactive Strategies
Reactive Machine Learning
For Later
@jeffksmithjr
manning.com
reactivemachinelearning.com
medium.com/data-engineering
M A N N I N G
Jeff SmithUse the code opensanmu
for 40% off!
x.ai
@xdotai
hello@human.x.ai
New York, New York
We’re hiring!
Thank You!

Mais conteúdo relacionado

Mais procurados

Laporan Resmi Algoritma dan Struktur Data :
Laporan Resmi Algoritma dan Struktur Data : Laporan Resmi Algoritma dan Struktur Data :
Laporan Resmi Algoritma dan Struktur Data :
Siska Amelia
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
Vincent Pradeilles
 
MIDP GUI Development: Alert, List, Form, TextBox
MIDP GUI Development: Alert, List, Form, TextBoxMIDP GUI Development: Alert, List, Form, TextBox
MIDP GUI Development: Alert, List, Form, TextBox
Jussi Pohjolainen
 

Mais procurados (20)

Laporan Resmi Algoritma dan Struktur Data :
Laporan Resmi Algoritma dan Struktur Data : Laporan Resmi Algoritma dan Struktur Data :
Laporan Resmi Algoritma dan Struktur Data :
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
 
AutoIt for the rest of us - handout
AutoIt for the rest of us - handoutAutoIt for the rest of us - handout
AutoIt for the rest of us - handout
 
Introduction to-scala
Introduction to-scalaIntroduction to-scala
Introduction to-scala
 
Scala collections api expressivity and brevity upgrade from java
Scala collections api  expressivity and brevity upgrade from javaScala collections api  expressivity and brevity upgrade from java
Scala collections api expressivity and brevity upgrade from java
 
Scala for curious
Scala for curiousScala for curious
Scala for curious
 
Metaprogramming in Scala 2.10, Eugene Burmako,
Metaprogramming  in Scala 2.10, Eugene Burmako, Metaprogramming  in Scala 2.10, Eugene Burmako,
Metaprogramming in Scala 2.10, Eugene Burmako,
 
MIDP GUI Development: Alert, List, Form, TextBox
MIDP GUI Development: Alert, List, Form, TextBoxMIDP GUI Development: Alert, List, Form, TextBox
MIDP GUI Development: Alert, List, Form, TextBox
 
Advanced geoprocessing with Python
Advanced geoprocessing with PythonAdvanced geoprocessing with Python
Advanced geoprocessing with Python
 
jQuery
jQueryjQuery
jQuery
 
Python - Lecture 3
Python - Lecture 3Python - Lecture 3
Python - Lecture 3
 
Scala collections
Scala collectionsScala collections
Scala collections
 
Scala - core features
Scala - core featuresScala - core features
Scala - core features
 
Drupal content-migration
Drupal content-migrationDrupal content-migration
Drupal content-migration
 
Scala parallel-collections
Scala parallel-collectionsScala parallel-collections
Scala parallel-collections
 
collection framework in java
collection framework in javacollection framework in java
collection framework in java
 
Introducing scala
Introducing scalaIntroducing scala
Introducing scala
 
Python - OOP Programming
Python - OOP ProgrammingPython - OOP Programming
Python - OOP Programming
 
Machine learning in production with scikit-learn
Machine learning in production with scikit-learnMachine learning in production with scikit-learn
Machine learning in production with scikit-learn
 
OOPs & Inheritance Notes
OOPs & Inheritance NotesOOPs & Inheritance Notes
OOPs & Inheritance Notes
 

Destaque

Destaque (7)

Reactive Machine Learning On and Beyond the JVM
Reactive Machine Learning On and Beyond the JVMReactive Machine Learning On and Beyond the JVM
Reactive Machine Learning On and Beyond the JVM
 
Collecting Uncertain Data the Reactive Way
Collecting Uncertain Data the Reactive WayCollecting Uncertain Data the Reactive Way
Collecting Uncertain Data the Reactive Way
 
Bringing Data Scientists and Engineers Together
Bringing Data Scientists and Engineers TogetherBringing Data Scientists and Engineers Together
Bringing Data Scientists and Engineers Together
 
H2O 0xdata MLconf
H2O 0xdata MLconfH2O 0xdata MLconf
H2O 0xdata MLconf
 
Reactive Learning Agents
Reactive Learning AgentsReactive Learning Agents
Reactive Learning Agents
 
Reactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional ProgrammingReactive Machine Learning and Functional Programming
Reactive Machine Learning and Functional Programming
 
SEO voor webredacteuren - Kennissessie Webredacteuren.com 13 september 2011
SEO voor webredacteuren - Kennissessie Webredacteuren.com 13 september 2011SEO voor webredacteuren - Kennissessie Webredacteuren.com 13 september 2011
SEO voor webredacteuren - Kennissessie Webredacteuren.com 13 september 2011
 

Semelhante a Spark for Reactive Machine Learning: Building Intelligent Agents at Scale

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 

Semelhante a Spark for Reactive Machine Learning: Building Intelligent Agents at Scale (20)

Wix Machine Learning - Ran Romano
Wix Machine Learning - Ran RomanoWix Machine Learning - Ran Romano
Wix Machine Learning - Ran Romano
 
PredictionIO – A Machine Learning Server in Scala – SF Scala
PredictionIO – A Machine Learning Server in Scala – SF ScalaPredictionIO – A Machine Learning Server in Scala – SF Scala
PredictionIO – A Machine Learning Server in Scala – SF Scala
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
Designing REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDesigning REST API automation tests in Kotlin
Designing REST API automation tests in Kotlin
 
Visual diagnostics at scale
Visual diagnostics at scaleVisual diagnostics at scale
Visual diagnostics at scale
 
Scala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgrammingScala Reflection & Runtime MetaProgramming
Scala Reflection & Runtime MetaProgramming
 
Behavior driven oop
Behavior driven oopBehavior driven oop
Behavior driven oop
 
ML-Ops how to bring your data science to production
ML-Ops  how to bring your data science to productionML-Ops  how to bring your data science to production
ML-Ops how to bring your data science to production
 
Java scriptforjavadev part2a
Java scriptforjavadev part2aJava scriptforjavadev part2a
Java scriptforjavadev part2a
 
Hamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature StoreHamburg Data Science Meetup - MLOps with a Feature Store
Hamburg Data Science Meetup - MLOps with a Feature Store
 
TensorFlow Extended: An End-to-End Machine Learning Platform for TensorFlow
TensorFlow Extended: An End-to-End Machine Learning Platform for TensorFlowTensorFlow Extended: An End-to-End Machine Learning Platform for TensorFlow
TensorFlow Extended: An End-to-End Machine Learning Platform for TensorFlow
 
Zotonic presentation Erlang Camp Boston, august 2011
Zotonic presentation Erlang Camp Boston, august 2011Zotonic presentation Erlang Camp Boston, august 2011
Zotonic presentation Erlang Camp Boston, august 2011
 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science Meetup
 
R Machine Learning - handbook
R Machine Learning - handbookR Machine Learning - handbook
R Machine Learning - handbook
 
Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010Advanced Php - Macq Electronique 2010
Advanced Php - Macq Electronique 2010
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Ember
EmberEmber
Ember
 
Writing RESTful web services using Node.js
Writing RESTful web services using Node.jsWriting RESTful web services using Node.js
Writing RESTful web services using Node.js
 
Intro to Spark and Spark SQL
Intro to Spark and Spark SQLIntro to Spark and Spark SQL
Intro to Spark and Spark SQL
 

Mais de Jeff Smith (10)

Questioning Conversational AI
Questioning Conversational AIQuestioning Conversational AI
Questioning Conversational AI
 
Neuroevolution in Elixir
Neuroevolution in ElixirNeuroevolution in Elixir
Neuroevolution in Elixir
 
Tools for Making Machine Learning more Reactive
Tools for Making Machine Learning more ReactiveTools for Making Machine Learning more Reactive
Tools for Making Machine Learning more Reactive
 
Building Learning Agents
Building Learning AgentsBuilding Learning Agents
Building Learning Agents
 
Reactive for Machine Learning Teams
Reactive for Machine Learning TeamsReactive for Machine Learning Teams
Reactive for Machine Learning Teams
 
Characterizing Intelligence with Elixir
Characterizing Intelligence with ElixirCharacterizing Intelligence with Elixir
Characterizing Intelligence with Elixir
 
Huhdoop?: Uncertain Data Management on Non-Relational Database Systems
Huhdoop?: Uncertain Data Management on Non-Relational Database SystemsHuhdoop?: Uncertain Data Management on Non-Relational Database Systems
Huhdoop?: Uncertain Data Management on Non-Relational Database Systems
 
Breadth or Depth: What's in a column-store?
Breadth or Depth: What's in a column-store?Breadth or Depth: What's in a column-store?
Breadth or Depth: What's in a column-store?
 
Save the server, Save the world
Save the server, Save the worldSave the server, Save the world
Save the server, Save the world
 
NoSQL in Perspective
NoSQL in PerspectiveNoSQL in Perspective
NoSQL in Perspective
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Último (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 

Spark for Reactive Machine Learning: Building Intelligent Agents at Scale