트레이딩을 위한 ONNX 학습 - 페이지 4

 

2020 ONNX 로드맵 논의 #2 20200909



2020 ONNX 로드맵 논의 #2 20200909

"ONNX 로드맵 토론" 비디오에서 연사는 모양 추론, 연산자 정의, 참조 구현 및 ONNX 사양을 포함하여 ONNX의 로드맵과 관련된 다양한 주제에 대해 논의합니다. 연사는 형상 추론 최적화를 개선하고, 기본 연산자 수를 줄이고, 모든 연산자에 대한 참조 구현을 추가하고, ONNX의 적절한 구현 및 테스트를 보장하기 위해 더 잘 정의된 테스트 사례를 추가하기 위해 일반 형상 추론 인프라를 구축할 것을 제안합니다. 그룹은 새로운 운영자 추가를 위해 운영자 SIG 내 및 GitHub 토론 게시판에서 계속 논의할 계획입니다.

  • 00:00:00 이 섹션에서 발표자는 ONNX 로드맵에 대해 논의하고 몇 가지 제안된 주제, 특히 로드맵 문서에서 이전에 언급된 형상 추론, 정의, IR을 다양한 개인의 의견과 함께 다룹니다. 연사는 Changming 또는 Buchan이 제안을 설명할 수 있는지 묻습니다. Buchan이 형상 간섭에 대한 피드백과 과거에 어떻게 문제가 있었는지에 대해 설명합니다. 그는 형상 추론 최적화가 함께 진행되고 동시에 최적화가 향상되도록 IR에 변경 사항이 있을 때마다 형상을 다시 컴파일하는 일반적인 형상 영향 인프라를 구축할 것을 제안합니다. 화자는 이것이 모양 추론에 직접적으로 적용되는 것보다 최적화에 더 많이 적용된다고 결론을 내립니다.

  • 00:05:00 형상 추론 및 최적화 패스 측면에서 ONNX의 현재 기능을 이해합니다. 기존 인프라는 이미 알려진 입력 값을 기반으로 모양 추론을 지원하며 출력 모양을 추론하는 데 사용할 수 있습니다. 모델 검사기를 업데이트하는 데 있어 쉬운 결과가 있을 수 있지만 다른 변경 사항에는 더 많은 논의가 필요할 수 있습니다. 그룹에서는 이러한 변경 사항이 ONNX에 속하는지 또는 다른 위치에 속하는지 논의합니다. 그들은 또한 원하는 결과를 얻기 위해 연속 루프에서 각 연산자에 대해 모양 추론 방법을 호출하는 아이디어를 고려합니다. 궁극적으로 기존 인프라는 이미 최적화 통과 및 모양 추론을 허용하지만 변경 및 개선으로 이러한 기능을 향상시킬 수 있습니다.

  • 00:10:00 이 섹션에서 연사는 연산자 정의에 대해 논의하고 다른 연산자를 하위 수준 연산자와 구성할 수 있으므로 기본 연산자의 수를 줄일 것을 제안합니다. 또한 참조 구현 주제와 일련의 연산자를 평가하기 위한 인프라의 필요성에 대해서도 논의합니다. 현재 참조 구현은 테스트 케이스 생성기에서 Python 구현 형식으로 존재하지만 일련의 연산자를 쉽게 평가할 수 있는 방식으로 구성되어 있지 않습니다. 연사는 유효성 검사에 사용할 수 있는 기능 하위 그래프를 확인하기 위해 ONNX 런타임과 같은 일부 런타임을 CI에 추가할 것을 제안합니다.

  • 00:15:00 이 섹션에서 연사는 런타임이 작성자의 기대에서 벗어나지 않도록 하기 위해 모든 연산자에 대한 참조 구현의 필요성에 대해 논의합니다. 그들은 참조 구현을 단위 테스트로 사용하여 런타임과의 패리티를 확인하고 인터프리터 모드로 사용하여 상호 운용성과 유효성을 확인하도록 제안합니다. 발표자들은 함수가 ONNX에 존재하는 기본 작업으로 구성되어 있다는 가정 하에 함수의 유효성을 검사하기 위해 ONNX 런타임을 사용할 수 있다는 점에 주목합니다. 그러나 새로운 기본 작업을 포함하는 하위 그래프에서 새 연산자에 대해 ONNX 런타임을 사용하는 것은 다른 런타임에 해당 구현이 없기 때문에 불가능합니다. 그들은 참조 구현을 생성하는 데 많은 작업이 필요하다는 것을 인정하지만 모든 작업에 필수입니다. 또한 런타임이 작성자의 기대에서 벗어나지 않도록 하기 위해 ONNX 규정 준수의 필요성을 강조합니다.

  • 00:20:00 이 섹션에서 연사는 ONNX 사양의 참조 구현 사용과 사양에서 명확하고 간결한 언어의 중요성에 대해 논의합니다. 일부는 사양의 영어 텍스트에서 모호성을 제거하기 위해 참조 구현의 사용을 옹호하는 반면, 다른 일부는 참조 구현이 불필요할 정도로 사양이 충분히 명확해야 한다고 주장합니다. 연사는 또한 가능한 모든 코너 케이스를 테스트하기 위해 엄격한 규정 준수 테스트의 중요성에 대해 논의합니다. 궁극적으로 참조 구현이 유용할 수 있지만 ONNX 사양에 필요하지 않아야 한다는 합의가 이루어진 것 같습니다.

  • 00:25:00 이 섹션에서는 특히 참조 구현 및 테스트 절차의 필요성과 관련하여 ONNX에서 연산자를 구현하기 위한 요구 사항에 대해 논의합니다. 연산자에 대한 참조 구현이 테스트 데이터를 생성하는 데 필수적이어야 한다고 주장하는 반면, 일부는 테스트 데이터를 생성하는 Python 함수 또는 고정 데이터 세트를 제공하는 것으로 충분하다고 주장하면서 동의하지 않습니다. 그러나 런타임에 연산자를 구현하는 사람이 구현을 적절하게 테스트하기 위해서는 참조 구현이 있어야 하며, 특히 다양한 속성이 있는 복잡한 연산자의 경우에는 더욱 그렇습니다. 토론에서는 또한 ONNX에 대한 참조 런타임이 필요하지 않지만 각 연산자에 대한 참조 구현이 필요함을 명확히 합니다.

  • 00:30:00 비디오의 이 섹션에서 연사는 ONNX의 적절한 구현 및 테스트를 보장하기 위해 참조 구현 및 더 잘 정의된 테스트 사례를 갖는 것의 중요성에 대해 논의했습니다. 그들은 생성된 테스트 데이터에 의존하는 것이 불충분할 수 있으며 간단한 코드를 사용하면 모든 사람의 문제를 해결할 수 있다고 언급했습니다. 대화는 또한 완전한 사양의 필요성과 정의되지 않은 동작 사례에서 수행할 작업을 결정할 수 있는 런타임의 자유에 대해서도 다루었습니다. 일부 연사는 참조 구현을 추가하여 연산자를 제안하는 사람들에게 부담을 더하는 것에 대해 우려를 표명했습니다. 그들은 엔지니어링 노력을 최소화하고 시스템에 작업을 추가하기 위한 현재 요구 사항을 재검토할 것을 제안했습니다.

  • 00:35:00 비디오의 이 섹션에서 연사는 ONNX에 대한 완전하고 명확한 사양을 갖는 것의 중요성과 이를 시행하는 방법에 대해 논의합니다. 그들은 Python의 참조 구현이 런타임에서 연산자를 구현하는 사람들이 모든 테스트 사례를 확인할 수 있도록 하는 데 도움이 될 것이라는 데 동의합니다. 그러나 그들은 또한 사양을 구현하는 것이 간단하지 않으며 여전히 해결해야 할 문제가 있음을 인정합니다. 그들은 사양을 사용하는 방법을 명확히 하는 방법을 논의하고 연산자를 제안한 다음 런타임에 구현하는 대신 연습과 피드백이 새 연산자의 제안을 안내해야 한다고 제안합니다. 그들은 또한 새로운 작업을 추가하기 위한 한 가지 요구 사항은 잘 알려진 프레임워크에서 구현되어야 한다는 것입니다.

  • 00:40:00 ONNX 로드맵 토론의 이 섹션에서는 그룹이 ONNX 사양에 새 연산자를 추가하는 프로세스에 대해 논의합니다. 제안은 이미 Python에서 참조 구현이 필요한 새 연산자를 추가하는 정책을 변경하는 것입니다. 그들의 토론은 참조 구현 및 규정 준수 테스트를 중심으로 하며 운영자 SIG 및 GitHub 토론 게시판 내에서 대화를 계속할 계획입니다. 그룹은 다음 주에 예정된 다음 회의에서 논의를 계속할 계획입니다.
 

2020 ONNX Roadmap Discussion #3 20200916



2020 ONNX Roadmap Discussion #3 20200916

The discussion in this video centers around various topics related to ONNX, including improving error handling, adding a predefined metadata schema field to denote the creation of the model, the need for quantization physical optimization, and the possibility of updating ONNX models from Model Zoo to the most recent versions. The team plans to prioritize these topics based on their impact and cost and work on them post-1.8 release. Additionally, the group considers the idea of creating different language bindings for the ONNX toolset, with a particular interest in Java, in order to support different platforms such as Spark. The speakers also discuss the possibility of creating a Java wrapper around the ONNX Runtime.

  • 00:00:00 In this section, the speaker suggests discussing three topics with the community: error handling, enhancing the model zoo, and implementing more operations or operators for quantization. They plan to utilize the next three sessions to talk about the cost and impact of these topics and to figure out prioritization based on the items with the highest impact and low cost. They also address a question about the impact of these topics on release 1.8 and explain that most of these changes will be made post-1.8. One community member suggests improving the error handling so that if the runtime encounters malformed protobufs, it won't terminate and instead will return an error code or throw an exception to ensure a better user experience.

  • 00:05:00 In this section, the discussion centers on improving the error handling of the loading code in ONNX in order to prevent crashes and improve functionality. The team has conducted fuzzing on the code and found that untrusted models have the potential to take down the entire process, making it a top priority to address. The ONNX runtime has a different checking process from the ONNX checker, and it's not yet clear if they can share the same checker. Additionally, the topic of better error handling during audits is raised, and the team plans to follow up on this suggestion.

  • 00:10:00 In this section, the speaker discusses their library called Trivial which interacts with the ONNX ecosystem and serves ONNX models. They propose adding a predefined metadata schema field in ONNX to denote the timestamp when the model was created, the training algorithm used for the model, and what source library was used to generate it. They suggest defining standard key names for the metadata field and typing them as well. The speaker believes having a schema for the metadata field would be useful for libraries and other users serving ONNX models. The conversation then shifts to the need to extend model testing to cover all models in Model Zoo and provide good examples with high quality.

  • 00:15:00 In this section, the discussion centers around the need for a quantization physical optimization as well as expanding ONNX's model zoo to include quantized models. There have been several requests to include quantized models in the model zoo, and the team hopes to find contributors. They mention a blog where the quantized ONNX model from Hugging Face has done well, but they would need permission from Hugging Face to post it. It was also suggested that the transformer library's top model could be an example for quantization, and Microsoft and space both work on it. Additionally, there was discussion about optimization and some agreed that it is better to leave optimization to the runtime as it is beyond the scope of ONNX's spec.

  • 00:20:00 In this section, the participants discuss the possibility of updating the ONNX models from Model Zoo to the most recent versions using the Version Converter tool. However, they note that the Version Converter is not fully up to date and there is some uncertainty as to whether the conversion is necessary, as ONNX supports all previous versions. The group also considers the idea of different language bindings for the ONNX toolset, with a particular interest in Java, in order to support different platforms such as Spark. The addition of a Java API or bindings would facilitate the loading and validation of model files and making a converter from other libraries into the ONNX format.

  • 00:25:00 In this section, the speakers discuss the possibility of creating a Java wrapper around the ONNX Runtime, which would make things easier for JVM-based machine learning projects such as Spark. Although it is a non-trivial undertaking, using the Java CPP presets to auto-generate stubs could be a good starting point. Backwards compatibility is crucial for large projects like Spark, and targeting Java 8 would require significant work. However, if there is enough interest and willingness from the community to contribute, it could be a good thing to explore.
 

2021 ONNX 로드맵 논의 #1 20210908


2021 ONNX 로드맵 논의 #1 20210908

ONNX 로드맵 토론 중에 IBM Research는 Pandas Dataframe의 일반적인 데이터 전처리 패턴을 ONNX 형식으로 변환하는 새로운 기계 학습 파이프라인 프레임워크에 대한 제안을 소개했습니다. Data Frame Pipeline이라고 하는 이 프레임워크는 GitHub에서 오픈 소스로 제공되며 훈련 단계 동안 Python에서 실행되는 제공된 API를 사용하여 정의할 수 있습니다. 연사는 또한 Java, C# 및 C++와 같은 Python 이외의 언어에서 ONNX를 볼 수 있도록 해야 하는 필요성과 ONNX 모델을 내보내고 다른 언어에서 내보낼 필요성에 대해서도 논의했습니다. 또한 ONNX Python 및 C++ 변환기의 현재 기능과 ONNX 모델을 작성할 때 범위 지정, 이름 지정 및 패치 기능의 필요성에 대해 논의했습니다.

  • 00:00:00 이 섹션에서는 IBM Research의 Takuya가 새로운 ONNX 연산자를 사용하는 새로운 기계 학습 파이프라인 프레임워크에 대한 제안을 소개합니다. 제안 동기는 기존 파이프라인 프레임워크가 일반적인 데이터 사전 처리 패턴을 나타낼 수 없기 때문입니다. 그들은 Pandas Dataframe의 일반적인 데이터 전처리 패턴을 ONNX 형식으로 변환하는 Data Frame Pipeline on Python이라는 새로운 파이프라인 프레임워크의 프로토타입을 만들었습니다. 그들은 날짜 연산자와 두 개의 간단한 연산자, 문자열 연결기 및 문자열 분할기를 포함하여 세 개의 새로운 ONNX 연산자를 보호했습니다. 파이프라인 프레임워크는 GitHub에서 오픈 소스로 제공되며 훈련 단계 동안 Python에서 실행되는 제공된 API를 사용하여 정의할 수 있습니다. 모델은 데이터 프레임 파이프라인에서 출력되는 데이터를 사용하여 학습되며 해당 프레임워크는 이미 변환된 ONNX 기계 학습 모델을 사용할 수 있습니다.

  • 00:05:00 이 섹션에서는 발표자가 ONNX 형식과 Microsoft에서 제공하는 ONNX 런타임과 함께 사용할 수 있는 방법에 대해 설명합니다. 그들은 프로토타입에서 Python으로 11개의 데이터 프레임 변환기를 구현하고 ONNX 연산자에 매핑했으며, 대부분은 단순한 매핑이지만 일부는 함수 변환기와 같이 분석 및 변환이 필요하다고 언급합니다. 또한 ONNX에서 집계 연산자를 수행하는 대신 대전된 본문 속성을 사용하여 ONNX 연산자를 생성하는 접근 방식에 대해 설명합니다. 연사는 ONNX에서 사전 처리를 학습할 때 범주형 인코딩의 성능이 300배 향상되어 상당한 속도 향상을 보여주는 예비 실험 결과를 공유합니다. 그들은 또한 예측 정확도를 비교하고 그들의 제안을 언급하여 제시된 연산자에 대한 질문과 의견을 위한 바닥을 엽니다.

  • 00:10:00 이 섹션에서 Oracle Labs의 Adam Pogba는 ONNX가 Python 이외의 언어로 표시되어야 한다고 제안합니다. 현재 기능은 모두 Python으로 래핑되어 있고 C++가 바인딩의 유효한 대상인지 확실하지 않기 때문입니다. Pogba는 사용자가 유효한 Python 환경 없이도 상호 작용할 수 있도록 모델 검사기가 다른 언어로 표시되어야 한다고 설명합니다. 또한 Pogba는 구문 분석 문제로 인해 모델을 사용할 때 ONNX Runtime이 때때로 세그폴트를 발생하며 모델 검사기를 사용하여 이 문제를 확인하고 쉽게 해결할 수 있다고 언급했습니다.

  • 00:15:00 이 섹션에서 발표자는 모델 검사의 핵심 기능과 다른 언어에 노출되는 것이 얼마나 유용한지에 대해 논의합니다. 그들은 Java로 만들고 싶지만 모든 사람이 Java API를 작성하는 것은 아니므로 C API가 대부분의 언어에서 쉽게 바인딩할 수 있는 더 나은 옵션이라는 것을 이해합니다. 그러나 사람들이 바인딩할 안정적이고 적절한 대상이 있어야 하며 이러한 도구의 C++ API가 바인딩에 적합한 대상으로 간주되는지 즉시 명확하지 않습니다. 화자는 이러한 노력에 기꺼이 참여하지만 커뮤니티의 관심이 없다면 큰 노력을 기울일 가치가 없습니다.

  • 00:20:00 이 섹션에서 발표자는 ML.NET 및 Trivial Library에 특히 중점을 두고 ONNX 모델 내보내기 및 C# 및 Java와 같은 Python 이외의 다른 언어에서 모델 내보내기에 대해 설명합니다. 연사는 모든 프로젝트가 ONNX 모델을 생성하는 데 사용할 수 있는 공통 API의 필요성을 촉구하며, 특히 버그가 발생하기 쉬운 공유 코드가 없는 현재 존재하는 세 가지 다른 구현을 고려합니다. 공통 API는 노드와 그래프를 업데이트하고 검증할 수 있는 한 곳만 보장하여 강점을 공유하고 다른 기계 학습 라이브러리가 ONNX 모델을 더 쉽게 내보낼 수 있는 기회를 제공합니다. 연사는 이것이 해야 할 일이 많을 수 있지만 공유 노력이 ONNX 에코시스템을 Python 이상으로 성장시킬 수 있음을 인정합니다.

  • 00:25:00 이 섹션에서는 연사가 ONNX Python 및 C++ 변환기와 현재 기능에 대해 논의합니다. 그들은 ONNX 설명서가 충분히 구체적이지 않아 특정 기능을 이해하기 어렵다는 점에 주목합니다. 그러나 그들은 ONNX 내보내기에 필요한 많은 기능이 이러한 변환기에 이미 존재하지만 올바른 방법으로 다른 프로젝트에 노출되어야 한다고 주장합니다. 또한 ONNX 모델을 작성할 때 범위 지정, 이름 지정 및 패치 기능의 필요성에 대해 논의합니다. 마지막으로 그들은 변환기가 아키텍처 인프라 서명에 연결되어 다른 사람들이 쉽게 사용할 수 있도록 이점을 얻을 수 있다고 제안합니다.
