Good morning. Nice to have so many people here on Sunday morning. I didn't expect it actually So my talk is about the IntelliJay platform My name is Yancy Braun. I work as a developer advocate for JetBrains and I'm responsible for everything around Tooling helping plug-in developers extending Our IDEs and stuff like that Please excuse my voice. I have a pretty bad cold since yesterday of course So maybe I need a few Breaks in between So what does this talk about? First I want to introduce the IntelliJay platform on a very high level basically Who's using IntelliJay or any of the related? Oh, okay So that's quite a lot of people who doesn't know anything about the IntelliJay IDEs Okay, everyone has heard of them at least that's good So that's that's the first part of this talk a couple of slides and After that I want to show the actual tooling that we provide to plug-in developers and I will also demonstrate or show screenshots at least of some of the internal tools We use a JetBrains to make sure that plug-in developers Enjoy our platform. So we try to help them as well By using some internal tools and making sure that things work smoothly for everyone so the IntelliJay platform Came out of IntelliJay idea the IDE which used to be commercial IDE only We split that into community edition, which is completely open sourced under Apache 2 license since 2009 and There's of course still the commercial IDE or other IDEs based on the IntelliJay platform It's a JVM based IDE just like net beans and Eclipse So we use mostly Kotlin Sorry, we use mostly Java some Kotlin or increasing amount of Kotlin and a few bits here and there of Groovy code as well The user interface is actually built completely on swing and most people are like what you can actually build like complex swing applications. Yes, you can It is quite painful sometimes especially when you want to support the same level across Mac Linux and Windows but we are lucky enough that we have Actually a couple of very talented people from the former swing team who now work for JetBrains and Who built their own? Open JDK based runtime which we use for our IDE now So that's another thing that is somewhat related to the IntelliJay platform We use our own Java runtime Based on Open JDK, so it's also completely free for everyone and we merge back to Open JDK as well one important distinction to make between IntelliJay and net beans and Eclipse is that the IntelliJay platform is not a generic Framework or not a framework for generic applications So it is not intended to be used for like Customer applications or anything that is not an IDE or something that is somewhat an IDE and This is a very important point to make so please don't try to do it. It is just too specialized and It is pretty much impossible to rip out the parts which would just give you the basic Layer for running an application and having some kind of UI the last Line on the slide is linked to a presentation which a colleague of mine made a couple of years ago So it's a bit outdated, but it still shows like the whole evolution of the IntelliJay platform and how things Work together or developed if you're interested in a bit more history So how can you approach writing plugins? for the IntelliJay platform so the community Repository is basically the IntelliJay platform We have no distinction between the community edition of IntelliJay and the platform as such it is one repository and one name It's published on GipTap as well. We accept pull requests any kind of feedback on that as well, of course The second link is the SDK documentation So that's some high level docs around the IntelliJay platform which helped you learn it understand all the different parts of it and it also has some tutorials or Self-loan trades basically if for example if you want to write a custom language per plug-in. There's a nice detailed introduction in how to approach this JetBrains runs a couple of forums one of them is specialized to help plugin developers or anyone building stuff on the IntelliJay platform We do monitor this it's actually one of my tasks to do this and Try to help answer all the questions in a timely manner There's also a Gitter community run chat We're actually quite a lot of very active plugin developers are hanging around as well So if you need a quick answer you might get lucky there as well. Sometimes I've I look there as well if you want to keep up to date we run a block and Twitter account of course, so you get all like the high-level news about the IntelliJay platform So plug-ins There's actually a quite huge number Anytime I talk about IntelliJay platform I have to go on our website which lists all the plugins and look up the new number and it increases more and more What kind of plugins can you build for IntelliJay? Well basically anything that you can think of so one very popular category is of course like custom languages any kind of framework support so any kind of web application support for example There's a lot of little tools help us kind of stuff of plugins being published there as well and Yeah, so it's a very broad offering that you have and actually most of them are open source or at least Free for use The plugins website lists all of them. So that's one way to Search for them. You can see all the different versions and stuff of them. We are going to take a look a bit later Marketplace is a Thing we are currently developing in Jet Brands, which will help plug-in developers to actually monetize the plugins if they want to We are also considering using this platform for donation based plugins So maybe that's also something interesting for purely open-source plugins as well in the future Of course, you can build IDEs on the IntelliJay platform So there's a couple of them by Jet Brands. We try to cover all the most popular programming languages obviously One of them is very interesting from the technical point of view, which is Ryder. It's a C-Sharp.net IDE Which runs as well on Mac as on Linux So that's something quite unusual in the net world and It uses the IntelliJay platform just for the frontend So only the user interface is run by the IntelliJay platform It feels and looks like one of the IDEs But all the code intelligence and all the real functionality is actually run by a second process which runs resharper and Resharper is also a product which we have developed for a couple of years, which is originally a plugin for Visual Studio So we kind of combine the two worlds into one product, which allows us now to run a Visual Studio extension cross-platform on all machines Probably the most known IDE which is not built by Jet Brands is Android Studio Which is like the official IDE for anything Android based It was built by Google based on the Android plugin we did before There's also a couple of others. One of them is Cuba Studio. That's the web framework and they basically Provide a plugin but as well a full standalone IDE for their specific framework Building IDEs is of course much more complicated than building a plugin So we usually recommend to build a plugin and if the plugin involves into something bigger Then think about distributing it as a standalone IDE later. So now we come to the interesting developing parts These are the points I want to show to them today So the plugin development kit is of course a plugin in IntelliJay Which allows you or helps you writing plugins in IntelliJay The Gradle IntelliJay plugin is actually a plugin for the Gradle build system which helps you write Plugins for IntelliJay, so you can use Gradle and actually we highly recommend doing so now I will show a bit more details later The third one grammar kit is specifically targeted at custom language development. So anyone wanting to support a new custom language should really try building it on the grammar kit and The last thing is a maintenance tool plugin verifier Which helps you to ensure that the Compatibility with newer or older versions of IntelliJay is actually guaranteed So now let's switch to the IDE And I want to show some basic features of the plugin development Plugin itself in the IDE So there's a couple of things Basically a plugin is built by the code obviously and all the components are registered in a plug-in File which is basically The XML file we are seeing here It has all sorts of metadata and registration information about the actual functionality that the plugin exposes and We have built a quite sophisticated support for Editing all this XML So we can see all the Components here for example, we have some metadata about the plugin itself like name ID Compatibility information here and stuff like that and You have quite nice Tooling support in the XML file itself. So we don't like wizards in the IntelliJay world at all. We try to avoid them We try to build all the tooling based on textual editors because we think it's usually faster to type stuff Or use tooling that helps you type faster than using UI-driven wizards so for example, I have Two extensions here which use the same extension point so they provide a similar kind of functionality and I have given them some kind of IDs and This is interesting because then you can actually provide some kind of ordering for extensions So for example one extension can have priority over other extensions Your own ones or maybe even the built-in ones. So that's one way of overriding or extending existing functionality even from the platform and We understand all of this so we have auto completion here. I can use go target here I can do a find usages and stuff like that Of course all the extension points Can be auto-completed here as well We can even go to the declaration here look at the actual Interface which provides this extension point and stuff like this we can then go back to the registration of this extension point and stuff like this so this is all very nicely integrated in the editor and Let's talk about compatibility because that's one very crucial point on which Actually cost quite a lot of trouble in the recent years, but I think the tooling we have now will help make things better So we have three major releases a year now we switched to that model some time ago and You can actually see the release date from the number so 18 to is basically the second release in 2018 and 183 of course is the third release in 2018 So if you want a very generic Compatibility that's very easy to do like this, but you can also provide the full build number if you really need some changes in some kind of Later point release the thing I did now was to violate the compiler compatibility. So I specified 182 here and Actually, I cannot do this It's a bit small to read. So basically what the message is saying is I'm trying to use an extension point From a platform release that is newer than the minimum version. I specified in my plug-in descriptor So I'm trying to use something that is not there basically And that's quite easy to fix because I can just change now the minimum version Go back and the warning will disappear because now it's okay. It's now compatible, right? and Another thing we added in the tooling just recently is that we have now these annotations here Available since Which prints the exact build number When this class or even method Was added to the platform so you can see when it will be available What is the minimum version? I need to specify in my plug-in to be able to use this class so this information and the Inspection really helps you to ensure compatibility Even before deploying or trying your plug-in you will be warned right in the editor There's a couple of other highlightings in the plug-in makes some L for example we require Useful descriptions or if you just write one word it will highlight this in as an error because it's not useful for users to browse the Plug-in list and have no decent description Stuff like that Same if you try to use Oh, no, it actually doesn't because I'm running in a special mode But you would get the warning that you are not jet brains, so you shouldn't specify jet brains as plug-in vendor Stuff like that. So we try to make all the Appearance of plugins a bit more uniform and more useful for end users There is a couple of Other features we have so writing plugins of course means writing tests We prefer Integration tests so usually we fire up some kind of headless IDE instance and you Test against this headless IDE instance. That's the way we usually write tests So you need usually some kind of test data and then you perform some actions against this test data For example, you have some some file and some Java file and you want to test completion you write You've write this minimum Java file You position the cursor at some specific point in the file and then you invoke completion and then you test that Decompletion variants which are shown are actually the ones you want to be provided So you need some kind of navigation between your testing code and the test data And that's another feature that plug-in development kit offers. For example, I we have the special annotation here test data pass So we can navigate there and see the related test data here as well and Navigate to the test data here. Okay. It's broken in this sample of course, but usually it works There's another new feature which we are going to Announce a bit more publicly later this month which is seeming in the IDE so the whole UI can be Basically, you can provide a custom theme for the UI any colors Margins and stuff like this can now be customized and that's also part of the plug-in development kit to offer tooling support for this customization As you can see you get for example preview for all the colors in your theme, but you also get completion for all the customization keys for example So the that's about some just some of the features we have in the plug-in development kit Now I want to show a bit of the grammar plug-in grammar kit plug-in, sorry So how do you write custom language support in IntelliJ? Basically, you need a lexer which Lexus the file into tokens and Then you need the parser which builds on top of that And this is what grammar kit offers you for tooling So it's very easy to write a lexer and as well basically generate a parser based on some bnf notation for the parsing and I will make this part a bit shorter because time is tight here, but you have all sorts of Tooling support here for writing the parser bnf file generate the parser code. We can even do a live preview of our parser without actually compiling code or doing anything. So Now I can test my Parse here and as soon as I've write something illegal We I can see that my parser actually does what it should do only are now numbers and stuff like that The lexing is done by J flex Which is a very popular? Framework for that kind and we have all sorts of tooling support with this as well. Sorry. This is the J flex file So custom highlighting here and completion as well The technology before the parser is actually It's homegrown. So the parsing is incremental. We only pass changed parts of the file So all the parsing is done in real time more or less while you type The parser generator is Completely homegrown. So the code generated is really built by the plug-in itself. Yeah There's no antler or something behind that. No, you can use antler, but Yeah, we prefer our own homegrown stuff for various reasons. Yes, the grammar kit is also free It's a separate plug-in because not many people use it obviously, but it's free to use of course so that's the grammar kit plug-in and The last thing I have on my list here is the plug-in vary fire and we are going to take a Look at this So the plug-in verifier runs on the plug-in repository Which shows all the plugins for downloading and in the IDE directly But you can also install it locally and run it locally if you really want but we are going to take a look at the instance on the plugins repository and I'm going to open the website because it's a bit nicer So this is what it looks like. I've run a compatibility test against a specific IDE version and it failed expectably And these are all the kinds of problems we catch low like the method. It's not found the class is not existing anymore And there's platform version Incompetible binary changes in the platform. They shouldn't happen, but maybe they happen for some kind of reason So you must update those references and stuff like this You are still using deprecated API So you get all these warnings and they really help you to make your plug-in compatible with newer releases and fix all these issues one by one and upload a new Better or more compatible version for the latest releases You can also see all the dependencies that your plug-in really has at runtime for example Okay, so the question is does it work with reflection for internal APIs? Yes and no so it's bytecode based Analysis obviously we cannot catch every dirty trick you might or might not do Using our platform So yeah, of course we recommend using the API as is and not try to hack into Package private stuff for example or even private stuff If you feel the need to please talk to us first, maybe we will agree Opening it instead So that's that's all the tooling which is available For any plug-in developer all the tools I just showed are completely free and completely open sourced So are the SDK docs. We also want and encourage contributions to that as well and Now I'm showing two screenshots of Internal tools we use and chat brains to highlight Some of the efforts we do to ensure stability So the first one is the IntelliJ API watcher. It is basically A tool we run on all the plugins which are hosted on the plug-in repository So we know what people are using so before we Try and delete for example some deprecated method We can run this usage check and make sure that there are no more plugins using it Or if we change some methods signature, we can ensure that compatibility is not broken stuff like that So that really prevents us breaking the platform and all of a sudden a number of plugins just stop working for some binary Compatibility issues the second tool we use Currently only internal is Exception analyzes so if there's some kind of exception in the IDE you have the ability to report it to us And it includes the exception stack trace some message You can also provide some additional details if you want In some cases the current file is attached to it if you allow it so we can use this for diagnosis and This exception analyzer helps us to classify and assign and All the exception reports and assign them to the responsible developer This is currently internal only but we are really thinking about opening up a similar tool for plug-in Developers as well on the plug-in repository So this is something that might come in the future There are of course a lot more tools in the plug-in developer toolkit Then I could show in a couple of minutes today We try to increase the documentation for all this as well One thing that is really important is the so-called internal mode in the IDE So that's the last thing I want to show today and What it gives you is this? Internal menu here which has all sorts of debugging and inspection Tools for you to use and one of them is the UI inspector for example, which Allows you to all control click into any UI element and Navigate the whole swing hierarchy of that elements to inspect it for example understand what components are we using to build this UI? So you can use the same ones For your UI or debug your UI for example There's really a huge number of stuff here you can Test various components you can see So-called disposer trees you can see the biggest components the biggest chain of UI components and stuff like this So it really helps you to debug all sorts of problems which you might encounter while writing plugins Okay with that I guess I'm done using my time to showcase some stuff So I'm happy to take a couple of questions if time permits. Yes So any more questions? Yes My question is Here Yeah, so the question is basically how do I know which extensions to use and what they do actually and how to find out more about them Yeah, so that is actually one of the hardest parts for plug-in writer because the platform just offers so many extension points and possibilities Usually it's better to ask I want to build this and that or look in the documentation And then we will also guide you to the correct extension points you want to use for this For example, if you want to build a custom language There's a set of specific extension points you probably want to use and they are listed in the documentation a Number of them have Java doc you can invoke Java doc even in the editor there So you can see some In the XML file when you have to your completion open You can invoke Java doc there as well if you are unsure navigate to the extension point Decoration itself to look for more documentation or information. So but yeah We usually prefer if people Ask what they want to build or look up what they want to build and then we guide them to the correct ones Okay


