ニューラルネットワークに基づいて外観を評価するためのサービスのアーキテクチャの一般的な概要



前書き



こんにちは!



この記事では、ニューラルネットワークを使用してプロジェクトのマイクロサービスアーキテクチャを構築した経験を共有します。



アーキテクチャ要件について話し、さまざまな構造図を見て、完成したアーキテクチャの各コンポーネントを分析し、ソリューションの技術的指標を評価しましょう。



読書を楽しむ!



問題とその解決策について一言



– .



, , . , , .



, . 



, :





MTCNN. PyTorch, backbone ResNet34 – « / CPU»









ML , , .





ML



– -, . :



  1. – ,
  2. — Bottleneck
  3. - —
  4. () ,
  5. , ,




, .



, , Telegram API.



, , .







, Single Responsibility .



«attrai-telegram-bot»



Telegram API. 2 – . .



:



  1. , :

    • ,
  2. docker volume
  3. “to_estimate” , , , , volume
  4. – , . – , .


, , celery worker, «after_estimate», , .



“after_estimate”:



  1. – , –
  2. ,


«attrai-estimator»



celery worker , . – .



“to_estimate”:



  1. :

    1. (MTCNN)
    2. ( ResNet34)


      1. bounding boxes
  2. ()
  3. “after_estimate”, “attrai-telegram-bot”


Graylog (+ mongoDB + Elasticsearch)



Graylog — . , .



, ELK , Python. , Graylog, GELFTCPHandler graypy root logger handlers python-.



, , ELK , , Graylog. , – Kibana - Graylog.



RabbitMQ



RabbitMQ — AMQP.



Celery durable .



Redis



Redis — NoSQL , « — »



python- , - .



, Redis hashmap «telegram_user_id => », , , DoS-.





  1. Telegram
  2. «attrai-telegram-bot» Telegram API
  3. «to_estimate»
  4. «attrai-estimator» «to_estimate», «after_estimate»
  5. «attrai-telegram-bot», «after_estimate»,


DevOps



, , — DevOps



Docker Swarm



 





Docker Swarm  - , Docker Engine .



«», 2 – worker manager. (), , . .





leader manager worker



– 1 , leader manager worker. , .



, , production-, , , , ( , - - , ).



Docker Stack



«» ( docker services) docker stack



docker-compose , deploy .  



, ( N N , - , PyTorch`, )



attrai_estimator:
  image: 'erqups/attrai_estimator:1.2'
  deploy:
    replicas: 4
    resources:
      limits:
        cpus: '4'
    restart_policy:
      condition: on-failure
      …


, Redis, RabbitMQ Graylog — stateful , «attrai-estimator»,



— Kubernetes?



, Kubernetes – , Docker Swarm, user friendly , .





VDS :



  • CPU: 4 Intel® Xeon® Gold 5120 CPU @ 2.20GHz
  • RAM: 8 GB
  • SSD: 160 GB


, , , .



, , (, ), . CPU RAM .









, ,











, , — . 



, , CPU, , .



最初は記事の方が大きかったことを付け加えておきますが、長い間投稿しないように、この記事のいくつかのポイントを省略することにしました。今後の出版物でそれらに戻ります。



Telegramでボットを突くことができます-@ AttraiBot、少なくとも2020年の秋の終わりまで機能します。ユーザーデータは保存されません。元の画像も評価パイプラインの結果も保存されません。処理後にすべてが破棄されます。




All Articles