ml-agents v1.0

Unity3D/ml-agent 2020. 12. 28. 14:46
반응형

2017년 9월 17에 첫번째 버전이후 2020년 5월 12일에 v1.0에 도달 했다

많은 것들에 대한 변화가 있었다

2017년 9월 17일, Unity Machine Learning Agents Toolkit(ML-에이전트s)의 첫 번째 버전이 출시되었습니다. 이 임무는 간단했습니다. 게임 개발자와 AI 연구자들이 모두 Unity를 머신러닝의 최신 발전을 사용하여 지능형 에이전트를 교육하고 내장하는 플랫폼으로 사용할 수 있도록 했습니다. 초기 "Hello World" 출시 이후, 8400명이 넘는 GitHub 스타들이 이 프로젝트를 진행하면서 툴킷의 커뮤니티와 개발이 크게 성장했습니다. 2년 반이 넘는 개발 및 15개 이상의 릴리스 업데이트 후 오늘, ML-에이전트s Unity 패키지가 v1.0에 도달하여 Preview 패키지로 제공됨을 알려드리게 되어 기쁘게 생각합니다. 또한 ML-에이전트를 위한 새 제품 및 리소스 페이지를 시작하고 있습니다.

약간의 배경을 설명하자면, ML-에이전트는 게임과 시뮬레이션이 지능형 에이전트 교육을 위한 환경 역할을 할 수 있도록 지원하는 오픈 소스 프로젝트입니다. 여기에는 씬(scene)을 설정하고 씬(scene) 내에서 에이전트를 정의하는 C# SDK와 2D, 3D 및 VR/AR 환경을 위한 에이전트를 교육하는 최첨단 머신 러닝 라이브러리가 포함되어 있습니다. 오늘날 ML-에이전트는 운영 준비 상태에 있어 중요한 이정표에 도달했습니다. C# SDK는 첫 번째 주요 버전인 v1.0으로 업그레이드되었으며 현재는 Unity Package Manager를 통해 Preview 패키지인 com.unity.ml-discret으로 제공됩니다. 이는 사용자에게 세 가지 주요 이점을 제공합니다.

API 안정성. ML-에이전트s C# SDK는 당사의 데모 Unity 환경(이동 작업부터 멀티플레이어 게임 및 로봇 팔까지 다양한)에서 Unity로 만든 실제 게임에 이르기까지 2년 이상의 개발 및 테스트 기간 동안 진화해 왔습니다. 그 결과 모든 게임 또는 Unity 환경에 쉽게 통합할 수 있는 유연하고 기능이 풍부하며 안정적인 API가 제공됩니다. 

설치 용이성. 이제 GitHub 프로젝트를 복제할 필요 없이 Package Manager에서 직접 ML-에이전트 Unity 패키지를 시작할 수 있습니다. 

확인된 Unity 패키지(곧 출시)입니다. ML-에이전트s Unity 패키지는 이제 2020.2 버전의 Unity Editor를 위한 검증 패키지가 될 수 있습니다.

이 블로그 포스트에서는 ML-에이전트의 간략한 기록과 최신 릴리스인 ML-에이전트 릴리스 1에 대해 간략하게 설명하고 향후 ML-에이전트 개선 사항을 간략히 소개합니다.

ML-에이전트의 간략한 기록

첫 번째 블로그 게시물(blogs.unity3d.com/2017/09/19/introducing-unity-machine-learning-agents/)에는 다음과 같은 내용이 실렸습니다.

세계에서 가장 인기 있는 창조 엔진인 Unity는 기계 학습과 게임 사이의 갈림길에 서 있습니다. 가장 강력한 훈련 시나리오를 가진 기계 학습 연구원들이 최신 기계 학습 기술을 활용할 수 있도록 함으로써 게임 커뮤니티에 반환하는 것이 우리의 임무에 매우 중요하다.

From simple to complex training environments in ML-agents

 

이후 2년 반 동안 ML-에이전트는 그 임무를 충실히 수행했으며 게임 및 기계 학습 커뮤니티에서 발전했습니다.

우리는 커리큘럼 학습, 희소 보상 환경에 대한 호기심(Curiosity) 모듈 활성화, 훈련의 속도와 효율성 향상, 다중 에이전트 시나리오에 대한 셀프 플레이 활성화, ML-에이전트로 훈련된 모든 모델에 대한 네이티브 교차 플랫폼 추론 지원 등과 같은 새로운 교육 옵션을 추가하여 툴킷을 지속적으로 개선했다. 

(See our GitHub ML-Agents Overview page for a description of all the ML-Agents features.)

이러한 개선으로 인해 Puppo와 같은 새로운 데모 및 환경과 Jam City의 Snoopy Pop 및 Carry Castle의 Source of Madness와 같은 실제 게임과의 통합이 어떻게 활성화되었는지 직접 확인했습니다.

Snoopy Pop , Puppo Day at the Races, Source of Madness

