Python là một khung phân tán để xếp hàng các tác vụ trí tuệ nhân tạo (ai).

Do nhu cầu tính toán ngày càng tăng của các thuật toán học máy, nhu cầu về các cụm máy tính mạnh mẽ ngày càng tăng. Tuy nhiên, cơ sở hạ tầng hiện có để triển khai các thuật toán học máy song song vẫn còn sơ khai. Mặc dù các giải pháp tốt cho các trường hợp sử dụng cụ thể [e. g. , máy chủ tham số hoặc tìm kiếm siêu tham số] và xử lý dữ liệu song song tồn tại [e. g. , Hadoop hoặc Spark], để song song hóa các thuật toán học máy, các học viên thường kết thúc việc xây dựng các hệ thống tùy chỉnh của riêng họ, dẫn đến nỗ lực trùng lặp

Để giúp giải quyết vấn đề này, RISELab đã tạo ra Ray, một khung thực thi phân tán hiệu suất cao. Ray hỗ trợ các ứng dụng Python phân tán và song song cho mục đích chung, đồng thời cho phép các ứng dụng học máy và học tăng cường quy mô lớn. Nó đạt được khả năng mở rộng và khả năng chịu lỗi bằng cách trừu tượng hóa trạng thái điều khiển của hệ thống trong kho lưu trữ điều khiển toàn cầu và giữ cho tất cả các thành phần khác không trạng thái. Nó sử dụng kho lưu trữ đối tượng phân tán bộ nhớ dùng chung để xử lý hiệu quả dữ liệu lớn thông qua bộ nhớ dùng chung và nó sử dụng kiến ​​trúc lập lịch trình phân tán từ dưới lên để đạt được lập lịch trình có độ trễ thấp và thông lượng cao. Nó sử dụng API nhẹ dựa trên biểu đồ tác vụ động và tác nhân để thể hiện nhiều loại ứng dụng một cách linh hoạt

Học viện trí tuệ nhân tạo Intel® đang hợp tác với RISELab để cung cấp sức mạnh của trí tuệ nhân tạo phân tán cho các trường đại học nghiên cứu trên khắp thế giới bằng cách cung cấp tài liệu đào tạo về Ray. Một tài nguyên khác để đào tạo Ray là Intel AI DevCloud, một dịch vụ điện toán đám mây học thuật miễn phí được thiết kế cho khối lượng công việc AI. Sử dụng DevCloud, các nhà nghiên cứu và sinh viên AI có thể tạo ra các nút tính toán chạy Ray để xây dựng các mô hình AI phân tán phức tạp bằng thuật toán tiên tiến nhất để đào tạo phân tán và học tăng cường phân tán

Để thúc đẩy việc sử dụng Ray trên DevCloud trong các lớp học, chúng tôi đã chia tài liệu đào tạo do nhóm Ray tạo thành tám hướng dẫn riêng lẻ kéo dài một giờ. Chúng tôi hy vọng điều này sẽ cho phép các giáo sư từ khắp nơi trên thế giới áp dụng công nghệ tiên tiến này. Tài liệu này không chỉ bao gồm cách sử dụng và tối ưu hóa khối lượng công việc phân tán với Ray mà còn bao gồm Tune, một thư viện tối ưu hóa siêu tham số; . Các giáo sư có thể chọn mức độ chuyên sâu phù hợp với lớp học của họ, có thể thay đổi từ các bài giảng giới thiệu đến các chủ đề nâng cao

Intel AI DevCloud

Mặc dù một trong những lợi ích chính của Ray* là dễ dàng mở rộng ứng dụng từ máy tính xách tay sang trung tâm dữ liệu, nhưng việc chạy ứng dụng Ray trên quy mô lớn vẫn là một đề xuất tốn kém. Hơn nữa, nhiều người dùng không có quyền truy cập vào cụm máy tính. Để giúp giải quyết vấn đề này, Intel® đã nỗ lực hỗ trợ Ray* trên Intel® AI DevCloud, cơ sở hạ tầng đám mây AI miễn phí, cũng có sẵn thông qua Học viện AI

Kiến trúc hệ thống Intel® AI DevCloudIntel® AI DevCloud bao gồm hơn một trăm nút CPU Xeon® hiệu suất cao với khả năng tăng tốc phần cứng và phần mềm cho khối lượng công việc AI. Các nút này có số lượng lõi cao và hàng trăm gigabyte bộ nhớ để đáp ứng khối lượng công việc AI và phân tích đòi hỏi khắt khe

