Giới thiệu Microsoft Cognitive Toolkit

Trong kỷ nguyên công nghiệp 4.0 bùng nổ về công nghệ, Deep learning đã và đang mang đến những nét đột phá. Deep learning (DL) là phạm trù nhỏ của Machine Learning, DL tập trung giải quyết các bài toán liên qua đến mạng nơ-ron nhân tạo nhằm nâng cấp công nghệ nhận diện giọng nói, thị giác máy tính hay đặc biệt là xử lý ngôn ngữ tự nhiên (NLP).

Theo Microsoft thì AI có thể được sử dụng và nghiên cứu bởi tất cả các công ty thay vì một vài công ty lớn như (Apple,Google, Baidu…). Để hỗ trợ cho developer, Microsoft đã tạo là bộ công cụ Cognitive (CNTK). Một bộ công mã nguồn mở miễn phí để cho bất cứ ai có thể sử dụng. Bộ công cụ Cognitive Network Tool Kit – CNTK là bộ công cụ khá phổ biến cùng với TensorFlow,Caffe, Theno, Torch ….

Trong hơn 20 năm, Microsoft đã đầu tư vào nghiên cứu và phát triển nhận dạng giọng nói trên các phần mềm như Windows Cortana , Skype Translator, HoloLens, Xbox và Project Oxford Speech APIs. Các nhà nghiên cứu của Microsoft đã đi tiên phong trong việc áp dụng mạng nơ ron sâu trong nhận dạng giọng nói. Vào tháng 4  năm 2015 bộ công cụ mạng tính toán (CNTK) được ra đời theo giấy phép mã nguồn mở tại Hội nghị ICASSP.

Các ứng dụng đã được Microsoft áp dụng với Cognitive Toolkit

Computational Network Toolkit (CNTK) là mã nguồn mở của Microsoft cung cấp phục vụ cho nền tảng trí tuệ nhân tạo. Đặc biệt nền tảng này được MS dùng để chat cho sản phẩm trợ lý ảo nổi tiếng của hãng Cortana. Ngoài ra, CNTK còn có khả năng xử lý dữ liệu lớn theo thời gian thực hoặc nhận diện ảnh. CNTK được thiết kế để có thể tận dụng nhiều GPU và nhiều máy tính cùng lúc nhằm tính toán nhanh hơn.

Bảng so sánh tốc độ huấn luyện Deep Neural Network giữa các bộ công cụ Cognitive Toolkit, Caffe , TensorFlow, Torch.

Cognitive Toolkit là bộ công cụ lý tưởng cho các ứng dụng:

  • Giọng nói
  • Thị giác
  • Văn bản
  • Dữ liệu kết hợp
  • Tập dữ liệu lớn.

Đặc điểm nổi bật

1. Tốc độ và khả năng mở rộng

Bộ công cụ CNTK dùng để huấn luyện và đánh giá các thuật toán học sâu (Deep Learning) nhanh hơn so với các bộ công cụ sẵn có. Với sự thử nghiệm đã cho thấy nhanh hơn và hiệu quả hơn với bộ công cụ khác khi sử dụng CPU, GPU, từ nhiều máy tính. Đặc biệt với khả năng xử lý nhanh hơn nhưng vẫn đảm bảo độ chính xác.  Theo Microsoft thì bô công cụ CNTK được xây dựng với các thuật toán phức tạp và bộ dữ liệu lớn từ Skyper , Cortana, Bing , Xbox.

2. Khả năng tương thích cao

CNTK dễ dàng sử dụng với các kiến trúc mạng sẵn có, với cả hai API cấp cao và thấp để dễ dàng sử dụng linh hoạt với các mô hình sẵn có. CNTK làm với việc ngôn ngữ C++ và Python, cho phép bạn tuỳ chỉnh bất kì thuật toán tranining nào được huấn luyện sẵn hoặc sử dụng riêng của người dùng.

3. Về mặt tốc độ huấn luyện

CNTK có lợi thế đáng kể so với các bô công cụ khác. Môt bài báo đã được công bố bởi các nhà khoa học tại Hong Kong Baptist University (https://arxiv.org/pdf/1608.07249.pdf) cho thấy rằng với tất cả mạng mà họ đã kiểm tra thì CNTK vượt trội hoàn toàn trên cả CPU và GPU.

  •  Tốc độ: CNTK có thể nhanh hơn 5-10 lần với các mạng khác.
  • Độ chính xác: CNTk có thể dung để huấn luyện các mô hình học sâu với độ chính xác cao nhất.
  • API : CNTK có API C++ rất mạnh và cũng có cả API python cao cấp khác dễ sử dụng.
  • Hiệu suất tính toán cao với Azure của MS.

Dưới đây là kết quả mà được các nhà khoa học HKBU công bố trong bài báo :

Kết quả thực nghiệm khi chạy với mạng Fully Connected Networks trên máy Tesla K80 với GPU CUDA 8.0
Kết quả thực nghiệm khi chạy với mạng Fully Connected Networks trên máy Tesla K80 với GPU CUDA 8.0
Kết quả thực nghiệm khi chạy với mạng Fully Connected Networks với máy E5-2630v4 bằng CPU
Kết quả thực nghiệm khi chạy với mạng Long short-term memory (LSTM) với máy Tesla K80 GPU CUDA 8.0
Kết quả thực nghiệm khi chạy với mạng Long short-term memory (LSTM) với máy Tesla E5-2630v4 bằng CPU

Cài đặt CNTK

CNTK là bộ công cụ mạnh hỗ trợ CPU/GPU và chạy dưới hệ điều hành Windows/Linux

Tham khảo cách cài đặt với Linux và Window từ  https://cntk.codeplex.com/documentation

Các bước cài đặt CNTK:

  1. Cấu hình các reader, network, learner
  2. Train & evaluate (multi-phase for layer building)
  3. Deploy offline từ Python

Bài viết có tham khảo tài liệu:

  1. Báo cáo CNTK—Microsoft’s open-source deep-learning toolkit hội nghị KDD 2016
  2. Benchmarking State-of-the-Art Deep Learning Software Tools  nhóm nghiên cứu từ Hong Kong Baptist University
  3. Tài liệu hướng dẫn MS : https://www.microsoft.com/en-us/cognitive-toolkit/
  4. Bộ công cụ nguồn mở CNTK từ Github : https://github.com/Microsoft/CNTK

Trần Hoàng Giang

Anh Trần Hoàng Giang là chuyên gia với hơn 6 năm kinh nghiệm trong lĩnh vực Mobility. Anh Giang từng là kiến trúc sư giải pháp cho các giải pháp Mobility cho tổ chức chính phủ tại Singapore, đặc biệt cho 1 trong những hãng chế tạo máy bay lớn nhất thế giới. Anh Giang hiện đang công tác tại FPT Software, chịu trách nhiệm chính trong việc tư vấn về cái giải pháp Enterprise Mobility. Đến với AzureVN.NET, anh Giang mong muốn được chia sẻ về Microsoft Azure Mobility, Cognitive Service

giangth has 9 posts and counting.See all posts by giangth

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *