[[{'duration': 5.679, 'start': 4.0, 'text': 'Or moving on, we can run the Docker'}, {'duration': 5.92, 'start': 7.04, 'text': 'container and use the same example.'}, {'duration': 5.441, 'start': 9.679, 'text': 'We can um pull the container and then or'}, {'duration': 4.159, 'start': 12.96, 'text': 'sorry, we can clone the repo and then'}, {'duration': 4.56, 'start': 15.12, 'text': 'make changes to it and then build the'}, {'duration': 4.641, 'start': 17.119, 'text': 'Docker container as well. And inside the'}, {'duration': 4.64, 'start': 19.68, 'text': "OpenM CLI, we've got like a convenience"}, {'duration': 5.92, 'start': 21.76, 'text': 'tool OpenM build that that does that for'}, {'duration': 5.359, 'start': 24.32, 'text': "us. But it's essentially just wrapping"}, {'duration': 3.679, 'start': 27.68, 'text': 'Docker build. So, so we can also do the'}, {'duration': 4.4, 'start': 29.679, 'text': 'same there'}, {'duration': 5.921, 'start': 31.359, 'text': 'and then we can run these containers and'}, {'duration': 7.441, 'start': 34.079, 'text': 'as I said before connect with them uh'}, {'duration': 7.68, 'start': 37.28, 'text': 'from Python in the same kind of way.'}, {'duration': 5.84, 'start': 41.52, 'text': 'So what does it look like from the CLI?'}, {'duration': 4.16, 'start': 44.96, 'text': 'So as we showed before, you can do this'}, {'duration': 3.519, 'start': 47.36, 'text': 'open end in it and you can create the'}, {'duration': 3.52, 'start': 49.12, 'text': 'skeleton and then you can push that'}, {'duration': 5.761, 'start': 50.879, 'text': "straight to the hub which I'll come back"}, {'duration': 5.655, 'start': 52.64, 'text': 'to in a second uh as a little demo.'}, {'duration': 3.12, 'start': 56.64, 'text': 'And then you can configure'}, {'duration': 3.385, 'start': 58.295, 'text': '[clears throat] that environment um'}, {'duration': 4.56, 'start': 59.76, 'text': 'mainly with environment variables to say'}, {'duration': 5.36, 'start': 61.68, 'text': 'like how many workers do you want to use'}, {'duration': 4.479, 'start': 64.32, 'text': 'uh and um whether you want to use'}, {'duration': 5.119, 'start': 67.04, 'text': "concurrent environments which I'll come"}, {'duration': 6.401, 'start': 68.799, 'text': 'to in the next section.'}, {'duration': 5.761, 'start': 72.159, 'text': 'So feel free to kind of drop in any uh'}, {'duration': 3.919, 'start': 75.2, 'text': "interruptions if you like. Uh I'm just"}, {'duration': 3.839, 'start': 77.92, 'text': "going to set this up so it's a little"}, {'duration': 5.121, 'start': 79.119, 'text': 'bit easier to see. Yes. I I had a couple'}, {'duration': 3.921, 'start': 81.759, 'text': 'of questions like like basically um so I'}, {'duration': 2.8, 'start': 84.24, 'text': 'know you mentioned at some point like oh'}, {'duration': 3.439, 'start': 85.68, 'text': "if you don't have like Docker you can"}, {'duration': 3.6, 'start': 87.04, 'text': 'use UV but like how does this work? Like'}, {'duration': 3.201, 'start': 89.119, 'text': 'I mean presumably most environments'}, {'duration': 3.04, 'start': 90.64, 'text': "aren't written in Python like if you're"}, {'duration': 3.28, 'start': 92.32, 'text': "a Pokemon you're written in like"}, {'duration': 4.56, 'start': 93.68, 'text': 'whatever that was written in. Then you'}, {'duration': 5.04, 'start': 95.6, 'text': 'have like some shim in Python. So could'}, {'duration': 4.4, 'start': 98.24, 'text': 'you speak to how like basically native'}, {'duration': 3.76, 'start': 100.64, 'text': 'code gets deployed in environments on'}, {'duration': 4.799, 'start': 102.64, 'text': 'the hub?'}, {'duration': 5.759, 'start': 104.4, 'text': '>> Yeah. So when when the environment is'}, {'duration': 4.801, 'start': 107.439, 'text': 'outside of Python, you need to use a'}, {'duration': 4.081, 'start': 110.159, 'text': 'container to define the code outside of'}, {'duration': 4.32, 'start': 112.24, 'text': 'of Python and do dependency management'}, {'duration': 4.72, 'start': 114.24, 'text': 'basically. So if you say like if you'}, {'duration': 4.64, 'start': 116.56, 'text': 'want to run the Uicorn application,'}, {'duration': 4.08, 'start': 118.96, 'text': 'sorry, the Python application, uh yeah,'}, {'duration': 3.519, 'start': 121.2, 'text': "you can't you need to manage the"}, {'duration': 4.48, 'start': 123.04, 'text': "dependencies outside of Python and we'll"}, {'duration': 3.68, 'start': 124.719, 'text': "do that with Docker. That's basically"}, {'duration': 2.719, 'start': 127.52, 'text': 'Yeah.'}, {'duration': 3.2, 'start': 128.399, 'text': '>> I see just and I know this is maybe a'}, {'duration': 3.36, 'start': 130.239, 'text': 'pedantic question but just because you'}, {'duration': 3.28, 'start': 131.599, 'text': 'have cost there. So the cost basically'}, {'duration': 3.041, 'start': 133.599, 'text': "it's like"}, {'duration': 3.36, 'start': 134.879, 'text': '>> is it like paid for by the people'}, {'duration': 3.28, 'start': 136.64, 'text': 'hosting the environment or is it paid'}, {'duration': 3.841, 'start': 138.239, 'text': 'for by the people that are pulling the'}, {'duration': 3.84, 'start': 139.92, 'text': 'environment? Uh how does this work if'}, {'duration': 2.96, 'start': 142.08, 'text': 'people are having like multiple rollouts'}, {'duration': 2.559, 'start': 143.76, 'text': "where they're doing multiple parallel"}, {'duration': 4.16, 'start': 145.04, 'text': 'evals?'}, {'duration': 6.64, 'start': 146.319, 'text': '>> Yeah. So in the example I showed you'}, {'duration': 5.52, 'start': 149.2, 'text': 'where like this kind of example where'}, {'duration': 5.28, 'start': 152.959, 'text': 'you interact with the like the space'}, {'duration': 5.44, 'start': 154.72, 'text': 'itself, right? Like the spa the'}, {'duration': 5.761, 'start': 158.239, 'text': 'environment host would would pay for'}, {'duration': 5.12, 'start': 160.16, 'text': 'that compute. Um, and so in most cases,'}, {'duration': 2.879, 'start': 164.0, 'text': "like if you're publishing an"}, {'duration': 3.2, 'start': 165.28, 'text': 'environment, you would probably want to'}, {'duration': 2.881, 'start': 166.879, 'text': 'do that for free and just let people try'}, {'duration': 2.88, 'start': 168.48, 'text': 'it out and kind of understand the'}, {'duration': 4.559, 'start': 169.76, 'text': 'environment that you use to maybe learn'}, {'duration': 6.08, 'start': 171.36, 'text': 'from it and then they could pull that'}, {'duration': 6.961, 'start': 174.319, 'text': 'environment and and run it for free. Um,'}, {'duration': 6.32, 'start': 177.44, 'text': 'because of how spaces works like uh let'}, {'duration': 4.319, 'start': 181.28, 'text': 'me just maybe show you like you you can'}, {'duration': 3.92, 'start': 183.76, 'text': "just duplicate spaces so they're kind of"}, {'duration': 4.72, 'start': 185.599, 'text': 'like super easy to just pull over to'}, {'duration': 4.72, 'start': 187.68, 'text': '>> Oh, I see. like like running locally is'}, {'duration': 5.121, 'start': 190.319, 'text': 'something you want people to do like you'}, {'duration': 5.6, 'start': 192.4, 'text': 'want discover things and then like I see'}, {'duration': 4.32, 'start': 195.44, 'text': '>> totally so yeah I expect most people'}, {'duration': 3.92, 'start': 198.0, 'text': 'will like come here and like try it out'}, {'duration': 3.92, 'start': 199.76, 'text': 'and learn from it maybe duplicate it if'}, {'duration': 3.92, 'start': 201.92, 'text': 'they want to make changes and share it'}, {'duration': 6.577, 'start': 203.68, 'text': 'but in most cases we expect people to'}, {'duration': 4.479, 'start': 205.84, 'text': 'kind of um to run this this locally.'}, {'duration': 2.143, 'start': 210.257, 'text': '[laughter]'}, {'duration': 5.361, 'start': 210.319, 'text': '>> Got it. Okay,'}, {'duration': 5.28, 'start': 212.4, 'text': '>> cool. Um so yeah. Okay. So I I shared'}, {'duration': 3.76, 'start': 215.68, 'text': "this little demo. Um, we we've kind of"}, {'duration': 3.6, 'start': 217.68, 'text': 'seen this a little bit already, but let'}, {'duration': 4.56, 'start': 219.44, 'text': 'me just work through it. So, you'}, {'duration': 6.239, 'start': 221.28, 'text': 'basically just do openm in it, which'}, {'duration': 5.84, 'start': 224.0, 'text': "looks like this. And it's um a simple"}, {'duration': 4.0, 'start': 227.519, 'text': 'command line. It just needs to know what'}, {'duration': 5.52, 'start': 229.84, 'text': 'the name of your environment is going to'}, {'duration': 7.8, 'start': 231.519, 'text': "be. So, let's call it GPU mode. Um, and"}, {'duration': 3.959, 'start': 235.36, 'text': 'so we basically'}, {'duration': 5.72, 'start': 240.799, 'text': "I'm in the right place. Okay. Sorry."}, {'duration': 4.961, 'start': 246.799, 'text': 'Sorry, I I just had a quick add to what'}, {'duration': 4.64, 'start': 249.2, 'text': "uh Ben answered about Mark's question."}, {'duration': 3.52, 'start': 251.76, 'text': 'Um for like most of these game'}, {'duration': 2.959, 'start': 253.84, 'text': 'environments and things like that, you'}, {'duration': 4.079, 'start': 255.28, 'text': 'can imagine you sort of building'}, {'duration': 5.28, 'start': 256.799, 'text': 'adapters or rappers just like add on to'}, {'duration': 4.721, 'start': 259.359, 'text': 'the spec. But our goal for like'}, {'duration': 3.761, 'start': 262.079, 'text': "hopefully this year is we'll bring like"}, {'duration': 4.48, 'start': 264.08, 'text': "environments on the ground up. So you'll"}, {'duration': 4.24, 'start': 265.84, 'text': 'see them like being less clunky. And the'}, {'duration': 3.199, 'start': 268.56, 'text': 'other thing I want to call out is like'}, {'duration': 4.24, 'start': 270.08, 'text': 'most of these are for reinforcement'}, {'duration': 5.041, 'start': 271.759, 'text': 'learning training. So that will go in a'}, {'duration': 4.319, 'start': 274.32, 'text': 'lot more depth, but the CPU cost of'}, {'duration': 3.76, 'start': 276.8, 'text': 'running an environment compared to like'}, {'duration': 4.081, 'start': 278.639, 'text': 'the GPU involved in training is like'}, {'duration': 4.32, 'start': 280.56, 'text': 'really fractional. So you can imagine'}, {'duration': 5.84, 'start': 282.72, 'text': 'like you probably would not mind hosting'}, {'duration': 5.599, 'start': 284.88, 'text': 'these on your server.'}, {'duration': 3.68, 'start': 288.56, 'text': '>> Sorry to interrupt your flow, Ben. No'}, {'duration': 3.681, 'start': 290.479, 'text': "worries. It's actually extremely"}, {'duration': 3.6, 'start': 292.24, 'text': 'helpful.'}, {'duration': 5.12, 'start': 294.16, 'text': 'Gave me a chance to get this back in'}, {'duration': 5.2, 'start': 295.84, 'text': 'line. So yeah. Okay. Um, as I was'}, {'duration': 4.0, 'start': 299.28, 'text': 'showing you, this is just how you'}, {'duration': 3.439, 'start': 301.04, 'text': 'initialize an environment. So, and I'}, {'duration': 2.96, 'start': 303.28, 'text': 'just want to kind of work through that.'}, {'duration': 3.761, 'start': 304.479, 'text': "So, let's say I'm going to create a new"}, {'duration': 5.36, 'start': 306.24, 'text': 'environment called GPU mode. So, I just'}, {'duration': 5.28, 'start': 308.24, 'text': 'say open in GPU mode, and it creates'}, {'duration': 3.52, 'start': 311.6, 'text': 'that for me. And it tells me that'}, {'duration': 4.16, 'start': 313.52, 'text': "there's this new file called openend"}, {'duration': 3.919, 'start': 315.12, 'text': "mode. Let's go and have a look at that."}, {'duration': 3.519, 'start': 317.68, 'text': 'And if you look over here in like the'}, {'duration': 4.561, 'start': 319.039, 'text': 'file explorer, this is what it looks'}, {'duration': 4.481, 'start': 321.199, 'text': 'like. And this is a skeleton. So, it'}, {'duration': 4.319, 'start': 323.6, 'text': "comes out the box. So if you're look"}, {'duration': 3.92, 'start': 325.68, 'text': "you're looking on the right pane here uh"}, {'duration': 4.161, 'start': 327.919, 'text': 'and it comes out the box with this read'}, {'duration': 5.28, 'start': 329.6, 'text': 'me that has some metadata which makes it'}, {'duration': 4.559, 'start': 332.08, 'text': 'discoverable on the hub basically uh but'}, {'duration': 4.319, 'start': 334.88, 'text': 'also gives you like the templates and'}, {'duration': 5.12, 'start': 336.639, 'text': "you'll notice that we've like said uh"}, {'duration': 4.321, 'start': 339.199, 'text': "the entire skeleton so that it's already"}, {'duration': 3.761, 'start': 341.759, 'text': 'preconstructed for you with the name'}, {'duration': 4.239, 'start': 343.52, 'text': 'that you chose which in my case was GP'}, {'duration': 4.72, 'start': 345.52, 'text': 'mode and it gives you all of these'}, {'duration': 5.521, 'start': 347.759, 'text': 'examples of how you do it. So out of the'}, {'duration': 5.519, 'start': 350.24, 'text': 'box you have like a self-contained fully'}, {'duration': 5.52, 'start': 353.28, 'text': 'documented end that is also'}, {'duration': 5.361, 'start': 355.759, 'text': 'interoperable and and standardized and'}, {'duration': 5.839, 'start': 358.8, 'text': 'uses open m. It comes with this pi'}, {'duration': 5.44, 'start': 361.12, 'text': 'project toml which installs um all the'}, {'duration': 4.0, 'start': 364.639, 'text': 'like the base dependencies that you need'}, {'duration': 4.72, 'start': 366.56, 'text': 'and then gives some like recommendations'}, {'duration': 4.801, 'start': 368.639, 'text': 'and gets that running.'}, {'duration': 4.96, 'start': 371.28, 'text': 'Uh and then it has the the client code'}, {'duration': 7.0, 'start': 373.44, 'text': 'itself which Sanam already kind of'}, {'duration': 4.2, 'start': 376.24, 'text': 'unpacked and went into detail on.'}, {'duration': 6.479, 'start': 381.44, 'text': "And that's uh that's all there. Right."}, {'duration': 6.72, 'start': 383.759, 'text': "So then um let's just uh change into"}, {'duration': 4.241, 'start': 387.919, 'text': "that. Probably don't want to go too far"}, {'duration': 5.44, 'start': 390.479, 'text': 'into this because we want to go into the'}, {'duration': 5.52, 'start': 392.16, 'text': 'um some other things after that. But we'}, {'duration': 5.521, 'start': 395.919, 'text': 'can then basically just like run this'}, {'duration': 6.959, 'start': 397.68, 'text': 'end like this locally. Uhhuh. H sorry'}, {'duration': 5.52, 'start': 401.44, 'text': "that port's ready in use."}, {'duration': 5.361, 'start': 404.639, 'text': "So yeah, okay, that's it running locally"}, {'duration': 5.519, 'start': 406.96, 'text': 'now. And then if we go to our like'}, {'duration': 7.36, 'start': 410.0, 'text': 'Python interpreter, I think I have that'}, {'duration': 8.081, 'start': 412.479, 'text': 'here. So okay, if I did that, I think it'}, {'duration': 7.119, 'start': 417.36, 'text': "wouldn't work. That's not deployed. But"}, {'duration': 8.8, 'start': 420.56, 'text': 'if I copy the URL out of here,'}, {'duration': 6.641, 'start': 424.479, 'text': 'then I can just say, okay, run on here.'}, {'duration': 3.2, 'start': 429.36, 'text': "Uh yeah. Okay. And then it's like step"}, {'duration': 4.56, 'start': 431.12, 'text': "through and that's the reward and then"}, {'duration': 6.4, 'start': 432.56, 'text': "another reward. Uh and that's this um"}, {'duration': 7.28, 'start': 435.68, 'text': 'openend environment running here. Uh and'}, {'duration': 7.44, 'start': 438.96, 'text': 'then let me um just now go back to my'}, {'duration': 5.519, 'start': 442.96, 'text': 'terminal. Close that down. Uh and do'}, {'duration': 4.239, 'start': 446.4, 'text': 'open m'}, {'duration': 3.761, 'start': 448.479, 'text': 'push'}, {'duration': 4.881, 'start': 450.639, 'text': 'open in the right directory. I was.'}, {'duration': 6.0, 'start': 452.24, 'text': "Yeah. Cool. So then that's now pushed it"}, {'duration': 5.44, 'start': 455.52, 'text': 'to the hub. And if I go over here, I'}, {'duration': 6.48, 'start': 458.24, 'text': "open a browser, you see that I've got"}, {'duration': 8.72, 'start': 460.96, 'text': 'this uh space running here, open m. And'}, {'duration': 7.599, 'start': 464.72, 'text': 'then I can uh just like test out the end'}, {'duration': 4.56, 'start': 469.68, 'text': 'here. And this is just a skeleton. It'}, {'duration': 4.32, 'start': 472.319, 'text': 'just like echoes back whatever you you'}, {'duration': 4.16, 'start': 474.24, 'text': "ask it. So it's just echoed back hello."}, {'duration': 3.761, 'start': 476.639, 'text': 'Um, but if the end was like more'}, {'duration': 4.72, 'start': 478.4, 'text': "complicated or let's say it was like"}, {'duration': 4.799, 'start': 480.4, 'text': 'Sudoku or te text arena or even browser'}, {'duration': 3.84, 'start': 483.12, 'text': 'control, you could try that out and kind'}, {'duration': 3.68, 'start': 485.199, 'text': 'of get a sense of of how that'}, {'duration': 4.72, 'start': 486.96, 'text': 'environment works and what the model was'}, {'duration': 7.121, 'start': 488.879, 'text': 'was doing um for this use case like in'}, {'duration': 5.84, 'start': 491.68, 'text': 'the space and then you would be able to'}, {'duration': 4.319, 'start': 496.0, 'text': 'as I show you go here and kind of'}, {'duration': 5.44, 'start': 497.52, 'text': 'duplicate it embed this space but you'}, {'duration': 6.241, 'start': 500.319, 'text': "could also run locally and then you'll"}, {'duration': 6.239, 'start': 502.96, 'text': 'see this docker run command which is the'}, {'duration': 5.44, 'start': 506.56, 'text': 'same docker run command from the docs. I'}, {'duration': 4.32, 'start': 509.199, 'text': 'think this should just drop in. Yeah.'}, {'duration': 4.719, 'start': 512.0, 'text': "And so then now what you'll see it's"}, {'duration': 7.52, 'start': 513.519, 'text': "doing is that it's running the same"}, {'duration': 6.401, 'start': 516.719, 'text': 'container image from the space uh inside'}, {'duration': 6.8, 'start': 521.039, 'text': 'like locally but this time via docker'}, {'duration': 8.0, 'start': 523.12, 'text': 'instead of the um instead of the uh'}, {'duration': 5.361, 'start': 527.839, 'text': 'python server the fast application.'}, {'duration': 3.92, 'start': 531.12, 'text': "So that's it. Uh let me see if I can"}, {'duration': 4.4, 'start': 533.2, 'text': 'also'}, {'duration': 5.12, 'start': 535.04, 'text': 'just interact with that like that just'}, {'duration': 5.359, 'start': 537.6, 'text': 'to kind of complete the loop.'}, {'duration': 4.48, 'start': 540.16, 'text': 'I think that one should work. Yeah. So'}, {'duration': 3.281, 'start': 542.959, 'text': "now you've got like the same application"}, {'duration': 4.08, 'start': 544.64, 'text': 'running in the space which you which you'}, {'duration': 2.48, 'start': 546.24, 'text': 'can also'}]]