Tin tức và phân tích của tất cả các thiết bị di động

Ngôn ngữ Mojo dành cho nhà phát triển AI

Thế giới công nghệ luôn chuyển động. Đứa trẻ mới nhất trong khối là ngôn ngữ lập trình Mojo. Sự cần thiết của một chiếc áo choàng để cải thiện tốc độ thực hiện các dự án dựa trên Python, cung cấp cho các lập trình viên tốc độ giống như C.

Python là một trong những ngôn ngữ lập trình phổ biến nhất. Đây là một ngôn ngữ lập trình toàn diện, dễ học, cung cấp cho người mới học một cánh cổng tiếp cận với lập trình/máy tính.

Ngoài ra, nó là ngôn ngữ lập trình tuyệt vời để các lập trình viên có năng lực sử dụng để tạo ra các ứng dụng phức tạp. Tuy nhiên, một trong những hạn chế đáng kể nhất của Python là tốc độ thực thi. Và đó là lúc Mojo xuất hiện.

Bài viết này nói về Mojo và mối liên hệ của nó với hệ sinh thái Python. Hãy bắt đầu.

Mojo là gì?

Mojo là một ngôn ngữ lập trình cấp cao hiện đại. Nó cung cấp một thiết kế trực quan giúp các nhà phát triển xây dựng ứng dụng một cách nhanh chóng. Ngoài ra, nó nhằm mục đích thu hẹp khoảng cách giữa sản xuất và nghiên cứu bằng cách cho phép người dùng tận dụng các tính năng lập trình hệ thống và siêu lập trình với cú pháp và hệ sinh thái của Python.

Nó vay mượn rất nhiều từ Rust và mang lại tốc độ thực thi nhanh cho hệ sinh thái Python. Về mặt kỹ thuật, Mojo là một siêu bộ Python cung cấp quyền truy cập.

Đội ngũ đằng sau Mojo đến từ module, một công ty cơ sở hạ tầng trí tuệ nhân tạo. Nó cũng có nghĩa là nó là ngôn ngữ lập trình dành cho các nhà phát triển AI. Ngoài ngôn ngữ lập trình Mojo, họ còn giới thiệu một công cụ can thiệp cho phép các nhà phát triển hợp lý hóa quy trình làm việc, mở rộng quy mô sản phẩm AI và giảm độ trễ suy luận (sẽ nói thêm về điều đó sau).

Theo Giám đốc điều hành của Chris Lattner, Mojo nhanh hơn Python 35.000 lần. Ông cũng chịu trách nhiệm cho sự phát triển nhanh chóng của ngôn ngữ lập trình. Việc tăng tốc độ đạt được bằng cách Mojo sử dụng chuỗi công cụ trình biên dịch LLVM và cơ sở hạ tầng trình biên dịch MILR (Tổng quan về biểu diễn trung gian đa cấp).

Mục tiêu của ngôn ngữ lập trình Mojo bao gồm:

  • Làm việc với khả năng tương thích hoàn toàn với hệ sinh thái Python.
  • Cho phép các nhà phát triển triển khai các tập hợp con mã trong trình tăng tốc.
  • Kiểm soát mức độ thấp cho hiệu suất có thể dự đoán được.
  • Đảm bảo không có sự phân mảnh của hệ sinh thái.

Để dùng thử Mojo, bạn cần sử dụng nó thông qua môi trường dựa trên đám mây được lưu trữ, Mojo Playground. Nó sẽ yêu cầu bạn đăng nhập và bạn có thể có được môi trường làm việc!

Tại sao chúng ta cần Mojo?

Ý tưởng chính đằng sau Mojo là hợp nhất cơ sở hạ tầng ML/AI bằng cách cung cấp ngôn ngữ lập trình chạy xuyên suốt. Ngoài ra, nó còn mang lại sự dễ sử dụng bằng cách loại bỏ nhu cầu viết mã MLIR.

Theo module, Mojo sẽ cung cấp một mô hình lập trình sáng tạo và có thể mở rộng. Bằng cách này, người dùng lĩnh vực AI sẽ có thể dễ dàng làm việc với các máy gia tốc và hệ thống không đồng nhất.

Về mặt kỹ thuật, nó làm cho Mojo trở thành ngôn ngữ lập trình hỗ trợ siêu lập trình tại thời điểm biên dịch. Nó cũng hỗ trợ các tính năng khác như bộ nhớ đệm trong quá trình xây dựng, kỹ thuật xây dựng thích ứng, v.v. Những tính năng này không có trong các ngôn ngữ lập trình khác.

Nếu bạn muốn đọc thêm về triết lý của Mojo, hãy xem Tài liệu mô-đun – Tại sao là Mojo🔥

Đặc điểm của ngôn ngữ lập trình Mojo

Trong phần này, chúng ta sẽ xem xét các tính năng chính của ngôn ngữ lập trình Mojo.

# 1. Khả năng tương thích hoàn toàn với Python

Mojo đặt mục tiêu hợp tác với hệ sinh thái Python chứ không phải chống lại nó. Điều này là do Mojo sử dụng các hàm, thư viện và hàm giống như Python cung cấp. Vì vậy, bạn có thể sử dụng bất kỳ thư viện python nào trong Mojo.

Để nhập, bạn cần sử dụng mã sau:

from PythonInterface import Python

Sau khi hoàn tất, bạn có thể sử dụng python.import_module() để nhập bất kỳ thư viện python nào.

Ví dụ: để nhập numpy, bạn cần sử dụng dòng mã sau.

let np = Python.import_module(“numpy”)

