[37選]機械学習ライブラリやフレームワークは? 国内AI活用サービスのアーキテクチャを大調査!
Webのアーキテクチャ大調査の第二弾は「AI活用サービス」編。プログラミング言語や機械学習のライブラリをはじめ、フレームワークやツールの選定・設計もサービスによって異なります。ぜひ参考にしてください。
2017年4月に掲載したアーキテクチャ大調査の第二弾! 今回は、人工知能(機械学習、深層学習、画像処理など)を活用したWebサービス・アプリを提供しているベンチャーを中心に、36のサービスで使用されているプログラム言語やフレームワーク、その他さまざまな開発ツールなどをヒアリングのうえまとめました。選定理由を記述いただいた12のサービスでは、それもあわせて紹介しています。
前回との違いは、当然ですがTensorFlowやKerasといった機械学習のライブラリが挙げられていること。また、技術領域もHR、教育、医療、不動産など幅広い応用分野にわたっており、さまざまな面で参考になるでしょう。
- 画像解析(写真・イラスト):#CBK scnnr、アイビスペイント、ゲリラ雷雨スカウター(AR)
- 情報:Robot Translator、FASTALERT、SuperFace、SilentLog Analytics
- 医療・教育・農業:メディカル革命、Qubena、Farmnote color
- チャットボット:ChatBook、Rebot、QA Engine、OK SKY、My-ope office、CotoGoto、Airi
- 営業支援:ノマドクラウド、sansan、Eight
- 不動産・投資:ぶっかくん、Gate.、Renosy(投資版)、HowMa、THEO[テオ]、MYDC
- マーケティング:AI Messenger、ZenClerk、MAJIN
- HR(Human Resources):mitsucari適性検査、GLIT、scouty、No Re:suke(ノリスケ)
- マッチング:yenta、Serendipity
- Web解析:SiTest、にてるのあつめ ウェブ
画像解析(写真・イラスト)
#CBK scnnr
#CBK scnnr(カブキスキャナー) - ファッションスナップを解析する人工知能(scnnr.cubki.jp)
プログラミング言語 | Python 3.6.3, Golang 1.9.1 |
---|---|
ライブラリ | TensorFlow 1.3.0, Sonnet 1.13 |
インフラ | AWS(ECS, EC2, S3, ElastiCache, ELB, API Gateway, SQS, Kinesisなど), 社内サーバ |
Webサーバ | なし(静的ページはS3から直接配信) |
APサーバ | Golang(net/http, graceful, go-swagger) |
サーバOS | Linux(Ubuntu 16.04) |
DB | S3, Redis 3.2 |
CI/CDツール | CircleCI |
各種ツール | Docker |
§
アイビスペイント
アイビスペイント - みんなの「書いてみた」を実現する楽しいお絵かきアプリ(ibispaint.com)
プログラミング言語 | Java |
---|---|
インフラ | AWS |
Webサーバ | Apache Tomcat |
APサーバ | Apache Tomcat |
サーバOS | Linux |
DB | MySQL |
§
ゲリラ雷雨スカウター(AR)
ゲリラ雷雨スカウター(AR) - 最新AR技術で危険な雲を可視化(weathernews.jp)
※スマホアプリ「ウェザーニュースタッチ」専用機能
プログラミング言語 | C(アプリ部分はJavaおよびObjective-C) |
---|---|
フレームワーク | すべて自作(自作の機械学習、教師データを適宜アップデート) |
インフラ | 自社サーバ(Webサーバとアプリケーションサーバ) |
Webサーバ | Apache |
APサーバ | 自作APIフレームワーク |
プロキシ | nginx |
サーバOS | FreeBSD |
DB | すべて自作 |
§
情報
Robot Translator
RobotTranslator - 45言語を駆使してロボットが言語を使い分ける翻訳ロボットクラウド(headwaters.co.jp)
プログラミング言語 | PHP, C#, Ruby |
---|---|
ロボット | Java, Python |
フレームワーク | CodeIgniter, .Net Framework |
インフラ | Microsoft Azure, さくらのクラウド |
Webサーバ | nginx, Azure Cloud Services(IIS) |
IoTプラットフォーム | Azure IoT Hub |
APサーバ | Azure App Service(IIS), Apache(mod_php) |
サーバOS | Windows Server, CentOS |
DB | SQL Database |
CI/CDツール | Jenkins |
各種ツール | Visual Studio, Choregraphe, Android Studio, GitLab, Docker, ChatWork, Application Insights, Backlog |
§
FASTALERT
FASTALERT - AI速報検知システムで報道機関クラスの情報収集を低コストで実現(fa.xwire.jp)
プログラミング言語 | Python 3.6, JavaScript |
---|---|
ライブラリ | TensorFlow, PyTorch, scikit-learn, Pandas, Jupyter |
フレームワーク | Django, React |
インフラ | AWS(ECS, Lambda) |
Webサーバ | uWSGI |
プロキシ | nginx |
サーバOS | Amazon Linux |
DB | MySQL, Aurora, Redis |
CI/CDツール | GitLab CI |
各種ツール | Slack, Redash, GitLab CE, Qiita:Team, HackMD |
FASTALERTはなぜこのアーキテクチャを選んだのか?
インフラは保守コストの削減のためAWS(ECS、Lambdaなど)を、サーバサイドのフレームワークには社内で多くの採用実績があるDjangoを使っています。 フロントエンドは、リアルタイムな災害情報の配信のため、React+Reduxを使ってSPA(Single-Page-Application)を構築しています。
災害情報の解析のため、TensorFlowやPyTorchなどスタンダードな機械学習フレームワーク・ライブラリを採用し、目的に応じた使い分けを行っています。 また、すべてのレイヤーでDocker化しており、開発環境のセットアップや本番環境の管理コストの最小化を目指しています。
§
SuperFace
SuperFace - AI人物認識次世代受付システム(tokyo.supersoftware.co.jp/product/superface)
プログラミング言語 | Python |
---|---|
ライブラリ | TensorFlow |
インフラ | AWS |
Webサーバ | uWSGI+nginx |
APサーバ | Flask |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Git, CircleCI |
§
SilentLog Analytics
SilentLog Analytics - 位置情報分析プラットフォーム(rei-frontier.jp)
プログラミング言語 | Ruby, Python, Scala |
---|---|
ライブラリ | Chainer, TensorFlow, Keras, scikit-learn, MLlib(Apache Spark) |
フレームワーク | Ruby on Rails |
インフラ | さくらインターネット, AWS, その他 |
Webサーバ | nginx, Apache |
APサーバ | Unicorn, Apache Spark |
サーバOS | CentOS |
DB | Elasticsearch, MongoDB, MySQL |
CI/CDツール | Apache Airflow |
各種ツール | Apache Spark, Bitbucket, Slack, Chef, Capistrano, Fluentd, New Relic, Mackerel |
SilentLog Analyticsはなぜこのアーキテクチャを選んだのか?
スマートフォンおよびIoTデバイスより収集された、大量の各種GPS情報、およびセンサー情報を分析処理に流すため、データフロー定義、分散処理を行う必要があります。 効率的に大量データを処理するため、Fluentd、Airflow、Sparkなどを活用しています。
§
医療・教育・農業
メディカル革命
メディカル革命 - AI搭載の医院予約管理システム(medical-reserve.co.jp)
プログラミング言語 | PHP, Python, JavaScript, HTML5 |
---|---|
ライブラリ | Amazon Machine Learning |
フレームワーク | CodeIgniter, React |
インフラ | Amazon EC2, Azure |
Webサーバ | Apache |
サーバOS | CentOS |
DB | MySQL |
各種ツール | memcached, Amazon S3, CloudFront, Vagrant |
§
Qubena
Qubena, Qubena Wiz - 人工知能が教えるオンライン家庭教師(wiz.qubena.com)
プログラミング言語 | Java, Swift, Python, JavaScript, HTML, CSS |
---|---|
フレームワーク | Django, React, Node.js |
インフラ | AWS(EC2, RDS, Route53, S3, Lambda, API Gateway) |
Webサーバ | nginx |
APサーバ | uWSGI |
サーバOS | Red Hat Enterprise Linux |
DB | Aurora, MySQL |
CI/CDツール | Jenkins |
各種ツール | Slack, Hubot, Redmine, GitHub |
Qubenaはなぜこのアーキテクチャを選んだのか?
AndroidとiOSは、それぞれネイティブで開発しています。 フレームワークとしては、データ分析との親和性を考慮し、Pythonで動作するdjangoを用いています。 インフラとしては、サーバレスでの処理実現のためにLambda、API Gatewayを一部用いています。 また、SlackとHubotを利用したソースコード運用を行なっています。
§
Farmnote color
Farmnote Color - 牛の発情・疾病検知を人工知能で。(farmnote.jp)
プログラミング言語 | Golang, Scala, Java, Python, Clang, R |
---|---|
フレームワーク | Apache Spark, Apache Beam |
インフラ | AWS, GCP |
Webサーバ | AWS, GCP |
CI/CDツール | Jenkins |
各種ツール | Digdag, Fluentd |
§
チャットボット
ChatBook
ChatBook - マーケティングやインサイドセールス向けのチャットボット簡単作成(chatbook.ai)
プログラミング言語 | Python 3, AngularJS |
---|---|
ライブラリ | Facebook NLP, NLTK, API.AI(Dialogflow) |
フレームワーク | Django |
インフラ | AWS(EC2, RDS, S3, Lambda, API Gateway, SQS, SNS, Route53), Docker, Heroku |
Webサーバ | nginx |
APサーバ | Apache |
プロキシ | nginx |
サーバOS | Linux |
DB | PostgresDB, DynamoDB |
CI/CDツール | CircleCI, AWS Elastic Beanstalk |
各種ツール | Facebook Messenger API, Bugsnag, Celery, Bitbucket, Slack |
ChatBookはなぜこのアーキテクチャを選んだのか?
ChatBookの一部の処理は、サーバレスアーキテクチャのAPI Gateway, SQS, Lambdaを利用しています。 制約のあるFacebookのMessenger APIにも対応しながら、高負荷にも耐えられるチャットシステムを低コストで実現しています。 Dockerは、Facebookアプリに対応したローカル・テスト環境を、Herokuはステージング環境を整えています。 最近、GitHubからBitbucketに移行しました。
§
Rebot
Rebot - AIによる自動応答チャットサービス(rebot.jp)
プログラミング言語 | Python |
---|---|
フレームワーク | Django |
インフラ | AWS(EC2, RDS, DynamoDB, S3, Lambda, API Gateway) |
Webサーバ | Apache |
APサーバ | WSGI |
サーバOS | CentOS |
DB | MySQL |
各種ツール | GitHub |
Rebotはなぜこのアーキテクチャを選んだのか?
Pythonは機械学習や自然言語処理系のライブラリが豊富にあるために選択しました。 インフラは、コストをかけずにスケーラブルな構成ができるよう、AWSのさまざまなサービスを組み合わせて構築しています。
§
QA Engine
QA Engine - 人工知能を用いた質問応答システム(qaengine.ai)
プログラミング言語 | すべてPythonで開発しており、Cythonを用いて一部のPython実装をCに変換することで高速化 |
---|---|
ライブラリ | PyTorch, Theano, Keras, scikit-learn, Gensim, Hyperopt, Joblib, NumPy, SciPy, marisa-trieなど |
フレームワーク | 一部にBottleやFlaskなどの軽量なウェブフレームワークを使用 |
インフラ | AWSのサービスを広範に使用 |
Webサーバ APサーバ プロキシ |
主要なサービスはAmazon Elastic Beanstalkを用いてDocker化したコンテナとしてデプロイしている(それ以外はAWSの仕様に準ずる) |
サーバOS | 主にUbuntuを使用 |
DB | RDS, Redshift |
CI/CDツール | CircleCI |
その他 | 自社オリジナルのツールをPythonのオープンソースとしても公開 |
§
OK SKY
OK SKY - 顧客化を加速させるWeb接客ソリューション(ok-sky.jp)
プログラミング言語 | Ruby, Python, Scala |
---|---|
ライブラリ | Chainer, TensorFlow |
フレームワーク | Ruby on Rails, PredictionIO |
インフラ | Heroku(stack: heroku-16), AWS, GCP, IBM Bluemix |
プロキシ | QuotaGuard |
DB | PostgreSQL 9.5.4 |
CI/CDツール | HerokuCLI, Gemnasium, CircleCI, Code Climate |
Front end系 | React, Redux |
Back end系 | Ruby on Rails 5.1, Ruby 2.3 |
インフラ系 | Heroku, PostgreSQL 9.5.4, Redis 3.2.4, memcached(MemCachier), SSL/TLS, SendGrid, New Relic, Deploy Hooks, Elasticsearch 5.4.3(Bonsai), Papertrail |
§
My-ope office
My-ope office - 社内問い合わせ対応専用人工知能チャットボット(my-ope.net)
プログラミング言語 | Ruby, Python 3系 |
---|---|
ライブラリ | scikit-learn, Gensim |
フレームワーク | Ruby on Rails, React |
インフラ | AWS(EC2, RDS, S3, Lambda) |
Webサーバ | nginx |
APサーバ | Unicorn |
プロキシ | nginx |
サーバOS | Amazon Linux |
DB | MySQL, Elasticsearch |
CI/CDツール | CircleCI |
各種ツール | GitHub, Slack, Pivotal Tracker, Docker, Ansible, Dropbox Paper |
§
CotoGoto
CotoGoto - 毎日の会話から作業内容を記録する(cotogoto.ai)
プログラミング言語 | Java, JavaScript |
---|---|
ライブラリ | Deeplearning4J, MeCab, CaboCha |
フレームワーク | Apache Struts 2, Google Guice 4 |
インフラ | Windows Azure |
Webサーバ | Azure Portalで公開 |
APサーバ | Apache Tomcat 7 |
サーバOS | Windows Server 2012 |
DB | MySQL, MongoDB |
各種ツール | ProjectLocker, JobScheduler |
§
ウェザーロイド Airi
ウェザーロイド Airi - アンドロイド系お天気お姉さん(weathernews.jp)
プログラミング言語 | Perl(人工知能には向かない言語ですが、フレームワークを含めすべて自作) |
---|---|
フレームワーク | すべて自作 |
インフラ | 自社サーバ(Webサーバとアプリケーションサーバ) |
Webサーバ | Apache |
APサーバ | 自作APIフレームワーク |
サーバOS | FreeBSD |
DB | すべて自作 |
各種ツール | 原則としてすべて自作 |
§
営業支援
ノマドクラウド
ノマドクラウド - 不動産仲介の顧客管理と営業支援のクラウドシステム(property.nomad-a.jp)
プログラミング言語 | Ruby, CoffeeScript, Scala, Python |
---|---|
フレームワーク | Ruby on Rails, Akka HTTP |
インフラ | AWS(Lambda, SQS) |
Webサーバ | nginx |
APサーバ | Unicorn |
プロキシ | ELB |
サーバOS | Amazon Linux |
DB | MySQL, Aurora |
CI/CDツール | CircleCI 2.0 |
各種ツール | GitHub, Slack, New Relic, Datadog, Redash, Chef, StatusCake |
§
sansan
Sansan - 法人向けクラウド名刺管理サービス(jp.sansan.com)
プログラミング言語 | C, C++, C#, Python, R, その他自由に課題に最適なもの(Golangなど) |
---|---|
Webアプリ フレームワーク |
.Net Framework(C#), WSGI(Python), Django, Shiny(R) |
ライブラリ | Jubatus, Keras, XGBoost, scikit-learnなど(機械学習) OpenCV, IPP, OpenCvSharp(画像処理) |
データ可視化 | Tableau, Redash, Plotly |
その他 | MeCab(NEologd, UniDicなど), Solr |
インフラ | AWS |
Webサーバ | IIS, Apache, Apache Tomcat |
サーバOS | Windows Server 2016, Ubuntu 16 |
DB | CloudSearch, S3, DynamoDB, Redshift, PostgreSQL(Amazon RDS) |
CI/CDツール | Jenkins |
統合開発環境 | Visual Studio, PyCharm, RStudio |
ソースコード管理 | GitHub |
監視 | Mackerel, OpsGenie |
コミュニケーション | Slack, Zoom, Google Meet |
ドキュメント | Qiita:Team, Google Docs |
§
Eight
Eight - 100万人が使う名刺アプリ(8card.net)
プログラミング言語 | C, C++, C#, Python, R, その他自由に課題に最適なもの(Golangなど) |
---|---|
Webアプリ フレームワーク |
.Net Framework(C#), WSGI(Python), Django, Shiny(R) |
ライブラリ | Jubatus, Keras, XGBoost, scikit-learnなど(機械学習) OpenCV, IPP, OpenCVSharp(画像処理) |
データ可視化 | tableau, Redash, plotly |
その他 | MeCab(NEologd, Unidicなど), Solr |
インフラ | AWS |
Webサーバ | IIS, Apache, Apache Tomcat |
サーバOS | Windows Server 2016, Ubuntu 16 |
DB | CloudSearch, S3, DynamoDB, Redshift, PostgreSQL(Amazon RDS) |
CI/CDツール | Jenkins |
統合開発環境 | Visual Studio, PyCharm, RStudio |
ソースコード管理 | GitHub |
監視 | Mackerel, OpsGenie |
コミュニケーション | Slack, Zoom, Google Meet |
ドキュメント | Qiita:Team, Google Docs |
§
不動産・投資
ぶっかくん
ぶっかくん - 物件確認(物確)電話の自動応答システム(bukkakun.com)
プログラミング言語 | Ruby, CoffeeScript, Python |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | Unicorn |
プロキシ | ALB |
サーバOS | Amazon Linux |
DB | MySQL |
CI/CDツール | CircleCI |
各種ツール | GitHub, Slack, New Relic, Datadog, Redash, Chef, Status Cake |
§
Gate.
Gate. - AIとビッグデータによる不動産の将来価値推移の分析・査定(gate.estate)
プログラミング言語 | Python, CoffeeScript |
---|---|
フレームワーク | Flask, AngularJS |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | uWSGI |
プロキシ | nginx, HAProxy |
サーバOS | Ubuntu |
DB | MongoDB, Redis |
CI/CDツール | CircleCI |
各種ツール | GitHub, Slack, New Relic, Ansible |
§
Renosy(投資版)
Renosy(投資版) - 次世代インテリジェント不動産投資(renosy.com)
プログラミング言語 | Ruby, Swift, Kotlin |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | Puma |
サーバOS | Amazon Linux |
DB | PostgreSQL |
CI/CDツール | CircleCI, Jenkins |
各種ツール | GitHub |
§
HowMa
HowMa - 自宅をネットで自動査定 全国不動産相場(how-ma.com)
プログラミング言語 | Ruby, Scala, JavaScript |
---|---|
フレームワーク | Ruby on Rails, Apache Spark |
インフラ | AWS(EC2, RDS, EMR) |
Webサーバ | nginx |
APサーバ | Unicorn |
プロキシ | Cloudflare |
サーバOS | Amazon Linux |
DB | Amazon Aurora |
CI/CDツール | CircleCI / Capistrano |
各種ツール | Slack, Bitbucket, G Suite |
§
THEO[テオ]
THEO - ロボアドバイザーで、おまかせ資産運用(theo.blue)
プログラミング言語 | 柔軟に採用(下記コメント参照) |
---|---|
ライブラリ | Google Cloud ML Engine |
フレームワーク | Spring Boot(Web), Ruby on Rails(バックエンド), Vue.js(Web), Firebase, Dagger, gRPC, Clean Architecture(iOS/Androidアプリの設計方針), Reactive Extensions |
インフラ | Kubernetes(AWS上にクラスタを構築) |
Webサーバ | h2o 2.2.x, nginx |
APサーバ | Armeria, Puma, gRPC(ArmeriaおよびGolang) |
プロキシ | h2o 2.2.x, nginx, HAProxy |
サーバOS | CoreOS, Debian GNU/Linux |
DB | MySQL(Aurora), PostgreSQL, MS SQL Server, Google BigQuery, AWS Athena |
CI/CDツール | CircleCI, Digdag |
各種ツール | GitHub, Slack, Kibela, Workplace by Facebook, Datadog, Sentry, JIRA, Dialpad, glide, Gradle, webpack, gulp, Digdag, SendGrid, IntelliJ IDEA, GoLand, Ruboty, Codenize.tools, Docker(Kubernetesなので基本的にすべてDocker), Xcode 9.1, Android Studio 3.0, Zeplin, Prott |
THEOはなぜこのアーキテクチャを選んだのか?
まず、どこよりもモダンな技術を使う金融機関でありたいというエンジニアの共通認識があります。基本的に新しい技術は積極的に採用する方針で、プログラミング言語等は、レビューできる人が社内に2人以上配置され、かつ採用箇所のリスク許容度に応じて、柔軟に採用しています。インフラ面は、少人数のSREで管理しているので、極力自動化できるように、GitHub Flowでレビューを可能にし、コードで管理できるものを採用しています。
MYDC
MYDC - 話題の個人型確定拠出年金(iDeCo)をアプリで(mydc.life)
プログラミング言語 | 柔軟に採用(下記コメント参照) |
---|---|
ライブラリ | Google Cloud ML Engine |
フレームワーク | React, Redux(Web), React Native(アプリ), Firebase, Dagger, gRPC, Clean Architecture(iOS/Androidアプリの設計方針), Reactive Extensions |
インフラ | Kubernetes(Google Kubernetes Engine上にクラスタを構築) |
Webサーバ | h2o 2.2.x, nginx |
APサーバ | Armeria, Puma, gRPC(ArmeriaおよびGolang) |
プロキシ | h2o 2.2.x, nginx, HAProxy |
サーバOS | CoreOS, Debian GNU/Linux |
DB | MySQL(Aurora), PostgreSQL, MS SQL Server, Google BigQuery, AWS Athena |
CI/CDツール | CircleCI, Digdag |
各種ツール | GitHub, Slack, Kibela, Workplace by Facebook, Datadog, Sentry, JIRA, Dialpad, glide, Gradle, webpack, gulp, Digdag, SendGrid, IntelliJ IDEA, GoLand, Ruboty, Codenize.tools, Docker(K8sなので基本的にすべてDocker), Xcode 9.1, Android Studio 3.0, Zeplin, Prott |
MYDCはなぜこのアーキテクチャを選んだのか?
まず、どこよりもモダンな技術を使う金融機関でありたいというエンジニアの共通認識があります。基本的に新しい技術は積極的に採用する方針で、プログラミング言語等は、レビューできる人が社内に2人以上配置され、かつ採用箇所のリスク許容度に応じて、柔軟に採用しています。インフラ面は、少人数のSREで管理しているので、極力自動化できるように、GitHub Flowでレビューを可能にし、コードで管理できるものを採用しています。
マーケティング
AI Messenger
AI Messenger - 人工知能を活用したチャットボットサービス(ai-messenger.jp)
プログラミング言語 | Scala, TypeScript, JavaScript, Python, Golang, Kotlin, Swift, Objective-C, Rust, Haskell, Bash, Ruby |
---|---|
ライブラリ | scikit-learn, Gensim, Falcon |
フレームワーク | React, Riot, RxJS, webpack, Immutable.js, Firebase JS SDK, styled-components, Finagle, Finch |
インフラ | GCP |
Webサーバ | nginx |
APサーバ | Netty, Node.js, Gunicorn |
プロキシ | nginx |
サーバOS | Container-Optimized OS, Alpine Linux |
DB | Cloud SQL, Firebase Realtime Database, Cloud Bigtable, Cloud Datastore |
CI/CDツール | Shippable |
各種ツール | Kubernetes, Docker, Elasticsearch, Fluentd, Kibana, Ansible, BigQuery, Container Registry, Google Cloud Dataflow, Stackdriver |
AI Messengerはなぜこのアーキテクチャを選んだのか?
プロダクションはScala、TypeScript、Python、Objective-C、Kotlinですが、内部ツールは割と自由に好きな言語で書いています。
§
ZenClerk
ZenClerk, ZenClerk Lite - ECサイトの販促・接客・クーポン配信 AI搭載(zenclerk.com)
プログラミング言語 | JavaScript, CoffeeScript, Ruby, Python |
---|---|
ライブラリ | PyTorch, Jupyter |
フレームワーク | Vue.js, AngularJS, Ruby on Rails |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | Node.js |
サーバOS | Ubuntu |
DB | GraphQL, MySQL, MongoDB, Redshift, Redis |
CI/CDツール | CircleCI |
各種ツール | Aurora, GitHub, Slack, DocBase, Kibana, Errbit, socket.io |
§
MAJIN
MAJIN - マーケティングオートメーション(ma-jin.jp)
プログラミング言語 | Python 3.5, Golang 1.9, Scala 2.10, Nightly Rust, PHP 7, Java 8, Objective-C |
---|---|
フレームワーク | Flask 0.10.1, Symfony 3, Vue.js 2 |
インフラ | AWS, オンプレミス |
Webサーバ | Apache, nginx 1.10.1 |
APサーバ | uWSGI 2.0.12 |
サーバOS | Debian 8 |
DB | Amazon RDS(MySQL), Amazon DynamoDB, Amazon ElastiCache(Redis), Aerospike, Apache HBase, Athena |
CI/CDツール | Jenkins, Drone.io |
各種ツール | Slack, Docker, Fluentd, Firebase, RabbitMQ, Apache Flinkなど |
MAJINはなぜこのアーキテクチャを選んだのか?
インフラは、MAJIN導入クライアントの規模によって負荷の増減が激しいため、AWSによるスケーラブルな構成になっています。一部のデータは主力事業のアドプラットフォームと連携するため、オンプレミスのサーバへ転送して機械学習などに活用しています。
言語やミドルウェアは、実現したい機能と解決したい問題に合わせて適材適所で使い分けていますが、ほぼすべての機能を一つのリポジトリにまとめるMono-Reposを採用しており、複数言語のプロジェクトに対してもDocker+Drone.ioによる自動結合テストにより、安全かつ安定したデリバリーと保守性を実現しています。
最新のアーキテクチャや技術を採用できる文化があり、エンジニアに裁量権があります。最新のアーキテクチャや技術と事業とのバランスをとりながら進めています。
§
HR(Human Resources)
mitsucari適性検査
mitsucari適性検査 - 採用前にミスマッチが見えるクラウド適性検査(mitsucari.com)
プログラミング言語 | Ruby 2.4.1, Python 2.7.13 |
---|---|
ライブラリ | scikit-learn 0.18.1 |
フレームワーク | Ruby on Rails 5.1.2 |
インフラ | Heroku |
APサーバ | Puma 3.10.0 |
サーバOS | Ubuntu 14.04 |
DB | PostgreSQL 9.5.3 |
§
GLIT
GLIT - カジュアルに出会えるリクルーティングサービス(glit.io)
プログラミング言語 | JavaScript, Ruby, Python |
---|---|
フレームワーク | React, React Native, Express, Ruby on Rails |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | Puma |
サーバOS | Ubuntu |
DB | Amazon Aurora |
CI/CDツール | DeployGate, Bitrise |
各種ツール | GitHub, JIRA, Slack, Redash |
§
scouty
scouty - 日本初のAIヘッドハンティングサービス(scouty.co.jp)
プログラミング言語 | Python 3.6.2 |
---|---|
フレームワーク | Django 1.11.4 |
インフラ | AWS(Route53, ELB, ECS, RDS, DynamoDB, Lambda, S3, CloudFront, CloudWatch, SES, ElastiCache) |
Webサーバ | nginx |
APサーバ | uWSGI |
プロキシ | Squid |
サーバOS | Ubuntu, Amazon Linux |
DB | MySQL 5.6.27, DynamoDB |
CI/CDツール | CircleCI 2.0 |
各種ツール | Slack, GitHub, ZenHub, Docker, Mackerel, Trello, esa.io, Cacoo |
scoutyはなぜこのアーキテクチャを選んだのか?
Webサービスも機械学習のアルゴリズムもクローラーも、すべてPythonという一つの言語で書くことにより、バージョンアップなどの管理コストを下げています。
§
No Re:suke(ノリスケ)
NoRe:suke - 中途採用スケジュール調整チャットボット(noresuke.com)
プログラミング言語 | PHP, Javascript |
---|---|
ライブラリ | Tensorflow, BM Bluemix(Watson), Microsoft Azure Machine Learning |
フレームワーク | Vue.js, Bootstrap |
インフラ | さくらのクラウド |
WEBサーバ | Nginx |
APサーバ | Nginx |
プロキシ/th> | Nginx |
サーバOS | CentOS7 |
DB | MariaDB |
各種ツール | GitHub, Gulp, Docker, Slack, G Suite |
§
マッチング
yenta
yenta - 完全審査制AIビジネスマッチングアプリ(yenta.talentbase.io/yenta)
プログラミング言語 | Ruby, JavaScript, Swift, Android Java, Kotlin, Python |
---|---|
フレームワーク | Ruby on Rails, React, Vue.js |
インフラ | AWS |
Webサーバ | nginx |
APサーバ | Unicorn |
プロキシ | nginx |
サーバOS | Amazon Linux |
DB | MySQL, Redis |
CI/CDツール | CircleCI |
各種ツール | GitHub, Itamae, Capistrano, Mackerel, Elasticsearch, Slack, Domo, Bugsnag, Firebase, Crashlytics, New Relic |
yentaはなぜこのアーキテクチャを選んだのか?
生産性の高い開発を実現するため、基本的にRailsを用いて開発を行っています。 レコメンドやデータ処理など、状況に応じてPythonなど他の言語も柔軟に利用しています。
メンバー全員がオーナーシップを持ってプロダクト開発に臨むチームを志向しており、専任のアーキテクトは存在しません。 サービスの方向性や学習コストを鑑みつつ、メンバーが柔軟な技術選定を行えるようにしています。
§
Serendipity
Serendipity - 夢を実現するビジネスマッチングアプリ(tokyo.supersoftware.co.jp)
プログラミング言語 | Python |
---|---|
ライブラリ | TensorFlow |
インフラ | AWS |
Webサーバ | uWSGI+nginx |
APサーバ | Flask |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Git, CircleCI |
§
Web解析
SiTest
SiTest - AI搭載 ヒートマップ解析・ABテスト・EFO対策ツール(sitest.jp)
プログラミング言語 | LiveScriptなど |
---|---|
インフラ | GCPなど |
DB | Google Cloud SQLなど |
CI/CDツール | Jenkinsなど |
各種ツール | Bitbucket, DockerHubなど |
§
にてるのあつめ ウェブ
にてるのあつめ ウェブ - 人工知能を使ったWEBデザイン ギャラリー・リンク集(niteru.site)
プログラミング言語 | Python, Node.js, JavaScript |
---|---|
ライブラリ | TensorFlow, NumPy, PIL |
フレームワーク | Express, EJS |
インフラ | AWS(EC2) |
Webサーバ | nginx, Node.js(forever) |
サーバOS | Amazon Linux |
にてるのあつめ ウェブはなぜこのアーキテクチャを選んだのか?
短いコードで早く、確実に、信頼あるサービスを構築できることを重視し、各種言語・ツールを選定しています。にてるのあつめ フォトも同じ構成です。
§
おわりに
Python系の機械学習ライブラリを中心に、Google Cloud ML EngineやAmazon Machine Learningといったクラウド上の機械学習プラットフォームを利用しているサービスも見られました。
「人工知能サービス」といっても、選定アーキテクチャや設計方針はサービスによって異なります。今後のスキルアップや、自作サービスの参考にしてみてください。
【編集履歴】公開後にサービスを1つ追加して「37選」としました(2017年12月8日)
編集:薄井千春(ZINE)