[Feedback Wanted] Shipping sample(s) with the ML-Agents C# Package

Hi all,
We want to inform you that we will ship the 3DBall example as a Sample in the com.unity.ml-agents C# package at version 1.9.0-preview. We want to ask you which samples you’d like to see included moving forward to understand which example environments our users find most useful.

We want to note that there are a couple of tradeoffs to having more samples or fewer samples:

  • The more samples we add to the package, the bigger the size of the package will be. This will impact install and download times when installing ml-agents from the package manager. On the other hand, having more samples means people can access more of what ML-Agents offers without cloning the git repository.

  • Having a smaller set of samples will reduce download and install times but at the cost of having users need to leave the Unity Editor to explore more of what ML-Agents offers.

Please help us figure what is important to you as our users by responding to this thread.
Cheers!
The ML-Agents Team.

1 Like

would be nice to see how you tackle turn based games where agent need to take multiple decisions (number of decisions is dynamicly changed based on situation) in 1 turn and be rewarded based on a full turn.

I’d say the soccer example could cover tons of different uses cases (basic if only one player + goal, self play, coop, etc). However I would not like the samples to add some tags in my project, or have too many assets.

1 Like

Our use of ml-agents is heavily automated and pulls down the package fresh for every ephemeral training run. My opinion here is biased toward the package being as small as possible but I understand the want/need to keep it easy to use for beginners.

Is there any way there could be 2 packages? Something like ml-agents, which contains a few examples and ml-agents-lite which has only the core necessities?

1 Like

Hey @Luke-Houlihan , I understand your concern over package size. Where are you “pulling the package down” from?

The default pip repo, PyPi. I suppose I could cache the latest locally and strip the examples but that kind of defeats the purpose.

The samples wouldn’t live in PyPi, they would live in the C# package. Sorry if that wasn’t clear. I can update the text of the thread

Ohh! My bad, I misunderstood that :hushed:. Thanks for the clarification!

Hello, I have some request about ML-Agents.

  1. I want to set Behavior Parameters dynamic, so that I can switch mode in running.
  2. Could you add interface to get necessary information from sensors? I want to read RayPerceptionOutput.RayOutput from RayPerceptionSensorComponent2D so that I can dynamic programing, but I found there is no interface.
1 Like

Maybe I am just incompetent but I needed like 30 minutes to find the examples on the github site.
Some kind of quick access over the package manager would be cool, IMO.
Otherwise bc of Cloud ports and similar applications I personally would minimize the amount of examples in the standard mlagents. I have one Unity Project opened with all the examples; that works just fine for me.

What I personally also miss is some kind of tutorial which elobarates the implementation details a little bit of the examples. E.g. I still have no clue how exactly the joint forces work in the walker example.

Otherwise thanks for your work on mlagents, it makes so much fun and motivated me to start learning about Deep Neural Networks ;D

1 Like
  • 3D Ball - (Simplest example)
  • Soccer - (Covers many use cases especially competitive and self play)
  • Push Block Plus the Collab version (Covers Collab with POCA)
  • Pyramids or DungeonEscape (Covers Sparse rewards and curiosity very well)

Each one covers a different use case.
Honestly though I would almost include them all if that’s an option. Each one covers a completely different use case.

I concur with those suggesting moving the examples to a different repo.

I suppose the main issue you are concerned about is that the versions need to match? But that’s not I feel an insurmountable issue. e.g. specify very clearly somewhere which version, or branch, or git commit hash we should run against when using that example at that commit. eg

mlagents-examples repo:

  • commit abweew
    — README.md Please use mlagents release_20
  • commit wewrgrg
    — README.md Please use mlagents release_20
  • commit sdewfg
    — README.md Please use mlagents release_19

(I suppose one other issue you guys are considering, that you aren’t actually stating, is that maintaining tons of environments increases the cost of maintenance, and reduces agility of the overall code-base?)

Ml-agents is excellent, but where can I find a dedicated server for a good price to train?
It also causes my computer to freeze on mlagent gameobject activation and decision request. So some tutorials with ml-agents dots.

I was able to set up training on an AWS instance, at 80 cents an hour it costs $20 a day and I was only able to achieve 3 million training steps in a day. Which was def not worth the effort in the end to set it up, and money spent running it for a few days. I felt there might have been configuration issues because it didn’t feel like I was making full use of the GPU, but I highly doubt that.

Moreover, still need the DOTS solution for ML-agents, or something that is faster. Every time the ai makes a decision, it paralyses the computer.