Kiến trúc hệ thống của DevCloud, như thể hiện trong sơ đồ bên trên, là một cụm Điện toán hiệu năng cao [HPC] có thể được truy cập thông qua một nút đăng nhập duy nhất. Nút này có thể được sử dụng để gửi công việc đến cụm bằng các lệnh PBS [Hệ thống hàng loạt di động]. Một lệnh về cơ bản bao gồm một tập lệnh bash cũng chỉ định phân bổ tài nguyên cho công việc, chẳng hạn như số lượng nút, bộ nhớ trên mỗi nút và thời gian treo tường

Bắt đầu với Ray trên DevCloud

Để dùng thử Ray trên DevCloud, hãy đăng ký tài khoản 30 ngày miễn phí tại đây. Đối với các giáo sư đang nghiên cứu hoặc giảng dạy, vui lòng liên hệ để có quyền truy cập mở rộng tại đây. Khi quyền truy cập đã được cấp, vui lòng sao chép kho lưu trữ git này để truy cập vào mã mẫu

Để chạy ví dụ này trên DevCloud, hãy thực hiện các lệnh sau sau khi tham gia phiên tương tác

ray start --head
echo “” >> head_ip
python py_create_workers.py 5
python a2c_train.py

Phần còn lại của phần này mô tả cách hoạt động của mã mẫu và cách hệ thống lô PBS hoạt động với Ray

Ví dụ: tập lệnh PBS sau đây gọi 1 nút có thời gian treo tường một giờ và bộ nhớ 32 GB

#!/bin/bash
#PBS –l nodes=1:ppn=2
#PBS –l walltime=01:00:00
#PBS –l mem=32gb
source activate my_env
python my_job.py

Cài đặt gói trên DevCloud

Một điểm khác biệt khi cài đặt các gói thông qua Pip trên DevCloud là nó yêu cầu cờ –user do cấp quyền của hệ thống tệp đối với người dùng không phải quản trị viên. Lưu ý thêm, DevCloud được thiết lập để sử dụng môi trường Conda và là cách được khuyến nghị để giữ sạch các gói phụ thuộc bất cứ khi nào cài đặt thư viện mới. Để cài đặt Ray từ PyPI, hãy chạy lệnh sau

Bắt đầu một công việc Ray trên DevCloud

Để gọi một nhân viên Ray với cài đặt mặc định của một nút và 96 GB RAM, tập lệnh sau có thể được viết trong một tệp có tên create_worker. Lời kêu gọi đi ngủ là để công nhân tiếp tục hoạt động trong một giờ, nếu không công nhân sẽ khởi động nhưng sau đó sẽ bỏ cuộc ngay lập tức

ray start --redis-address 10.5.9.7:16884
sleep 3600

Thay vì phải gọi qsub create_worker nhiều lần, nó có thể được tự động hóa bằng Python với tệp có tên py_create_workers. py. Lệnh qsub được sử dụng để gửi tập lệnh PBS vào hàng đợi công việc. Lưu ý rằng thay vì gọi os. system[“qsub create_worker”], đó là đường dẫn tệp đầy đủ của qsub vì đường dẫn hệ thống không thể tìm thấy qsub khi ở chế độ tương tác do đường dẫn hệ thống cho các nút tính toán

import sys
import os

for i in range[int[sys.argv[1]]]:
    os.system['/usr/local/bin/qsub create_worker']

Để đảm bảo rằng các nút khác được kết nối với nút đầu, tập lệnh sau có tên get_ip_addresses. py có thể được sử dụng để kiểm tra số lượng nút. Lưu ý rằng sẽ có sáu nút trong ví dụ này vì có năm nút công nhân và một nút đầu. DevCloud hiện chỉ cho phép tối đa năm công việc đang chạy cho mỗi người dùng thông qua hệ thống xếp hàng qsub, cho phép người dùng truy cập vào tổng số 144 CPU và 576 GB RAM

import ray
import time
import sys
import os

ray.init[redis_address="10.5.9.7:16884"]

@ray.remote
def f[]:
    time.sleep[0.01]
        return ray.services.get_node_ip_address[]

while True:
    ips = set[ray.get[[f.remote[] for _ in range[1000]]]]
    print[ips]
    print[len[ips]]
    time.sleep[1]

Chạy khối lượng công việc RL