Trong python bạn cần thực hiện “nhập numpy dưới dạng np”

Sau khi nhập, bây giờ bạn có thể sử dụng nó để tạo mảng, thực hiện các phép tính, v.v.

array = np.array([1, 2, 3])

print(array)

Tương tự, bạn có thể nhập matplotlib.pyplot hoặc tạo biểu đồ trong Mojo.

Đây là giao diện khi tôi chạy mã trong Mojo Playground.

Nếu bạn muốn thử mã, hãy sao chép và dán mã từ bên dưới.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

#2. SỮA

MILR là viết tắt của Đại diện trung gian đa cấp. Mojo hỗ trợ MILR. Điều này cho phép các nhà phát triển tận dụng đầy đủ các tính năng nâng cao mới. Những tính năng này bao gồm các đơn vị phần cứng AI, luồng và vectơ.

MILR cải thiện hiệu suất bằng tính năng đồng thời giúp Mojo nhanh hơn Python. Ngoài ra, nó cho phép các nhà phát triển sử dụng nhiều lõi.

#3. Người kiểm soát tài sản và người đi vay

Quản lý bộ nhớ bằng Python là an toàn. Nó sử dụng trình thu thập rác, vì vậy các nhà phát triển phải đảm bảo mã sẽ không chạy trong điều kiện chạy đua.

Mojo, giống như Rust, thực hiện một mô hình kiểm tra nghiêm ngặt quyền sở hữu và người đi vay. Nó hiện đang được thực hiện một phần. Ý tưởng đằng sau việc sử dụng mô hình này là cải thiện khả năng xử lý đồng thời và cung cấp khả năng quản lý bộ nhớ tuyệt vời.

Mô hình quyền sở hữu cũng cung cấp cách tiếp cận an toàn theo luồng, lý tưởng để cung cấp hỗ trợ đồng thời tuyệt vời. Bằng cách này, các chương trình không gặp phải tình trạng chạy đua. Ngoài ra, người kiểm tra bên vay đảm bảo rằng các biến luôn được kiểm tra trong thời gian chạy.

#4. Chi phí trừu tượng bằng không

Mojo cung cấp các bản tóm tắt miễn phí, cho phép các nhà phát triển có toàn quyền kiểm soát việc lưu trữ. Tại đây, các lập trình viên có thể nội tuyến các giá trị phân bổ vào các cấu trúc.

#5. trang điểm xe

Mojo cũng cung cấp tính năng điều chỉnh tự động. Điều này đảm bảo rằng các giá trị tốt nhất sẽ được tự động gán cho các tham số, tùy thuộc vào phần cứng mục tiêu.

Điều chỉnh tự động giúp loại bỏ nhu cầu tối ưu hóa mã theo cách thủ công theo phần cứng mục tiêu.

Tốc độ: Lưỡi của Mojo nhanh đến mức nào?

Python là ngôn ngữ lập trình cấp cao nhằm mục đích dễ sử dụng và bảo trì. Thật không may, điều này gây ra sự chậm chạp so với các giải pháp hoặc ngôn ngữ lập trình khác.

Trong thử nghiệm Mô-đun, hóa ra Mojo có 35000x. Họ đã sử dụng thuật toán Mandelbrot và chạy nó trên phiên bản AWS với bộ xử lý Intel Xeon. Họ đã thử nghiệm PYPY, SCALAR C++ và MOJO cùng với Python. Kết quả rất nhanh chóng và bạn có thể xem chúng bên dưới.

nguồn: module.com

Để tìm hiểu thêm về tốc độ của Mojo, hãy xem bài đăng này trong cộng đồng Julialang.

Công cụ lý luận mô-đun – chạy mô hình AI với giá rẻ

Mô-đun cũng đang phát triển Công cụ can thiệp mô-đun giúp chạy các mô hình AI trong sản xuất rẻ hơn. Mojo mặc định hỗ trợ Công cụ giao thoa mô-đun. Nó cho phép các nhóm đơn giản hóa quy trình làm việc của họ. Nó cũng cho phép các nhà phát triển giảm độ trễ suy luận, giúp mở rộng quy mô sản phẩm AI dễ dàng hơn.

Ngoài ra, các nhà phát triển không cần phải thay đổi mô hình của mình để sử dụng công cụ. Sau khi được tải, nó có thể tăng tốc cho các mô hình PyTorch và TensorFlow, có khả năng chạy ở hiệu suất cao với sự hỗ trợ phần cứng mở rộng.

Nó sẽ thay thế Python?

Mojo là mới. Trông đầy hứa hẹn. Vì vậy, sẽ mất thời gian để tiếp cận đối tượng mục tiêu của bạn, chẳng hạn như nhà khoa học dữ liệu hoặc ngôn ngữ lập trình. Và vâng, nó giải quyết các vấn đề cụ thể cho những người đam mê và học hỏi AI. Tuy nhiên, có nhiều giải pháp tương tự giúp cải thiện tốc độ của Python. Ví dụ: bạn sẽ tìm thấy Jax, Codon và Julia, một ngôn ngữ tập trung vào dữ liệu.

Vì vậy có hai điều có thể xảy ra. Đầu tiên, nó phát triển theo cấp số nhân về mặt tính năng và cộng đồng đang đón nhận nó. Một kết quả khác là nó trở thành ngôn ngữ lập trình đặc biệt sử dụng thư viện Python và Công cụ can thiệp mô-đun.

Mojo sẽ thay thế Python? Chỉ có thời gian mới biết.

Sau đó, hãy xem một số hướng dẫn hữu ích về Python giúp đơn giản hóa các tác vụ phổ biến.