>  기사  >  백엔드 개발  >  개발자가 직접 참여: 기계 학습을 위한 Julia 언어와 Python과 비교하여 어느 것이 더 낫습니까?

개발자가 직접 참여: 기계 학습을 위한 Julia 언어와 Python과 비교하여 어느 것이 더 낫습니까?

WBOY
WBOY앞으로
2023-04-11 12:28:021231검색

2022년에는 어떤 프로그래밍 언어를 선택하시겠습니까?

몇 년 전에 Julia가 Python을 대체하고 가장 인기 있는 새로운 프로그래밍 언어 중 하나가 될 것이라는 말이 있었습니다. 우리는 당분간 이 진술에 대해 관망하는 태도를 취하고 있지만 과학 컴퓨팅의 강력한 도구로서 Julia의 장점은 이미 나타났습니다. 이는 프로그래머에게 다른 선택이 있다는 것을 의미합니다.

데이터 과학 및 인공 지능과 같은 분야에서 Julia와 Python을 주의 깊게 비교하면 Julia가 Python이 수행할 수 있는 것과 동일한 작업을 수행할 수 있고 훨씬 더 효율적이며 구문이 간결하고 우아하다는 것을 알 수 있습니다. 확산 측면에서는 Python만큼 잘 알려져 있지 않습니다.

최근 reddit에 올라온 뜨거운 게시물은 네티즌들 사이에서 많은 논의를 불러일으켰습니다. 이 게시물에서는 최근 Julia 언어 패키지의 일부 개발자가 Julia의 ML 현황을 논의하고 그 현황을 Python ML 생태계와 비교했다고 언급했습니다. 했다.

원래 게시물 주소:

https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of/

Jordi Bolibar는 "Julia가 실제로 기계에는 학습에 대한 큰 잠재력이 있지만 현재 상태는 약간 혼합되어 있습니다. 더 구체적으로 말하면 제가 SciML을 위해 Julia를 고수하는 주된 이유는 DifferentialEquations.jl 라이브러리가 매우 잘 작동하지만 Python에서 비슷한 것을 찾지 못했기 때문입니다. 그러나 내 연구의 진짜 고통은 AD 부분입니다. Julia를 사용하기 시작한 이후 몇 달 동안 작업 속도를 늦추는 두 가지 버그가 발생했습니다. 저는 Julia가 SciML을 위한 최선의 선택이라고 생각합니다. )은 보다 사용자 친화적으로 최적화되어야 합니다."

Netizen @jgreener64는 다음과 같이 말했습니다. "Julia의 ML은 일부 분야에서 매우 강력합니다. Julia의 문제는 Julia의 ML입니다. 기존 지식이 많이 필요하거나 검색/시행 오류가 많이 필요합니다. 개인적으로는 현재 Julia에서 새로운 미분 알고리즘을 개발하고 있습니다." Julia 소프트웨어 패키지 개발자인 Christopher Rackauckas는 네티즌들이 더욱 우려하는 다음 7가지 질문에 답변했습니다. Rackauckas는 MIT와 메릴랜드 대학의 수학자이자 약리학자로 주로 프로그래밍에 Julia를 사용합니다. Rackauckas는 관련 콘텐츠를 소개하기 위해 Julia, 수학, 확률론적 생물학에 대한 전용 블로그를 열었고, Rackauckas는 DifferentialEquations.jl 및 Pumas를 포함하되 이에 국한되지 않는 일부 라이브러리를 Julia에서 개발했습니다.

Christopher Rackauckas

질문은 다음과 같습니다.

오늘 Julia에서 ML이 실제로 빛나는 곳은 어디인가요? 이 생태계는 가까운 미래에 어떤 면에서 다른 인기 있는 ML 프레임워크(예: PyTorch, Flax 등)보다 성능이 뛰어날 것이며 그 이유는 무엇입니까?

기능이나 성능 측면에서 Julia의 ML 생태계의 현재 단점은 무엇입니까? Julia는 언제 이 분야에서 경쟁력을 갖게 될까요?
  1. Julia의 표준 ML 패키지(예: 딥 러닝)는 성능(빠름, 느림, 동일한 규모) 측면에서 인기 있는 대안과 어떻게 비교됩니까?
  2. 인기 있는 ML 대안을 벤치마킹하는 중요한 Julia 실험이 있나요?
  3. 회사나 기관에서 Julia의 ML 생태계에 기여하기 위해 직책을 만드는 것을 고려하고 있다면 모범 사례가 있습니까? 왜 이런 일을 해야 합니까? 어떤 기여가 가장 영향력이 있었나요?
  4. 다른 프레임워크로 작업하는 독립 개발자가 Julia의 ML 생태계에 기여하는 것을 고려해야 하는 이유는 무엇입니까?
  5. Julia 개발자는 특정 특정 작업에 어떤 패키지를 사용하는 경향이 있나요? Julia 개발자는 현재 존재하지 않는 무엇을 추가하기를 원합니까?
  6. 아래에서는 모두가 보고해야 할 더 우려되는 몇 가지 문제를 선택했습니다.
  7. 질문 3: "표준 ML"에서 Julia의 성능은 어떻습니까?

  8. Julia의 커널 속도는 훌륭합니다. CPU에서는 정말 잘하고 GPU에서는 모두가 동일한 cudnn을 호출합니다. Julia의 AD 속도도 훌륭합니다. Zygote는 약간의 오버헤드가 있을 수 있지만 Jax/PyTorch/TensorFlow와 비교할 때 Zygote는 대부분의 경우 빠릅니다. 특히 PyTorch 오버헤드는 훨씬 높으며 표준 ML 워크플로에서도 측정할 수 없습니다. 충분히 큰 행렬 곱셈은 할당 문제 또는 기타 O(n) 문제를 해결할 것입니다. Julia는 커널을 융합하지 않으므로 대부분의 벤치마크에서 사용자가 보면 전환 또는 RNN cudnn 호출을 융합하지 않는다는 것을 알 수 있습니다.

    질문 4: 추적해야 하는 중요한 실험과 벤치마크는 무엇인가요?

    XLA의 분산 스케줄러는 매우 좋습니다. 확장 기능에 대해 생각할 때 PyTorch를 무시하고 DaggerFlux 및 TensorFlow/Jax를 생각해야 합니다. XLA는 작업 변경에 더 많은 유연성을 갖고 있으므로 XLA가 승자라고 생각하며 이에 맞춰 e-그래프 트릭을 사용해야 합니다. 또 한 가지 주목해야 할 점은 '자동 미분에서 중간 부분이 누락됐다'는 점인데, 이는 아직 해결이 필요하다.

    질문 7: 권장 소프트웨어 패키지는 무엇입니까?

    저는 필요할 때 Flux를 사용하는 경향이 있지만 누구나 DiffEqFlux를 사용해 보아야 합니다. 기존 커널에 관한 한 Flux가 가장 완벽하지만 스타일이 지루합니다. 나는 암시적 매개변수가 아닌 명시적 매개변수를 사용하는 Flux를 갖고 싶습니다. 이러한 매개변수를 ComponentArray로 표현하고 싶습니다.

위 내용은 개발자가 직접 참여: 기계 학습을 위한 Julia 언어와 Python과 비교하여 어느 것이 더 낫습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제