Một tác nhân A2C có thể được đào tạo để tìm hiểu SpaceInvaders bằng API Python RLlib trong tập lệnh có tên a2c_train. py. Cấu hình phần cứng mặc định phải được thay đổi do không có GPU trên DevCloud và RLlib thường có GPU trên nút đào tạo trong khi các nút CPU khác đang thực hiện triển khai

import ray
import ray.rllib.agents.a3c as a3c
from ray.tune.logger import pretty_print

ray.init[redis_address="10.5.9.7:16884"]

config = a3c.DEFAULT_CONFIG.copy[]
config["num_gpus"] = 0
config["num_gpus_per_worker"] = 0
config["num_workers"] = 5
agent = a3c.A2CAgent[config=config, env="SpaceInvadersNoFrameskip-v4"]

for i in range[1000]:
    result = agent.train[]
    print[pretty_print[result]]

if i % 100 == 0:
    checkpoint = agent.save[]
    print["checkpoint saved at", checkpoint]

Trước khi gọi ray start, một phiên tương tác phải được bắt đầu vì khối lượng công việc không thể chạy trên nút đăng nhập. Chạy qsub –I –lselect=1 sẽ gọi một công việc tương tác trên một nút tính toán. Lưu ý rằng nó sẽ nói rằng nó nằm trên nút c009-n003 hoặc id nút tương tự khác thay vì chỉ nút đăng nhập, nghĩa là nó đã chuyển từ nút đăng nhập sang nút tính toán


Bây giờ một nút tính toán đang được sử dụng, nút đầu có thể được thiết lập trên nút mới này. Hãy nhớ sử dụng cùng một địa chỉ IP ở đầu ra khi kết nối worker với nút đầu này

Sau đó gọi py_create_workers. py để tự động thêm 5 công nhân. Các số sau đó là ID công việc của các công việc riêng lẻ mà mỗi công nhân Ray đang chạy


Sử dụng get_nodes_addresses. py được hiển thị trước đó, có thể kiểm tra kết nối giữa nút đầu và nút worker để nhận số lượng địa chỉ IP duy nhất dự kiến

Bây giờ, khi a2c_train. py được thực thi, nó có thể được phân phối trên năm nút DevCloud khác bằng Ray. Trong ví dụ đơn giản này, năm nút là không cần thiết vì trong ray/python/ray/rllib/agents/agent. py, cấu hình chung cho số lượng CPU trên mỗi công nhân chỉ là một cũng như các CPU cần thiết được phân bổ cho trình điều khiển. Tuy nhiên, với ví dụ đơn giản này, người dùng có thể thử nghiệm sử dụng nhiều CPU, môi trường, số lượng nhân viên A2C và quy mô lô đào tạo để có được hiệu suất tốt hơn

Học tập phân tán trong AI là gì?

Học máy phân tán đề cập đến các thuật toán và hệ thống máy học đa nút được thiết kế để cải thiện hiệu suất, tăng độ chính xác và mở rộng quy mô dữ liệu đầu vào lớn hơn.

Khung Python nào được sử dụng cho trí tuệ nhân tạo?

Keras , một thư viện mạng nơ-ron được xây dựng bằng Python giống như TensorFlow và CNTK, là một trong những khung AI tốt nhất, mặc dù nó không được thiết kế để trở thành máy đầu cuối . Keras được xây dựng dưới dạng giao diện lập trình ứng dụng [API] dành cho con người chứ không phải máy tính.

Tại sao Python thường được sử dụng trong môi trường trí tuệ nhân tạo?

Python là một phần quan trọng của ngôn ngữ lập trình AI do nó có các khung tốt, chẳng hạn như scikit-learn-Machine Learning trong Python đáp ứng hầu hết mọi yêu cầu trong ngôn ngữ lập trình này . js tài liệu dựa trên dữ liệu JS . Đây là một trong những công cụ hiệu quả và thân thiện với người dùng nhất để trực quan hóa.

Python có được sử dụng cho trí tuệ nhân tạo không?

Python là ngôn ngữ mã chính cho AI và ML . Nó vượt qua Java về mức độ phổ biến và có nhiều lợi thế, chẳng hạn như hệ sinh thái thư viện tuyệt vời, Tùy chọn trực quan hóa tốt, Rào cản gia nhập thấp, Hỗ trợ cộng đồng, Tính linh hoạt, Khả năng đọc và Nền tảng độc lập.

Chủ Đề