zalo
Chat ngay

Hạt nhân GPU thưa thớt khối

 

Chúng tôi đang phát hành các hạt nhân GPU được tối ưu hóa cao cho một lớp kiến ​​trúc mạng nơ-ron chưa được khám phá: các mạng có trọng số thưa thớt khối. Tùy thuộc vào độ thưa thớt đã chọn, các hạt nhân này có thể chạy nhanh hơn gấp nhiều lần so với cuBLAS hoặc cuSPARSE. Chúng tôi đã sử dụng chúng để đạt được kết quả tiên tiến trong phân tích tình cảm văn bản và mô hình hóa tạo ra văn bản và hình ảnh.

Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ!

Sự phát triển của các kiến ​​trúc mô hình và thuật toán trong lĩnh vực học sâu phần lớn bị hạn chế bởi tính khả dụng của các triển khai GPU hiệu quả của các phép toán cơ bản. Một vấn đề là thiếu triển khai GPU hiệu quả cho các phép toán tuyến tính thưa thớt, mà chúng tôi hiện đang phát hành, cùng với các kết quả ban đầu sử dụng chúng để triển khai một số mẫu thưa thớt. Những kết quả ban đầu này đầy hứa hẹn nhưng không phải là kết luận cuối cùng, và chúng tôi mời cộng đồng tham gia cùng chúng tôi để thúc đẩy các giới hạn của các kiến ​​trúc mà các hạt nhân này mở khóa.

Ma trận trọng số thưa thớt, trái ngược với ma trận trọng số dày đặc, có số lượng lớn các mục nhập có giá trị chính xác bằng không. Ma trận trọng số thưa thớt hấp dẫn như các khối xây dựng của mô hình, vì chi phí tính toán của phép nhân ma trận và phép tích chập với các khối thưa thớt chỉ tỷ lệ thuận với số khối khác không. Ví dụ, tính thưa thớt cho phép đào tạo các mạng nơ-ron  rộng hơn và sâu hơn  nhiều so với khả năng có thể thực hiện được với ngân sách tham số và ngân sách tính toán nhất định, chẳng hạn như LSTM với  hàng chục nghìn đơn vị ẩn . (Các LSTM lớn nhất được đào tạo hiện nay chỉ là hàng nghìn đơn vị ẩn.)

Các hạt nhân

Các hạt nhân cho phép sử dụng hiệu quả các trọng số thưa thớt khối trong các lớp kết nối đầy đủ và lớp tích chập (hiển thị ở trên). Đối với các lớp tích chập, các hạt nhân cho phép thưa thớt trong các chiều đặc điểm đầu vào và đầu ra; khả năng kết nối không bị ảnh hưởng trong các chiều không gian. Độ thưa thớt được xác định ở cấp độ khối (hình bên phải ở trên) và đã được tối ưu hóa cho các kích thước khối là 8x8 (như trong ví dụ này), 16x16 hoặc 32x32. Ở cấp độ khối, mẫu thưa thớt hoàn toàn có thể định cấu hình được. Vì các hạt nhân bỏ qua các phép tính của các khối bằng không, nên chi phí tính toán chỉ tỷ lệ thuận với số lượng trọng số khác không, không phải số lượng đặc điểm đầu vào/đầu ra. Chi phí lưu trữ các tham số cũng chỉ tỷ lệ thuận với số lượng trọng số khác không.

 

Sử dụng hạt nhân

Dưới đây chúng tôi trình bày một số mã ví dụ để thực hiện phép nhân ma trận thưa trong Tensorflow.

con trăn
 
12345678910111213141516171819202122232425262728
1
from blocksparse.matmul import BlocksparseMatMul
2
import tensorflow as tf
3
import numpy as np
4
 
5
hidden_size = 4096
6
block_size = 32
7
minibatch_size = 64
8
 
