Deeplearning4j (DL4J) เป็น deep learning framework ในภาษา Java ทำให้นักพัฒนาสามารถเพิ่มความสามารถด้าน deep learning ให้กับซอฟต์แวร์ได้ง่ายมากขึ้นและ DL4J ยังเป็นซอฟต์แวร์โอเพนซอร์สสามารถนำมาใช้งานได้ฟรีไม่มีค่าใช้จ่าย DL4J อยู่ภายใต้การดูแลของ Eclipse Foundation มีบริการ support แบบ commercial โดยบริษัท Skymind

DL4J แบ่งออกเป็น 2 ส่วน

  1. ETL (Extract Transform Load) ใช้ DataVec และ ND4J เป็นเครื่องมือช่วยจัดการข้อมูล
  2. Learning system ใช้ feature กระจายโหลด โดยใช้ MapReduce บน Hadoop หรือ Spark cluster

โดยทั่วไป Deep Learning ใช้ vectors หรือ tensors ในการจัดการข้อมูลเพื่อใช้ในการประมวลผล DL4J มี tensor library ชื่อ ND4J ที่ทำหน้าที่จัดการข้อมูลในอาเรย์แบบหลายมิติ (n-dimension) ซึ่ง DL4J สามารถประมวลผลได้ทั้งบน CPU และ GPU

สรุปเกี่ยวกับ DL4J

  • ทำงานบน JVM ของภาษา Java, Scala และ Clojure ได้
  • สามารถใช้ IDE อย่าง InteliJ ในการเขียนโปรแกรมได้
  • สามารถใช้เครื่องมือออนไลน์ SKIL (Skymind Inteligence Layer)
  • มี Zeppelin Notebook (Web base IDE ชื่อดังตัวหนึ่ง) เพิ่มเข้ามา เพื่ออำนวยความสะดวกในการ train AI โมเดล
  • รองรับภาษาในการเขียน deep learning ได้หลากหลายมากขึ้น ปัจจุบันรองรับภาษา Java, Scala, Clojure และ Python
  • SKIL มีรุ่น Community ที่เป็นโอเพนซอร์สให้งานได้ฟรี และรุ่น Commercial แบบมีค่าใช้จ่ายสำหรับลูกค้าองค์กร

ความแตกต่างระหว่างรุ่น Community และ Commercial เพียงแต่ Commercial จะดีกว่าดังนี้

  • รองรับการทำ Multi-Node สำหรับใช้ train model บน cluster
  • รองรับการทำ Fault tolerance, load balancing, และ leader election
  • รองรับการทำ Integration กับ application ต่างๆ เช่น Robotic Process Automation เป็นต้น

DL4J ใช้ภาษา Java และติดตั้งบน JVM ทำให้ Enterprise Software ที่พัฒนาด้วย Java สามารถเรียกใช้ ความสามารถของ Deep Learning ได้ง่ายขึ้น ไม่จำเป็นต้องเรียนรู้ภาษาใหม่ นอกจากการพัฒนาโดยใช้ภาษา Java ที่สามารถทำได้ง่ายแล้ว DL4J ยังสามารถเรียกใช้งาน model จาก Deep Learning Framework ที่มีอยู่แล้ว เช่น Keras และ Tensorflow ได้ สำหรับการติดตั้งสามารถติดตั้งบน JVM แบบ on-premise หรือการ Scale Out บน Container Service บน Cloud ได้เช่นกัน

Deep Learning ยังต้องใช้ GPU เพื่อช่วยเร่งการประมวลผลให้เร็วขึ้น แต่ DL4J สามารถทำงานได้บน CPU ที่มีชุดคำสั่ง AVX และ AVX2 (Advanced Vector Extensions) นอกจากการประมวลผลโดยใช้ CPU, GPU แล้ว DL4J ยังสามารถใช้ Hadoop และ Spark เป็นคลัสเตอร์ช่วยในการประมวลผล Deep Learning แบบกระจายได้ (Distributed Deep Learning) DL4J เหมาะสำหรับงานด้าน Image recognition, fraud detection, text mining, speech tagging, machine vision และ natural language processing

ตัวอย่าง Usecase และ Industry ที่เกี่ยวข้อง

Usecase Industry
Sound
Voice recognition UX/UI, Automotive, Security, IoT
Voice search Telecom, a Handset maker
Sentiment analysis CRM
Flaw detection (engine noise) Automotive, Aviation
Fraud detection Financial, Credit Cards
Time Series
Log analysis, Risk detection Data centers, Security, Finance
Enterprise resource planning Manufacturing, Auto, Supply chain
Predictive analytics, sensor data IoT, Smart home, Hardware manufacturer
Business and Economic analytics Finance, Accounting, Government
Recommendation engine E-commerce, Media, Social Networks
Text
Sentiment Analysis CRM, Social media, Reputation management
Augmented search, Theme detection Finance
Threat detection Social media, Govt
Fraud detection Insurance, Finance
Image
Face recognition
Image search Social media
Machine vision Automotive, aviation
Photo clustering Telecom, Handset makers
Video
Motion detection Gaming, UX, UI
Real-time threat detection Security, Airports

ข้อดี

  • ประมวลผลได้ทั้งบน CPU ที่มี AVX, AVX2 และ GPU ผ่าน CUDA
  • ติดตั้งและ scale ได้ง่ายผ่าน container service บน Cloud
  • ประมวลผลแบบ parallel อัตโนมัติ ไม่จำเป็นต้องเขียน parallel programming
  • เชื่อมต่อกับ ecosystem ของ Java ได้ train model บน Hadoop, Spark Cluster ได้
  • มี commercial support และ AI platform ให้บริการโดย Skymind จ่ายค่า subscription plan ตามต้องการ

ข้อเสีย

  • DL4J มีเครื่องมือยังไม่แพร่หลาย เน้น B2B เป็นหลัก

Comments are closed.