ONNX Roadmap Discussion #1 20210908
ONNX Roadmap Discussion #1 20210908
  • 2021.09.08
  • www.youtube.com
1. Takuya Nakaike (IBM) – New operators for data processing to cover ML pipeline (eg: StringConcatenator, StringSplitter, Date)2. Adam Pocock (Oracle Labs) –...
 

2021 ONNX 로드맵 논의 #2 20210917



2021 ONNX 로드맵 논의 #2 20210917

ONNX 로드맵 토론 #2 20210917에서 다양한 연사가 양자화 및 퓨전 친숙성, 특정 하드웨어 플랫폼에 대한 커널 최적화, ONNX에 모델 로컬 기능 추가 등 ONNX에 개선이 필요한 몇 가지 주요 영역에 대해 논의했습니다. 다른 주제에는 종단 간 파이프라인 지원에 대한 피드백, 다양한 플랫폼에서 클라이언트가 직면한 문제, GRU 및 LSTM 그래프 변환 문제가 포함되었습니다. 몇 가지 제안된 솔루션에는 사전 양자화된 그래프를 실행하기 위해 백엔드에 더 많은 정보를 제공하고, 다양한 프레임워크의 상호 운용성을 개선하고, 일반 솔루션과 최적화된 솔루션을 모두 허용하기 위해 원래 그래프와 관련된 네임스페이스를 포함하는 것이 포함되었습니다. 또한 연사들은 더 폭넓은 채택을 위해 더 나은 패키지 배포의 필요성과 다중 모달 모델을 지원하기 위해 더 많은 변환기가 개발될 가능성에 대해 논의했습니다.

  • 00:00:00 이 섹션에서는 Green Waves Technologies의 Martin이 ONNX에 개선이 필요한 두 가지 영역, 양자화 및 퓨전 친화성에 대해 설명합니다. 양자화의 경우 Martin은 사전 양자화된 그래프를 실행하기 위해 백엔드에 더 많은 정보를 제공할 것을 제안합니다. ONNX가 고객이 특수한 것을 구현하려는 다양한 방식을 모두 따르는 것은 불가능하기 때문입니다. 이를 지원하기 위해 Martin은 최소값, 표준 편차 및 평균 정보를 텐서에 추가하고 이상치 통계, 채널당 채널 정보 및 분포 정보와 같은 추가 정보를 가능한 추가 기능으로 추가할 것을 제안합니다. 친숙한 융합을 위해 Martin은 더 나은 가져오기/내보내기 기능을 제공하여 서로 다른 프레임워크의 상호 운용성을 개선할 것을 제안합니다. 그러면 ONNX가 다른 그래프를 가져오거나 내보낼 때 사용할 올바른 변환기를 쉽게 식별할 수 있습니다.

  • 00:05:00 이 섹션에서 발표자는 구성된 연산자에 대한 현재 함수 사용과 연산자가 분할될 때 특정 하드웨어 플랫폼에 대한 커널 최적화의 어려움에 대해 논의합니다. 더 높은 수준의 컨테이너(가능한 함수)에서 내보낸 함수를 그룹화하고 해당 컨테이너를 특정 백엔드의 최적화된 커널에 매핑하는 아이디어가 제안됩니다. 또한 발표자는 원본 그래프와 관련된 네임스페이스를 포함하여 일반적인 솔루션과 최적화된 솔루션을 모두 허용하도록 제안합니다. 최신 ONNX 릴리스에서 모델 로컬 기능을 가져오는 기능 추가도 언급됩니다.

  • 00:10:00 이 섹션에서 연사는 ONNX에 모델 로컬 함수를 추가하여 변환기 연산자가 함수 본문을 모듈 proto에 ONNX 표준에 정의되지 않은 연산자에 대한 자리 표시자로 포함할 수 있도록 하는 방법에 대해 논의합니다. 그러나 발표자들은 또한 변환기가 기계가 읽을 수 있는 방식으로 내보내는 항목에 레이블을 지정하고 설명하는 것이 모범 사례여야 한다는 점에 주목합니다. 또한 최적화가 명명 규칙에 어떻게 영향을 미칠 수 있는지에 대해 다루고 Slack 채널이나 추가 회의에서 주제에 대한 토론을 계속할 것을 제안합니다. ONNX 프로파일링에 대한 다음 프레젠테이션이 소개됩니다.

  • 00:15:00 이 섹션에서는 엔드투엔드 파이프라인 지원에 대한 피드백에 대해 논의합니다. ONNX는 무거운 에코시스템 요구 사항을 요구하지 않는 다양한 운영 체제에 대한 경량 배포에 적합합니다. 연사는 ONNX 및 ONNX ML 모두에서 ONNX 운영자가 모델뿐만 아니라 다른 유형의 데이터 생성 작업을 포함하는 데이터 준비 단계를 실행할 수 있도록 하는 방향에 대한 희망을 표현합니다. 그들은 단순하거나 일반적인 배포 아티팩트 또는 모델이 가치를 더할 수 있을 뿐만 아니라 표준 변환과 관련된 손쉬운 결과에 초점을 맞춤으로써 노력과 일관성을 절약할 수 있다고 주장합니다.

  • 00:20:00 이 섹션에서 발표자는 다양한 플랫폼에서 클라이언트가 직면한 몇 가지 문제에 대해 논의하고 ONNX 플랫폼을 지속적으로 개발하고 확장할 때의 잠재적 가치에 대해 설명합니다. 그들은 사일로화 문제와 더 나은 채택을 위해 패키지 배포를 단순화해야 할 필요성을 다룹니다. 이 대화에는 비슷한 문제가 있음을 확인하고 Linux 서버 ONNX를 병합하는 옵션을 제안하거나 사용자가 사용자 지정 코드를 ONNX로 변환하는 데 도움이 되는 더 나은 방법을 찾는 참가자의 의견도 포함됩니다. 연사는 또한 다중 모달 지원 주제와 모델 앙상블이 단일 ONNX 그래프로 표현되어야 하는 필요성에 대해 다룹니다. 그들은 더 많은 변환기에 대한 잠재적인 필요성에 대해 논의하고 올바른 방향으로의 일반적인 움직임을 제안합니다.

  • 00:25:00 ONNX 로드맵 토론의 이 섹션에서 팀은 프록시 모델에 대한 프록시의 예를 논의하여 이미지가 아닌 유형의 사용 사례에 대해 고객이 엔터프라이즈 환경에서 사용하는 유형을 보여줍니다. 한 팀 구성원은 일부 공개 데이터를 사용하고 비교적 단순한 2계층 LSTM 모델인 사기 탐지 모델에 대한 프록시의 예를 언급합니다. 팀은 이 문제를 더 자세히 조사하고 앞으로 제시할 프록시 모델의 더 많은 예를 얻으려고 노력하고 있습니다. 또한 GRU 및 LSTM이 올바르게 변환되지 않는 문제에 대해 논의하고 모든 경우에 대한 지원을 추가하고 싶다고 언급합니다.

  • 00:30:00 이 섹션에서 연사는 GRU(gated recurrent unit) 그래프를 백엔드 변환기에서 읽을 수 있는 형식으로 변환하는 문제에 대해 논의합니다. TensorFlow에서 이미 고장이 발생하는 경우가 있지만 GRU로 되돌리기가 어렵다고 언급합니다. 그들은 `--custom ops` 플래그를 사용하고 그것에 대해 작동하는 커널을 만들 것을 제안합니다. 그들은 최선의 옵션은 사용자가 세분화를 원하는지 여부를 명시적으로 표시하는 것이며 사용자 지정 작업을 사용하는 것이 이를 강력하게 수행하는 유일한 방법일 수 있다는 점에 주목합니다.

  • 00:35:00 이 섹션에서 연사는 ONNX와 높은 수준에서 전체 기능 본체를 갖는 것이 더 나은지 또는 TF 기반을 갖는 것이 더 나은지에 대해 논의합니다. 그들에게는 ONNX가 체인을 따라 결과의 증거로 사용될 수 있기 때문에 TF 기반으로 충분할 것입니다. 그러나 그들은 ONNX가 다른 위치에서 올 수 있어야 하므로 ONNX TensorFlow 중심으로 만드는 것에 대해 주의합니다. 그들은 또한 다양한 프런트 엔드에서 정의하고 생성해야 하는 연산자로 생각하면서 의미론적 의미를 가진 명명된 하위 그래프의 매력에 대해 언급했습니다. 마지막으로 그들은 더 많은 지식을 가진 사람들과 토론을 계속하기 위해 더 깊은 발표를 하기로 합의했습니다.
ONNX Roadmap Discussion #2 20210917
ONNX Roadmap Discussion #2 20210917
  • 2021.09.17
  • www.youtube.com