9
# Create a (random) sparsity pattern
10
sparsity = np.random.randint(2, size=(hidden_size//block_size,hidden_size//block_size))
11
 
12
# Initialize the sparse matrix multiplication object
13
bsmm = BlocksparseMatMul(sparsity, block_size=block_size)
14
 
15
# Input to graph
16
x = tf.placeholder(tf.float32, shape=[None, hidden_size])
17
 
18
# Initialize block-sparse weights
19
w = tf.get_variable("w", bsmm.w_shape, dtype=tf.float32)
20
 
21
# Block-sparse matrix multiplication
22
y = bsmm(x, w)
23
 
24
# Run
25
sess = tf.InteractiveSession()
26
sess.run(tf.global_variables_initializer())
27
result = sess.run([y], feed_dict = {x: np.ones((minibatch_size,hidden_size), dtype='float32')})
28
print(result)

LSTM thế giới nhỏ

Một ứng dụng đặc biệt thú vị của hạt nhân thưa khối là sử dụng chúng để tạo ra mạng nơ-ron thế giới nhỏ.  Đồ thị thế giới nhỏ(mở trong cửa sổ mới) được kết nối theo cách mà bất kỳ hai nút nào trong đồ thị đều được kết nối thông qua một số bước nhỏ, ngay cả khi đồ thị có hàng tỷ nút. Động lực của chúng tôi khi triển khai kết nối thế giới nhỏ là mặc dù có mức độ thưa thớt cao, chúng tôi vẫn muốn thông tin lan truyền nhanh chóng qua mạng. Não bộ  hiển thị các mẫu kết nối thế giới nhỏ(mở trong cửa sổ mới), điều này đặt ra câu hỏi liệu cùng một đặc tính có thể cải thiện hiệu suất của LSTM hay không. Sử dụng kết nối thưa thớt thế giới nhỏ, chúng tôi đã đào tạo hiệu quả các LSTM với gần hai mươi nghìn đơn vị ẩn, rộng hơn 5 lần so với mạng dày đặc có số lượng tham số tương tự, cải thiện kết quả về mô hình hóa tạo ra văn bản và phân loại tình cảm bán giám sát; xem  bài báo của chúng tôi để biết thêm chi tiết.

Học biểu diễn tình cảm

Tiếp theo thiết lập mà chúng tôi sử dụng trong  thí nghiệm neuron tình cảm của mình , chúng tôi đã huấn luyện LSTM với số lượng tham số tương đương và so sánh các mô hình với ma trận trọng số dày đặc so với biến thể thưa thớt khối. Mô hình thưa thớt hoạt động tốt hơn mô hình dày đặc trên tất cả các tập dữ liệu tình cảm. Mô hình thưa thớt của chúng tôi cải thiện tình trạng nghệ thuật trên tập dữ liệu IMDB cấp độ tài liệu từ lỗi 5,91%  Miyato et al, 2016 lên 5,01%. Đây là một cải tiến đáng hứa hẹn so với  kết quả trước đây của chúng tôi  , chỉ hoạt động tốt nhất trên các tập dữ liệu cấp câu ngắn hơn.

Kết quả nén

Bằng cách sử dụng LSTM thưa thớt và rộng, kết quả bit-trên-ký tự trong các thí nghiệm của chúng tôi đã giảm từ 1,059 xuống 1,048, đối với số lượng tham số bằng nhau (~ 100 triệu). Các kiến ​​trúc với các lớp tuyến tính thưa thớt khối cũng có thể cải thiện kết quả thu được với các lớp tuyến tính được kết nối dày đặc. Chúng tôi đã thực hiện một sửa đổi đơn giản của PixelCNN  ++ mô hình ảnh tự nhiên CIFAR-10. Việc thay thế các hạt nhân tích chập 2D thông thường bằng các hạt nhân thưa thớt, đồng thời làm sâu sắc thêm mạng lưới nhưng vẫn giữ nguyên các siêu tham số còn lại, dẫn đến việc giảm số bit trên mỗi chiều từ 2,92 xuống 2,90, hiện là công nghệ tiên tiến nhất trên tập dữ liệu này.

Hướng nghiên cứu

Sau đây chúng tôi liệt kê một số gợi ý cho nghiên cứu trong tương lai.

+ Hầu hết các trọng số trong mạng nơ-ron  có thể được cắt tỉa sau khi quá trình đào tạo kết thúc(mở trong cửa sổ mới). Có thể tăng tốc độ thời gian thực tế bao nhiêu tại thời điểm suy luận khi sử dụng cắt tỉa cùng với các hạt nhân này?

+ Trong não sinh học, cấu trúc thưa thớt của mạng lưới được  xác định một phần trong quá trình phát triển(mở trong cửa sổ mới), ngoài các điểm mạnh kết nối. Chúng ta có thể làm điều gì đó tương tự trong mạng nơ-ron nhân tạo, nơi chúng ta sử dụng gradient để không chỉ học các trọng số kết nối mà còn học cấu trúc thưa thớt tối ưu? Một bài báo gần đây đã đề xuất một phương pháp để học  RNN thưa thớt khối(mở trong cửa sổ mới)và chúng tôi gần đây đã đề xuất một thuật toán để  điều chỉnh L0 trong mạng nơ-ron(mở trong cửa sổ mới), có thể được sử dụng cho mục đích này.

+ Chúng tôi đã đào tạo các LSTM với hàng chục nghìn đơn vị ẩn , dẫn đến các mô hình văn bản tốt hơn. Nói chung, các lớp thưa thớt giúp có thể đào tạo các mô hình với các ma trận trọng số lớn nhưng có cùng số lượng tham số và cùng chi phí tính toán như các đối tác dày đặc nhỏ hơn của chúng. Các lĩnh vực ứng dụng nào sẽ tạo ra sự khác biệt lớn nhất đối với hiệu suất?

Hot Deal

Họ tên (*)

Số điện thoại (*)

Email (*)

Dịch vụ

Đăng ký để nhận bản tin mới nhất !