|
| 1 | +# Meet Substrate |
| 2 | + |
| 3 | +--- |
| 4 | + |
| 5 | +### problem: the state of intelligence |
| 6 | + |
| 7 | +When you read a book or play an instrument, most of the benefit accrues to you, the reader. |
| 8 | +With AI, the more intelligence is accumulated, the more it benefits the technology owner, which in this case, is not the user. |
| 9 | + |
| 10 | +AI has moved fast over the last year. Intelligence is on a path to becoming "too cheap to meter". |
| 11 | + |
| 12 | +We are simultaneously accumulating and expanding intelligence at a speed like never before, and also consolidating it all in the hands of the technology makers. |
| 13 | + |
| 14 | +That’s the equivalent of your music knowledge benefiting the company that makes the violin. |
| 15 | + |
| 16 | +At any moment, the company can revoke the knowledge from you, use it for its own benefit, change the rules of engagement, or alter the fundamental architecture of the whole underlying system. |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +### solution: an architecture for intelligence |
| 21 | + |
| 22 | +If you go back to our instrument example: |
| 23 | + |
| 24 | +Imagine as you are using next generation computing systems, your own platforms themselves become more intelligent. These systems can help us better understand each other, better understand the world around us, and better navigate the immense challenges before us. |
| 25 | + |
| 26 | +The systems we are building return leverage to the end users. |
| 27 | + |
| 28 | +To do that, we need to turn the creation of AI into an even more open, global and multiplayer activity. |
| 29 | + |
| 30 | +We need it to be both open and accessible. |
| 31 | + |
| 32 | +We need an architecture for intelligence, now. |
| 33 | + |
| 34 | +Substrate is a new kind of technology organization dedicated to the sole mission of inventing the architecture of intelligence, and developing the technology stack to enable it. |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +### what kind of architecture? |
| 39 | + |
| 40 | +[TODO insert photo] |
| 41 | + |
| 42 | +--- |
| 43 | + |
| 44 | +### what is substrate? |
| 45 | + |
| 46 | +A new computer console that's designed for running AI locally. It runs a new OS and has a open, extensible suite of functionality. |
| 47 | + |
| 48 | +A radically accessible project, where we teach the world not just how to use the AI and console itself, but how build on it, how to hack it, and how to (re)make it themselves. |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +### why locally? |
| 53 | + |
| 54 | +It's where the people are! |
| 55 | + |
| 56 | +Lots of local devices and sensors → HCI possibilities are awesome. |
| 57 | + |
| 58 | +When users pay for electricity, there is less need to "monetize" them. |
| 59 | + |
| 60 | +Cheaper, more fun, better alignment with end users. |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +### why open and extensible? |
| 65 | + |
| 66 | +Invites creativity and experimentation. |
| 67 | + |
| 68 | +This allows value accrue to the end users. |
| 69 | + |
| 70 | +Ensures that such a powerful technology can't be captured by any single entity. |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +### why a console? |
| 75 | + |
| 76 | +AI has extreme memory/compute/bandwidth requirements |
| 77 | + |
| 78 | +Phone/tablet/laptop/desktop based designs are limited by space, bandwidth, cooling, and power |
| 79 | + |
| 80 | +But high-end (enterprise grade) hardware is expensive and hard to buy |
| 81 | + |
| 82 | +For things to keep moving, we need a common dev target with a minimum spec |
| 83 | + |
| 84 | +Many similarities to the pre-Xbox and pre-Playstation gaming ecosystem |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +### why an OS? |
| 89 | + |
| 90 | +Optimize performance (per $) and (per watt) |
| 91 | + |
| 92 | +Sub-second model loading requires tuning hardware, drivers, filesystems |
| 93 | + |
| 94 | +Smaller support matrix means higher quality |
| 95 | + |
| 96 | +Initial experience, upgrades, debugging are all easier |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +### substrate: a disclaimer |
| 101 | + |
| 102 | +Under heavy development |
| 103 | + |
| 104 | +This is the first technical presentation about our work |
| 105 | + |
| 106 | +Here be dragons |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +### substrate: intro |
| 111 | + |
| 112 | +Services are accessible via HTTP |
| 113 | + |
| 114 | +UI (if any) is via browser technologies |
| 115 | + |
| 116 | +Everything runs on device and is accessed via LAN or VPN |
| 117 | + |
| 118 | +Access to the internet is restricted |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +### substrate: real-world challenges |
| 123 | + |
| 124 | +The ecosystem is moving quickly (version conflicts) → containers* |
| 125 | + |
| 126 | +Model weights are large and a bad fit for container layers → resourcedirs |
| 127 | + |
| 128 | +Different flavors for each model (size, quantization, precision) → late binding config |
| 129 | + |
| 130 | +Service discovery & orchestration → gateway |
| 131 | + |
| 132 | +Stateful persistence → spaces |
| 133 | + |
| 134 | +SOTA keeps moving, so lots of model churn → blackboard |
| 135 | + |
| 136 | +--- |
| 137 | + |
| 138 | +### substrate: model dev experience |
| 139 | + |
| 140 | +Build a container image with an HTTP server listening on $PORT |
| 141 | + |
| 142 | +*optionally* |
| 143 | + |
| 144 | +Declare the resource directories you need (like model weights from huggingface) |
| 145 | + |
| 146 | +Declare environment variables based on CUDA memory, RAM |
| 147 | + |
| 148 | +Declare the request patterns your service can satisfy |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +### substrate: accessing services |
| 153 | + |
| 154 | +| |user|from UI|from backend| |
| 155 | +|---|----|-------|------------| |
| 156 | +|directly|/gw/whisper/|/gw/whisper/|http://substrate/gw/whisper/| |
| 157 | +|indirectly|❌|/bb|http://substrate/bb| |
| 158 | + |
| 159 | +--- |
| 160 | + |
| 161 | +### substrate: an example service |
| 162 | + |
| 163 | +[TODO] include from elsewhere |
| 164 | + |
| 165 | +--- |
| 166 | + |
| 167 | +### substrate: meet blackboard |
| 168 | + |
| 169 | +A response to a number of challenges: adding new models, easier composition, a path to auto optimization, self improvement and self extension |
| 170 | + |
| 171 | +An old idea, new again |
| 172 | + |
| 173 | +Based on ideas from tuple space and Prolog (unification) |
| 174 | + |
| 175 | +Easy to get started with, can be a "drop in" replacement for REST |
| 176 | + |
| 177 | +--- |
| 178 | + |
| 179 | +### substrate: meet blackboard |
| 180 | + |
| 181 | +| |blackboard approach|traditional approach| |
| 182 | +|---|-------------------|--------------------| |
| 183 | +1 request|≥ 0 responses|1 response |
| 184 | +routing matches on|full request and response|HTTP method, URL parts |
| 185 | +service discovery|builtin|env vars, DNS, hardcoded |
| 186 | +shadow traffic|builtin|ad hoc |
| 187 | +request tracing|builtin|ad hoc |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +### substrate: an example (before blackboard) |
| 192 | + |
| 193 | +[TODO] include from elsewhere |
| 194 | + |
| 195 | +--- |
| 196 | + |
| 197 | +### substrate: a service example (after blackboard) |
| 198 | + |
| 199 | +[TODO include from elsewhere] |
| 200 | + |
| 201 | +--- |
| 202 | + |
| 203 | +### status update |
| 204 | + |
| 205 | +We have a team of folks working on this project |
| 206 | + |
| 207 | +Milestone 0 is in progress |
| 208 | + |
| 209 | +System 0 is in progress |
| 210 | + |
| 211 | +--- |
| 212 | + |
| 213 | +### follow along |
| 214 | + |
| 215 | +github.com/ajbouh/substrate |
| 216 | + |
| 217 | + |
| 218 | +--- |
| 219 | + |
| 220 | +### Questions? |
| 221 | + |
| 222 | +--- |
| 223 | + |
| 224 | +### appendix |
| 225 | + |
| 226 | +--- |
| 227 | + |
| 228 | +### how blackboard works |
| 229 | + |
| 230 | +--- |
| 231 | + |
| 232 | +### the promise of PCIe |
| 233 | + |
| 234 | +--- |
| 235 | + |
| 236 | +### how bridge works |
| 237 | + |
| 238 | +--- |
| 239 | + |
| 240 | +### how to make your own os |
| 241 | + |
| 242 | +--- |
| 243 | + |
| 244 | +### substrate: blackboard eases model testing |
| 245 | + |
| 246 | +[TODO] show a message sequence diagram for adding a second model |
| 247 | + |
| 248 | +--- |
| 249 | + |
| 250 | +### substrate: blackboard and self improvement |
| 251 | + |
| 252 | +[TODO] show a message sequence diagram for self improvement |
0 commit comments