so many of the issues and problems and struggles and you know these like existential crises and like even envisioning the new earth and how we're gonna build it and you know the timeline it's like okay if you actually just go into nature for like a day and get off of a screen get off of your phone yes and actually allow your body to do its natural process of healing allowing your nervous system to just rest which happens if you just step outside of the city yes you see clearly you know and you you can't help but feel connected you can't help but feel you know activated in your senses and your intuition can't help but hear your inner voice become amplified and I think that goes for all humans you know like all of us there's such powerful healing and so imagine when we were just living like that imagine we're just living like that with no obstruction you know just with the land where we can't help but be in harmony


Vermerge, presenting our many body entropies and entanglement with polynomially many measurements. Thank you so much. Thank you very much. Can you hear me well in the back? Can we be higher? No. Maybe I just speak louder. First I would like to thank the organizers of course for this wonderful opportunity for me to be here because obviously the first time I attend a machine learning conference and I've learned so much. Thank you. It's much easier to learn about this in live in a conference than reading papers, especially with my background. So today I will discuss about measurement protocols for quantum processors. So it can be quantum simulator or quantum computers. And what we like doing is try to accumulate a massive data set from the quantum computer. It's a classical data set. And then we have some tricks to measure quantities that we think are interesting to measure, in particular entanglement. So I think there are opportunities to find connection with machine learning ideas and I look forward to feedbacks about it. First because we use, sorry, a massive data set, as I said, so there's a lot of data to analyze. And also because we can provide from this data physics properties and these physics properties are highly non-trivial. We measure typically entanglement on quite large systems. So maybe in turn these physical properties I could imagine could be used to represent your states in a better way. So I'll start with what I hope is a gentle introduction to techniques to measure entanglement in quantum computers and simulators. I will skip kind of a mathematical aspect behind the protocol. My aim is to show you what is state-of-the-art in terms of experimental recipe, typical numbers for statistical errors and so on, and typical limitations. And then I will move to this new result which we are quite happy about on how to extend this existing toolbox to really measure entanglement and related quantities in very large systems using very few physical assumptions. And I forgot to mention that this work was done in collaboration with a very nice team. I would like to thank in particular to mention Lorenzo Piroli who really helped me and helped us to have faith in this idea that one can eventually measure entanglement in very big systems. Marco and Maxime were super helpful for the numerics on matrix project operators and Ignacio Ciara and Peter Zoller are always useful and they provided incredible help to understand what was the impact of this idea. Don't hesitate to ask questions if something isn't clear. So to define a protocol I need to define what I want to measure. For the purpose of this talk it's sufficient for me to discuss first entanglement entropies and then I will generalize to more complicated things but for a moment you can just consider I have in mind a pure state living in AB that's my quantum computer. I want to see if A is entangled with B in this pure state picture. It is sufficient to calculate entanglement entropy of a reduced density matrix in A and in particular I'm interested in the rainy entropy which is the one which is measurable for us. The second expression, we know entanglement entropies play a fundamental role in quantum information like the number one quantity that you see in quantum information notes that quantify quantum resources for in particular communication. Maybe more important for this conference in quantum stimulation is that entanglement entropy turned to be a very useful other parameter for complex phases. You can think of critical states, the quantum phase transition, you can think of topology, you can think of dynamics. And this was used for a long time in numerical simulation quantum Monte Carlo, Diarmargie to understand a given Hamiltonian and this gave hope that if one day you can measure entanglement entropies in a lab quantum simulation will benefit from that because it's only in a synthetic quantum system that you can think about measuring such a crazy quantity. I also like this last point about quantum advantage. The entanglement entropy is by essence limited in a tensor network architecture. So if you want to develop a quantum technological device and if you can prove that in this device the entanglement entropy is below some threshold you have some claim of quantum advantage with respect to a tensor network. So now let me focus specifically on the rainy entropy. We know it quantifies entanglement. It's the log of trace rho squared. Trace rho squared is called the purity. It's one if and only if the state is pure. So if I measure a purity I measure the entanglement entropy by taking the log. It's exactly the same thing. And you will see that what I would say about the purity can be then generalized. So that's a good starting point for my explanation if you want. Now to measure a purity in an experiment there are basically two families of protocols being used at the moment in experiments. I will mostly focus on randomized measurements which you see here on the left. The advantage of this is that the circuit that you have to do for measuring is the same as in tomography. So you have a single instance of your quantum state.  So this u1, u2, un are single qubit rotations. Here they are taken at random. And then this is followed by a projective measurement giving you a classical bit string which is the data that you will then analyze. So I want to emphasize this is not tomography. This is the data acquisition procedure of tomography but I will do something else than tomography with the data. In particular what has been shown with randomized measurements is that the purity can be mapped to the data with an analytical function which has a very simple form. So there is this kind of bridge between data and entanglement entropies. And it's simply an average. So I have to compute some form of average over my data. The second family are called bail basis measurement. This is an earlier protocol which was proposed earlier. This time you have two copies of your quantum state. So it's more demanding as a circuit. And then you have to couple these two copies and measure in a single basis. And this is particularly used in Riedberg-Adams, an experiment of Micheloukin for instance. But it's difficult to use it in different, in other platforms like the trap tie-ons and the superconducting qubits. Typically don't have that. So I will focus on the randomized measurement part or what comes next. But keep in mind that this other method exists and in particular the statement that I will be able to make later will apply to both ideas. So this is like the cartoon for randomized measurements. It's actually a bit simplified. It's too simplistic for what I want to say. This is now how a current randomized measurement looks like in the lab. This is a picture from a paper we did with IBM where the aim was to measure purity and also other quantities. And it looks like this. So you have two blocks. You have the blocks of data acquisition here. That's the experimental task. And then you have the block of post-processing which happens on a classical computer typically by the theories. So what happens in data acquisition is independent of what you want to measure. It's very important. It's a single experimental recipe. If you have it in the lab, you can do many things. So it starts with a calibration procedure where you apply the unit theories that you wanted to apply. But there is some noise in the experiment and it's very important to be aware of that and accept this fact. And this calibration step aimed at learning this additional noise in the experiment. And one important fact which was discovered recently is that when you start with randomized measurement in the first place, if you have additional noise on top, there is a sort of effective averaging of the noise due to the fact that you are using random unit theories. It's called twirling in quantum information. This noise in the end is summarized by what we call calibration parameters. So there is just some list of numbers that you have to learn when you are ready for the next step which is the measurement. In the second step, I want to perform the actual measurement on the quantum state of interest. And we construct classical shadows. So it's a form of randomized measurement that I will explain. And the experimental step of data acquisition is over. You can store these results and go to a post-processing stage. In the post-processing stage, there are many ways. I will focus on one which will be explained later.  It's really simple. So how does it look, this post-processing? There are a lot of work recently about these classical shadows which was briefly mentioned in the other talk. Classical shadows are a representation of your data which is information complete in the sense that if you have infinitely many measurements, you actually have the quantum state represented. And it's a simple function of the data in the sense that S is a measured bit-string. U is the unit area I applied. This object I know. F is the noise parameter that I measured independently. I can build this object as a tensor product on my classical computer. And the key result about classical shadows, what I need here, is that in expectation value, I know that this object is equal to the density matrix. It does not mean I will do tomography here. I just know that in expectation value, this object is the density matrix. And all the tricks of randomized measurements consist in building statistical estimators of functions of a density matrix based on this relation. So typically I will sum over the shadows and then contract and so on. And I will obtain exact relations between data represented by shadows to my case purity. You can play many tricks, very simple tricks of statistics. I will not spend so much time on this. What is important maybe to finish about this introduction is to say that typically the experiment with randomized measurements are done with order 100,000, 1 million measurements. Sometimes it was several million measurements. This is what you need typically for the kind of plots that I will show. So here's an example of a recent measurement of a purity in a superconducting quantum device. So good news is you see the x-axis. You can measure a purity up to n equal 13. And we are quite happy about this because it's a decent, small, many-body Hilbert space that we have here. And what is also nice to see is that when you are using this robust method, which came from last year, this is a purity of order 109 for this pretty large systems. I feel sometimes it's a bit unfair to call this device noisy quantum device a quantum nisk and all that. These are pretty good, pure states. It's an unbiased estimate. So typically if I would repeat this experiment many times, my estimator would be symmetrically distributed around the exact value. That's a question? Okay, thanks. So robust is this updated method. And we believe that's the true purity. The blue one, the standard one is the one without noise mitigation. It is much slower. And what happens is that while you are measuring, you are putting some noise. So the purity of the state decays, effectively, right? So we are measuring some kind of state affected by the measurement itself. So, oh no, this you cannot. So for instance, if you have a spontaneous emission in a system with a single qubit, the purity will actually increase with time as you will progressively go to the ground state. It's not trivial but how it should behave. That's a good question. Yeah, it's completely independent. That's why I'm here. I want to know. So that's what I propose. What I can say is that the experiment recipe looks simple to us and we were happy that some groups started using it. In particular, Google and IBM. Also, Innsbruck. And so that's some kind of established tools at the moment. So now I can comment on some technical details which will be important for the rest of this talk if it is a final review. So I'll start with bad news. For purity, we know that this protocol requires exponentially many measurements and it is expected because we are probing a very non-trivial quantity here summarizing entanglement, right? What I want to emphasize is that the corresponding exponential scaling has a coefficient A which is of order one. So we are exponential, okay? But it's not tomography. Tomography, the scaling is four to the n rank one, eight to the n for maximum rank. So it's exponentially better than tomography. This is why this measurement is possible for much larger, but what you have with tomography and much better precision actually. Still, you end up with, you see in these plots the error bar starts to increase and I'm not showing 14 obviously. What we like about it is that it's robust. Under very typical assumptions for noise, we know that this is the right purity that we measure and this is a quantitative estimation that the experiment at least now use to verify quantitatively how the device behaves. If the purity is low on Monday, maybe you have to work a bit on Tuesday to improve the device. These sort of things that they tell us. And the framework is so general that you can measure many other things like pureities. And over the years we played a lot, in particular with Pasquale, Calabrese to measure over entropies and entanglement quantifiers. So this was fun. And if you want more about what can you measure? What is the protocol? What is the error bar? We just put a review last year together with a Caltech group which summarizes what we've done there. So now I come to the second part of this talk about a new upgrade to this toolbox which is how to measure the entropies and purities with polynomially many measurements instead of exponential. And the starting point for us is that we spent so much time to develop this toolbox that we would like someone to keep using it if possible. So if I have in mind a very large, very large system, I know that the only thing I will be able to do with existing toolbox is that I can extract the purity of blocks. I will have here this block I1, I2, I3, I4. This is what I can do. Measure the purity there. I can also imagine that I can measure the purity in pairs of blocks like I2, I3. I know I can measure this very well. The question we were asking is can we somehow use this measurement of the local purities to find the purity of a global system? This is called in quantum information quantum marginal problem. That's been studied a lot for von Neumann entropy. For purity it was open actually. And the answer is yes, there is a formula. And this is the result I will present. I start with the end actually. The result is there is a formula. And we think it's useful because now we have with existing toolbox, which is already in the lab, we have a way to build an entropy meter. We can measure extensive entropies and all these sort of nice things. Basically today. Okay. So to show the formula, I will use tensor network notations because I like them. I found they are intuitive to describe entanglement. It's a toy model to find the formula and then I will show that this formula is actually general for typical states with short range entanglement. I will put the physics assumption a bit later. But let's just see how it goes. So tensor network, we have seen many interesting talks just consisting in representing matrices and tensor graphically. So a single cubic density matrix is a box with two legs. Now I want to make an entanglement quantum state. So the first rule I need to know is gate operation, unitary operation. We know that it is u rho u dagger. So graphically it's like that. It's really obvious for most of you. And now I have my toy model. I start with the minimal size I need for the formula is 12 qubits. I start initially with a mixed state because I want to make general claims about mixed states. And I apply two qubit gates. It's a depth two quantum circuit because you have two layers. And you see that with such a circuit I generate a little bit of entanglement but not too much. And the question I'm asking is is there a close relation between the purity of a big block of this system? I will consider the first six qubits as a function of a purity of smaller blocks. If I'm not able to find a formula there, there is no formula. It's really the simplest I can propose for a circuit. So now the purity looks like this. It is the reduced density matrix on the first six qubits. So I have to trace out the last six qubits. So I contract when I put a red dot it means there is a kind of a link contracting this thing. Pink also here for the second copy. I have to reduce density matrix over there. And then purity is trace whole square. On the A part I have to multiply the two matrices together. So that's why it's the same color here. I contract like that. And I contract the whole thing afterwards. Trace whole square. So do you have an idea how I can simplify this to get a simple expression? So here for instance, you see that I multiply a gate with its Hermitian conjugate. So I have u times u dagger, I know its identity. So this is the rule I can use to simplify my tensor network. And what I obtain is the following. The purity is a product of numbers. So here I have rho square, rho square and so on. So I have a product of numbers. And at the edge I have this strange number which is due to the fact that the qubit number six is entangled with qubit number seven. So the reduced density matrix on six qubits is mixed because of this entangling link. So this has to be there. And people from think statistical physics or many body physics are not surprised, but the purity has an extensive contribution coming from the fact that I started from an extensive state in terms of entropy. And it has an edge contribution because I created entanglement at a given edge. So we were happy to see this because we hope survives. There might be a way to simplify this further to express these numbers in terms of local purity. Quality that I can measure. And this I will skip. I will ask you to believe me. If you compute these tensor diagrams for subsystems, one, two, three, four, five, six, you will see the same kind of terms appearing. And in the end, you will see that you can combine these subsystems in this form, which I like very much. The purity of A is the purity of two overlapping blocks. So I have A1, A2, and then A2, A3. I'm able to make this product. And then since I counted A2 twice, I divide by trace for A2. So there is a simple fraction to estimate global pureties from local pureties. Solving, if you want, the marginal problem there. And this extends trivially to many blocks, any system size. You multiply the pureties with the overlapping blocks and you divide by the purity of the blocks. This gives you a formula which is exact for the toy model. Now, I'm done with the toy model. I want to make better claims, claims which are typical for quantum states. If you have questions, don't hesitate. Yeah. I think it is used in this follow-up work on one of the Gibbs states, but I would be interested in hearing your opinion. For the toy model, you thought I didn't use any theorem, right? Well, it's just a name, but it's one state, right? Ah, yes. It's because I have two layers, yeah. If I would have any number of layers, I could... It holds, yes. It holds, but I need larger block size. Here, the block size is involving two qubits. I would have depth four. I would need four qubits in the block. But yeah, I think I agree with you. It's a toy model which is instructive by itself. Still, we want it to be a bit more complete, and we took now to extend this proof, we took a matrix product density operators, so tensor network for mixed states. And then what we showed is that the same formula holds, and we know that MPDO is a good representation of Gibbs states in 1D, the same formula holds up to corrections which are exponentially small in a typical length of the system, which is the correlation length, obviously. Meaning, if you go to the lab, measure this, you will be exponentially close to the right purity, and you can actually check that by increasing the size k, k the size of this block, you can try many ks, and then at some point you will see it's guaranteed that you will converge to the right value, exponential convergence. So that could use the toy model provided the right formula, and there was a recent work very nice by a team from Spain showing that any Gibbs state, this property. And now I want to conclude on this part and explain the practical consequences of this. And if you take this formula here, we know the statistical errors in randomized measurement for estimating each of these terms. So the only thing we have to do now which is left is do the error propagation that we make when we multiply these numbers together. And our final result is the following that if you want to estimate the purity up to a given relative error, relative error is important here because we are talking about potentially exponentially small numbers. The error that you make can be bounded using a polynomial number of measurements. This is for the experiment proven by this term. This is a real cube for a system size. So summarizing the formula uses randomized measurements to measure the purity in a large system what you can do in a lab. And this concludes this part on the purity. So now I think I have still a bit of time to go on. 10 minutes, wonderful. I will perhaps not talk too much about this numerical verification of the scaling. I can explain for the experimenter that we can actually predict how many measurements you would need to measure a certain block size, a certain total system. This is mostly technical. I would like to use the last minutes to discuss about entanglement detection of mixed states to present how these ideas could also be applied in this context. So now I have I want to discuss mixed state entanglement. So remember the beginning of this talk I had A and B in a pure state. Now I want to go beyond and treat noisy systems or subsystems. I have A, B in an environment. I want to check if A is entangled with B. A long standing topic of quantum information theory of course. And in our case what we found useful is to study entanglement detection in the context of the positive partial transpose condition, PPT from Peres and Orodechi. So we are not measuring the purity anymore. We are measuring the moments of the partial transpose density matrix. It's a linear operation you can do in the density matrix. And I forgot to put the power N here. So I take partial transpose and then moments of that. And something that we found a long time ago now is that these numbers that you can measure with randomized measurements can be used to detect entanglement. So if the third moment is smaller than the square of the second moment it implies the state is entangled. It's a condition which is a weak current PPT. And this is an experimental demonstration of this entanglement detection in a trap term system. Actually I like to tell this story because it was interesting that the entanglement detection was discovered experimentally. So we were looking at these plots not at this y-axis but we are looking at P2P3 and then we felt that P3 was kind of small when the entanglement was expected to be there. So it's really looking at the experimental data which helped us to find some interesting theory. So that's why that's what I like about measuring entanglement is the experimenter stimulates your theory and when you do a little bit of math it's very simple, you find this condition. So this is what happens.  You can also show using PT moments to work by Matteo Voto within the audience but you can detect different types of entanglement for instance if it is generated by a Clifford circuit or not it's also there. So obviously when we found this this new upgrade to a toolbox we thought it would be nice to see if we can detect entanglement with polynomially many measurements using the same trick as for a PUD. So what we did was what we derived we proposed to measure these PT moments in a rescaled way so we take the PT moment PN and we divide it by these numbers which are also measurable this is just a trick to focus for statistical error on absolute errors I know these numbers is of order one so I just need to study absolute errors and using the same tricks as before decomposing in blocks you can show that this number PN tilde can be measured with polynomially many measurements and now the only thing I need to check to conclude is that I need to check that for typical states in experiments the PN-PPT condition is violated this is actually our problem to know if a state is the entanglement of a given state simulated by a given criterion there we did the makes so we took a 1D Gibbs states simulated by tensor networks we went up to fairly large system sizes and we studied the detection of P3-PPT and P5-PPT the next one as a function of L and beta and we found that actually the number is not so high there is a big region actually where the protocol will detect entanglement but we can make this claim and what is interesting is that you see this kind of slope if you analyze the slope what it means in terms of the purity you will find that you will stop detecting entanglement when the purity if the entanglement entropy becomes more than other one if the entanglement entropy becomes extensive P3-PPT will fail and it's not so much of a surprise that if the state is permanent in the sense that entanglement entropy is extensive or looks extensive for the system size it fails but interestingly if you move to the next next condition the beta one P5 the slope vanishes and you get something which looks like more vertical line and in this new region I mean it was a big surprise but maybe it was not for you in this region I'm able to detect entanglement even though the entanglement entropy is large or the end and the purity exponentially small so it's actually surprising to me and this entanglement detection can be done with polynomially many resources so with this I conclude I think I presented a funny result on how to measure entanglement entropies in state-of-the-art experiments I'm very happy to discuss about maybe if it can be used for machine learning applications I would love that I think I can say it can be used for typical quantum simulation tasks like classifying quantum phases and so on we are working on now the tomography so can we use approximate factorization conditions so this expression in terms of blocks for learning about a quantum state and we also working on 2D we believe actually there is a formula for 2D I can write it down but I'm not able to prove apart from a toy model that this formula will give me the exact purity after some block size I'm not able to prove so I would be very happy to collaborate on trying this numerically thank you very much more questions thank you very much I have two things so I understand that this moment of the PPT is much easy to calculate at the whole matrix and do PPT because you only have to calculate the diagonal and you have all the moment there so you know that there is PP3 PP5 but there is a hierarchy there proven that it should be like that so it's always a hierarchy that it's proven yeah it was it was a result by we proved that PN, PPT is strictly weaker than PN plus 1 PPT and then if you go to P2 to the power N it's exactly PPT I think that I wanted to ask you is that use but it's weaker than PPT it's weaker yeah but it's very nice I think that I wanted to ask you let me remember you were saying that also this purity measure it's better than for human entropy measure in the sense of if you measure rainy entropy this is better or more accurate I wouldn't know how to measure von Neumann entropy from randomized measurements but in this PPT for instance you have to do partitions with respect to everything because this is a bipartite thing so you have to calculate a lot of things a good thing that I can do is partitioning after I measured I have full data and I can complete that thank you very much for the talk I have a question I'm not sure how silly it is did you ever think about combining these results for this particular problem of entanglement detection with kind of guessing a good entanglement witness I have not seen any mention of entanglement witnessing and you're talking about entanglement detection so do you have an opinion? so what we would like to do is to avoid using entanglement witnesses because it's not clear what is the best entanglement witness that you need for a given quantum state so what we would like to have is a single quantity you have to measure and then you hope that you can make a conclusion about it I'm thinking more in this machine learning thing because if you can guess if you can learn the right entanglement witness then this would be the most efficient way to confirm any more questions? I'm actually super surprised like polynomial many measurements that this is ever possible so could it be so there was one point where I was wondering a bit practically so in the end when you want to get this exponential convergence you need smaller and smaller blocks so in the end you deal with longer and longer products of purities that you have to compute now could it be that actually I could imagine that errors can actually proliferate rather strongly in the end so that you might practically be back to an exponential problem in an actual experiment actually the error propagation is linear and I will show you this with an example it's counter infinity you take this formula here take the log on both sides yeah instead of multiplying this thing you will add the log the log of quantities which will be of order 1 over 2 to the k where k is a block size so I can estimate this with a fixed additive error which will not depend on the total system because it's just a property local property on k right given block the effort does not scale with the total system the only remaining thing I need to do is to do the error propagation of n terms you see that if these n terms are measured independently I will pay your price n squared because of the covariance effect you see what I mean yes but maybe we will discuss this later but it's super interesting okay perfect let's thank the speaker again


from our studios in the heart of Silicon Valley, Palo Alto, California. This is a CUBE Conversation. Hi, welcome to the CUBE Studio for another CUBE Conversation where we go in-depth with thought leaders creating new business outcomes with technology. I'm your host, Peter Burris. One of the biggest challenges that enterprises face as they try to get more value out of their data is how to establish as the practices, and the tooling necessary to both discover data, liberate data, and communicate data, and its value to the organization. To have that conversation, we've got a great guest, Aaron Kalb, who's a co-founder and chief data officer of Elation. Aaron, welcome to the conversation. Peter, thank you for having me. So give us a quick update. What's going on with Elation? I think Elation are very, very exciting. So from the very beginning, we had one main goal, to create technology that empowers people to be more curious, make better choices, to help them find relevant data, understand it, trust it, use it, and reuse it at the organization. And we're just very happy to keep getting more and more customers and make a broader and broader impact through them. Now, showing how unbelievably attentive I am, I noticed that you are now chief data officer, so your title's changed. What does that entail? What's going on? Yeah, it's a pretty recent change in the moment we're very excited about. I think from the very beginning, we've been preaching a data-driven organization, but we haven't been able to practice what we've preached as much since we've been comparatively so much smaller than our customers. What's exciting now is that we've collected enough data and a wide enough network of customers. There's an opportunity to really be more data-driven internally and also to kind of have all of these chief data officers and other data people, data nerds like me in our network, to synthesize the learnings across all of them about how to build a data culture and kind of take that in and share it back out so we can all go through this journey together. So I'm going to tell you, I have been a chief data officer skeptic, but I'll explain why, but if I could just summarize what you just said, there's going to be an operational part of your job internally, but also an advocacy part of your job externally to help catalyze some of your conversations. But let me tell you why I've been something of a skeptic and you tell me how things are going to change. You know, what vector we're on, so to speak. CDO as a job often was something that people went for because of digital change or a new media change or new types of marketing. It's been a job that's been all over the map. It's had different definitions, different roles, different sets of responsibilities. When I think of any chief, I say you give the chief title to someone who's going to generate superior returns on the assets entrusted to them. So what that means to me is that the chief data officer should be someone who's going to create competitive or superior returns on the data assets that have been entrusted to them. Is that kind of how you see it too? That's exactly right. And this is a term and a title that we're borrowing from our customers who've been very successful with it. And the goal is exactly that. First of all, to protect the data and ensure that it's being used appropriately and as well-governed, that's the defense. But then going on offense and ensuring that all that data is actually driving business value and business impact, that's the fundamental role of the position. The only thing I would maybe amend what you said is, as chief, my management style is really, it's just about empowering everybody in the organization within the division and across the company to really drive those impacts. Well, it's a leadership job. Exactly. Yeah, so chief, you're supposed to use the resources at your disposal to generate returns out of those resources. And it's obviously, it's a leadership job, but let's walk through that a little bit. Not so much focusing on how Elation's CDO is going to operate, but let's talk about your customers. Because one of the observations I'd make is that Elation now has a large enough footprint and presence in the industry where you now have significant numbers of customers and I'm sure you're seeing the variety of insights and practices that customers are using to get value out of data. So I got to believe that partly this is discovering those new practices, those new procedures, turning that into a pedagogy, something that folks can actually use to improve the way they do things and then helping Elation build or participate in the tool chains necessary to actually establish those disciplines. How far off am I?  So as you said, we have over 100 production customers now well over that and they all are different in different ways, depending on their geography and their vertical, but there are many commonalities we see and our goal is to basically learn from all of them and synthesize those learnings and then push them back out to our network and also apply them internally and sometimes applying that means making changes to our software and sometimes it means just sharing best practices and thought leadership within our network and beyond. So to give a very particular example, one thing that we thought about a little bit but we really learned from our customers was the power that kind of competition and kind of game theory can play in helping people be successful in their data initiatives. Oh, gamification. Gamification, exactly. Yeah, so we saw for example, some of our customers did what they called data duels or metadata duels where different departments would compete to document their data more thoroughly for accurate outcomes and they would get cakes that had metadata on them. Just got to find them one time we'd seen the word metadata printed on a cake probably in the history of baking. And meanwhile a different customer in a different region, different vertical came out with a docu-jam which is taking the idea of a hackathon and that's a little bit less competitive and a little more collaborative. People kind of shoulder to shoulder doing data documentation. So a very similar thing of using kind of human psychology to better drive forward data projects. We saw it in two different places and we thought, okay, how can we abstract out a principle from this? And we're looking both at integrating some of these principles directly into our product and also sharing other ways the different customers could benefit from the basic concept. All right, so where are we? You've got 100 plus customers now you're an acknowledged leader in the catalog world. We generally believe the catalogs are going to be an important feature of virtually every successful data driven digital business because it's going to be one of the places where you actually store data and other assets derived from that data models and whatnot. So where are we as this new CDO? Where are we in the adoption of what you today would regard as the best practices? How is that happening in the industry? We have a skills gap. Are we starting to see that be closed a bit as more companies start to gain the experience they need to be successful in this? Yeah, you know, it's funny there's sort of a learning curve with any new technology or any principle and we see customers and prospects all along that curve and we're still kind of mapping out the shape just to give a sense of different extremes. You know, a few years ago what everybody was talking about people would say I'm a data person and there's people in my company who just don't get it who see the data and instead of being appropriately skeptical and saying I'm not sure how this was sourced they'll just say data schmada here's how I used to do it at my old job and we're just going to do it that way because it's how we've always done it and there was that sort of defensiveness or resistance to data. Now we're seeing some customers who have jumped way past that I was talking to a data scientist at one of our customers who said basically they have a recommendation engine in their enterprise and people who years ago might have been completely ignoring it are now just blindly doing whatever it said and she was saying- It has its own set of implications. It does and she said look as a data scientist I know how the sausage is made for this engine I wouldn't want to eat that sausage it worries me that people are just putting it on their mouths so to speak in this elaborate metaphor and so I think the pendulum can swing back and forth and what we're trying to work on with our customers is how do you teach individuals to engage in that data culture to be skeptical in the right ways not defensive but to ask where did this come from? How is it computed? The questions that can actually help you interpret it correctly and put it to use and I'd go to the other extreme of basically deferring to the algorithm entirely and taking out all human judgment. Well and I think that's the important thing is that any system is a combination of machines doing things and human beings doing things we'll take out those animal driven systems from many years ago machines doing things and people doing things and when you use machines to do things the tech industry has been really good at diffusing knowledge very, very quickly so it's over time it's difficult to have your machinery be the source of differentiation so over time humans will consistently be the source of differentiation in your business and how they render judgment and what they determine the priorities and the commitments that they make and sustaining keeping those commitments so catalog to me seems to be an especially important feature of any digital transformation or data driven process going forward because it touches people and because people use it and we'll also touch other systems and other elements but people remain a central to catalog design and the notion of catalog experience. Are you seeing that as well and is that helping you to stay close to these CDOs and really driving the people oriented process or knowledge about people oriented processes here? Absolutely, throughout our time at Elation over the last seven years we've always seen people as extremely central and I think one of our key differentiators philosophically was where a lot of data management was sort of thinking about what's good for the computer oh, we can save a couple bits by using some lookup code instead of something that's comprehensible we said well what is the human consumer of data what do they need and a lot of our technology has actually been again bringing the human back into the fold of what's been to kind of computer and machine dominated and then the other thing you mentioned that's really critical is we're in an age where automation is very exciting and there are a lot of wins there one thing that I hear from CDO after CDO that I talked to is a three phase process for bringing data into the organization phase one is descriptive analytics what happened last quarter then there's predictive analytics what's gonna happen next quarter and the final goal is prescriptive analytics where your computer tells you what to do yeah and where the computer can act you know before any humans even looked at it or been in the loop and I think it's an interesting aspiration especially for certain things that are really, really urgent but these are all garbage in, garbage out processes and the good news is that if you're looking at a place where the human's in the loop they can say you know what that doesn't look right in that graph and maybe it's a problem with the ETL job or with the source data and they can step in if something bad's happened so I think as you progress down this evolution there are great rewards but also greater risks and our hope is that with a catalog you can make sure that whatever process you're feeding instead of garbage in, garbage out it's the best data that's up to date that's trustworthy, that's contextualized for the business process okay one last question you're now in a new role operational, external what's the first two things that you want to accomplish in this new role especially as it pertains to working with your customers what are you really focused on right now yeah so one of our core values at Elation is that we listen as though we could be wrong because we know that's why we're a data company is you know how do we learn from numeric and other kinds of signals that come in to always be growing and improving and so step one unambiguously is to listen as much as I can to the incredibly smart, innovative, thoughtful customers that we have and try to synthesize the best learnings across all of them I think the next step is to then do that synthesis and say oh what do we see that's happening in retail that could pertain to finance or vice versa and figure out kind of what is that curve and how can we kind of either push everybody up the steep parts of the curve so we can all be more data driven and more curious and more rational together or even have you know the software kind of lower that curve and make it easier to great point so as faster up or use the tool to flatten the curve exactly, it's a very wise man and they had mentioned me before the interview well Aaron this has been a great conversation once again I want to thank you for joining us on another CUBE conversation my name is Peter Burris, see you next time thank you Peter