1. Martin Croome (Greenwaves) – Add meta information in tensors2. Andrew Sica (IBM) – E2E pipeline with ONNX operators (include Keras, TF, Scikit-learn/Spark...
 

2021 ONNX 로드맵 논의 #3 20210922



2021 ONNX 로드맵 논의 #3 20210922

ONNX 로드맵 토론에서 연사는 특정 사용 사례에 대해 최신 최적화 스택으로 ONNX 채택을 개선하기 위해 ONNX의 오프셋 변환 도구로 문제를 해결해야 할 필요성을 언급했습니다. 발표자들은 오퍼레이터 또는 레이어 테스트에서 현재 누락된 중간 단계의 오프셋 변환 및 해상도를 테스트하기 위해 더 나은 모델 커버리지를 제안했습니다. 그들은 또한 전이 학습 주석을 위해 ONNX 사양에 메타데이터를 포함해야 하는 필요성과 개인 정보 보호, 효율성 및 계산 리소스 사용을 가능하게 하는 연합 학습의 개념을 포함하여 메타데이터 및 연합 학습 인프라의 중요성에 대해 논의했습니다. 연사는 커뮤니티의 협력을 장려하고 이러한 아이디어를 더 논의하고 구현하기 위한 피드백을 요청했습니다. 다음 세션은 10월 1일로 예정되어 있습니다.

  • 00:00:00 이 섹션에서는 Intel의 Manoj가 많은 고객에게 문제를 일으킨 ONNX 모델에 대한 오프셋 변환의 격차를 해결합니다. 기본 문제는 오프셋 변환에 있습니다. 많은 고객이 모델을 프로덕션에 배포한 후 오프셋을 계속 업데이트하지 않고 계속 업데이트하기 때문입니다. 고객은 양자화를 위해 7에서 10, 13으로 이동하거나 성능과 우수한 정확도를 활용하기 위해 이전 오프셋을 최신 오프셋으로 변환할 수 없는 등 오프셋 변환과 관련된 여러 문제에 직면하고 있습니다. 또한 단위 테스트 또는 모든 연산자 또는 계층과 관련된 모든 테스트는 ISV가 만족하는 지점까지가 아니므로 대부분의 고객은 여전히 10 또는 9 오프셋에 있습니다.

  • 00:05:00 이 섹션에서 연사는 특정 사용 사례에 대해 최신 최적화 스택이 있는 ONNX 채택을 방해하는 ONNX의 오프셋 변환 도구로 문제를 해결해야 할 필요성에 대해 논의합니다. AI를 통합하고 응용 프로그램에 제공하는 개발자는 변환 도구를 수정하고 원활하게 유지해야 할 필요성에 대한 피드백을 제공하고 있습니다. 그들은 양자화된 성능 모델로의 전환을 방해하는 중간 단계 누락 및 어댑터 구현 누락과 같이 그들이 직면한 문제의 예를 공유합니다. 연사는 ONNX의 더 나은 채택을 보장하기 위해 더 나은 커버리지와 더 많은 모델을 테스트해야 할 필요성을 강조합니다.

  • 00:10:00 비디오의 이 섹션에서 연사는 ONNX의 추가 개선을 위해 최고의 크리에이터 회사에서 최소 하나의 실패한 모델을 승인해야 하는 필요성에 대해 논의합니다. 토론은 모바일 및 Windows와 같은 서로 다른 생태계 사이의 격차 중 하나인 fp16 변환의 개선과 최근 Microsoft 변환기 도구로 어떻게 수정되었는지로 이동합니다. 변환에 대한 책임은 불분명하지만 논의는 모델 동물원에 관한 다음 프레젠테이션으로 이동합니다. 여기에서 교육을 위한 파닉스 연산자를 포함하면 범주 전체의 모든 모델을 다루는 데 도움이 됩니다. 그들은 변환기 또는 NLP 교육 샘플로 시작하여 더 많은 모델로 이동하여 ONNX에 적용할 수 있는 분산 교육 인프라 및 기술을 선보일 것을 제안합니다.

  • 00:15:00 이 섹션에서는 스피커가 양자화 인식 교육 및 혼합 정밀도 사용의 중요성을 포함하여 교육에 ONNX 모델을 사용하는 방법에 대해 논의합니다. 그들은 정확도를 더 잘 비교하고 ONNX 모델을 사용한 교육을 위한 혼합 정밀도 사용을 보여주기 위해 원본 fp32 모델을 요청합니다. 그들은 변압기 샘플에 기여하는 것을 우선시하지만 다른 인기 있는 카테고리를 기여하는 데 있어 커뮤니티의 도움을 요청합니다. 또한 메타데이터의 일부로 모델 내에서 혼합 정밀도 사용을 더 잘 반영하기 위한 향후 제안에 대해 논의합니다. 마지막으로 Gabe Stevens는 인텔이 검토하기 시작한 배포 구성을 제시합니다.

  • 00:20:00 이 섹션에서 발표자는 분산 및 연합 학습의 개념과 개인 정보 보호, 대기 시간, 효율성 및 컴퓨팅 리소스 사용 측면에서 이점에 대해 논의합니다. 아이디어는 여러 장치에 모델을 배포하는 것입니다. 여기서 일부 장치에는 표시되는 데이터를 사용하여 모델을 보강하는 교육 그룹이 있습니다. ONNX에 대해 제안된 수정 사항은 연합 학습을 용이하게 하여 개발자가 ONNX를 사용할 가능성을 높입니다. API에 대한 최소 추가 세트에는 부품을 쿼리하여 로컬 모델의 매개변수를 가져오고, 해당 매개변수를 업데이트하고, 모델이 어떻게 변경되어 새 모델로 통합되었는지 서버에 알리는 방법이 포함됩니다. 장치.

  • 00:25:00 비디오의 이 섹션에서 연사는 ONNX 사양에 메타데이터를 포함하여 전이 학습 주석을 허용하고 더 큰 데이터 세트에서 훈련된 모델로 더 작은 데이터 세트를 훈련시키는 아이디어에 대해 논의합니다. 그러나 이러한 시스템의 구현에는 구현자에게 맡겨야 하는 여러 설계 결정이 포함됩니다. 발표자는 응용 프로그램 개발자에게 필요한 유연성을 제한하지 않고 이러한 시스템의 기본 인프라를 용이하게 할 수 있는 세 가지 항목을 제안합니다. 또한 일련의 장치에서 모델 버전 배포의 일관성이 필요하고 ONNX 모델만 연합 학습 시스템에 참여할 수 있도록 강제하지 않는 것이 중요하다고 언급합니다. 발표자는 사양 설계자가 이러한 유형의 학습 구성에 관심을 기울이는 데 관심이 있는지 여부와 추가 토론에 열려 있는지 여부에 대한 피드백을 요청합니다. 또 다른 연사는 ONNX 런타임으로 이 작업을 시도할 것을 제안합니다. ONNX 런타임은 교육을 지원하고 이를 사용하여 연합 학습을 수행하기 위한 몇 가지 개념 증명이 구축되었기 때문입니다.

  • 00:30:00 이 섹션에서 연사는 프레젠테이션에 들인 엄청난 노력에 감사를 표하고 질문에 대해 커뮤니티에 감사를 표합니다. 프레젠테이션의 목표는 추가 논의 및 최종 구현을 위해 관련 SIG에 아이디어를 제시하는 것입니다. 마지막 세션은 10월 1일에 열릴 예정이며 연사는 이러한 아이디어에 계속 참여하기를 기대합니다.
ONNX Roadmap Discussion #3 20210922
ONNX Roadmap Discussion #3 20210922
  • 2021.09.27
  • www.youtube.com
1. Rajeev Nalawadi & Manuj Sabharwal (Intel) – Address gaps with Opset conversions across broad set of models2. Rajeev Nalawadi (Intel) – ONNX model zoo exam...
 

ONNX 커뮤니티 가상 모임 - 2021년 3월



000 ONNX 20211021 ONNX SC 환영 진행 로드맵 릴리스

ONNX 워크숍은 주최자가 ONNX 에코시스템의 성장에 있어 커뮤니티 참여의 중요성을 강조하는 소개로 시작되었습니다. 그들은 또한 ONNX 통계, 커뮤니티 프레젠테이션, ONNX 운영 위원회의 로드맵 토론에 대한 업데이트가 포함된 의제에 대한 개요를 제공했습니다. 로드맵 제안은 ONNX 프레임워크의 지원, 견고성 및 유용성을 개선하는 것을 목표로 하며 사전 처리 연산자, C API, 연합 학습, 데이터 처리 및 추론의 더 나은 통합을 포함합니다. ONNX 사양 버전 1.10의 최신 릴리스에 대해서도 논의했으며 참석자들은 질문을 하고 ONNX Slack 채널에 참여하여 대화를 계속할 수 있었습니다.

  • 00:00:00 워크숍의 이 섹션에서 주최자는 개요를 제공하고 모든 참석자를 환영합니다. 그들은 AI에 사용할 수 있는 다양한 제품을 언급하고 참석자들에게 이를 확인하도록 촉구합니다. 워크숍의 전반적인 목표는 ONNX, 해당 프로세스, 로드맵 및 릴리스에 대한 최신 업데이트를 얻고 ONNX가 어떻게 사용되고 있는지 커뮤니티 참가자로부터 배우는 것입니다. 참석자가 피드백을 공유하고 ONNX 운영 위원회, SIG 및 작업 그룹에 더 많이 참여하도록 권장합니다. ONNX 작업 그룹의 계획, Wenming Yi의 State of the State 프레젠테이션, 뒤이어 Alex, 커뮤니티 프레젠테이션을 포함하는 의제에 대한 개요를 제공합니다. 마지막으로, 월간 다운로드가 거의 400% 증가한 160만 건을 포함하여 ONNX 통계에 대한 흥미로운 업데이트를 제공하여 생태계의 건전한 성장을 보여줍니다.

  • 00:05:00 이 섹션에서 연사는 ONNX 에코시스템의 진행과 성장에 대해 논의하고 커뮤니티 내 회사의 기여의 중요성을 강조합니다. 연사는 Java 커뮤니티를 위한 좋은 경험을 구축하고 많은 성장을 보인 Amazon의 심층 Java 라이브러리 프로젝트를 언급합니다. IBM, AMD 및 Sony와 같은 여러 상업 회사는 생태계를 지원하고 ONNX가 업계 표준이 되도록 돕고 있습니다. 발표자는 또한 커뮤니티의 거버넌스와 운영 위원회의 새로운 구성원에 대해 이야기하고 로드맵 토론, Slack 채널, GitHub의 Q&A, 문서 및 블로그에 대한 기여에 참여하도록 초대합니다. 다음 연사는 올바른 방향으로 이동하고 ONNX 모델을 CPU 및 가속기용 배터리로 낮추는 데 중요한 로드맵을 제시합니다.

  • 00:10:00 이 섹션에서는 연사가 여름 동안 진행된 ONNX 운영 위원회의 로드맵 토론에 대해 논의합니다. 서로 다른 구성원으로부터 받은 제안은 각각 3개의 제안으로 구성된 4개의 그룹으로 나뉘며 각 그룹은 승인 및 구현을 위해 해당 Sigs에 제시됩니다. 제안 범위는 전처리 연산자, C API, 모델 검사, 다른 언어로 모델 내보내기 지원, 텐서에 메타데이터 정보 추가, 데이터 처리 및 추론의 통합 개선, 연합 학습을 위한 개념 정의, 무결성을 개선하기 위한 메타데이터 처리 속성 정의 데이터, 모델 등. 목표는 모든 사용자를 위해 ONNX 프레임워크의 더 나은 지원, 견고성 및 유용성을 활성화하는 것입니다.

  • 00:15:00 이 섹션에서 연사는 ONNX 사양 버전 1.10의 최신 릴리스에 대해 논의하고 기여자들의 노고에 감사를 표합니다. next.ai 웹사이트에서 이 최신 변경 사항에 대한 추가 논의와 세부 사항이 있을 것입니다. 연사는 대화를 계속하기 위해 채팅 또는 ONNX 일반 Slack 채널에 질문을 게시하도록 청중을 초대합니다.
000 ONNX 20211021 ONNX SC Welcome Progress Roadmap Release
000 ONNX 20211021 ONNX SC Welcome Progress Roadmap Release
  • 2021.11.06
  • www.youtube.com
Event: LF AI & Data Day - ONNX Community Meeting, October 21, 2021Talk Title: ONNX Steering Committee (SC) Update - Host Welcome, Progress, Governance, Roadm...
 

ONNX 커뮤니티 데이! 2022년 6월 24일 실시간 스트리밍

이 행사는 6월 24일 금요일에 새로운 Microsoft 실리콘 밸리 캠퍼스에서 직접 개최됩니다.

이 이벤트는 ONNX 커뮤니티 업데이트, 파트너 및 사용자 스토리, 다양한 커뮤니티 네트워킹을 다룹니다.



ONNX 커뮤니티 데이!

간단한 요약:

  • 00:00:00 - 01:00:00 YouTube 동영상 "ONNX 커뮤니티 데이!" 기계 학습 모델로 작업하는 개발자를 위한 상호 운용성 및 유연성에 대한 ONNX 커뮤니티의 작업에 대한 업데이트 및 개선 사항에 대해 설명합니다. ONNX 커뮤니티는 개방형 거버넌스 하에서 작동하며 생성, 실행 및 시각화라는 세 가지 범주의 도구는 커뮤니티의 ONNX 참여 및 사용을 지원합니다. 비디오는 ONNX 사양 업데이트, 새로운 연산자 및 변환기 개선과 같은 다양한 측면에 대한 진행 보고서를 제공합니다. 연사는 또한 하드웨어 공급업체를 위한 광범위한 고객과 사용자를 위한 여러 프레임워크 및 하드웨어 가속기에 대한 액세스를 포함하여 ONNX의 이점을 강조합니다. ONNX의 미래에는 실행 가능한 사양을 제공하는 ONNX 기능의 개념이 포함됩니다.

  • 01:00:00 - 02:00:00 ONNX 커뮤니티 데이 이벤트에서는 ONNX Model Zoo 및 ONNX 모델과 함께 사용할 사전 교육된 기계 학습 모델 및 데모를 제공하는 ONNX 자습서를 포함하여 ONNX와 관련된 여러 주제에 대해 논의합니다. 이 비디오는 데이터 전처리 작업을 표준화하여 모델 배포를 개선하는 것을 목표로 하는 ONNX 전처리 워킹 그룹의 작업을 강조합니다. 연사들은 또한 신경망 양자화의 기초와 TensorRT가 훈련 후 양자화 및 양자화 인식 훈련을 포함한 다양한 융합을 통해 양자화된 네트워크를 지원하는 방법에 대해 논의합니다. 그들은 또한 저정밀 양자화를 나타내는 ONNX의 한계를 탐구하고 양자화 노드와 역양자화 노드 사이의 정밀도를 유도하기 위해 클리핑을 사용하여 표현력을 확장하는 전략을 제안합니다. 마지막으로 이 비디오는 양자화되고 미세 조정된 TensorFlow 저장 모델의 정확도에 대한 사례 연구를 자세히 살펴봅니다.

  • 02:00:00 - 03:00:00 ONNX 커뮤니티 데이에서는 기계 학습 모델에서 메타데이터의 중요성과 ONNX의 JVM(Java Virtual Machine) 지원에 대해 논의하는 수많은 연사를 소개했습니다. 발표자들은 하드웨어 기반 기술을 사용하여 데이터를 보호하고 ONNX와 DeepJ 및 Deep Java 라이브러리를 포함한 다양한 기계 학습 라이브러리와의 호환성을 강조했습니다. 효율성 향상을 위한 바이트 버퍼 사용을 시연하고 책임 있고 설명 가능한 AI를 위한 메타데이터 표준화의 중요성에 대해 논의했습니다. 프레젠테이션에는 ONNX 및 ONNX 런타임을 사용하여 개선된 중국 은행의 런타임을 포함하여 성공 사례도 포함되어 있습니다. ONNX 커뮤니티는 ONNX에서 컴퓨터가 읽을 수 있는 메타데이터를 지원하여 허브 워크플로에서 메타데이터 생성, 쿼리 및 필터링 작업을 하고 있습니다. 전반적으로 프레젠테이션은 ONNX 플랫폼의 강점과 개발에 대한 커뮤니티의 노력을 강조했습니다.

  • 03:00:00 - 04:00:00 "ONNX 커뮤니티 데이!" 비디오는 ONNX 생태계와 관련된 다양한 업데이트 및 기능을 다룹니다. 여기에는 양자화 시뮬레이션에 대한 논의가 포함되어 양자화된 모델과 사전 훈련된 모델 사이의 정확도 저하를 줄이고, NVIDIA의 툴킷으로 훈련된 TensorFlow 모델을 TensorRT를 사용하여 ONNX 그래프에 배포하고, 최적화된 텐서 모양, 실행 공급자, 모바일 플랫폼 지원. 또한 XNNpack 라이브러리 지원 및 사전/사후 처리 작업을 위한 ONNX 런타임 확장 생성을 포함하여 ONNX 자체에 대한 업데이트가 논의되었습니다. 비디오는 또한 교육에서 추론에 이르기까지 변환기 모델을 가속화하는 데 중점을 둔 라이브러리 Optimum을 소개합니다.

  • 04:00:00 - 05:00:00 ONNX 커뮤니티 데이에는 ONNX 런타임 및 사용 사례와 관련된 다양한 주제에 대한 토론이 포함되었습니다. 연사는 ONNX 런타임 패키지, PiTorch ONNX 변환기 및 PyTorch의 사용자 지정 작업의 기능을 설명했습니다. 그들은 또한 프로세스 모니터링 및 상거래의 디지털화와 같은 사용 사례와 모델 배포 및 호환성 테스트와 관련된 문제에 대해 논의했습니다. 행사 내내 ONNX 런타임이 성능을 개선하고 배포 크기를 줄이는 데 도움이 될 수 있지만 일관된 품질과 속도를 보장하려면 호환성과 선택이 필수적이라는 점을 강조했습니다.

  • 05:00:00 - 06:00:00 ONNX 커뮤니티 데이에는 ONNX 프레임워크를 사용하여 기계 학습 모델을 최적화하고 배포하는 데 사용되는 다양한 도구와 기술에 대해 여러 연사가 토론했습니다. NVIDIA는 추론을 위한 블록 분할과 모델 디버깅 및 수정을 위한 ONNX 전용 도구를 사용하여 이미지 품질과 모델 호환성을 개선하는 방법에 대해 논의했습니다. Qualcomm은 ONNX를 교환 형식으로 사용하여 AI 가속기를 설계에 통합한 방법을 설명하고 ONNX 런타임과 최적화 및 배포를 위한 다양한 도구를 포함하는 소프트웨어 스택을 소개했습니다. 또한 여러 발표자가 모듈 최적화, 검사점 지정, 모양 추론과 같은 기술을 사용하여 ONNX 모델을 최적화하는 방법에 대해 논의했습니다. 이 이벤트는 다양한 장치 사용 사례에 대한 ONNX의 다양성과 확장성을 강조하고 ONNX 프로젝트를 계속 성장시키기 위한 기여를 장려했습니다. 마지막 부분은 개발자를 위한 탭 처리 변환 및 모델 초기화의 복잡성을 숨기는 것을 목표로 하는 SPIP 제안을 사용하여 기계 학습 모델을 Spark에 배포하는 프로세스를 단순화하는 데 중점을 둡니다. AI 애플리케이션 및 서비스 구축을 위한 API를 제공하는 소프트웨어 계층 "Kung"을 포함하여 Ascend AI 생태계 및 해당 프로세서가 소개되었습니다. Khan 소프트웨어 스택이 논의되었고 ONNX 런타임을 위한 새로운 실행 공급자로 추가하기 위한 로드맵이 제시되었습니다. 이벤트는 모바일 및 Edge용 ONNX, 모델 배포, 교육 및 운영, 변환, 운영자와 같은 주제에 대한 원탁 토론으로 종료되었으며, 해피 아워 및 설문 조사 피드백이 이어졌습니다.

자세한 일정 요약:
  • 00:15:00 선호하는 프레임워크에서 모드를 만든 다음 다른 프레임워크 및 도구에서 사용할 수 있는 공통 형식으로 모델을 내보냅니다. 이를 통해 기계 학습 모델로 작업하는 개발자의 상호 운용성과 유연성을 높일 수 있습니다. 또한 ONNX는 기계 학습 모델에 최적화된 런타임을 만들고자 하는 하드웨어 공급업체에게 유용합니다. 이제 여러 프레임워크를 지원하지 않고 ONNX에서 정의한 공통 연산자 집합을 지원하는 데 집중할 수 있기 때문입니다.

  • 00:20:00 이 섹션에서 발표자는 ONNX 사용의 이점에 대해 논의합니다. ONNX를 사용하면 사용자는 물론 하드웨어 공급업체의 광범위한 고객을 위해 여러 프레임워크 및 하드웨어 가속기에 액세스할 수 있습니다. ONNX 개발은 개방형 거버넌스 하에서 커뮤니티에 의해 수행됩니다. 즉, 이를 제어하는 단일 회사가 없습니다. 발표자는 또한 아키텍처 및 인프라, 연산자 변환기, 모델 영역, 자습서 및 새로운 전처리 작업 그룹을 포함하는 작업 그룹을 강조합니다. 연사는 계속해서 ONNX 모델의 생성, 실행 및 시각화라는 세 가지 도구 범주에 대해 설명하고 PR, 기여자, 별 및 월별 다운로드 수의 증가와 같은 지난 6개월 동안의 몇 가지 통계를 제공합니다. 커뮤니티의 ONNX 참여 및 사용을 강화합니다.

  • 00:25:00 이 섹션에서 발표자는 마지막 커뮤니티 업데이트 이후 ONNX 커뮤니티에서 발생한 릴리스 및 업데이트에 대해 설명합니다. ONNX 1.11은 올해 초에 출시되어 새로운 연산자를 도입하고 사용자가 다른 모델 동물원에서 사전 훈련된 모델을 가져올 수 있는 ONNX 모델 허브를 포함한 일부 연산자를 업데이트했습니다. 또한 Compose 유틸리티 및 함수 빌더와 같은 유틸리티가 버그 수정 및 인프라 개선과 함께 도입되었습니다. ONNX 1.12는 최근 더 많은 새로운 연산자, 형태 및 추론 기능 향상, Python 3.10 지원과 함께 도입되었습니다. 연사는 ONNX 로드맵 프로세스와 추가 진행을 위해 선택되어 작업 그룹에 할당된 12개의 로드맵 요청에 대해서도 논의합니다. 이러한 요청에는 데이터 사전 처리를 위한 새로운 연산자 구현, ONNX용 C API 등이 포함됩니다.

  • 00:30:00 비디오의 이 섹션에서 발표자는 모델과 텐서를 통해 흐르는 보다 구조화된 양자화 정보의 필요성을 해결하는 과정에 대해 논의합니다. ONNX 연산자가 포함된 종단 간 파이프라인에 대한 제안은 장기 가로채기로 식별되어 추가로 개선되고 있습니다. 지금까지 변환기에 약간의 진전이 있었으며 더 높은 기능의 작업이 지원됩니다. 연사는 또한 이것이 커뮤니티 프로젝트이기 때문에 더 많은 자원 봉사자가 필요하고 더 많은 사람들이 노력에 참여하도록 회사에 요청하는 것과 같은 다양한 영역에 대해 언급합니다. 발표자는 웹 사이트, GitHub, Slack 채널 및 ONNX 캘린더와 같은 다양한 리소스를 나열합니다.

  • 00:35:00 이 섹션에서는 연사가 ONNX의 최신 업데이트 및 개선 사항에 대해 설명합니다. 작업자를 위한 개선된 칩 영향 및 부정확하고 선택적인 입력의 보다 안정적인 처리와 같은 다양한 업데이트가 포함된 최근 두 가지 릴리스가 있습니다. 또한 발표자는 Model Composer 및 Function Builder라는 두 가지 중요한 릴리스의 추가를 강조합니다. 모델 변환기도 더욱 안정적이었으며 팀은 향후 혼합 릴리스에 대해 더 나은 지원을 제공할 계획입니다. 전반적으로 기여자가 수행한 모든 개선 사항을 나열하는 것은 불가능하지만 ONNX 개선을 위해 계속 노력하고 있습니다.

  • 00:40:00 Operator SIG의 Rama가 ONNX 사양에 대한 최근 변경 사항 및 업데이트를 요약했습니다. Operator SIG의 초점은 ONNX 사양을 구성하는 일련의 연산자를 발전시켜 새로운 연산자를 추가하고 해당 사양을 명확히 하는 것입니다. 지난 두 릴리스에서는 그리드 샘플 및 레이어 정규화와 같은 새로운 연산자가 도입되었습니다. scatter op와 같은 기존 연산자는 중복 인덱스를 지원하도록 업데이트되었으며 일부 op는 b float 16 및 선택적 유형과 같은 유형에 대한 지원을 제공하도록 확장되었습니다. Rama는 또한 새로운 운영자 중 일부가 곧 기능이 되도록 홍보할 계획도 언급했습니다.

  • 00:45:00 이 섹션에서 연사는 ONNX의 미래에 대한 계획과 컴팩트한 사양을 갖는 것과 사양에서 더 많은 작업이 필요한 새로운 종류의 모델을 지원하는 것 사이의 균형에 대해 논의합니다. 이 문제에 대한 솔루션은 ONNX 기능의 개념으로, 작업에 대한 실행 가능한 사양을 제공하고 충돌하는 요구 사항 간의 균형을 허용합니다. 발표자는 기본 연산자 집합을 함수로 승격하고 ONNX-Crypt라는 하위 집합을 사용하여 Python에서 작성을 활성화하여 기본 연산자 집합을 줄일 계획을 언급합니다. Jello 활성화 함수 및 드롭아웃 연산과 같은 함수의 예는 제어 흐름을 사용하여 의미 체계를 자연스럽고 간결하게 지정하는 방법을 설명하기 위해 제공됩니다.

  • 00:50:00 이 섹션에서 Kevin Chen은 변환기 신호에 대한 업데이트와 지난 회의 이후 수행된 작업을 제공합니다. 그는 PyTorch, TensorFlow 및 sk-learn to ONNX 변환기를 포함한 프런트 엔드 변환기 업데이트에 대해 설명합니다. PyTorch 변환기의 경우 최신 릴리스는 최대 ONNX 오프셋 16까지 ONNX 내보내기를 지원하며 특히 ONNX 로컬 기능으로 신경망 모듈을 내보내는 기능과 같은 새로운 기능이 추가되었습니다. 또한 Chen은 ONNX 중심성 및 ONNX TensorFlow 변환기와 같은 백엔드 변환기 업데이트를 검토합니다. 마지막으로 Chen은 컨버터 시그에 대한 로드맵을 제시하고 사람들의 참여를 독려합니다.

  • 00:55:00 이 섹션에서 연사는 SK learn to ONNX 변환기, ONNX 감지기 키 변환기 및 ONNX TensorFlow 변환기의 업데이트 및 개선 사항에 대해 논의합니다. 사용자는 모델을 변환할 때 향상된 사용자 경험을 위해 최신 버전으로 업데이트하는 것이 좋습니다. 컨버터 스틱의 로드맵에는 커뮤니티 중심 툴링 개선, 유틸리티 기능 표준화, 작업자 및 오프셋 지원 개선과 같은 목표가 포함됩니다. 사용자는 Slack에서 ONNX 변환기 채널에 가입하거나 ONNX 변환기 SIG 메일링 리스트를 구독하여 커뮤니티에 참여하고 피드백을 제공하는 것이 좋습니다.

  • 01:00:00 Microsoft의 Jackie가 ONNX Model Zoo 및 ONNX 자습서를 소개합니다. ONNX Model Zoo는 대부분 ONNX 커뮤니티에서 제공하는 사전 학습된 최신 기계 학습 모델 모음입니다. 현재 동물원에는 이미지 분류 및 개체 감지를 위한 40개의 ONNX 모델과 35개의 비전 기반 ONNX 모델을 포함하여 168개의 모델이 있습니다. ONNX 자습서는 다양한 시나리오 및 플랫폼에 대해 실제로 ONNX를 시연하는 문서 및 노트북을 제공합니다. Model Zoo는 인텔의 새로운 양자화 모델, 일상적인 CI 테스트를 통한 테스트 범위 증가, 깨진 테스트 데이터 세트 수정, Hugging Face 팀과의 협력을 통해 모델 시연을 위한 웹 인터페이스를 생성하는 등 지난 워크숍 이후 몇 가지 개선 사항을 확인했습니다.

  • 01:05:00 연사는 Python 코드 몇 줄을 작성하여 이미지 및 ONNX 모델을 쉽게 처리할 수 있는 웹 사이트를 포함하여 ONNX 사용에 대한 자습서 및 데모의 가용성에 대해 논의합니다. 또한 ORT에서 더 많은 모델을 실행할 수 있도록 하고 양자화 모델 및 학습 예제 모델을 포함하여 더 많은 기여를 통합할 계획과 함께 ONNX Model Zoo의 향후 로드맵에 대해 논의합니다. 또한 ONNX 모델과 함께 사용하기 위해 데이터를 더 쉽게 전처리하는 데 중점을 둔 ONNX 전처리 작업 그룹의 작업을 강조합니다.

  • 01:10:00 비디오의 이 섹션에서 발표자는 이미지 사전 처리에서 Pillow 및 OpenCV와 같은 인기 있는 라이브러리 간의 차이점을 강조하면서 데이터 사전 처리 파이프라인의 표준화 부족에 대해 논의합니다. 이러한 차이는 다른 플랫폼에 모델을 배포할 때 정확도 문제로 이어질 수 있습니다. 발표자는 모호성을 피하고 모델 배포를 개선하기 위해 데이터 사전 처리 작업을 표준화하려는 ONNX 그룹의 목표를 소개합니다. 이 그룹은 일괄 처리를 위한 구성 유틸리티 및 시퀀스 맵 연산자 개발과 같이 모델에 데이터 전처리를 포함하는 인프라를 개발하기 위해 노력해 왔습니다. ONNX 그룹은 또한 백엔드에서 식별하기 위해 모델의 전처리 부분에 태그를 지정하는 방법을 조사하고 있습니다. 또한 이 그룹은 선택적인 앤티 앨리어싱 필터 및 화면 비율 유지 정책을 포함하여 크기 조정 연산자에 대한 확장을 제안하고 있습니다.

  • 01:15:00 연사는 더 높은 수준의 추상화를 제공하고 기존 패드 및 슬라이스 연산자에 의존하는 제안된 중앙 자르기 또는 경로 작업의 구현에 대해 논의합니다. 시청자가 Slack 채널과 월간 회의에 참여하여 아이디어를 공유하도록 권장합니다. 다음 프레젠테이션은 ONNX 사전 처리 작업 그룹의 목표를 요약하고 수행한 최근 작업을 공유하는 Joaquin Anton의 프레젠테이션입니다. 이탈리아의 Marvin은 또한 자신과 자연어 처리 분야의 개발자 및 데이터 과학자로서의 작업을 소개합니다.

  • 01:20:00 발표자가 프로젝트 작업을 시작하기 전에 ONNX 문서를 확인하는 것의 중요성에 대해 논의합니다. 그들은 모든 모델이 ONNX에 맞게 쉽게 변환되거나 최적화될 수 있는 것은 아니며 프로젝트에 필요한 운영 기능이 사용 중인 프레임워크에서 구현되도록 하는 것이 중요하다고 설명합니다. 또한 연사는 최상의 성능 옵션이 항상 모델을 최적화한다는 가정에 대해 조언합니다. 때로는 이러한 옵션이 실제로 정확도를 떨어뜨릴 수 있기 때문입니다. 전반적으로 프로젝트의 아키텍처를 신중하게 고려하고 ONNX 문서 및 ONNX 옵티마이저와 같은 도구를 확인하여 오류를 피하고 클라우드 또는 장치에 성공적으로 배포하는 것이 중요합니다.

  • 01:25:00 이 섹션에서는 Nvidia의 Jiraj Perry가 신경망 양자화의 기본 사항과 TensorRT가 다양한 융합을 통해 양자화된 네트워크를 지원하는 방법에 대해 설명합니다. 그는 양자화는 선형 또는 비선형 스케일링 기술을 사용하여 연속 값을 불연속 값 세트로 변환하는 프로세스이며, 이를 통해 더 빠른 추론과 더 적은 메모리 공간을 제공할 수 있다고 설명합니다. 그러나 정확성과 절충점이 있을 수 있습니다. Jiraj는 또한 다양한 양자화 체계와 양자화 매개변수 또는 q 매개변수의 중요성에 대해 언급합니다. 그런 다음 그는 훈련 후 양자화(PTQ) 및 양자화 인식 훈련(QAT)과 이들이 q 매개변수를 결정하는 방법을 소개합니다.

  • 01:30:00 이 섹션에서는 비디오에서 PTQ(Post Training Quantization) 및 QAT(Quantization Aware Training)에 대해 설명합니다. PTQ에는 보정 데이터 세트에서 사전 훈련된 모델을 실행하고 양자화 매개변수를 계산하기 위해 각 계층의 동적 범위를 결정하기 위해 계층별 통계를 수집하는 작업이 포함됩니다. QAT는 원하는 레이어에 qdq 노드를 도입하고 모델 또는 양자화 매개변수를 학습하기 위해 적은 수의 에포크에 대한 그래프를 미세 조정합니다. PTQ는 일반적으로 더 빠르며 최종 정확도에 대한 제어가 적은 반면 QAT는 느리지만 더 정확한 제어를 제공합니다. 이 비디오는 또한 Google의 TF Mod 툴킷과 TF Mod 위에 구축된 NVIDIA의 TF2 양자화 툴킷 간의 접근 방식의 차이점을 강조합니다.

  • 01:35:00 이 섹션에서 발표자는 qdq 노드가 배치되는 위치 측면에서 Nvidia의 양자화 툴킷과 tf mod 간의 차이점에 대해 설명합니다. Nvidia의 툴킷은 qdq 노드를 네트워크 레이어의 입력 및 가중치에 배치하는 반면 tf mod는 레이어의 가중치 및 출력에 배치할 것을 권장합니다. 연사는 또한 TensorRT가 qdq 노드를 위한 전용 융합과 함께 포인트 와이즈 융합 컨벌루션 및 풀링 융합과 같은 계층 융합을 통해 모델을 최적화하는 방법에 대해 설명합니다. 또한 TensorRT의 그래프 최적화 프로그램은 qdq 전파를 수행하여 q 및 dq 노드를 이동하여 그래프의 최대 부분이 인테이크에서 실행되도록 합니다. 제시된 융합 예제에는 평균 풀 양자화 및 요소별 추가 융합이 포함됩니다. 마지막으로 화자는 잔차 블록에서 양자화 융합을 검사합니다.

  • 01:40:00 이 섹션에서 발표자는 작업을 다시 로드할 때 Tensor RT에서 최상의 성능을 얻기 위해 ID 분기에 qdq 노드를 추가하는 것의 중요성을 설명합니다. 결과 융합은 가중치의 dq 노드와 광고 너머로 전파되고 추가 계층 이후의 q 노드와 융합되는 입력처럼 보입니다. 발표자는 모델의 최상의 성능을 얻기 위해 원래 그래프에서 qdq 노드의 필요성을 강조하고 이를 제대로 사용하지 않으면 모델의 성능이 저하될 수 있다고 경고합니다. 연사는 TensorFlow 툴킷에 qdq 노드를 삽입하는 방법에 대한 토론을 시작하며 마무리합니다.

  • 01:45:00 이 섹션에서 발표자는 슬라이드 탐색과 관련된 기술적 문제를 인정하고 곧 해결될 것이라고 청중에게 확신시킵니다. 그런 다음 양자화되고 미세 조정된 TensorFlow 저장 모델을 얻은 후 정확도에 대한 사례 연구를 논의합니다. 청중은 짧은 휴식을 취하기 전에 질문을 할 수 있습니다.

  • 01:50:00 이 섹션에서 발표자는 양자화의 개념과 양자화 신경망에서 낮은 정밀도를 나타내는 데 양자화를 사용하는 방법에 대해 설명합니다. 양자화는 부동 소수점 값을 정수 값으로 매핑하는 양자화 함수와 정수 값을 다시 부동 소수점 표현으로 매핑하는 양자화 함수의 조합입니다. 이 두 기능의 조합을 가짜 양자화라고 합니다. 이 프로세스를 통해 표현을 정수 전용 표현으로 매핑할 수 있습니다. 특히 정밀도가 감소된 균일 양자화를 사용하여 rf 축구 플랫폼에서 대기 시간이 3마이크로초 미만인 초당 17억 개의 샘플을 허용했습니다.

  • 01:55:00 이 섹션에서 발표자는 특히 8비트 미만의 낮은 정밀도 양자화를 나타내는 ONNX의 한계에 대해 논의하고 클리핑을 활용하여 양자화 노드와 역양자화 노드 사이의 정밀도를 유도하여 ONNX의 표현력을 확장하는 전략을 제안합니다. . 이 전략은 정수 경계에서 지원되는 추가 클리핑 기능을 추가하고 기존 라이브러리 및 도구와의 역호환성에 영향을 미치지 않습니다. 그러나 이 전략은 양자화된 선형이 연산자로 허용되는 범위까지만 확장되며 다양한 유형의 반올림과 관련하여 몇 가지 제한 사항이 있습니다. 발표자는 또한 입력 브로드캐스트, 이진 양자화 옵션 등을 사용하여 더 광범위한 시나리오 세트로 확장하면서 단 하나의 노드에서 가짜 양자화를 나타내는 지수 방언(tuonex)에 대한 양자화에 대한 노력을 언급합니다. 이 형식은 fpga에 대한 배포 작업의 일부로 활용되며 q ONNX 및 nqcdq와 같은 도구는 기존 양자화 라이브러리와 통합되고 fpga 커뮤니티에서 채택되었습니다.

  • 02:00:00 이 섹션에서는 Mithril의 Daniel이 하드웨어를 활용하여 데이터를 보호하는 보안 영역 내에서 ONNX 모델을 배포할 수 있는 "Blind AI"라는 솔루션을 개발한 방법에 대해 설명합니다. 하드웨어 기반 기술을 사용함으로써 이 솔루션은 엔클레이브의 메모리 내용을 격리하고 암호화하여 외부로부터의 덤핑 시도를 방지합니다. 데이터는 엔클레이브 내부에서 해독되며 악의적인 내부자는 데이터에 액세스할 수 없습니다. 이는 개인 정보 보호 및 보안과 관련하여 데이터 소유자에게 큰 이점입니다. Blind AI는 온보딩이 쉬운 오픈 소스 솔루션이며 AI 제공업체가 이 솔루션을 유지 관리하고 판매하는 것이 수월합니다.

  • 02:05:00 이 섹션에서 연사는 Python SDK를 사용하여 진행률이 보장된 AI 모델을 배포하는 기능에 대해 논의합니다. 이를 통해 모델을 안전하게 업로드하고 제3자에게 데이터 액세스 권한을 부여하지 않고 분석용 데이터를 보낼 수 있습니다. 수하물 검색, 의료 문서 분석, 안면 인식 등 다양한 활용 사례를 커버할 수 있는 ONNX의 표현력도 부각된다. 스피커는 또한 실제로 사용되는 다양한 모델과 엔클레이브 내부 및 외부의 속도를 제공하며, 제공하는 보호로 인해 합리적으로 추가된 지연 시간을 제공합니다. 또한 ONNX에는 최소한의 코드 기반이 필요하므로 보안상의 이유로 개선되고 각 운영자를 강화하여 안전한 엔클레이브 사용을 보장할 수 있습니다. 프레젠테이션은 GitHub에 대한 정보와 다양한 시나리오를 다루는 방법, 기술 보안 세부 정보를 탐구할 수 있는 기회로 마무리됩니다.

  • 02:10:00 이 섹션에서 연사는 ONNX에서 머신 가독성 AI 메타데이터를 활성화하기 위한 제안에 대해 논의합니다. 여기에는 모델의 출처 및 기타 관련 특성을 추적하여 특정 사용 사례가 주어진 경우 시간이 지남에 따라 이동하고 진화하는 방식을 식별하는 것이 포함됩니다. 이 제안은 처음에 2020년 10월에 ONNX 운영 위원회에 제출되었으며 이제 팀은 모델 허브에 대한 종단 간 설계의 일부로 메타데이터의 생성, 쿼리 및 시각화를 포함하도록 제안을 확장하려고 합니다. 동물원. 연사는 책임 있고 설명 가능한 AI의 핵심 인에이블러로서 메타데이터의 중요성을 강조하고, 실패 모드를 좁히고 AI 시스템의 문제점을 식별하는 데 메타데이터의 유용성을 강조합니다.

  • 02:15:00 ONNX 커뮤니티 데이 프레젠테이션의 이 섹션에서 발표자는 모델에서 메타데이터의 중요성과 RDF를 사용하여 메타데이터를 표현하는 데 보다 기계가 읽을 수 있고 표준화된 접근 방식을 사용할 가능성에 대해 논의합니다. 그들은 이 접근 방식이 엔터티 간의 관계를 설정하고, 투명성을 유지하고, 출처를 추적하고, 모델의 정확도가 예상보다 낮은 원인에 대한 질문에 답하는 데 어떻게 도움이 되는지 설명합니다. 연사들은 또한 SPARQL을 사용하여 메타데이터를 쿼리하는 기능에 대해 논의하고 RDF 형식의 메타데이터가 있는 모델이 단순한 모델 카드가 제공할 수 있는 것 이상의 정보를 제공할 수 있는 방법을 설명합니다.

  • 02:20:00 이 섹션에서 연사는 데이터 및 디지털 자산을 액세스 가능하고 상호 운용 가능하며 재사용할 수 있도록 만들기 위한 일련의 지침 원칙인 Furnace 제어 용어에 대해 논의합니다. Furnace의 원칙은 시맨틱 웹 커뮤니티에 의해 식별되었으며 공정성, 신뢰성 및 지속 가능성을 포함합니다. Furnace 온톨로지를 사용하여 RDF로 인코딩된 메타데이터를 쿼리하여 NLP 작업에 적합한 모델을 찾고, 모델 작성자 및 크기를 식별하고, 모델의 탄소 발자국을 추적하여 분류 및 정렬할 수 있습니다. RDF와 쿼리 언어인 Sparkle의 확장성은 시험 기관에서 선택한 어휘를 넘어서는 무한한 확장성을 허용합니다. 이를 통해 책임 있는 AI 및 혼합 정밀 전류를 추적할 수 있습니다.

  • 02:25:00 이 섹션에서는 발표자가 ONNX 커뮤니티 데이의 쿼리 및 필터링 기능에 대해 논의합니다. 메타데이터 작성자가 메타데이터 태그를 사용하여 비공개 또는 개인 정보가 포함된 데이터 세트로 훈련된 모델을 식별하는 방법을 보여줍니다. 또한 발표자는 확장된 필터링 기능을 통해 사용자가 혼합 정밀도로 모델을 쿼리할 수 있는 방법을 시연합니다. 모델 프로필의 시각화와 메타데이터를 효율적으로 표시하기 위한 설명 가능한 AI 기술을 강조합니다. 발표자들은 ONNX에서 컴퓨터가 읽을 수 있는 메타데이터를 지원하여 허브 워크플로에서 전체 메타데이터 생성, 쿼리 및 필터링을 다루는 모델 생성 및 소비에 대한 구체적인 설계를 고려하기 위한 조치를 촉구합니다. 그들은 현재 허수아비 구현을 준비하고 메타데이터 생성을 위한 기술을 탐색하고 있습니다.

  • 02:30:00 이 섹션에서는 Oracle Labs의 Adam Pocock이 ONNX에서 JVM(Java Virtual Machine) 지원의 중요성에 대해 설명합니다. 대부분의 ML 애플리케이션은 Python 이외의 언어(예: Java)로 작성되지만 기계 학습을 이러한 언어로 가져오는 것이 중요합니다. ONNX 런타임 Java API는 최소한의 성능 영향 및 배포 용이성과 같은 기능과 함께 Java 및 기타 언어의 기계 학습을 통합하기 위해 Oracle Labs에서 개발되었습니다. Adam은 또한 Java API와 다른 API 간의 유사성을 보여주는 코드 예제를 제공합니다.

  • 02:35:00 이 섹션에서 연사는 바이트 스트림에 대한 바이트 버퍼 표현인 ONNX 텐서를 사용하여 데이터를 공급하고 모델을 실행하는 방법에 대해 설명합니다. Java에서 일반 배열을 사용할 수 있지만 연사는 제로 복사 경로로 인해 바이트 버퍼를 사용하여 데이터 처리 효율성을 높일 것을 권장합니다. 발표자는 또한 Java의 다차원 배열이 평평하지 않고 많은 포인터 추적을 수반하기 때문에 기계 학습에 적합하지 않다고 지적합니다. 발표자는 최신 버전의 Java로 업그레이드하고, 새로운 기능을 추가하고, ONNX 런타임 트리와 일치하도록 구축하기 위한 계획에 대해 추가로 논의합니다. 또한 발표자는 Java에서 ONNX 모델을 작성하는 오픈 소스 라이브러리를 소개합니다. 이 라이브러리는 JVM 어디에서나 사용할 수 있습니다.

  • 02:40:00 이 섹션에서 연사는 DeepJ와 같은 새로운 머신 러닝 라이브러리와 ONNX 도구 세트의 호환성과 이것이 ONNX 런타임과 통합되어 최고의 성능을 제공하는 방법에 대해 논의합니다. DeepJ는 필요한 모든 라이브러리를 추상화하고 Apache MixTape, Tensorflow, PyTorch, ONNX, Pedal 등과 같은 기계 학습 엔진이 사용할 여러 연산자 백엔드를 제공하여 다양한 딥 러닝 라이브러리에 대한 추상화 계층을 생성합니다. 또한 연산자 열거를 계속 확장하면서 표준 메타데이터 형식을 내보내도록 이 도구 세트에서 메타데이터를 표준화하는 방법을 모색하고 있습니다.

  • 02:45:00 이 섹션에서 발표자는 이미지 분류, 개체 감지, 감정 분석 및 동작 인식과 같은 작업을 다루는 일련의 사전 훈련된 모델이 포함된 Deep Java 라이브러리의 이점에 대해 논의합니다. 라이브러리는 서비스 준비가 되어 있으며 DHL과 함께 반년 이상 오류 없이 성공적으로 사용한 것으로 입증된 바와 같이 가능한 최고의 속도와 메모리 제어로 수행하기 위해 엄격한 테스트를 거쳤습니다. 또한 발표자는 ONNX 및 ONNX 런타임을 사용하여 상당한 성능 향상을 달성하고 대기 시간을 줄이는 여러 사용 사례를 공유합니다. 하나의 성공 사례는 단일 이미지에서 OCR 모델 실행 시간을 1초에서 400밀리초 미만으로 단축할 수 있었던 중국 은행에 관한 것입니다. 또한 발표자는 하이브리드 엔진 개념을 도입하여 두 개의 엔진을 동시에 로드하고 엔진 간에 부드러운 전환을 제공합니다.

  • 02:50:00 이 섹션에서 발표자는 데이터 복사를 방지하고 성능을 향상시키는 직접 버퍼를 사용하여 Python에서 ONNX 런타임으로 직접 포인터를 보내는 방법을 설명합니다. 또한 보다 비용 효율적인 메모리 수집을 제공하기 위해 DeepDraw 라이브러리에 구현된 트리형 아키텍처인 ND Manager를 도입했습니다. 연사는 고객이 한 줄의 코드를 변경하지 않고 PyTorch 사용에서 ONNX 런타임으로 전환할 수 있는 방법에 대해 설명합니다. 나중에 Hype Factors의 연사는 미디어 인텔리전스 회사와 개발자 경험, 재사용 가능한 구성 요소의 생태계 및 높은 확장성을 위해 JVM을 기반으로 인프라를 선택하는 방법에 대해 이야기합니다.

  • 02:55:00 이 섹션에서 연사는 대부분의 웹사이트 기능을 구동하기 위한 JVM 사용과 기본적으로 들어오는 모든 데이터를 보강하는 시스템으로의 마이그레이션을 포함하여 미디어 분석 웹사이트의 기술적 측면에 대해 논의합니다. 하루에 수십억 개의 GPU 추론을 통해 제품의 기능은 기계 학습 및 모델 관리에 크게 의존하며, 이는 모든 것을 유지하고 실행하는 데 필수적인 부분이 되어 프로세스의 중요성으로 이어집니다. 데이터는 HTML 및 PDF를 포함한 모든 종류의 형식을 포괄하며 런타임을 추적하여 명명된 엔터티 인식, 현저성, 정서 등을 포함하여 즉석에서 데이터를 풍부하게 합니다. 그 과정에서 변환 오류와 DTL의 드문 메모리 누수를 포함하여 해결하는 데 시간이 걸리는 많은 문제가 있었습니다.
ONNX Community Day!
ONNX Community Day!
  • 2022.06.24
  • www.youtube.com
This event is being hosted in-person at the brand-new Microsoft Silicon Valley Campus on Friday, June 24th. The event will cover ONNX Community updates, part...
 

ONNX 커뮤니티 데이! 2022년 6월 24일 실시간 스트리밍

이 행사는 6월 24일 금요일에 새로운 Microsoft 실리콘 밸리 캠퍼스에서 직접 개최됩니다.

이 이벤트는 ONNX 커뮤니티 업데이트, 파트너 및 사용자 스토리, 다양한 커뮤니티 네트워킹을 다룹니다.



ONNX 커뮤니티 데이!

간단한 요약:

  • 00:00:00 - 01:00:00 YouTube 동영상 "ONNX 커뮤니티 데이!" 기계 학습 모델로 작업하는 개발자를 위한 상호 운용성 및 유연성에 대한 ONNX 커뮤니티의 작업에 대한 업데이트 및 개선 사항에 대해 설명합니다. ONNX 커뮤니티는 개방형 거버넌스 하에서 작동하며 생성, 실행 및 시각화라는 세 가지 범주의 도구는 커뮤니티의 ONNX 참여 및 사용을 지원합니다. 비디오는 ONNX 사양 업데이트, 새로운 연산자 및 변환기 개선과 같은 다양한 측면에 대한 진행 보고서를 제공합니다. 연사는 또한 하드웨어 공급업체를 위한 광범위한 고객과 사용자를 위한 여러 프레임워크 및 하드웨어 가속기에 대한 액세스를 포함하여 ONNX의 이점을 강조합니다. ONNX의 미래에는 실행 가능한 사양을 제공하는 ONNX 기능의 개념이 포함됩니다.

  • 01:00:00 - 02:00:00 ONNX 커뮤니티 데이 이벤트에서는 ONNX Model Zoo 및 ONNX 모델과 함께 사용할 사전 교육된 기계 학습 모델 및 데모를 제공하는 ONNX 자습서를 포함하여 ONNX와 관련된 여러 주제에 대해 논의합니다. 이 비디오는 데이터 전처리 작업을 표준화하여 모델 배포를 개선하는 것을 목표로 하는 ONNX 전처리 워킹 그룹의 작업을 강조합니다. 연사들은 또한 신경망 양자화의 기초와 TensorRT가 훈련 후 양자화 및 양자화 인식 훈련을 포함한 다양한 융합을 통해 양자화된 네트워크를 지원하는 방법에 대해 논의합니다. 그들은 또한 저정밀 양자화를 나타내는 ONNX의 한계를 탐구하고 양자화 노드와 역양자화 노드 사이의 정밀도를 유도하기 위해 클리핑을 사용하여 표현력을 확장하는 전략을 제안합니다. 마지막으로 이 비디오는 양자화되고 미세 조정된 TensorFlow 저장 모델의 정확도에 대한 사례 연구를 자세히 살펴봅니다.

  • 02:00:00 - 03:00:00 ONNX 커뮤니티 데이에서는 기계 학습 모델에서 메타데이터의 중요성과 ONNX의 JVM(Java Virtual Machine) 지원에 대해 논의하는 수많은 연사를 소개했습니다. 발표자들은 하드웨어 기반 기술을 사용하여 데이터를 보호하고 ONNX와 DeepJ 및 Deep Java 라이브러리를 포함한 다양한 기계 학습 라이브러리와의 호환성을 강조했습니다. 효율성 향상을 위한 바이트 버퍼 사용을 시연하고 책임 있고 설명 가능한 AI를 위한 메타데이터 표준화의 중요성에 대해 논의했습니다. 프레젠테이션에는 ONNX 및 ONNX 런타임을 사용하여 개선된 중국 은행의 런타임을 포함하여 성공 사례도 포함되어 있습니다. ONNX 커뮤니티는 ONNX에서 컴퓨터가 읽을 수 있는 메타데이터를 지원하여 허브 워크플로에서 메타데이터 생성, 쿼리 및 필터링 작업을 하고 있습니다. 전반적으로 프레젠테이션은 ONNX 플랫폼의 강점과 개발에 대한 커뮤니티의 노력을 강조했습니다.

  • 03:00:00 - 04:00:00 "ONNX 커뮤니티 데이!" 비디오는 ONNX 생태계와 관련된 다양한 업데이트 및 기능을 다룹니다. 여기에는 양자화 시뮬레이션에 대한 논의가 포함되어 양자화된 모델과 사전 훈련된 모델 사이의 정확도 저하를 줄이고, NVIDIA의 툴킷으로 훈련된 TensorFlow 모델을 TensorRT를 사용하여 ONNX 그래프에 배포하고, 최적화된 텐서 모양, 실행 공급자, 모바일 플랫폼 지원. 또한 XNNpack 라이브러리 지원 및 사전/사후 처리 작업을 위한 ONNX 런타임 확장 생성을 포함하여 ONNX 자체에 대한 업데이트가 논의되었습니다. 비디오는 또한 교육에서 추론에 이르기까지 변환기 모델을 가속화하는 데 중점을 둔 라이브러리 Optimum을 소개합니다.

  • 04:00:00 - 05:00:00 ONNX 커뮤니티 데이에는 ONNX 런타임 및 사용 사례와 관련된 다양한 주제에 대한 토론이 포함되었습니다. 연사는 ONNX 런타임 패키지, PiTorch ONNX 변환기 및 PyTorch의 사용자 지정 작업의 기능을 설명했습니다. 그들은 또한 프로세스 모니터링 및 상거래의 디지털화와 같은 사용 사례와 모델 배포 및 호환성 테스트와 관련된 문제에 대해 논의했습니다. 행사 내내 ONNX 런타임이 성능을 개선하고 배포 크기를 줄이는 데 도움이 될 수 있지만 일관된 품질과 속도를 보장하려면 호환성과 선택이 필수적이라는 점을 강조했습니다.

  • 05:00:00 - 06:00:00 ONNX 커뮤니티 데이에는 ONNX 프레임워크를 사용하여 기계 학습 모델을 최적화하고 배포하는 데 사용되는 다양한 도구와 기술에 대해 여러 연사가 토론했습니다. NVIDIA는 추론을 위한 블록 분할과 모델 디버깅 및 수정을 위한 ONNX 전용 도구를 사용하여 이미지 품질과 모델 호환성을 개선하는 방법에 대해 논의했습니다. Qualcomm은 ONNX를 교환 형식으로 사용하여 AI 가속기를 설계에 통합한 방법을 설명하고 ONNX 런타임과 최적화 및 배포를 위한 다양한 도구를 포함하는 소프트웨어 스택을 소개했습니다. 또한 여러 발표자가 모듈 최적화, 검사점 지정, 모양 추론과 같은 기술을 사용하여 ONNX 모델을 최적화하는 방법에 대해 논의했습니다. 이 이벤트는 다양한 장치 사용 사례에 대한 ONNX의 다양성과 확장성을 강조하고 ONNX 프로젝트를 계속 성장시키기 위한 기여를 장려했습니다. 마지막 부분은 개발자를 위한 탭 처리 변환 및 모델 초기화의 복잡성을 숨기는 것을 목표로 하는 SPIP 제안을 사용하여 기계 학습 모델을 Spark에 배포하는 프로세스를 단순화하는 데 중점을 둡니다. AI 애플리케이션 및 서비스 구축을 위한 API를 제공하는 소프트웨어 계층 "Kung"을 포함하여 Ascend AI 생태계 및 해당 프로세서가 소개되었습니다. Khan 소프트웨어 스택이 논의되었고 ONNX 런타임을 위한 새로운 실행 공급자로 추가하기 위한 로드맵이 제시되었습니다. 이벤트는 모바일 및 Edge용 ONNX, 모델 배포, 교육 및 운영, 변환, 운영자와 같은 주제에 대한 원탁 토론으로 종료되었으며, 해피 아워 및 설문 조사 피드백이 이어졌습니다.


자세한 일정 요약:

  • 03:00:00 이 섹션에서는 연사가 ONNX 에코시스템에 대한 경험과 이를 사용하는 동안 직면한 문제에 대해 논의합니다. 그들은 드라이버를 일치시키고 시스템이 원활하게 실행되도록 모니터링을 설정해야 할 필요성에 대해 이야기합니다. 그들은 또한 GPU 효율성을 높이고, 더 많은 모델을 추가하고, GPU 가속 테스트를 통해 시스템의 전반적인 견고성을 개선하려는 향후 계획에 대해서도 언급합니다. 발표자는 이 사용 사례에 대한 모든 질문과 토론을 초대하고 모든 사람에게 감사의 말을 전합니다. 비디오는 점심 식사 후에 NVIDIA 토크 다시 재생과 함께 재개됩니다.

  • 03:25:00 죄송하지만 이 스크립트 발췌는 "ONNX 커뮤니티 데이!"와 관련이 없습니다. 동영상. 제가 요약할 수 있도록 비디오에서 발췌한 다른 부분을 제공할 수 있습니까?

  • 03:30:00 비디오의 이 섹션에서 연사는 양자화를 시뮬레이션하고 최종 q 매개변수를 저장하여 양자화된 모델과 사전 훈련된 모델 간의 정확도 저하를 줄이는 방법에 대해 논의합니다. 양자화 인식 교육을 수행하는 한 가지 방법은 TensorFlow 모델 최적화 도구 키트 또는 Nvidia에서 만든 도구 키트를 사용하는 것입니다. 이 도구 키트는 레이어 이름 및 클래스 특성을 사용하여 레이어를 양자화하고 패턴 기반 양자화와 같은 기능을 제공합니다. 발표자들은 Nvidia의 툴킷이 하나의 확장을 사용하여 GPU에서 QAT 모델에 대해 최상의 성능을 제공하는 대칭 양자화 변형을 사용한다고 언급합니다.

  • 03:35:00 이 섹션에서는 NVIDIA의 TF2 Quantization Toolkit을 사용하여 훈련된 모델을 TensorRT를 사용하는 ONNX 그래프에 배포하는 프로세스에 대해 알아봅니다. 워크플로우에는 NVIDIA의 툴킷을 사용하여 사전 훈련된 TensorFlow 2.0 모델을 양자화하고 소수의 에포크에 대해 미세 조정하고 TF2ONNX 변환기를 사용하여 ONNX 그래프로 변환하는 작업이 포함됩니다. 그런 다음 TensorRT의 API를 사용하여 ONNX 그래프에서 TensorRT 엔진을 생성합니다. 우리는 양자화 인식 훈련이 심층 신경망을 더 낮은 정밀도로 배포할 수 있는 대안을 제공하며 qrt 모델은 미세 조정된 모델 매개변수로 인해 ptq 모델에 비해 추론 중에 정확도가 떨어질 가능성이 적을 수 있음을 확인했습니다. 마지막으로, ResNet 모델을 사용한 실험은 INT8 정확도가 FP32 기본 정확도와 동등하고 대기 시간이 FP32에 비해 10배 이상 빠르다는 것을 보여줍니다.

  • 03:40:00 이 섹션에서는 ONNX 런타임이 생성된 이후로 작업한 소프트웨어 엔지니어인 Ryan Hill이 ONNX 런타임의 기능 및 사용법에 대해 이야기합니다. ONNX 런타임은 ONNX 모델용 런타임으로, 완전히 교차 플랫폼이며 많은 프로그래밍 언어에 대한 언어 바인딩이 있습니다. Microsoft는 Windows, Office 및 Azure와 같은 모든 주요 제품 그룹에서 이를 사용하며 ONNX 런타임을 사용하는 프로덕션에는 160개 이상의 모델이 있습니다. Hill은 운영 커널을 수학 라이브러리로 사용하는 기능과 외부 이니셜라이저를 완전히 메모리에 공급하는 기능을 포함하여 최근 릴리스에서 주목할만한 새로운 기능을 살펴봅니다. 성능 향상에는 전치 최적화 프로그램 추가, 힙 할당 최적화, 레이아웃 변환 필요성 감소가 포함됩니다.

  • 03:45:00 이 섹션에서는 연사가 최적화된 텐서 모양 및 인라인 벡터 클래스를 포함하여 ONNX Runtime의 개선 사항에 대해 논의하여 힙 할당을 줄이고 성능을 개선했습니다. 또한 대체 옵션으로 전체 CPU 구현을 포함하여 ONNX Runtime이 다양한 하드웨어 가능성에서 최적의 성능을 발휘할 수 있도록 하는 실행 공급자의 이점에 대해 설명합니다. 또한 런타임에 NHWC 변환을 사용하고 전체 ONNX Runtime 빌드에 Android 및 iOS 패키지를 추가하는 등 모바일 플랫폼을 지원하기 위한 업데이트와 모바일 개발자를 위한 향상된 사용성을 강조합니다. 마지막으로 ONNX Runtime과 동일한 핵심 코드베이스와 더 작은 바이너리로 지원되는 ONNX Runtime Web을 소개하고 ONNX Runtime Common이라는 JavaScript 라이브러리의 도입에 대해 논의합니다.

  • 03:50:00 이 섹션에서는 연사가 XNNpack 라이브러리 지원 및 1.12 릴리스에서 예정된 OpenGL 지원을 포함하여 ONNX 업데이트에 대해 논의합니다. 또한 데이터 사전 및 사후 처리와 모델 사전 사후 처리 작업에 초점을 맞춘 공유 가능한 사용자 정의 작업 라이브러리를 제공하는 ONNX 런타임 확장 생성과 관련된 문제를 해결합니다. 이러한 확장에는 텍스트를 대문자 또는 소문자로 변환하고 양수 값과 음수 값을 별도의 텐서로 분리하는 것과 같은 잠재적 기능이 포함됩니다. 현재 라이브러리는 주로 자연어 처리와 비전 및 텍스트 도메인에 중점을 두고 있지만 새로운 요구 사항이 확인됨에 따라 진화할 것으로 예상됩니다. 또한 트랜스포머 모델을 가속화하기 위해 Optimum 라이브러리와 ONNX의 통합에 대해 논의하는 Hugging Face의 Jeff를 소개합니다.

  • 03:55:00 이 섹션에서 연사는 변압기 모델의 힘과 Tesla, Gmail, Facebook, Bing과 같은 주요 회사에서 매일 수십억 개의 예측을 수행하는 데 어떻게 사용되고 있는지에 대해 설명합니다. 그들은 Hugging Face의 목표가 쉽게 접근할 수 있는 사전 훈련된 모델과 이를 활용하는 도구를 통해 전 세계 모든 회사에서 이러한 모델에 접근할 수 있도록 하는 것이라고 설명합니다. 그들은 또한 라이브러리에 대한 1,300명 이상의 오픈 소스 기여자와 모든 기계 학습 작업 및 언어에 대해 50,000개 이상의 미세 조정 모델에 대한 액세스와 함께 가능한 것을 공유하고 개선하는 커뮤니티 구축에 중점을 둡니다. 그런 다음 발표자는 모델 매개변수 증가와 함께 발생하는 컴퓨팅, 메모리 및 대역폭 리소스의 문제를 해결하면서 교육에서 추론에 이르기까지 변환기 모델을 가속화하는 데 중점을 둔 라이브러리 Optimum을 소개합니다.


  • 04:00:00 이 섹션에서 발표자는 Optimum 도구 키트 내의 ONNX 런타임 패키지와 변환기 모델의 교육 및 추론을 가속화하는 기능에 대해 설명합니다. 그들은 사용자가 깊은 속도의 기본 통합을 얻고 교육 처리량에서 최대 40% 가속을 달성할 수 있는 ORT 트레이너라는 새로운 트레이너 클래스를 소개합니다. 추론에는 ORT Optimizer, RT Quantizer 및 RT Model for Task의 세 가지 주요 클래스가 있습니다. 이러한 클래스를 통해 사용자는 모델의 그래프를 단순화하고 가중치를 최적화하며 ONNX 런타임에서 제공하는 모든 하드웨어 가속의 이점을 누릴 수 있습니다. 연사는 또한 이러한 최적의 가속화된 추론 파이프라인 클래스를 통해 모델 최적화를 시퀀싱할 수 있도록 하기 위한 공동 작업에 대해 언급합니다.

  • 04:05:00 이 섹션에서는 두 명의 발표자가 ONNX 모델의 최적화 및 변환 프로세스에 중점을 두고 ONNX 커뮤니티에 대해 논의합니다. 첫 번째 발표자는 사용자가 모델의 정확도를 유지하면서 처리량을 늘리고 대기 시간을 줄이면서 모델을 최적화하고 양자화할 수 있는 최적의 라이브러리를 소개합니다. 두 번째 발표자는 PiTorch ONNX 변환기의 아키텍처 및 흐름에 대해 논의하고 PiTorch 모델을 토치 중간 표현으로 변환하고 그래프 최적화를 사용하고 ONNX IR로 변환하는 단계를 설명합니다. 또한 양자화된 모델을 QTQ 형식으로 내보내고 ONNX 루프 및 ONNX if 노드로 ONNX 모델의 Python 제어 흐름 루프 및 if를 캡처하는 지원과 같은 몇 가지 흥미로운 기능을 강조합니다.

  • 04:10:00 이 섹션에서 발표자는 사용자 지정 Torch 자동 그래프 기능 작성 및 정방향 및 역방향 방법 정의를 포함하여 PyTorch에서 사용자 지정 작업을 내보내는 다양한 방법에 대해 논의합니다. 연사는 API를 활용하여 사용자 지정 기호 함수를 등록하여 내보내기자에게 표준 ONNX 작업 또는 사용자 지정 도메인의 사용자 지정 작업으로 내보내는 방법을 알려주는 방법을 설명합니다. 그런 다음 사용자가 지정된 커널 없이 모델을 실행할 수 있도록 백엔드에 대한 함수로 특정 Torch 모듈 클래스 또는 노드 유형을 지정할 수 있는 ONNX 로컬 함수 기능을 도입합니다. 마지막으로 발표자는 팀이 계속해서 더 많은 모델을 지원하고 고장 진단 경험을 개선하는 데 집중할 것이라고 언급합니다.

  • 04:15:00 이 섹션에서는 기존 카메라 시스템을 재사용하여 움직이는 기계 근처의 위험 구역에 들어가는 직원을 감지하는 사용 사례에 대해 설명합니다. 사람을 감지하기 위한 오픈 소스 ONNX 모델과 실시간 분석 및 이벤트 처리를 위한 SAS의 Sasebo Stream Processing 도구를 사용하여 초당 수백만 개의 이벤트를 처리하고 더 큰 시스템으로 확장할 수 있는 솔루션이 개발되었습니다. 이 솔루션은 데이터 과학자가 모델을 개발할 수 있도록 그래픽 스튜디오와 Jupyter 노트북을 통해 사용할 수 있게 되었으며 ONNX 런타임은 Sasebo Stream Processing에 통합되었습니다. 탄력성을 보장하기 위해 Kafka를 버퍼 큐로 사용하여 이미지 처리를 여러 단계로 분할하는 모듈식 솔루션이 제안되었습니다.

  • 04:20:00 이 섹션에서 발표자는 Kubernetes를 배포 메커니즘으로 사용하여 에지에 배포된 컴퓨터 비전 처리 모델에 대해 설명합니다. 이 모델에는 각 카메라용 포드, 비디오 데이터용 Kafka 버스, 컴퓨터 비전 모델을 사용하여 결과를 생성하는 처리 포드가 포함된 수집 프로세스가 포함됩니다. 그런 다음 결과는 기록 중인 장비의 활성 여부를 이해하기 위해 고객의 추가 센서 데이터를 처리하는 세 번째 포드로 전송됩니다. 또한 발표자는 이 아키텍처가 현재 고객의 시설 중 하나에서 생산 중이며 ONNX 런타임 통합이 공개적으로 사용 가능한 사전 훈련된 모델과 고객 자산의 재사용 덕분에 최적의 가치 창출 시간을 보장한다고 설명합니다. 아키텍처 복원력은 또 다른 주요 이점이며 Kubernetes 및 Kafka 덕분에 보장됩니다.

  • 04:25:00 이 섹션에서는 Bazaar Voice의 Matthew가 상거래의 디지털화와 브랜드 및 소매업체가 인터넷을 통해 무한한 선반 공간으로 이동한 방법에 대해 설명합니다. 전자 상거래 회사가 보유한 데이터의 규모에서 AI를 사용하여 영향력 있는 통찰력을 생성하는 것은 게임 체인저가 될 수 있습니다. Matthew는 한 달에 10억 명이 넘는 쇼핑객의 데이터를 관리 및 처리하고 브랜드 및 소매업체에 총 80억 개가 넘는 리뷰를 제공하는 Bazaar Voice를 예로 사용하여 이를 설명합니다. 카탈로그 전체에서 제품 리뷰를 공유하는 데 중점을 두어 제품 매칭의 개념이 중추적인 역할을 합니다. Matthew는 고유한 제품 식별자를 비교하여 제품 일치를 수행하기 위해 기계 학습 모델을 구축하는 방법을 설명하지만 나머지는 수동으로 수행됩니다. 실제 비즈니스 가치를 창출하는 솔루션을 구현하기 위한 이상적인 접근 방식은 성능을 유지하는 가볍고 비용 효율적인 솔루션입니다.

  • 04:30:00 이 섹션에서 발표자는 가상 서버, 클라우드 ML 플랫폼, 서버리스 기능(예: Azure Cloud Functions 또는 AWS Lambdas)을 포함하여 기계 학습 모델을 배포하기 위한 다양한 옵션에 대해 설명합니다. 각 옵션의 장단점을 평가한 후 발표자와 팀은 ONNX 형식으로 내보낸 scikit-learn 모델을 개발하고 Python으로 빌드하고 서버리스 기능에 배포하고 노드 환경을 사용하여 ONNX에서 추론을 실행하기로 결정했습니다. 실행 시간. 연사는 또한 ONNX가 모델의 배포 크기를 줄이는 데 도움이 되지만 서버리스 기능의 제한 시간 및 배포 크기 제한 내에서 작업하는 문제와 Python 패키지의 비용 및 크기 제한을 강조한다고 언급합니다.

  • 04:35:00 이 섹션에서는 Adobe Nikhil Calro의 수석 소프트웨어 엔지니어가 비디오 및 오디오 워크플로를 위한 고성능 기계 학습과 관련된 고유한 문제에 대해 설명합니다. 이러한 문제에는 리소스 제한, 데이터 집약도 및 계산량이 많은 요구 사항이 포함됩니다. 이러한 문제를 해결하기 위해 Adobe는 기술과 파이프라인의 조합을 사용하여 Windows에서 기계 학습 워크플로를 강화하는 ONNX 런타임과 Windows 플랫폼에서 GPU 가속을 위한 Direct ML 실행 공급자를 포함하여 워크플로를 가속화합니다. Calro는 또한 Adobe의 머신 러닝 워크플로우가 크리에이터가 중복되고 반복적인 작업에 소요되는 시간을 줄이고 창작 과정에 더 많은 시간을 할애할 수 있도록 하는 것을 목표로 한다고 말합니다.

  • 04:40:00 이 섹션에서 발표자는 Adobe의 Creative Cloud 앱이 전체 Windows 에코시스템을 단일 플랫폼으로 대상으로 하고 Nvidia, Intel 및 AMD와 같이 Windows를 지원하는 모든 주요 IHV에서 기능 및 기능 패리티를 제공해야 하는 방법에 대해 설명합니다. 그들은 다른 비동기 컴퓨팅 워크플로를 위해 하드웨어를 자유롭게 남겨두기 때문에 Nvidia GPU에서 텐서 코어와 같은 공급업체별 하드웨어를 사용할 수 있도록 DirectML 실행 공급자를 선택했습니다. 또한 ONNX 런타임 위에 프레임워크를 구축하고 유추 요청을 배치 워크플로로 조합하여 GPU와의 리소스 경합을 줄이고 드라이버 오버헤드를 최소화함으로써 추가 성능 최적화를 수행했습니다. 매우 리소스 집약적인 워크플로우인 장면 편집 감지 워크플로우의 예를 제공하지만 디코딩에서 추론까지 전체 파이프라인 종단 간을 약 10초 또는 6배의 실시간으로 실행할 수 있습니다.

  • 04:45:00 이 섹션에서 발표자는 ORT 및 Direct ML 실행 공급자가 제공하는 성능 지원을 통해 최신 고급 GPU를 사용하여 GPU 렌더링 중에 기계 학습 기반 워크플로를 활성화할 수 있었던 방법에 대해 설명합니다. 그들은 파이프라인을 오른쪽의 파이프라인처럼 보이도록 전환하여 CPU로의 전송을 최소화하고 가능한 한 GPU 또는 GPU 주소 지정 하드웨어에 많은 내용을 보관할 계획입니다. 더 많은 GPU 컴퓨팅이 DX12로 전환됨에 따라 OP에서 OpenCL 및 CUDA에서 DX12로의 오버헤드가 제거됨에 따라 더욱 쉬워질 것입니다.

  • 04:50:00 이 섹션에서는 Topaz Labs의 소프트웨어 개발자인 Alexander Zang이 데스크톱 및 랩톱에 이미지 모델을 배포하는 문제에 대해 설명합니다. 그는 이 배포의 중요한 부분이 기존 워크플로에 맞춰 수동 구성 없이 예상 성능을 얻고 고품질 이미지 모델을 제공하는 것이라고 설명합니다. Alexander는 서버 배포와 달리 데스크톱 배포는 시스템에 대한 제어가 부족하며, 특히 다양한 수준의 메모리 및 응답성 제약 조건을 가진 다양한 벤더의 다양한 GPU를 사용한다고 설명합니다. 이에 대한 그의 솔루션은 ONNX가 제공하는 각 하드웨어 공급업체에 대해 서로 다른 추론 라이브러리에 의존하는 것입니다. 이 접근 방식을 통해 Topaz Labs는 수동 작업을 줄이면서 다양한 추론 라이브러리에서 사용할 수 있는 모델 아키텍처를 생성할 수 있습니다.

  • 04:55:00 이 섹션에서 발표자는 모델 변환과 관련된 문제와 모델을 교육하기 전에 호환성 문제를 테스트해야 하는 필요성에 대해 논의합니다. 모델 사양의 모호성 문제와 성능 및 일관성을 위해 다양한 라이브러리를 테스트해야 할 필요성이 강조됩니다. 연사는 또한 여러 변환을 수행하는 이유를 설명하면서 보다 일반적인 인터페이스를 사용하면 앱 성능에 영향을 줄 수 있는 추가 로드 단계 및 변환 비용이 발생할 수 있다고 설명합니다. 마지막으로 적절한 구성을 선택하고 런타임 추론 파이프라인을 처리하는 프로세스를 설명하여 데스크탑에서 일관된 품질과 속도를 보장하면서 호환성과 선택의 필요성을 강조합니다.



  • 05:00:00 이 섹션에서는 NVIDIA의 연사가 ONNX 모델 호환성을 처리하고 이미지를 블록으로 분할하고 추론을 통해 실행하고 처리량을 최대화하고 잠재적으로 여러 장치 및 라이브러리에서 실행함으로써 데스크탑 시스템에서 이미지 품질을 개선하는 접근 방식에 대해 이야기합니다. 병행하여. 연사는 또한 많은 작업과 시간이 소요될 수 있는 새로운 모델 아키텍처를 추가하고 모든 라이브러리에서 제대로 작동하도록 보장하는 어려움에 대해 설명합니다. 그런 다음 ONNX 모델을 만들고 수정할 수 있는 Python 라이브러리인 ONNX Craft Surgeon과 딥 러닝 모델을 디버깅하기 위한 도구 키트인 Polygraphy라는 두 가지 도구에 대해 논의합니다. 연사는 이러한 도구의 작동 방식과 tf 그래프를 구성하는 것처럼 간단한 모델을 구성하는 데 사용할 수 있는 방법을 설명합니다.

  • 05:05:00 이 섹션에서 발표자는 ONNX 모델을 조작하기 위한 많은 기능을 제공하는 Python API 및 다양한 명령줄 도구를 포함하는 ONNX 도구를 소개합니다. 발표자는 ONNX 모델의 텍스트 표현을 표시하는 검사 모델, 모델의 상수를 단순화하고 접는 외과의사가 삭제한 하위 도구와 같은 ONNX 관련 도구에 중점을 둡니다. 외과 의사 추출을 통해 사용자는 모델에서 하위 그래프를 추출하여 디버그할 수 있으며, 모델 이등분 디버그 감소는 git bisect와 유사하지만 ONNX 모델에 대해 작동하므로 가장 작은 오류 모델을 찾아 시스템의 오류를 진단할 수 있습니다.

  • 05:10:00 이 섹션에서 발표자는 Calligraphy 디버그 축소 도구를 사용하여 런타임 문제가 있을 수 있는 모델을 디버깅하는 방법에 대해 설명합니다. 모델 크기를 줄이고 각 중간 모델을 테스트함으로써 개발자는 코드에서 문제가 있는 영역을 식별하고 디버깅 프로세스를 더 쉽게 만들 수 있습니다. 발표자는 이어버드에서 랩톱, 자동차 시스템에 이르기까지 다양한 장치에서 사용할 수 있는 교환 형식으로 ONNX를 사용하여 Qualcomm이 커뮤니티와 어떻게 협력하는지 설명합니다. ONNX를 사용하여 모델을 타겟팅함으로써 개발자는 Qualcomm이 지원하는 모든 장치와 호환되는 모델을 만들 수 있습니다.

  • 05:15:00 이 섹션에서 발표자는 다양한 모델, 구현 및 타이밍 요구 사항이 필요한 다양한 장치 아키텍처를 처리하는 문제에 대해 이야기합니다. 그는 휴대 전화의 깊이 센서 및 카메라용으로 구축된 동일한 알고리즘과 기술이 이제 보안 스마트 초인종과 자동차의 내부 및 외부 감시 카메라에 어떻게 사용되는지 예를 들어 설명합니다. 그런 다음 그는 확장성의 중요성을 강조하고 AI 가속기에서 실행하면 초당 최대 1,000개의 추론을 제공할 수 있는 Inception V3 모델을 실행하는 예를 사용하여 CPU, GPU 및 AI 가속기에서 처리 기계 알고리즘 간의 차이점을 비교합니다. 다른 유용한 작업을 위해 CPU를 확보합니다.

  • 05:20:00 이 섹션에서는 Qualcomm의 담당자가 인공 지능(AI) 가속기를 하드웨어에 통합하여 성능과 확장성을 개선한 방법을 설명합니다. 특별히 제작된 AI 가속기를 사용하면 추가 에너지 소비나 CPU 또는 GPU 사용으로 인해 종종 발생하는 느린 속도 없이 AI 워크로드를 처리할 수 있습니다. 또한 ONNX 교환 형식을 통해 다양한 장치와 업종에서 머신 러닝 모델을 컴파일하고 실행할 수 있어 회사의 시간을 절약하고 이식성을 높일 수 있습니다. 또한 다양한 운영 체제를 지원하고 고객이 하드웨어를 더 쉽게 사용할 수 있도록 하드웨어 세부 정보를 숨기는 통합 소프트웨어 스택 및 라이브러리를 만들었습니다.

  • 05:25:00 이 섹션에서 발표자는 Qualcomm이 ONNX를 중심으로 개발한 소프트웨어 스택을 소개합니다. 이들은 ONNX 런타임과 장치 사용 사례에 따라 모델을 CPU 또는 GPU로 라우팅하는 위임 시스템을 포함하는 완전한 솔루션을 구축했습니다. 발표자는 컴파일러, 프로파일러, 분석기 및 네트워크 아키텍처 검색 도구 지원을 포함하여 그들이 개발한 많은 도구에 대해 설명합니다. 발표자는 ONNX의 확장성과 다용성, 카메라 알고리즘, 스마트 스피커, XR 장치를 비롯한 다양한 장치 사용 사례에 ONNX를 어떻게 사용할 수 있는지 강조합니다.

  • 05:30:00 이 섹션에서 발표자는 ANITA 컴파일러의 개발 프로세스를 설명합니다. 이 컴파일러는 다양한 아키텍처에서 쉽게 최적화하고 다양한 환경에 모델을 배포하기 위해 Mair에서 참조 언어를 제공하는 데 사용됩니다. 연사는 또한 사용자 지정 가속기를 지원하기 위해 도입한 프레임워크를 강조합니다. 이를 통해 어떤 운영자를 업로드할지 선택하고 가속기를 쉽게 켜고 끌 수 있습니다. 발표자는 또한 ONNX 모델이 점진적으로 중간 표현으로 낮아지는 ONNX Mlir에서 최적화가 배포되는 방법에 대한 개요를 제공합니다.

  • 05:35:00 이 섹션에서는 발표자가 ONNX 컴파일러에 대해 이야기하고 CPU 및 가속기 최적화에 여러 방언이 사용되는 방법에 대해 설명합니다. 높은 수준의 최적화에는 그래프 수준의 최적화가 포함되며, 낮은 수준에서는 CPU 및 가속기 작업에 최적화가 적용됩니다. 연사는 컴파일러의 가속기 프레임워크가 작동하는 방식에 대한 예를 제시합니다. 여기서 가속기를 사용하면 CPU에서 실행하는 것보다 11배 빠릅니다. 그들은 또한 딥 러닝 연산자 최적화에 어떻게 집중하고 있으며 CPU와 같은 다른 가속기뿐만 아니라 온라인 기계 학습 연산자를 지원할 것이라고 언급합니다. 마지막으로 기여자에게 감사를 표하고 ONNX 프로젝트를 계속 성장시키기 위해 더 많은 기여를 요청합니다. Preferred Networks의 다음 발표자는 ONNX의 중간 표현을 사용하는 신경망 컴파일러인 PFVM을 소개합니다.

  • 05:40:00 이 섹션에서는 Compile 팀원이 모듈 최적화에서 특히 안정적이고 잘 문서화된 중간 표현과 관련하여 ONNX의 사용 사례에 대해 논의합니다. 팀은 ONNX를 사용하여 장치 변경 및 메모리를 최적화하기 위해 장치 정보를 추가하는 등 고객 운영자와 함께 ONNX를 확장하여 다양한 최적화 경로로 모델을 최적화합니다. 연사는 또한 모듈 최적화에서 형상 추론의 중요성에 대해 논의하고 세 가지 최적화 사례를 소개합니다. 첫 번째 경우는 여러 요소별 연산자를 단일 융합 그룹 연산자로 융합하여 CUDA에서 실행되는 계산 그래프의 커널 범위 오버헤드를 줄이는 것과 관련됩니다.

  • 05:45:00 pass는 모델이 신경 구조 검색과 같은 프로그램에 의해 생성된 경우 불필요한 연산자를 많이 포함합니다. 여기에서 모양 추론 및 그래프 단순화와 같은 최적화가 유용합니다. 모양 추론은 인접한 요소별 연산자를 함께 융합할 수 있는지 여부를 결정하는 데 중요하지만 그래프 단순화는 역방향 패스에서 불필요한 연산자를 제거할 수 있습니다. 이러한 최적화는 모두 필요한 계산 수를 크게 줄이고 모델의 전반적인 효율성을 향상시킬 수 있습니다.

  • 05:50:00 이 섹션에서 발표자는 모듈을 실행할 때 메모리 사용량을 줄이는 체크포인트 기술에 대해 설명합니다. 계산 그래프를 수정하면 메모리 사용량을 훨씬 더 줄일 수 있지만 대기 시간이 늘어납니다. 발표자는 메모리 사용량을 추정하기 위해 텐서 크기를 아는 것의 중요성을 강조하고 알 수 없는 차원을 처리할 때 자동 체크포인팅의 한계를 설명합니다. 또한 발표자는 알 수 없는 차원이 최적화 기회에 미치는 영향에 대해 논의하고 ONNX 모양 추론에 적용된 개선 사항에 대해 설명합니다. 특히 ONNX 1.10에 기호적 추론이 도입되면서 데이터 전파를 통한 모양 추론이 크게 향상되었습니다.

  • 05:55:00 이 섹션에서 발표자는 ONNX의 형태 추론에 대해 설명하면서 정적 사례의 경우 형태 정보가 위에서부터 전역으로 전파될 수 있지만 동적 사례의 경우 더 많은 지원이 필요하다고 설명합니다. 화자는 모양 변경의 모양을 추정해야 하지만 현재 알 수 없는 ONNX 그래프의 예를 보여줍니다. 그들은 동적 사례에 대해 더 많은 모양 추론 기능을 구현할 것을 제안하고 크기가 다른 두 텐서의 연결과 같은 사례에 대한 지원이 필요한지 묻습니다. 연사는 또한 동적 분기가 없고 정적 모양이 있는 모델만 받아들이고 일정 및 최적화에 정적 정보를 사용하는 md4 슈퍼컴퓨터의 최적화에 대해 간략하게 언급합니다. 다음으로, Huawei 대표가 추론을 위해 ONNX의 성능을 Spark로 가져오는 것에 대해 사전 녹음된 이야기를 나눕니다.

  • 06:00:00 이 섹션에서는 일반적으로 SPIP로 알려진 SPARK 개선 제안에 초점을 맞춥니다. 이 제안은 기계 학습 모델 배포 프로세스를 Spark에 단순화하고 이를 타사 DL 프레임워크와 통합하는 것을 목표로 합니다. 이 제안은 Spark에 DL 모델을 배포해야 하는 데이터 엔지니어 또는 개발자를 대상으로 합니다. 최종 목표는 모달 UDF 내에서 탭 처리 변환 및 모델 초기화의 복잡성을 숨기고 사용자가 빅 데이터에서 ONNX 추론을 쉽게 완료할 수 있도록 하는 것입니다. Ascend라는 Huawei 자체 AI 프로세서가 도입되었으며 Ascend 플랫폼에서 SPARK 및 ONNX 파이프라인을 완료하려면 먼저 ONNX 런타임에서 Ascend 지원을 도입해야 한다고 설명합니다.

  • 06:05:00 이 섹션에서 발표자는 Ascend AI 에코시스템과 지원하는 다양한 프로세서에 대해 설명합니다. Ascend 310은 AI 추론만 지원하는 반면 Ascend 710 및 910은 훈련과 추론을 모두 지원합니다. 또한 생태계는 개발자가 AI 애플리케이션 및 서비스를 쉽게 구축할 수 있도록 API를 제공하는 "Kung"이라는 소프트웨어 계층을 제공합니다. 그런 다음 스피커는 Ascend 생태계의 현재 소프트웨어 스택인 Khan과 최신 버전인 Khan 5.0에 초점을 맞춥니다. 그들은 Khan의 다양한 계층과 개발자를 위한 연산자 라이브러리, 최적화 엔진 및 프레임워크 어댑터를 제공하는 방법을 설명합니다. 그런 다음 연사는 Khan을 ONNX 런타임의 새로운 실행 공급자로 추가하여 사용자가 Ascend 하드웨어에서 직접 ONNX 모델을 실행할 수 있도록 하는 로드맵에 대해 논의합니다.

  • 06:10:00 비디오의 이 섹션에서는 ONNX 커뮤니티 데이가 직접 참석자를 위한 원탁 토론으로 마무리됩니다. 원탁 회의는 참석자들이 쓸 수 있는 큰 메모장과 함께 여섯 가지 주제로 구성되었습니다. 주제는 참석자의 제출물을 기반으로 선택되었으며 모바일 및 에지용 ONNX, 모델 배포 및 기계 학습 양자화, 교육 및 운영, 전환 및 운영자를 포함합니다. ONNX Runtime 팀도 대화에 참여할 수 있었습니다. 원탁 회의가 끝난 후 참석자들은 음식과 음료를 즐기며 행복한 시간을 보냈으며 설문 조사를 통해 피드백을 제공했습니다.
ONNX Community Day!
ONNX Community Day!
  • 2022.06.24
  • www.youtube.com
This event is being hosted in-person at the brand-new Microsoft Silicon Valley Campus on Friday, June 24th. The event will cover ONNX Community updates, part...
 

ONNX: 과거, 현재, 미래 - Jim Spohrer, IBM 및 Prasanth Pulavarthi, Microsoft



ONNX: 과거, 현재, 미래 - Jim Spohrer, IBM 및 Prasanth Pulavarthi, Microsoft

"ONNX: 과거, 현재, 미래" 비디오에서는 IBM의 Jim Spohrer와 Microsoft의 Prasanth Pulavarthi가 오픈 소스 AI 프레임워크 ONNX의 성장과 미래에 대해 논의합니다. ONNX에서 제공하는 교환 형식을 통해 AI 모델 배포 표준화의 중요성을 강조하여 다양한 딥 러닝 프레임워크에서 원활한 최적화를 가능하게 합니다. 또한 다양한 하드웨어 가속기와 함께 작동하는 ONNX 런타임 기능의 최근 개발에 대해 논의하고 ONNX를 시작하기 위한 팁과 리소스를 제공합니다. 연사는 ONNX의 기능, 상용 배포 및 향후 인증 계획에 대한 청중의 질문에 답하는 동시에 시청자에게 ONNX 커뮤니티에 참여하도록 촉구합니다.

  • 00:00:00 이 섹션에서는 IBM의 Jim Spohrer와 Microsoft의 Prasanth Pulavarthi가 자신을 소개하고 오픈 소스 AI 프레임워크인 ONNX의 과거, 현재, 미래에 대한 개요를 제공합니다. ONNX는 표준화된 교환 형식으로 사용되어 다양한 도구가 다양한 딥 러닝 프레임워크에서 추론을 상호 운용하고 최적화할 수 있도록 합니다. 연사는 시청자에게 ONNX 웹 사이트에서 뉴스를 확인하고 정보를 시작하고 GitHub 및 Gitter에서 커뮤니티에 가입하여 ONNX 커뮤니티에 참여할 것을 촉구합니다. 또한 ONNX 파트너가 자신의 프로젝트와 ONNX를 혁신적인 방식으로 사용하는 방법에 대해 논의한 최근 가상 커뮤니티 회의를 강조합니다.

  • 00:05:00 이 섹션에서 연사는 ONNX 커뮤니티의 성장과 인공 지능 및 기계 학습 분야의 수많은 오픈 소스 프로젝트에서 교환 형식으로서의 중요성에 대해 논의합니다. 풀 리퀘스트, 기여자, 별, 포크, 게시된 논문 및 모델 동물원 측면에서 ONNX 커뮤니티의 진행 상황을 강조하고 더 많은 조직과 개인이 참여하도록 권장합니다. 연사들은 또한 Microsoft의 ONNX와 다양한 제품에서의 ONNX 사용을 소개하면서 AI 및 ML 솔루션의 다양한 환경에서 ONNX와 같은 표준화된 형식의 필요성을 강조합니다. ONNX 사용 방법에 대한 팁을 제공하고 청중의 질문을 환영합니다.

  • 00:10:00 이 섹션에서 발표자는 긴 추론 대기 시간, 에지 및 IoT 장치에서 모델 실행, 서로 다른 장치에서 동일한 모델을 실행해야 하는 필요성과 같이 ML 모델을 프로덕션에 배포하려고 할 때 개발자가 직면하는 일반적인 문제에 대해 논의합니다. 하드웨어 및 운영 체제. 이러한 문제를 해결하기 위해 발표자는 ONNX 형식과 ONNX 런타임을 도입하여 개발자가 다양한 프레임워크의 모델을 공통 형식으로 표현하고 다양한 플랫폼과 가속기에서 효율적으로 실행할 수 있도록 합니다. Microsoft의 음성 서비스는 ONNX가 프로덕션에서 민첩성과 성능을 어떻게 향상시켰는지에 대한 예로 제공됩니다.

  • 00:15:00 이 섹션에서 연사는 ONNX 런타임을 사용하여 민첩성, 성능 및 정확성 측면에서 이점을 얻을 수 있는 방법에 대해 논의합니다. 그들은 신체 추적 기능이 있는 장치인 Azure Connect뿐만 아니라 음성 텍스트 변환 및 컴퓨터 비전과 같은 Microsoft의 인지 서비스의 예를 언급합니다. ONNX의 이식성 측면도 강조됩니다. 동일한 모델과 애플리케이션 코드를 다양한 플랫폼과 하드웨어 가속기에서 사용할 수 있어 시간과 맞춤화 노력을 절약할 수 있기 때문입니다. 또한 스피커는 ONNX 런타임을 모델의 공통 형식으로 사용하는 Windows ML을 다루므로 Windows 운영 체제에서 기계 학습 추론을 쉽게 수행할 수 있습니다.

  • 00:20:00 이 섹션에서는 Jim Spohrer와 Prasanth Pulavarthi가 ONNX 런타임의 최근 개발 및 성과에 대해 논의합니다. 가장 중요한 기능 중 하나는 GPU 또는 VPU와 같은 다양한 유형의 하드웨어 가속기와 함께 작동하는 기능입니다. 또한 교차 언어 지원을 제공하여 사용자가 파이썬 환경에서 훈련된 모델을 C#으로 변환할 수 있습니다. ONNX 런타임을 사용하는 회사의 한 가지 예는 scikit-learn을 사용하여 Python으로 재무 모델을 교육하지만 C# 프로덕션을 위해 ONNX 런타임을 사용하는 ISV입니다. 또한 ONNX 런타임은 최근 BERT 및 GPT2와 같은 변환기 모델의 추론 및 교육을 최적화하여 사용자에게 상당한 속도 향상 및 비용 절감 효과를 가져왔습니다.

  • 00:25:00 이 섹션에서는 발표자가 ONNX 및 ONNX 런타임을 시작하는 방법에 대한 정보를 제공합니다. URL을 통해 액세스할 수 있는 Model Zoo는 비전, 언어 및 향후 음성 모델을 위해 ONNX 런타임을 다운로드하고 사용하기 시작할 수 있는 다양한 사전 훈련된 모델을 제공합니다. 또한 연사는 모델 동물원에 대한 모델의 기여를 권장합니다. 다른 프레임워크의 기존 모델도 ONNX 형식으로 변환하거나 내보낼 수 있습니다. PyTorch, Keras, TensorFlow 및 Scikit-Learn과 같은 프레임워크에는 ONNX 내보내기 기능이 있으며 ONNX 런타임은 여러 프로그래밍 언어를 지원하는 Windows, Linux 및 Mac에 설치할 수 있습니다.

  • 00:30:00 이 섹션에서는 스피커가 하드웨어 가속에 대해 논의하고 실행 공급자라는 API를 통해 다양한 하드웨어 가속기를 통합할 수 있는 방법에 대해 설명합니다. ONNX 런타임에는 CUDA 구현뿐만 아니라 고도로 최적화된 CPU 구현이 있으며 Nvidia 및 Intel과 같은 하드웨어 공급업체는 ONNX와 협력하여 최적화를 ONNX 런타임과 통합했습니다. 이렇게 하면 특정 가속기가 특정 작업을 지원하지 않는 경우에도 모든 ONNX 모델이 전체 ONNX 사양을 완벽하게 지원하여 실행할 수 있습니다. 연사는 시청자가 ONNX를 사용해 보고 개방형 거버넌스, SIG 및 작업 그룹을 포함하여 ONNX 커뮤니티에서 사용할 수 있는 리소스를 공유하도록 권장합니다.

  • 00:35:00 이 섹션에서 연사는 다양한 특수 이익 그룹(SIG) 및 작업 그룹으로 구성된 ONNX 프로젝트의 개방형 거버넌스 구조에 대해 논의합니다. 그들은 SIG와 워킹 그룹이 주기적으로 만나 모든 것이 열려 있고 회의가 모두 AI 캘린더의 캘린더에 게시된다고 설명합니다. 또한 개방형 거버넌스 구조는 각각 다른 결정에 대한 투표권을 얻거나 병합 권한을 가진 기여자와 승인자를 선택하는 방법을 설명합니다. 궁극적으로 연사는 사람들이 다양한 채널과 그룹에 가입하고 메일링 리스트에 가입하고 토론에 참여하여 ONNX 프로젝트에 참여하도록 권장합니다.

  • 00:40:00 이 섹션에서 연사는 ONNX 주제에 관한 잠재적인 책 출판, ONNX 런타임의 로깅 기능, 기계 학습 교육 시간을 줄이는 데 사용되는 방법과 같은 주제에 대한 다양한 청중 질문에 답합니다. 또한 Azure Cognitive Services, 사무실 모델 및 Bing 검색 엔진과 같은 다양한 시나리오에서 ONNX 기반 모델의 일부 상용 배포에 대해서도 언급합니다.

  • 00:45:00 이 섹션에서 발표자는 Microsoft 외부에서 ONNX 모델의 상업적 배포에 대해 논의했으며 Azure에서 금융 회사 및 기타 조직에서 사용 중인 여러 프로덕션 등급 모델이 있다고 언급했습니다. 또한 ONNX가 CNTK를 지원하는지(예, ONNX 내보내기가 있음), 하드웨어 가속 도구에 대한 지식이 필요한지(아니요, ONNX 런타임이 추상화 계층을 제공하므로)를 포함하여 ONNX에 대한 청중의 질문에 답변했습니다. 또한 교육에서 ONNX를 사용하는 것과 교육 후 ONNX로 변환하는 것의 이점에 대해 설명하면서 ONNX 런타임이 교육 프로세스를 가속화하여 더 빠른 변환기 모델을 생성할 수 있다고 설명했습니다. 마지막으로 그들은 잠재적인 인증 계획과 사람들이 ONNX를 사용하는 다양한 방법에 대해 듣고 싶다는 의사를 표명했습니다.

  • 00:50:00 이 섹션에서 연사는 모든 파이프라인 유형을 지원하는 ONNX의 기능에 대한 질문에 답합니다. 일부 기존 격차로 인해 100%는 아니지만 일반적으로 일반적인 모델 유형이 지원되며 사용자는 ONNX 변환기 GitHub에서 지원되는 파이프라인 목록을 참조하거나 직접 시도하여 파이프라인을 완전히 변환할 수 있는지 확인할 수 있습니다. 그런 다음 연사는 참석자에게 감사를 표하고 ONNX 커뮤니티에 참여하도록 격려하며 세션을 마무리합니다.
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
  • 2020.09.11
  • www.youtube.com
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
 

YVR18-332 TVM 컴파일러 스택 및 ONNX 지원



YVR18-332 TVM 컴파일러 스택 및 ONNX 지원

YVR18-332 비디오는 ONNX를 포함하여 다양한 하드웨어 및 프런트 엔드를 지원하는 커뮤니티 주도 딥 러닝 스택인 TVM 컴파일러 스택에 대해 설명합니다. 발표자는 TVM이 스테레오 수준에서 모델을 최적화하여 개발자가 검색 공간을 탐색하고 최상의 구성을 찾을 수 있도록 하는 방법에 대해 설명합니다. 또한 루프 변환 및 GPU 가속을 포함하여 TVM이 제공하는 자동 최적화에 대해서도 논의합니다. 발표자는 그래프 수준에서 8비트 지원 및 자동 튜닝을 포함하는 TVM 로드맵에 대해 이야기합니다. 또한 ONNX TV 인터페이스와 모든 에코시스템에 대한 표준 인터페이스를 통합해야 할 필요성에 대해 논의합니다. 마지막으로 비디오는 점심 식사를 위해 일시 중지됩니다.

  • 00:00:00 이 섹션에서 발표자는 TVM 컴파일러 스택과 GBM을 통해 ONNX를 지원하는 방법을 소개합니다. TVM은 수업 수준에서 암 수준까지 내려가는 딥 러닝 스택이며 여러 회사 및 조직의 기여로 워싱턴 대학의 연구원이 주도하는 커뮤니티 프로젝트입니다. TVM 컴파일러 스택은 CPU, GPU, FPGA 등 다양한 하드웨어를 지원하며, 하드웨어 설계 검증을 위한 시뮬레이터와 함께 ASIC 지원을 가능하게 할 계획이다. 또한 이 스택은 MXNet, ONNX 및 TensorFlow를 비롯한 다양한 프런트 엔드를 지원하며 다양한 최적화 옵션이 있는 NVM이라는 컴퓨팅 클래스 IR 구현이 있습니다.

  • 00:05:00 이 섹션에서는 연사가 TVM 컴파일러 스택과 ONNX 지원에 대해 설명합니다. 그들은 TVM 컴파일러 스택이 루프 변환 및 GPU 가속과 같은 스테레오 수준에서 많은 최적화를 수행할 수 있으며 ONNX는 자동 TVM 단계에 추가된 새로운 기능이라고 설명합니다. 연사는 또한 사용자가 호스트 장치에서 모델을 컴파일하고 대상 장치에 원격으로 배포할 수 있게 해주는 TVM 원격 배포 메커니즘에 의해 갈채를 받은 캐나다 미스 졸업장에 대해 설명합니다. 또한 개발자의 지루한 작업을 줄일 수 있는 TVM에 의해 도입된 자동 최적화에 대해 논의하고
    검색 공간을 탐색하고 최상의 구성을 찾도록 설계되었습니다.

  • 00:10:00 이 섹션에서는 스피커가 TVM 컴파일러 스택과 ONNX 지원에 대해 설명합니다. 그들은 TVM 컴파일러 스택이 더 나은 성능을 제공하기 위해 격리된 익스트림 그래디언트 부스팅 알고리즘을 포함하여 가장 진보된 튜닝 알고리즘을 통합한다고 언급합니다. 또한 자동화된 최적화를 허용하고 이전 작업을 활용하여 검색 공간을 최적화할 수 있는 오픈 소스 프로젝트를 강조합니다. 그런 다음 발표자는 Vita 개방형 가속기와 세 가지 주요 부품에 TVM을 사용할 수 있는 방법에 대해 이야기합니다. 일정 최적화에 TVM을 사용하고 VPS RPC를 사용하여 원격으로 배포하는 방법을 설명합니다. 마지막으로 그들은 Xilinx의 Ultra 9 스틱 및 Amazon의 F1 인스턴스에서 사용할 수 있도록 계획하는 동시에 그래프 수준에서 8비트 지원 및 자동 튜닝을 포함하는 TVM용 로드맵을 제공합니다.

  • 00:15:00 이 섹션에서 발표자는 TVM 컴파일러 스택과 Relay라고 하는 NVM v2로의 업그레이드 계획에 대해 설명합니다. Relay를 구현하려면 형식 시스템을 개선하고 컴파일 서버 시스템을 개선하는 방법을 제어하기 위해 포드 제어 흐름을 선택해야 합니다. 연사는 ONNX를 지원할 때 Relay가 TVM 컴파일러 스택에 어떻게 적용되는지 설명합니다. ONNX는 세 가지 주요 부분, 즉 계산 그래프 모델 및 건물 연산자와 표준 데이터베이스를 정의합니다. ONNX ml 확장을 지원하기 위해 TVM 프런트 엔드는 DVM에서 프런트 엔드를 구현했습니다. 그러나 ONNX를 NM VM 기호 그래프로 변환하면 일부 불일치 문제가 발생할 수 있습니다. 또한 커뮤니티에서는 TVM 커뮤니티에서 그래프 IR로 ONNX를 사용할지 Relay를 사용할지 논의하고 있으며 향후 모델 변환에 사용할 Relay를 병합하기 위해 함께 작업하는 것이 유일한 진행 방법입니다.

  • 00:20:00 이 섹션에서 발표자는 다양한 가속기에서 신경망 추론을 위한 표준 인터페이스인 프레임워크 통합용 ONNX TV 인터페이스에 대해 설명합니다. 인터페이스에는 포드 런타임 검색, 실행 백엔드 선택 및 ONNX 연산자의 장기 검색이 포함됩니다. 발표자는 커뮤니티가 모든 생태계에 대한 표준 인터페이스를 통합하는 방법을 논의해야 한다고 제안합니다. 또한 스피커는 TVM 컴파일러 스택과 검색 공간의 일부로 손으로 코딩된 구현을 통합할 수 있는 방법에 대해 이야기합니다. 그러나 아직 이 메커니즘에 대한 좋은 아이디어가 없기 때문에 발표자는 아이디어와 토론을 환영합니다.

  • 00:25:00 이 섹션에서 토론 주제는 TVM 컴파일러 스택과 ONNX에 대한 지원입니다. ONNX에는 설명 형식과 런타임 API가 모두 있으며 ONNX 동등 시스템은 개방형 교환 형식을 넘어 확장되고 있음을 명확히 합니다. 목표는 상위 애플리케이션이 런타임 추론을 위해 단일 표준 API를 호출할 수 있도록 API를 통합하여 이 영역의 개발자가 더 쉽게 만드는 것입니다. 더 이상 질문이 없으며 점심 식사를 위해 비디오가 일시 중지됩니다.
YVR18-332 TVM compiler stack and ONNX support
YVR18-332 TVM compiler stack and ONNX support
  • 2018.09.28
  • www.youtube.com
As an open source deep learning compiler driven by the community, TVM is evolving quickly and well received by the industry. In this session, the architectur...
사유: