2023. 7. 13. 08:48ㆍIT
Eric Johnson & Sharshank Prasanna으 What'sthe difference etween he AI Engine & Mojo? 를 번역 옮김
5월 2일, 유니티는 두 가지 흥미로운 혁신 기술은 Mojo프로그래밍 언어와 모듈식 AI 엔진을 갖춘 차세대 AI 개발자 플랫폼을 발표했습니다. 불과 2개월만에 11만명의 개발자가 Mojo Playground에 등록하여 Mojo를 배우고 그 성능을 직접 경험했으며, 30명 이상의 개발자가 AI 엔진 대기자 명단에 등록했ㅆ으며 Discord의 모듈식 커뮤니티는 1만7천명의 개발자로 성장을 했습니다. Github에서 거의 9천명의 개발자들이 Mojo와 경험을 공유하고 제품 피드백을 제공하고, 서로에게서 배우는 것을 보게되어 매우 기쁩니다.
발표 이후 커뮤니티 회원들이 자주 받는 질문 - AI 엔진과 Mojo 프로그래밍 언어의 차이점은 무엇입니까?
우선, 커뮤니티 회원들의 질문과 이러한 제품에 대해 더 많이 배우고자 하는 열정을 보게되어 기쁨니다. 이 질문에 커뮤니티 구성원에게 개별적으로 답변하는 대신 배경 컨텍스트를 공유하고 기술 개요를 제공하고, 더 많은 것을 배울 수 있는 리소스를 공유할 수 있는 기회를 제공하는 블로그 게시물을 작성하기로 결정했습니다. 먼저 AI 엔진에 대해 논의할 것인데, 아직 비공개 미리보기 상태라는 점을 감안할 때 독자들에게는 덜 친숙할 것입니다. 그런다음 Mojo가 AI 엔진과 통합되는 방법에 대해 논의하고 마지막으로 성능 및 사용성 제약으로 인해 병목 현상이 발생하는 많은 AI 및 기타 사용 사례를 해제하기 위해 어떻게 힘을 합칠 것이라고 생각하는지에 대해 게시물을 마무리 합니다.
AI 엔진이란 무엇입니까?
AI 엔진은 PyTorch 및 TensorFlow와 같은 주요 AI 프레임워크를 위한 고성능 추론 엔진입니다. TensorFlow(SavedModel), PyTorch(TorchScript) 및 ONNX에서 학습된 모델 아티팩트 가져오기를 지원하며 최첨단 컴파일러 및 런타임 기술을 사용하여 네이티브 프레임워크 런타임에 비해 최대 7.5배 더 높은 처리량을 제공합니다. 이전 블로그 게시물에서 TensorFlow 및 PyTorch 모델과 다양한 CPU 아키텍쳐(intel, AMD, ARM)에 대한 성능 벤치마크를 공유했습니다. 최신 성능 벤치마크를 보려면 performance.modular.com을 방문하세요. AI 엔진은 아직 비공개 미리보기 상태이며 여기에서 등록하여 얼리 액세스를 고려할 수 있습니다.
대부분의 컴파일러 툴체인과 마찬가지로 AI 엔진에는 4가지 주요 구성 요소가 있습니다.
- Imporer는 직렬화된 모델 (예: TensorFlow SavedModel)을 가져와서 컴파일러가 최적화할 수 이는 MLIR 그래프 표현으로 변환하는 작업을 담당합니다.
- 옵티마이저는 이 그래프 표현을 사용하여 그래프 수준 최적화 (예 : 상수 접기, 모양 추론)를 수행합니다.
- 커널 생성기는 연산자 융합과 같은 고급 기술을 포함하여 개별 아키텍쳐 및 마이크로 아키텍쳐에 맞게 조정된 고성능 기계 학습 커널을 생성합니다.
- 런타임은 낮은 오버헤드로 최적화된 커널 그래프를 실행하여 최신 성능을 제공합니다.
사용자를 위해 AI 엔진은 Python 및 C/C++ API를 모두 제공하고 NVIDIA의 Triton Interface server 및 TensorFlow Serving과 같은 인기 있는 서비스 프레임워크에 통합되어 프로덕션에서 높은 처리량의 추론을 제공하며, 이를 달성하는 방법에 대한 자세한 내용은 이 블로그 게시물에서 확인할 수 있습니다. AI엔진은 아직 비공개 미리보기 상태이므로 여기에서 등록하여 AI 엔진 테스트에 대한 관심을 표명하고 코드를 변경하지 않고도 AI 스택에 원할하게 통합할 수 있습니다.
MoJo가 AI 엔진
AI 엔진의 커널 생성기는 머신러닝 연산자의 하드웨어별 최적화 구현을 생성하는 역할을 합니다. 모듈식 엔지니어는 처음에 이 코드를 MLIR에서 직접 작성했지만 생산성 문제가 있음을 알게 되었습니다. 우리는 C 및 Rust와 같은 시스템 프로그래밍 언어의 안전성 및 예측 가능성 보장과 함께 Python과 유사한 사용성을갖춘 고급 언어에서 훨씬 더 생산적일 것이라고 결정했습니다. 따라서 Mojo는 AI 엔진에 대한 Modular의 자체 내부 개발 노력의 요구를충족시키기 위해 탄생했습니다.
오늘날 AI 엔진의 최적화된 커널은 모두 Mojo로 작성되어 엔진의 기능을 확장하여 낮은 수준의 C, C++또는 CUDA 프로그래밍에 의존하지 않고 운영자를 위한 사용자 지정 커널을 Mojo에서 직접 작성할 수 있는 새롭고 이국적인 모델 아키텍처를 지원할 수 있습니다. AI 엔진은 가장 널리 사용되는 연산자 및 모델 아키텍쳐를 즉시 지원하지만, 사용자 지정 연산자 및 모델 아키텍쳐를 만드는 AI 연구원 및 개발자인 경우 Mojo는 사용자 지정 커널을 작성할 때 생산성을 크게 향상시켜 가능한 최단 시간에 모델을 프로덕션에 배포할 수 있습니다.
AI 엔진에 대한 사전 체험판에 등록하고 자세히 알아보세요.
- AI 엔진 개요 및 AI 성능 대시보드 : https://www.modular.com/engine
- 모듈식 출시 블로그 게시물 : AI를 강화하는 확장 가능한 통합 플랫폼
- 모델 제공 블로그 게시물 : 모듈식 AI 엔진으로 AI 모델 제공 가속화
- Documentation : https://docs.modular.com/engine/
Mojo란?
Mojo의 기원 이야기는 AI 엔진용 커널을 작성하기 위한 것이었지만 그것이 유일한 목적은 아닙니다. Mojo는 시스템 프로그래밍을 위한 새로운 기본 요소를 추가하면서 Python의 동적 기능을 보존하여 시간이 지남에 따라 Python의 상위 집합이 되도록 설계되었습니다.
Python의 유용성과 강력한 컴파일 타임 메타 프로그래밍, 적응 컴파일 기술의 통합, 컴파일 흐름 전반에 걸친 캐싱 및 기존 언어에서 지원하지 않는 기타 기능을결합한 완전히 새로운 프로그래밍 언어입니다. Mojo는명시적으로 설계된 최초의 주요 언어입니다. MLIR용이는 Mojo를 AI 워크로드를 위한 시스템 수준의 코드를 작성할 때 고유하고 강력하게 만듭니다. Jeremy Howard는 블로그 게시물에서 Mojo를 "Python++"라고 설명했는데 이는 Mojo가 Python의 기능을 향상시켜 새로운 도메인에 진입할 수 있게 해 주기 때문입니다.
Mojo는 아직 초기 개발 단계에 있지만 Mojo의 가치는 언어로서의 깊이에 있습니다. Mojo는 가속기에서 Python과 유사한 구문을 실행하는 최초의 프로그래밍 언어는 아니지만, 높은 수준의 AI 개발자가 하드웨어에 대한 낮은 수준의 제어를 지시할 수 있도록 하여 연구원이 스택의 모든 수준에서 혁신할 수 있도록 하는 최초의 프로그래밍 언어입니다.
Mojo에는 Python과 같은 구문이 있지만 인터프리터를 사용하는 기본 "CPython" 구현과 달리 mojo가 컴파일 됩니다. mojo 컴파일러는 mojo 코드를 MLIR로 낮추고 최적화를 수행하고 특정 하드웨어 대상에 대한 코드를 생성합니다. mojo는 또한 하드웨어 최적화 코드를 작성하기 위해 하드웨어에서 직접 하위 수준 벡터 레지스터를 나타내는 SIMD 형식과 같은 하위 수준 형식을 제공합니다.
Mojo는 이미 첫번째 성공 사례인 AI 엔진을 보유하고 있습니다. 성능 대시보드에 표시되는 AI 엔진의 성능과 결과는 AI 엔진팀이 다양한 하드웨어에서 인기있는 모델을 지원하여 최첨단 성능을 제공하는 엔지니어링 속도를 개선한 결과입니다. 출시 블로그 게시물에서 3~4배 더 짧은 지연 시간으로 intel, AMD 및 ARM에서 TensorFlow 및 PyTorch 와 비교하여 AI 엔진 및 속도 향상의 이점을 공유했으며, 이를 확인하시기 바랍니다. 물론 mojo는 Modular의 자체 사용 사례를 위해 구축되었을 뿐만 아니라 커뮤니티 사용자는 이미 mojo-libc와 같은 놀라운 프로젝트를 만들기 시작했습니다.
오늘 Mojo Playground 환경에서 Mojo를 ㅅ시작할 수 있으며 이를 통해 jupyter Notebook 예제를 살펴보고, 직접 만들고, Discord의 Mojo 커뮤니티와 공유할 수 있습니다. 가장 자주 요청되는 기능 중 하나는 Mojo를 다운로드하여 로컬 컴퓨터에서 실행할 수 있는 기능입니다. - 우리는 이 작업을 진행 중이며 곧 출시될 예정입니다. - 그러니 계속 잘 지켜봐 주세요!
다음은 Mojo를 시작하기 위한 추가 리소스 입니다.
- Mojo의 개요 : https://www.modular.com/mojo
- Mojo Playground : https://playground.modular.com/
- 모듈식 출시 블로그 게시물 : AI를 강력하게 구동하는 확장 가능한 통합 플랫폼
- LLM 언어 포스트 : LLM은 프로그래밍 언어의 필요성을 제거합니까?
Mojo와 AI 엔진 - 함께 사용하면 더 좋습니다!
AI 엔진과 Mojo는 함께 사용하도록 설계 되었습니다. 가까운 시일 내에 AI 엔진을 사용하여 프로덕션에 널리 사용되는 모델을 배포하고 다양한 하드웨어 아키텍처에서 고성능, 짧은대기 시간 추론을 제공할 수 있습니다. Mojo의 Python과 유사한 사용성을 통해 성능이 뛰어난 사전 및 사후 처리 작업(예: 토큰화, 이미지 변환, 비최대 억제 등) 작성, 대기 시간이 긴 작업 및 사용자 지정 융합커널 교체와 같은 작업을 위해 AI 엔진의 기능을 쉽게 확장하여 훨씬 더 나은 성능을 제공할 수 있습니다.
AI 엔진과 Mojo를 함께 사용하며 AI 개발 파이프라인의 모든 부분을 가속화할 수 있습니다.
장기적으로 AI 엔진과 Mojo가 함께 AI를 넘어 여러 영역에서 워크로드를 가속화할 것으로 기대합니다. Python은 데이터 분석, 이미지 및 신호 처리, 과학 및 수치 컴퓨팅, 게임, 3D 그래픽, 네트워크 프로그래밍, 데이터베이스 액세스 등을 포함한 여러 영역에서 사용됩니다. AI가 이러한 영역과 다른 영역으로 확산됨에 따라 AI 엔진과 Mojo가이러한영역에서 애플리케이션을 가속화하고 AI 혁신의 ㄷㅏ음 물결을 여는데 중요한 역할을 할 것으로 기대합니다.
궁극적으로 개발자의 도구 상자에 있는 생산성 도구이며 도구의 잠재력은 사용자의 창의성에 의해서만 제한됩니다. 우리는 당신이 그들과 함께 어떤 도전 과제를 해결하고 어떤 새로운 혁신을 잠금해제하는데 도움이 될지 기대됩니다. 사용 사례, 기능 요청 및 제품 피드백에 대한 귀하의 의견을 기다리겠습니다.
그동안:
- 지금바로 Mojo Playground로 이동하여 Mojo의 최신 릴리즈를 테스트해보세요!
- AI엔진 테스트에 대한 관심을 표현하려면 여기에 등록하세요
- Discord의 따뜻한 환영과 멋진 커뮤니티에 가입하세요
- GitHub 토론에서 mojo 및 AI 엔진에 대한 토론
다음에 또 만나요.
'IT' 카테고리의 다른 글
증명사진 여권사진을 스스로 (2) | 2023.11.22 |
---|---|
[Python] sqlite3 same thread 문제와 QTablewidget (0) | 2023.09.19 |
[python] sqlite3 database 생성 (0) | 2023.05.03 |
[pyside6] TrayIcon (0) | 2023.05.02 |
공짜 유튜브 프라임? (0) | 2023.04.10 |