특히, AI 연구자를 위해, 우리는 비전, 제어 및 계획의 벤치마크 역할을 하기 위해 장애물 타워 환경 및 과제(ML-에이전트s로 구축)를 만들었습니다. 또한 다른 연구자와 연구소에서 ML-에이전트를 채택하여 연구 벤치마크를 작성하는 일도 있었습니다. 대표적인 예로는 아레나 멀티 에이전트 환경, 동물 AI 올림픽, 연속 통제 마라톤 환경이 있다.

초기 출시 이후 ML-에이전트s 커뮤니티는 AI 연구원, 게임 개발자 및 학생들로 구성된 느슨한 연합에서 수천 명의 참여 커뮤니티 참여자로 성장했습니다. 여기에는 온라인 및 당사와 직접 공유되는 ML-에이전트의 몇 가지 창의적인 데모가 포함됩니다. 그 결과, GitHub 저장소는 8,400개 이상의 별과 2,300개의 포크를 얻었으며, 연구 논문 Unity: A General Platform for Intelligent Agents는 115번 이상 인용되었습니다.

 

ML-Agents Unity Package v1.0

오늘 최신 릴리즈에서 ML-에이전트s Unity 패키지가 v1.0.0으로 출시되었으며 Unity Package Manager에서 Preview 패키지로 제공됨을 알려드리게 되어 기쁘게 생각합니다. Unity: 지능형 에이전트를 위한 일반 플랫폼 연구 논문이 ML-에이전트 릴리스 1을 반영하도록 업데이트되었습니다.

이 버전 변경은 ML-Agents에 대한 두 가지 핵심 개선 사항을 반영합니다.

1. 패키지 구성. ML-Agents는 이제 4개의 패키지로, 1개의 유니티 패키지와 3개의 파이썬 패키지로, 파이썬 통신 및 기계 학습 알고리즘을 포함한다. 당신이 우리의 훈련 알고리즘을 수정하거나 당신만의 것을 만드는 연구원이 아니라면, 당신은 당신의 프로젝트에 유니티 패키지를 통합하고 우리의 훈련 CLI를 사용함으로써 ML-에이전트와 인터페이스를 할 것이다.

2. API 개선. 몇 달 전, 우리는 우리의 C # SDK를 훨씬 더 쉽고 직관적으로 사용하기 위해 정비를 시작했다. 그 결과는 2019년 9월 v0.10.0에서 시작하여 최신 릴리스로 정점을 찍는 여러 가지 릴리스에서 단계적으로 개선된 여러 가지 주요 개선 사항이었습니다. 이러한 변경사항에 대한 자세한 내용은 릴리스 노트에서 확인할 수 있습니다.

ML-에이전트 릴리스 1부터 각 GitHub 릴리스는 ML-에이전트를 구성하는 각 패키지에 대한 새 버전을 게시합니다. ML-에이전트 릴리스 1에서는 다음 버전을 설정합니다.

 

