Para cualquier pregunta que no haya sido respondida en este archivo o en la documentación de H2O-3, utilice:
H2O es una plataforma en memoria para aprendizaje automático distribuido y escalable. H2O utiliza interfaces familiares como R, Python, Scala, Java, JSON y la interfaz web/portátil Flow, y funciona a la perfección con tecnologías de big data como Hadoop y Spark. H2O proporciona implementaciones de muchos algoritmos populares, como modelos lineales generalizados (GLM), máquinas de aumento de gradiente (incluido XGBoost), bosques aleatorios, redes neuronales profundas, conjuntos apilados, bayesianos ingenuos, modelos aditivos generalizados (GAM), riesgos proporcionales de Cox, K- Medios, PCA, Word2Vec, así como un algoritmo de aprendizaje automático totalmente automático (H2O AutoML).
H2O es extensible para que los desarrolladores puedan agregar transformaciones de datos y algoritmos personalizados de su elección y acceder a ellos a través de todos esos clientes. Los modelos H2O se pueden descargar y cargar en la memoria H2O para su puntuación, o exportarse a formato POJO o MOJO para una puntuación extremadamente rápida en producción. Puede encontrar más información en la Guía del usuario de H2O.
H2O-3 (este repositorio) es la tercera encarnación de H2O y el sucesor de H2O-2.
Si bien la mayor parte de este README está escrito para desarrolladores que crean sus propias compilaciones, la mayoría de los usuarios de H2O simplemente descargan y usan una versión prediseñadas. Si es usuario de Python o R, la forma más sencilla de instalar H2O es mediante PyPI o Anaconda (para Python) o CRAN (para R):
pip install h2o
install.packages( " h2o " )
Para conocer las últimas versiones estables y nocturnas de Hadoop (o Spark/Sparkling Water), o el frasco de H2O independiente, visite: https://h2o.ai/download
Más información sobre la descarga e instalación de H2O está disponible en la Guía del usuario de H2O.
La mayoría de las personas interactúan con tres o cuatro recursos principales de código abierto: GitHub (que ya ha encontrado), problemas de GitHub (para informes de errores y seguimiento de problemas), Stack Overflow para preguntas específicas sobre código/software de H2O y h2ostream (un grupo de Google). / foro de discusión por correo electrónico) para preguntas que no son adecuadas para Stack Overflow. También hay un grupo de chat para desarrolladores de Gitter H2O; sin embargo, para fines de archivo y para maximizar la accesibilidad, preferiríamos que las preguntas y respuestas estándar de H2O se realicen en Stack Overflow.
Puede navegar y crear nuevos issues en nuestro repositorio de GitHub: https://github.com/h2oai/h2o-3
Issues
en la parte superior de la página.GitHub
Problemas de GitHub: presente informes de errores/siga los problemas aquí
Stack Overflow: haga todas las preguntas sobre código/software aquí
Validación cruzada (Stack Exchange): haga preguntas sobre algoritmos/teorías aquí
Grupo de Google h2ostream: haga preguntas no relacionadas con el código aquí
Chat para desarrolladores de Gitter H2O
Documentación
Descargar (paquetes prediseñados)
Sitio web
Twitter: ¡síganos para recibir actualizaciones y noticias de H2O!
Awesome H2O: comparte con nosotros tus creaciones basadas en H2O
Cada compilación nocturna publica artefactos de R, Python, Java y Scala en un repositorio específico de la compilación. En particular, puede encontrar artefactos de Java en el directorio maven/repo.
A continuación se muestra un fragmento de ejemplo de un archivo de compilación de Gradle que utiliza h2o-3 como dependencia. Reemplace x, y, z y nnnn con números válidos.
// h2o-3 dependency information
def h2oBranch = 'master'
def h2oBuildNumber = 'nnnn'
def h2oProjectVersion = "x.y.z.${h2oBuildNumber}"
repositories {
// h2o-3 dependencies
maven {
url "https://s3.amazonaws.com/h2o-release/h2o-3/${h2oBranch}/${h2oBuildNumber}/maven/repo/"
}
}
dependencies {
compile "ai.h2o:h2o-core:${h2oProjectVersion}"
compile "ai.h2o:h2o-algos:${h2oProjectVersion}"
compile "ai.h2o:h2o-web:${h2oProjectVersion}"
compile "ai.h2o:h2o-app:${h2oProjectVersion}"
}
Consulte la última página de compilación nocturna de H2O-3 para obtener información sobre la instalación de artefactos de compilación nocturna.
Consulte el repositorio de GitHub de h2o-droplets para ver un ejemplo práctico de cómo utilizar artefactos Java con gradle.
Nota: Los artefactos estables de H2O-3 se publican periódicamente en Maven Central (haga clic aquí para buscar), pero pueden retrasarse sustancialmente con respecto a las compilaciones nocturnas de H2O-3 Bleeding Edge.
Comenzar con el desarrollo de H2O requiere JDK 1.8+, Node.js, Gradle, Python y R. Usamos el contenedor de Gradle (llamado gradlew
) para garantizar que se instalen versiones locales actualizadas de Gradle y otras dependencias en su directorio de desarrollo.
La creación de h2o
requiere un entorno R configurado correctamente con los paquetes necesarios y un entorno Python con los siguientes paquetes:
grip
tabulate
requests
wheel
Para instalar estos paquetes puedes usar pip o conda. Si tiene problemas para instalar estos paquetes en Windows , siga la sección Configuración en Windows de esta guía.
(Nota: se recomienda utilizar algún entorno virtual como VirtualEnv para instalar todos los paquetes).
Para generar H2O desde el repositorio, realice los siguientes pasos.
# Build H2O
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew build -x test
You may encounter problems: e.g. npm missing. Install it:
brew install npm
# Start H2O
java -jar build/h2o.jar
# Point browser to http://localhost:54321
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build
Notas :
- La ejecución de pruebas inicia cinco JVM de prueba que forman un clúster H2O y requiere al menos 8 GB de RAM (preferiblemente 16 GB de RAM).
- La ejecución de
./gradlew syncRPackages
es compatible con Windows, OS X y Linux, y es muy recomendable, aunque no obligatoria../gradlew syncRPackages
garantiza un entorno completo y coherente con versiones aprobadas previamente de los paquetes necesarios para las pruebas y compilaciones. Los paquetes se pueden instalar manualmente, pero recomendamos configurar una variable ENV y usar./gradlew syncRPackages
. Para configurar la variable ENV, use el siguiente formato (donde `${WORKSPACE} puede ser cualquier ruta):mkdir -p ${WORKSPACE}/Rlibrary export R_LIBS_USER=${WORKSPACE}/Rlibrary
git pull
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew clean
./gradlew build
Recomendamos usar ./gradlew clean
después de cada git pull
.
Omita las pruebas agregando -x test
al final de la línea de comando de compilación de Gradle. Las pruebas suelen durar entre 7 y 10 minutos en una computadora portátil Macbook Pro con 4 CPU (8 hyperthreads) y 16 GB de RAM.
No es necesario sincronizar Smalldata después de cada extracción, pero si las pruebas fallan debido a que faltan archivos de datos, intente ./gradlew syncSmalldata
como primer paso para la solución de problemas. La sincronización de Smalldata descarga archivos de datos de AWS S3 al directorio de Smalldata en su espacio de trabajo. La sincronización es incremental. No registre estos archivos. El directorio de datos pequeños está en .gitignore. Si no ejecuta ninguna prueba, no necesita el directorio Smalldata.
La ejecución de ./gradlew syncRPackages
es compatible con Windows, OS X y Linux, y es muy recomendable, aunque no obligatoria. ./gradlew syncRPackages
garantiza un entorno completo y coherente con versiones aprobadas previamente de los paquetes necesarios para las pruebas y compilaciones. Los paquetes se pueden instalar manualmente, pero recomendamos configurar una variable ENV y usar ./gradlew syncRPackages
. Para configurar la variable ENV, utilice el siguiente formato (donde ${WORKSPACE}
puede ser cualquier ruta):
mkdir -p ${WORKSPACE}/Rlibrary
export R_LIBS_USER=${WORKSPACE}/Rlibrary
./gradlew clean && ./gradlew build -x test && (export DO_FAST=1; ./gradlew dist)
open target/docs-website/h2o-docs/index.html
La raíz del repositorio de git contiene un Makefile con atajos convenientes para objetivos de compilación frecuentes utilizados en el desarrollo. Para compilar h2o.jar
omitiendo las pruebas y también la construcción de ensamblajes alternativos, ejecute
make
Para compilar h2o.jar
usando el ensamblaje mínimo, ejecute
make minimal
El ensamblaje mínimo es muy adecuado para el desarrollo de algoritmos de aprendizaje automático de H2O. No incluye algunas dependencias pesadas (como Hadoop) y su uso ahorra tiempo de compilación, además de la necesidad de descargar bibliotecas grandes de los repositorios de Maven.
Desde la línea de comando, valide python
esté usando el paquete recién instalado usando which python
(o sudo which python
). Actualice la variable de entorno con la ruta de WinPython.
pip install grip tabulate wheel
Instale Java 1.8+ y agregue el directorio apropiado C:Program FilesJavajdk1.7.0_65bin
con java.exe a PATH en Variables de entorno. Para asegurarse de que el símbolo del sistema detecte la versión correcta de Java, ejecute:
javac -version
La variable CLASSPATH también debe configurarse en la subcarpeta lib del JDK:
CLASSPATH=/<path>/<to>/<jdk>/lib
Instale Node.js y agregue el directorio instalado C:Program Filesnodejs
, que debe incluir node.exe y npm.cmd a PATH si aún no está antepuesto.
Instale R y agregue el directorio bin a su RUTA si aún no está incluido.
Instale los siguientes paquetes R:
Para instalar estos paquetes desde una sesión de R:
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
Tenga en cuenta que se requiere libcurl para la instalación del paquete RCurl R.
Tenga en cuenta que estos paquetes no cubren la ejecución de pruebas, solo sirven para generar H2O.
Finalmente, instale Rtools, que es una colección de herramientas de línea de comandos para facilitar el desarrollo de R en Windows.
NOTA : Durante la instalación de Rtools, no instale Cygwin.dll.
NOTA : Durante la instalación de Cygwin, anule la selección de los paquetes de Python para evitar un conflicto con el paquete Python.org.
Si Cygwin ya está instalado, elimine los paquetes de Python o asegúrese de que Native Python esté antes de Cygwin en la variable PATH.
Si aún no tiene un cliente Git, instale uno. El predeterminado se puede encontrar aquí http://git-scm.com/downloads. Asegúrese de que la compatibilidad con el símbolo del sistema esté habilitada antes de la instalación.
Descargue y actualice los códigos fuente de h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew.bat build
Si encuentra errores, ejecute nuevamente
--stacktrace
para obtener más instrucciones sobre las dependencias que faltan.
Si no tienes Homebrew, te recomendamos instalarlo. Facilita la gestión de paquetes para OS X.
Instale Java 1.8+. Para asegurarse de que el símbolo del sistema detecte la versión correcta de Java, ejecute:
javac -version
Usando cerveza casera:
brew install node
De lo contrario, instálelo desde el sitio web de NodeJS.
Instale R y agregue el directorio bin a su RUTA si aún no está incluido.
Instale los siguientes paquetes R:
Para instalar estos paquetes desde una sesión de R:
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
Tenga en cuenta que se requiere libcurl para la instalación del paquete RCurl R.
Tenga en cuenta que estos paquetes no cubren la ejecución de pruebas, solo sirven para generar H2O.
Instalar Python:
brew install python
Instale el administrador de paquetes pip:
sudo easy_install pip
Siguiente instalación de los paquetes necesarios:
sudo pip install wheel requests tabulate
OS X ya debería tener Git instalado. Para descargar y actualizar los códigos fuente de h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
Nota: en una máquina normal, puede llevar mucho tiempo (aproximadamente una hora) ejecutar todas las pruebas.
Si encuentra errores, ejecute nuevamente
--stacktrace
para obtener más instrucciones sobre las dependencias que faltan.
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs
Instale Java 8. Las instrucciones de instalación se pueden encontrar aquí Instalación de JDK. Para asegurarse de que el símbolo del sistema detecte la versión correcta de Java, ejecute:
javac -version
Las instrucciones de instalación se pueden encontrar aquí Instalación R. Haga clic en "Descargar R para Linux". Haga clic en "ubuntu". Siga las instrucciones dadas.
Para instalar los paquetes necesarios, siga las mismas instrucciones que para OS X anteriores.
Nota : Si el proceso no logra instalar RStudio Server en Linux, ejecute uno de los siguientes:
sudo apt-get install libcurl4-openssl-dev
o
sudo apt-get install libcurl4-gnutls-dev
Si aún no tienes un cliente Git:
sudo apt-get install git
Descargue y actualice los códigos fuente de h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
Si encuentra errores, ejecute nuevamente usando
--stacktrace
para obtener más instrucciones sobre las dependencias que faltan.
Asegúrese de no estar ejecutando como root, ya que
bower
rechazará dicha ejecución.
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt-get install -y nodejs
cd /opt
sudo wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"
sudo tar xzf jdk-7u79-linux-x64.tar.gz
cd jdk1.7.0_79
sudo alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
sudo alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_79/bin/jar 2
sudo alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_79/bin/javac 2
sudo alternatives --set jar /opt/jdk1.7.0_79/bin/jar
sudo alternatives --set javac /opt/jdk1.7.0_79/bin/javac
cd /opt
sudo wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
sudo rpm -ivh epel-release-7-5.noarch.rpm
sudo echo "multilib_policy=best" >> /etc/yum.conf
sudo yum -y update
sudo yum -y install R R-devel git python-pip openssl-devel libxml2-devel libcurl-devel gcc gcc-c++ make openssl-devel kernel-devel texlive texinfo texlive-latex-fonts libX11-devel mesa-libGL-devel mesa-libGL nodejs npm python-devel numpy scipy python-pandas
sudo pip install scikit-learn grip tabulate statsmodels wheel
mkdir ~/Rlibrary
export JAVA_HOME=/opt/jdk1.7.0_79
export JRE_HOME=/opt/jdk1.7.0_79/jre
export PATH=$PATH:/opt/jdk1.7.0_79/bin:/opt/jdk1.7.0_79/jre/bin
export R_LIBS_USER=~/Rlibrary
# install local R packages
R -e 'install.packages(c("RCurl","jsonlite","statmod","devtools","roxygen2","testthat"), dependencies=TRUE, repos="http://cran.rstudio.com/")'
cd
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
# Build H2O
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build -x test
Para iniciar el clúster H2O localmente, ejecute lo siguiente en la línea de comando:
java -jar build/h2o.jar
Una lista de las opciones de inicio JVM y H2O disponibles (por ejemplo, -Xmx
, -nthreads
, -ip
) está disponible en la Guía del usuario de H2O.
Los archivos zip prediseñados de H2O-on-Hadoop están disponibles en la página de descarga. Cada versión de distribución de Hadoop tiene un archivo zip independiente en h2o-3.
Para compilar H2O con soporte de Hadoop usted mismo, primero instale sphinx para python: pip install sphinx
Luego comience la compilación ingresando lo siguiente desde el directorio h2o-3 de nivel superior:
export BUILD_HADOOP=1;
./gradlew build -x test;
./gradlew dist;
Esto creará un directorio llamado 'destino' y generará archivos zip allí. Tenga en cuenta que BUILD_HADOOP
es el comportamiento predeterminado cuando el nombre de usuario es jenkins
(consulte settings.gradle
); de lo contrario deberá solicitarlo, como se muestra arriba.
Para compilar los archivos zip solo para distribuciones seleccionadas, use la variable de entorno H2O_TARGET
junto con BUILD_HADOOP
, por ejemplo:
export BUILD_HADOOP=1;
export H2O_TARGET=hdp2.5,hdp2.6
./gradlew build -x test;
./gradlew dist;
En el directorio h2o-hadoop
, cada versión de Hadoop tiene un directorio de compilación para el controlador y un directorio de ensamblaje para fatjar.
Necesitas:
build.gradle
) en h2o-hadoop
h2o-3/settings.gradle
HADOOP_VERSIONS
en make-dist.sh
h2o-dist/buildinfo.json
Hadoop admite la suplantación segura de usuarios a través de su API de Java. A un usuario autenticado por Kerberos se le puede permitir representar cualquier nombre de usuario que cumpla con los criterios especificados ingresados en el archivo core-site.xml del NameNode. Esta suplantación solo se aplica a las interacciones con la API de Hadoop o las API de los servicios relacionados con Hadoop que la admiten (esto no es lo mismo que cambiar a ese usuario en la máquina de origen).
Configurar la suplantación segura de usuarios (para h2o):
hadoop.proxyuser.<proxyusername>.hosts
: los hosts desde los cuales el usuario proxy puede realizar acciones suplantadas en nombre de un usuario válido.hadoop.proxyuser.<proxyusername>.groups
: los grupos a los que debe pertenecer un usuario suplantado para que la suplantación funcione con ese usuario proxyhadoop.proxyuser.<proxyusername>.users
: los usuarios que un usuario proxy puede suplantar<property> <name>hadoop.proxyuser.myproxyuser.hosts</name> <value>host1,host2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.groups</name> <value>group1,group2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.users</name> <value>user1,user2</value> </property>
Las acciones de HDFS suplantadas se pueden ver en el registro de auditoría de hdfs ('auth:PROXY' debe aparecer en el campo ugi=
en las entradas donde esto corresponda). De manera similar, YARN debería mostrar 'auth:PROXY' en algún lugar de la interfaz de usuario del Administrador de recursos.
Para utilizar la suplantación segura con el controlador Hadoop de h2o:
Antes de intentar esto, consulte Riesgos de suplantación de identidad, a continuación.
Cuando utilice h2odriver (por ejemplo, cuando se ejecute con hadoop jar ...
), especifique -principal <proxy user kerberos principal>
, -keytab <proxy user keytab path>
y -run_as_user <hadoop username to impersonate>
, además de cualquier otro argumentos necesarios. Si la configuración fue exitosa, el usuario proxy iniciará sesión y se hará pasar por -run_as_user
siempre que ese usuario esté permitido por la propiedad de configuración de usuarios o grupos (configurada anteriormente); esto lo aplican HDFS e YARN, no el código de h2o. El controlador establece efectivamente su contexto de seguridad como el usuario suplantado, de modo que todas las acciones admitidas de Hadoop se realizarán como ese usuario (por ejemplo, YARN, las API de HDFS admiten usuarios suplantados de forma segura, pero es posible que otras no).
hadoop.proxyuser.<proxyusername>.hosts
siempre que sea posible o práctico.su
, por ejemplo).hadoop.proxyuser.<proxyusername>.{hosts,groups,users}
en '*' puede aumentar considerablemente la exposición al riesgo de seguridad. $ git diff
diff --git a/h2o-app/build.gradle b/h2o-app/build.gradle
index af3b929..097af85 100644
--- a/h2o-app/build.gradle
+++ b/h2o-app/build.gradle
@@ -8,5 +8,6 @@ dependencies {
compile project(":h2o-algos")
compile project(":h2o-core")
compile project(":h2o-genmodel")
+ compile project(":h2o-persist-hdfs")
}
diff --git a/h2o-persist-hdfs/build.gradle b/h2o-persist-hdfs/build.gradle
index 41b96b2..6368ea9 100644
--- a/h2o-persist-hdfs/build.gradle
+++ b/h2o-persist-hdfs/build.gradle
@@ -2,5 +2,6 @@ description = "H2O Persist HDFS"
dependencies {
compile project(":h2o-core")
- compile("org.apache.hadoop:hadoop-client:2.0.0-cdh4.3.0")
+ compile("org.apache.hadoop:hadoop-client:2.4.1-mapr-1408")
+ compile("org.json:org.json:chargebee-1.0")
}
Sparkling Water combina dos tecnologías de código abierto: Apache Spark y la plataforma H2O Machine Learning. Hace que la biblioteca de algoritmos avanzados de H2O, incluidos Deep Learning, GLM, GBM, K-Means y Distributed Random Forest, sea accesible desde los flujos de trabajo de Spark. Los usuarios de Spark pueden seleccionar las mejores funciones de cualquiera de las plataformas para satisfacer sus necesidades de aprendizaje automático. Los usuarios pueden combinar la API RDD de Spark y Spark MLLib con los algoritmos de aprendizaje automático de H2O, o usar H2O independientemente de Spark para el proceso de construcción del modelo y postprocesar los resultados en Spark.
Recursos de agua con gas :
La documentación principal de H2O es la Guía del usuario de H2O. Visite http://docs.h2o.ai para obtener una introducción de alto nivel a la documentación sobre proyectos de H2O.
Para generar la documentación de la API REST, utilice los siguientes comandos:
cd ~/h2o-3
cd py
python ./generate_rest_api_docs.py # to generate Markdown only
python ./generate_rest_api_docs.py --generate_html --github_user GITHUB_USER --github_password GITHUB_PASSWORD # to generate Markdown and HTML
La ubicación predeterminada para la documentación generada es build/docs/REST
.
Si la compilación falla, intente gradlew clean
y luego git clean -f
.
La documentación para cada compilación nocturna de vanguardia está disponible en la página de compilación nocturna.
Si utiliza H2O como parte de su flujo de trabajo en una publicación, cite su(s) recurso(s) de H2O utilizando la siguiente entrada de BibTex:
@Manual{h2o_package_or_module,
title = {package_or_module_title},
author = {H2O.ai},
year = {year},
month = {month},
note = {version_information},
url = {resource_url},
}
Ejemplos de citas formateadas del software H2O :
Los folletos del algoritmo H2O están disponibles en la página de inicio de documentación.
@Manual{h2o_booklet_name,
title = {booklet_title},
author = {list_of_authors},
year = {year},
month = {month},
url = {link_url},
}
Ejemplos de citas de folletos formateados :
Arora, A., Candel, A., Lanford, J., LeDell, E. y Parmar, V. (octubre de 2016). Aprendizaje profundo con H2O . http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/DeepLearningBooklet.pdf.
Click, C., Lanford, J., Malohlava, M., Parmar, V. y Roark, H. (octubre de 2016). Modelos potenciados por gradiente con H2O . http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/GBMBooklet.pdf.
H2O ha sido creado por un gran número de contribuyentes a lo largo de los años, tanto dentro de H2O.ai (la empresa) como en la comunidad de código abierto en general. Puede comenzar a contribuir a H2O respondiendo preguntas de Stack Overflow o presentando informes de errores. ¡Únase a nosotros!
SriSatish Ambati
Cliff Click
Tom Kraljevic
Tomas Nykodym
Michal Malohlava
Kevin Normoyle
Spencer Aiello
Anqi Fu
Nidhi Mehta
Arno Candel
Josephine Wang
Amy Wang
Max Schloemer
Ray Peck
Prithvi Prabhu
Brandon Hill
Jeff Gambera
Ariel Rao
Viraj Parmar
Kendall Harris
Anand Avati
Jessica Lanford
Alex Tellez
Allison Washburn
Amy Wang
Erik Eckstrand
Neeraja Madabhushi
Sebastian Vidrio
Ben Sabrin
Matt Dowle
Mark Landry
Erin LeDell
Andrey Spiridonov
Oleg Rogynskyy
Nick Martin
Nancy Jordan
Nishant Kalonia
Nadine Hussami
Jeff Cramer
Stacie Spreitzer
Vinod Iyengar
Charlene Windom
Parag Sanghavi
Navdeep Gill
Lauren DiPerna
Anmol Bal
Mark Chan
Nick Karpov
Avni Wadhwa
Ashrith Barthur
Karen Hayrapetyan
Jo-fai Chow
Dmitry Larko
Branden Murray
Jakub Hava
Wen Phan
Magnus Stensmo
Pasha Stetsenko
Angela Bartz
Mateusz Dymczyk
Micah Stubbs
Ivy Wang
Terone Ward
Leland Wilkinson
Wendy Wong
Nikhil Shekhar
Pavel Pscheidl
Michal Kurka
Veronika Maurerova
Jan Sterba
Jan Jendrusak
Sebastien Poirier
Tomáš Frýda
Ard Kelmendi
Yuliia Syzon
Adam Valenta
Marek Novotny
Zuzana Olajcova
Consejo Asesor Científico
Stephen Boyd
Rob Tibshirani
Trevor Hastie
Sistemas, Datos, Sistemas de Archivos y Hadoop
Doug Lea
Chris Pouliot
Dhruba Borthakur
Jishnu Bhattacharjee, Nexus Venture Partners
Anand Babu Periasamy
Anand Rajaraman
Ash Bhardwaj
Rakesh Mathur
Michael Marks
Egbert Bierman
Rajesh Ambati