com.unity.ml-agents (v1.0.0, C#)

공용 API가 정의되었으며 향후 릴리스에 대한 의미 버전 관리를 따릅니다. 또한 패키지가 Unity Package Manager에 미리 보기 패키지로 추가되었습니다. Unity 2020.2용 검증 패키지를 출시할 예정입니다.

 

Communicator (v1.0.0, C#/Python)

Unity와 Python 사이의 통신 프로토콜은 안정화되었으며 의미 론적 버전을 따를 것입니다. 기능은 통신 프로토콜의 동일한 주요 버전을 사용하는 C # 및 Python 패키지 사이에서 전후 호환됩니다.

 

ml-agents, ml-agents-envs, gym-unity (v0.16.0, Python).

Python 패키지는 역호환성이 없는 방식으로 계속 발전하고 개선될 것이다. 향후 CLI를 개선하면 변경 사항이 발생할 수 있지만 조만간 CLI를 최종 확정하고 안정화시킬 계획입니다.

패키지 버전 지정에 대한 자세한 내용과 GitHub 릴리스에 대한 변경 사항은 Versioning 페이지에서 확인할 수 있습니다.

 

What’s next?

ML-에이전트 릴리스 1은 매우 흥미로운 여정의 시작입니다. 당사는 교육 알고리즘의 성능과 효율성을 개선하고, 피드백을 기반으로 Unity 패키지를 발전시키며, ML-에이전트의 게임 및 산업용 애플리케이션에서 영감을 받은 더 많은 예제 환경을 추가함으로써 툴킷을 지속적으로 개발할 계획입니다. 계속해서 ML-에이전트 포럼에서 당사의 로드맵에 대한 정보를 제공할 수 있습니다. 핵심 툴킷을 발전시키는 것 외에도 여러 가지 흥미로운 개선사항이 계획되어 있습니다. 지금부터 간략하게 살펴보겠습니다.

 

ML-Agents Cloud

scale out your training with ML-Agents Cloud

ML-에이전트s 사용자로부터 받는 일반적인 피드백 중 하나는 Python을 설치할 필요 없이 교육에 대한 욕구입니다. 또한 사용자가 로컬 머신에서 훈련하는 것이 얼마나 제한적일 수 있는지 파악하여 한 번에 훈련할 수 있는 환경 및 하이퍼 파라미터의 수를 제한했습니다. ML-에이전트s Cloud는 올해 말에 시작하고자 하는 클라우드 서비스로, ML-에이전트 사용자가 확장 가능한 클라우드 인프라를 교육할 수 있도록 지원합니다. 사용자는 많은 동시 교육 세션을 제출하거나 많은 머신에서 쉽게 교육 세션을 확장하여 보다 빠른 결과를 얻을 수 있습니다.

현재 ML-에이전트 클라우드에 대한 조기 사전 액세스를 고려할 수 있는 가입을 개시하고 있습니다. 기존 ML-에이전트 사용자인 경우 실험의 확장 및 관리에 대한 도움이 필요한 경우 여기에 등록합니다.

 

ML-Agents in a DOTS World

https://youtu.be/4hckoKnIgBU

Unity의 핵심은 DOTS(데이터 지향 기술 스택)로 재구축됩니다. DOTS는 빌드의 크기를 줄이고 더 빠르게 실행할 수 있도록 지원함으로써 상당한 성능 이점을 제공합니다. 이러한 이점은 시뮬레이션과 기계 학습의 맥락에서 확대됩니다. 이와 같이, 우리는 내부적으로 DOTS용으로 제작된 ML-에이전트 버전을 프로토타이핑하고 있습니다. DOTS 프로토타입을 샘플 장면(위 참조) 및 MegaCity 및 TinyRacing과 같은 Unity 데모에 성공적으로 통합했습니다. 그 결과는 두드러졌다 우리는 MegaCity와 같은 복잡하고 큰 환경에서 표준 노트북으로 몇 시간 만에 에이전트를 교육할 수 있었습니다. 우리는 DOTS용 ML-에이전트의 실험 버전을 올해 말에 출시할 예정입니다.

https://youtu.be/A740jfboGBw

게임 또는 Unity 프로젝트가 DOTS를 사용하여 구축되고 있으며 ML-에이전트에 관심이 있는 경우 이메일을 보내 주십시오. NAT은 DOTS용 ML-에이전트 개선을 위해 함께 일할 관심 있는 미리보기 사용자를 찾고 있습니다.

 

Robotics

https://youtu.be/VqR7pEyy5sM

우리의 로봇 연구자들에게 NVIDIA PhysX 4.0과의 Unity는 로봇 시뮬레이션의 품질을 극적으로 향상시켰다(Unity 2019.3 참조). Unity 2020.1에는 Nvidia의 PhysX 4.1로 구동되는 새로운 관절 관절 시스템이 포함되어 있으며, 이는 로봇 팔과 연속 관절을 시뮬레이션하는 데 극적인 개선을 제공한다. Featherstone의 알고리즘, 좌표 표현 감소 및 새로운 비선형 반복 해결기를 사용하여 관절의 원치 않는 스트레치를 대폭 줄입니다. 실제로 이것은 우리가 이제 많은 관절을 일렬로 묶을 수 있고 여전히 안정적이고 정확한 움직임을 달성할 수 있다는 것을 의미한다.

Unity 2020.1(베타)의 새로운 관절 접합 시스템을 이미 시작할 수 있습니다. 위의 로봇 환경을 실험하거나 자신만의 로봇 환경을 만들기 위한 샘플 프로젝트로 사용하려면 Unity Robotics Demo 프로젝트(ML-에이전트 릴리스 1과 통합)를 확인하십시오. 또한 추가 로봇 공학 및 연속 제어 환경을 포함하도록 ML-에이전트 내의 예제 환경을 확장할 계획이다.

 

ML-에이전트 릴리스 1 구현 방법 알아보기

Immersive Limit와 파트너 관계를 맺어 연습, 코드 연습 및 유용한 토론을 통해 ML-Agents Release 1을 구현하는 방법을 가르치는 Unity 학습 플랫폼의 과정 인 ML-Agents : Hummingbirds를 만들었습니다.

신경망을 훈련시켜 도전적인 일을 하는 방법을 배워보세요. 여섯 개의 자유도와 복잡한 비행 경로를 가진 벌새를 꽃으로 데려오는 것입니다. 이 과정을 마치면 ML-에이전트 릴리스 1의 기능을 활용하여 지능형 에이전트를 만들고 이를 고유한 Unity 게임 및 시뮬레이션 프로젝트에 통합하는 방법을 잘 이해할 수 있습니다.

다음 단계 ML-에이전트를 시작하려면 GitHub 홈페이지를 확인하십시오. 이번 릴리스에서 제공하는 기능을 사용하신다면, 귀하의 의견을 듣고 싶습니다. ML-에이전트와 관련된 피드백, 일반적인 문제 또는 질문은 ML-에이전트 포럼에 문의하시거나 이메일로 직접 문의하시기 바랍니다. 버그가 발견되면 ML-에이전트 GitHub 문제 페이지로 문의하시기 바랍니다. 만약 여러분이 이 흥미로운 기계 학습과 게임의 교차점에서 일하고 싶다면, 저희는 여러 직책에 채용하고 있습니다. 지원하세요!

 

참고: 

blogs.unity3d.com/2020/05/12/announcing-ml-agents-unity-package-v1-0/

반응형
: