Alle Broadcasts
Fabric Frenzy #12: AI in Microsoft Fabric
59 views
Unleash the boundless potential of Microsoft Fabric: Your monthly source for cutting-edge news and limitless opportunities.
There is a wealth of new opportunities for data analysis and insight in Microsoft Fabric, and new features are constantly being added making it quite a challenge to stay updated and stay organized.
We want you to be fully updated with the coolest options in Microsoft Fabric. That's why once a month we give you an update on the new features and tips and tricks on how to take full advantage of Microsoft Fabric.
Register for the upcoming sessions. You are also very welcome to send us suggestions for features and functions that we should take a closer look at and take up in the next Fabric Frenzy session.
Agenda
Overview of the most important new features in Microsoft Fabric
Tips and tricks to make better use of new as well as old features
Concrete examples of cool business applications
View transcript
Hey everyone and welcome to the November version of Fabric Frenzy. This time a very special episode for me because I have a dear guest here in the studio, which is my great colleague Kevin. So Kevin, tell me a little bit about yourself. Tell us a little bit about yourself. Great to be here Mathias. I work as the Principal Solution Architect for Felemind Sweden and the Data and AI team. And yeah, really good to be here today to talk a bit about our subject for the day. Good to have you here. And if you didn't catch it yet out there, the subject today is AI in Microsoft Fabric. So everything around AI, why we should care about AI, what we can use it for, what solutions we have in Fabric that helps us working with AI, and just an action packed schedule for the next 30 minutes around everything in the intersection between AI and Fabric. Exactly. Yeah, so the last time we did Fabric Frenzy was in, was a remote episode in Stockholm for the Fabric conference. Fabric conference, yeah. You and I were there. Great event, yeah. It was a nice event. It was a nice event indeed. But a lot has happened since. There were some releases also on the AI front since then. And we are still also awaiting if there are big releases next week where there will be Microsoft Ignite. Exactly. Personally, I'm also sitting there waiting for those news. Yes. But the plan for today is to talk about AI because we had a chat about AI, of course, before going live here. AI is not something we can get around. We don't even have to make the argument of why AI. Exactly. AI is everywhere. Everybody wants to applicate AI in their business. But we need to take a next step there. Yeah. I remember trying out ChatGPT. So I used LLM ever since before ChatGPT. It was a little bit clunky when you had to program it yourself. But with that UI, it was an eye-opener. And I remember back then very explicitly thinking about, I've always felt like I have a good sense of how the technology would be moving and what would be happening. But for once, I was hit with a feeling of, I have no idea the potential, where this will go, where this will take us. That was two years ago. Yep. And now we're here. And I think things are starting to crystallize a little bit. Things are starting to become a little bit clearer. Definitely. And we are here today and have a much better image of what we can actually do and how the future may look like. Yeah. I think it's really important though because everybody's been using AI and generative AI, ChatGPT, and getting so much from it. But now people are trying to use it in business scenario as well and actually try and find the business value from AI. Yeah. We're moving away from the generating pictures of puppies and dragons and you have it. Right. And now we're actually using it to improve our businesses, to execute on our business strategy and to meet actual targets and not just play around. Exactly. Exactly. Yeah. That's definitely also been my impression. There's been a clear hype. That hype is dying down a little bit. But you people out there, us included, are also starting to explore the more practical use cases, the less of the moonshots and more of the how can we actually make incremental improvements short term. So that to me has been quite interesting. We have a program today where we're talking a little bit about what we can already do today, what you can do in Fabric from the get-go, from the moment you start your fabric capacity. We're also talking a little bit about where you could get with a little bit of work, what you could achieve if you put some investment and some time into it. Yep. And then finally, we'll do a little bit of a sneak peek, a glimpse into what the future could look like. So I have a technical demo. It's overly complex. It's not very functional for a real world scenario. But for myself and for many, it's been an eye-opener to where we are going with AI. So should we get started? Let's get started. We've got a lot to get through. We have different subjects. Yes. So we have a lot of tools in Fabric already regarding AI. There are, of course, all the co-pilots. Co-pilots. Yeah. I can't believe we managed to get five minutes into an AI session and not say co-pilot. But yeah, that's pretty cool. But there are all the co-pilots. One co-pilot for each experience in Fabric. Yeah. We have it for data science, data engineering, data warehousing, Power BI, real-time intelligence, data factory, and probably also for data activator. But I don't remember. It is basically in every corner of Fabric. It is indeed. And that's really going to accelerate people's development work as well. It's a really good area there. Yeah, because that is what co-pilots, the vision behind co-pilot, the idea of co-pilot. It is really to be that co-pilot, to sit there and help us do our work better. But we as people can still be the quality checkers. Yeah, exactly. It really gives us a head start with everything. Like you said, we have to check things still and we have to validate and make sure everything's right that we get from co-pilot. But it's a really good start to a lot of these areas. Exactly. I mean, we are talking about Fabric today. But from a personal point of view, I've really started to be able to utilize co-pilot itself, the co-pilot in Teams, who can then check through my emails and Teams messages and files on my SharePoint, even my calendar events, and give me insights faster than I could have got myself. So quick questions like, do I have any commitments with clients or with colleagues that I forgot to follow up on? Suddenly, that is actually questions I can ask my co -pilot and it can help me be a better worker. Exactly. We still have to make sure we ask the right questions. That is a skill in itself because you're basically also going to ask questions with answers that doesn't really help you. Exactly. But back to Fabric. So there are five different co-pilots, but there's also more than just co-pilot here, Fabric. We have a whole range of tools that can help us build AI solutions, that can help us use AI on our data. And finally, we also have some possibilities to use advanced AI agents to serve data and look into a whole new way of consuming data. Exactly. We can use them to really analyze the data in a much deeper way than we could before. Yeah, for sure. So before we get started digging into the actual tools, if anyone is out there wondering, well, if I want to get started with AI, and maybe Fabric is already within reach, maybe you already have a Fabric capacity or you're very close to creating one, what do you really need to focus on now if you want to prepare for AI, if you want to do something with AI? What's your opinion? Yeah, well, I think, like we said, asking the right questions is really important. But the important thing is to have a unified data estate, of course. We need to make sure we have the right data to give us the right answers. Right. And if we don't have that, then we're not going to be able to get the results that we need from the AI solutions. But what if I have the right data, but in 100 different places? Can I just plug in my AI to all of those places and everything is happy? You know, you possibly could, but your AI is going to have a really difficult time understanding all of these different silos of data. And so it's really bringing everything together into one platform. And that's what we get, of course, with Fabric. We get the one platform, the one compute motor, the one storage to do all that. Similarly to if I threw a colleague at a, gave a colleague a job of analyzing some data, but here it is in 100 different systems, they would scream and run away. Exactly. And basically the AI is doing kind of the same thing. It likes things to be structured and organized and neat and prepared. Exactly. Exactly. Your colleague could probably pull everything into Power BI and make relations and join everything together, but it's going to take them six months to do it. Exactly. And probably a human colleague would be better at that common sense reasoning about the data. So perhaps even this structure is even more so important when the AI has to consume it. It is. But more on that. Yeah. So we want to unify, first of all, we want to unify the data. And then we can start transforming this data with AI, making it enhance and finally, well, better insights, but also actual AI solutions on top of this. Cool. But let's look into some of the areas. I can start by showing some of the Copilot in Fabric. That's always interesting. Can we use this Copilot to work faster? And I think one of the most interesting applications of Copilot is that I can now create a whole Power BI report with, I'm always going to say with just one click, but it's not really one click. It's with one sentence. Yes. Because AI really is changing the way we work with our stuff. We're not clicking anymore. It is. We're not browsing. We're writing. We're converting. We're converting. We're converting with our programs. Yeah. So if we check my screen, I have a Power BI report here. It's, yeah. If we check my screen in a little bit. There you go. Great. Brilliant. Power BI, as we know it. Already prepared this so we could make this demo lightning fast. It's already connected to a dataset living inside Fabric. So I just went up here to the connect to the one-lay data explorer. I clicked on my semantic model. I connected to it and that's it. And then I opened up Copilot and I can now ask it a question. So this question can actually also be a command. I can tell it, hey, Copilot, please create a port to analyze sales by stock item attributes. Nice. Let's see what we got. That was good. It's always good to be polite as well. So you get a quicker response from Copilot. I mean, I've, in the early days of LLM, being polite actually gave better results. I don't know if it's still the case. So mostly out of habit and mostly also to make sure that I've been nice to the future AI overlords that may or may not take over the world. Exactly. No, but it's interesting because it does show you how it feels like an actual interface, a conversation. Yeah, it really does. It feels more natural to treat it like a person, even though we all know it's not. So it says it can create a port to analyze sales and it's recommending some things. I'm just going to tell it. It all looks good. Please go ahead. Please again. And it's starting working on it. See, the funny thing is that we tested out this demo before going live with the exact same question. And it was a different response with three options I have to mix between. So there you have it. That was a report in a few minutes. Yep. It doesn't take a very data savvy person to realize that this report is not excellent as a storytelling device or for the analytical purpose. But within a few minutes, we have our first draft. We can now start tweaking it. We have a good foundation for also the aesthetics of the report and a pretty neat setup. So as a way of getting over that fear of the blank paper, I think it's really, really nice. Exactly. Because again, it gives us a head start. As long as we've got the data there to build on, it's going to be able to find some nice analysis for us and give us a nice starting point for our report building. Exactly. Exactly. And similar to this workflow, we also have Copilot in Data Factory. I can show this. So in Data Factory here, there is a similar Copilot. Of course, it needs to load. So this was already set up. But what I can do here is again, click Copilot. And now it is helpful and also suggesting what I could have it do. So I can have it help with summarizing the pipeline I'm looking at. Maybe I don't exactly understand what's going on. And in this case, that would make a lot of sense because this is some smelly code. Yeah. Copy I6X. Not so explanatory. No. So let's see how it summarizes this. So generating, generating, generating. There you go. So it's saying here, okay, it's seven copy activities, each copying parquet data from an Azure blob storage to different lake house tables. Well, that's pretty clear. And definition. So this copy is fax sales. This copy is dimension city and so on and so on. It actually understood what's going on. So now we can understand where the data came from in the previous Power BI report. Okay. So that's great. Okay, great. Okay. Let's pull in some data from Azure SQL. Two. See how it reacts. Yeah. Will it help me? Oh. Oh my God. Did you see? It added something. A copy SQL activity. Yeah. But it needs more information. It's being professional enough to ask me to give requirements. So first I need to define where should I take this data from? Well, I can choose here from my list from this one. And I need to land it in Lakehouse called Lakehouse. And that's great that it stopped and actually asked you to validate what you asked. You didn't give me enough information to finish this. And still, I didn't give it a table name. So it also wants that. So we'll pull the table name sales order header. It's actually sales.salesorderheader and save it as sales order header. And with that, hopefully, it should be able to finish the task. But this is a simple scenario. I'm asking it to copy one table. In my experience, if I challenged it and asked it about making a metadata -driven setup to copy all the tables from one database, it would start falling short. Yeah. But it's looking right. The code is there. I could run this. And it would actually work. So that's pretty neat, isn't it? It's nice as well. There's been some advancements there as well with pulling in pictures of pipelines and actually getting that to create a pipeline for you based on your whiteboard drawings as well. Exactly. Which is great. And it's implementing the changes. Personally, there's one thing I would like it to do even better would also to give me kind of a diff view. What was before, what was after. That would be nice. Do you accept the changes or do you not? Because it always worries me when it's changing things and I don't know the full extent of what it's changed. Again, validating things that have been done is important. So even though I think that all these tools are quite nice, I've also experienced like the warehousing copilot. It can fix your query. It can help you summarize the query. But there are weird interactions where even if you just ask it to summarize it and explain it, it will actually go and fix the most apparent errors like missing commas and stuff. And as a user, if you don't know that's happening, then that's potentially problematic. Yes. So that was copilot, which can help us work faster and hopefully also work better because sometimes we cannot know all the things we're working with. Maybe it can write a little bit better SQL code than us or the like. Yeah, I spoke to just an interesting thing. I spoke to a very senior SQL developer just yesterday who's many, many years been working with it. And he had a query which wasn't giving him the right result. He couldn't find what it was. He put it in copilot and copilot corrected that for him. Yeah. And so even senior people that maybe think, okay, actually there is an application for them as well. Absolutely. And honestly, probably it's enhancing them even more than it would be a junior. You shouldn't be scared. The newcomer in the field may not be able to spot when something is wrong or when it's hallucinating or doing something. Yeah, exactly. But an experienced person, yeah, it can really, really, really be helpful. But you also told me when we had this chat that we also actually have a bunch of possibilities to enhance our data with AI inside Fabric. Yeah, we do. It's not just using it for the copilot and enhancing our development. But we can actually apply those models directly to our data and we'll have a look at that now. Right. And so there's some using the AI services in Fabric where we can actually just bring in existing AI services and use them directly in our code. And this isn't an F64 environment or anything. This is a standard environment. So it doesn't need those licenses either. So most of the AI features at Fabric are currently capped. You need a certain size of capacity before you can get access to this feature. But what you're saying here is that we can still connect to all the AI features out there in the world, outside of Fabric. And that doesn't force us to use an F64. Exactly. Oh, that's quite cool. Exactly. So what are you connecting to here specifically? So this is Synapse ML that we're using here. And what we're going to do, we'll just run this first cell. So we import the Synapse ML and a little bit of Spark SQL. Of course, I get an error as soon as we start this. Let's hope that gets started again now. I mean, as long as you have the default core, it should be a default pool. It should be not taking so long. Let's get going. There we go. Nice. So it's the Synapse ML library. Synapse ML library, which allows us to do a bit of what we're going to do now is a bit of text analysis. And whilst that's running there, I can talk through the scenario here. So what I've got is a lake house that we see here, which has a number of different dimensions and attributes here. And quite a common requirement is language translations for certain things. And usually we would like to pull those translations from a source system. But it's not always that customers have the source system support for languages. So we can actually use this Synapse ML for actually creating our own translations. So what we're doing here, we're pulling in the claim type and we're going to translate the claim type description into Swedish. Oh, wow. We're going to create a new column called Swedish Translation. And we're going to display the results of that so we can have a look. Nice. So let's see how quickly this works. And again, this is just a few lines of code pulling in from an existing model. Yeah. So it's really nice and easy to use. So it's actually translating this in runtime to Swedish. Exactly. Would that also mean, let's say, now I'm just dreaming here. Let's say I had a system which pulled customer complaints or something from multiple countries. So you could have some in German, some in Danish, some in Swedish. Could I potentially use this piece of code to also just unify this and change it all to English for further analysis? Exactly. Exactly. So we can pull all that in. We can translate it to English. But it doesn't stop there either. We can actually, on top of that, that's why we're looking at claims here. We get the translation as shown here. And we would get the same if we'd got some information from the customer, some feedback. But what we could also do with that feedback is we could actually do a sentiment analysis on that. Nice. Yeah. So we could look at, okay, we could take a before and after as well. So we've got in the claims with a comment from the customer. Is the customer now happier after we've solved their claim? And we can check, okay, how happy are our customers here with doing that sentiment analysis? Yeah. Yeah. As we saw, we got the nice translations from English to Swedish here. And there's quite a few different text analysis we can do on it. We've got another one here looking at kind of a key phrase extraction. It's very simple doing this on the description. But the feedback would be even better to do this kind of analysis on. So can I use this to categorize any way I want? I would say, look at this text and put it in category A, B or C and it will just use it. Exactly. So it's going to break down your text into a certain amount of categories, key phrases. And so then we can pull that together. So that's what I've done here. We've pulled that out. We've then got, looked at the output of that. We've prepared that. So we've got one, which is the brand from this key phrase and then one, which is the type here showing up. So we get our brands and now we've broken this up and we could continue with this. We could make a dimension out of this as well. We could take the distinct values and create a new dimension from a text input as well. That makes a lot of sense. So we've had this in the industry. We had this discussion. Should we call this silver layer? Should we call it silver? Should we call it clean? Should we call it enriched? And enriched for many people haven't quite made sense because we're just cleaning the data. How do we actually enrich it? This is how we enrich it. This is where we can actually make the data better by just running some AI over it. Yeah, exactly. And normally we wouldn't even want to take in this kind of text into a data warehouse or a data platform. It's too complicated and you can't compare it either unless you do some kind of sentiment analysis on it. But now we could actually do it. And now we can do that. Yeah. That's great. So we also promised. So this is something that takes a little bit of work, writing some code, but we can quite easily utilize this. Yeah. So we also promised a little bit of a sneak peek into the future. And I've brought the last two demos, which shows us what we can do with serving data in a whole new way. Okay. So before we start, I want to give credit where credit is due. We're using a demo created by a Microsoft employee, Henry Schulte from Microsoft Denmark. It's an excellent demo. Although, and I'm sure he will admit, it's overly technical. It's not used to be used. It's a proof of technology or proof of concept, but it really shows the promise of what AI can help us with in the future. Yeah. Let's, let's get dive in. Let's dive in. Yeah. So. So this solution uses something in Fabric called Fabric Link. I know you heard about this before when we, when we talked and I'm sure people in the audience did as well. The Semantic Link, yeah. So Semantic Link is an awesome library in Fabric that lets us get a whole bunch of metadata around our, both our semantic models, but basically the whole of Fabric. But it also lets us run actual actions. We can make changes. We can run queries. We can do all sorts of things with Semantic Link. Then I'm also installing something called Semantic Kernel, which is a different thing, but not a Fabric specific thing. The thing is with something like Fabric Semantic Link, I could, for example, call a function like list datasets and I could get a list of datasets in return. That's quite neat. So what I want to do here, Kevin, is I don't want to do this myself. I want to teach an AI agent to do this for me. Yeah. Easy. So I'm creating this semantic kernel as it's called. I'm adding LLM, Gen AI model. I'm adding an embedding engine. And then I'm setting up some basic setups here. And finally, the juicy part, I'm creating these kernel functions, which is actually me teaching the AI agent how to do things. Much like if I teach my kid how to eat with a spoon or something like that. I can actually teach this agent to do something and do something with code. So what I'm teaching it here is to use this list dataset. So with these lines of code, I'm telling it this is a function you can use. This is how you use it. And this is what it does. And that's all it needs. Now it understands and can use this function. I do the same for list tables. So now it knows that if I input a dataset, I can actually get a list of tables in that dataset. And I do the same for list measures, same principle. And finally, I teach it to evaluate a measure, which means worry the measure of my data model. Yeah, and I guess that's one of the things with semantic link where it's all good that they can use the measures in your data model. And that's what's really important. It's already prepped in your semantic model and it can use those DAX queries already. Exactly. So now I just taught it four different functions. I didn't tell them any of the names of my datasets or measures or tables. It knows nothing. When I start here, it's just a dumb AI, but it knows the skills of calling these APIs, calling these libraries. And it has enough of a logical reasoning that it knows that I need a list of datasets before I can call the list of tables because I need the dataset injected in that second call. So it has this basic reasoning. It's not general intelligence, but it's basic reasoning. So I set up a chat history because I want to be able to chat with this bot and then I'm running it. So we can actually save the history here as well. Also saving the history so I could have a conversation. Now, this is where it gets clumsy because in real life, I would want this to be a chat field, chatting with this bot or even better, calling this bot with voice chat and having a conversation. Hey, chat bot, I'm trying to investigate some data about an incident that happened yesterday. Can you please check the data, our production data around this time of hour? Were there any outliers and things like that? I would much rather have a conversation about the data. But for now, we have to do the workaround here because that's what we can do. The limitation here is that semantic link does not go outside of fabric yet. We cannot authenticate to it. So I'm asking the question here. Give me top five stock item colors with the highest sales. I forgot to run this one. Let's try that again. And it's actually now doing a lot of things. It's calling the list dataset function. It's actually getting a list of datasets. And then it's using that list, as you can see here, to call a specific dataset. And it's getting a list of measures. It's then getting a list of tables. Then it's actually found out here that that was the wrong dataset because it couldn't get the answer it wanted. So now it's trying the same thing, getting measures from a new dataset, getting tables from a new dataset. And finally, it's calling this evaluate statement, calling the dataset sales using the measure revenue, grouping by the columns dimensions.item column. And finally, it's giving me an output in written text that here are the top five stock item colors with the highest sales revenue. So that is, to me, the future of AI or the future of consuming data. Today, we're using reports mainly. We're using Excel. In the future, we'll be able to have a conversation around our data with AI. But only if our data is structured and organized and in need and tidy. So with that, let's wrap up today. Yeah, it's really nice. So we've kind of looked at the increase in production with the co-pilot and the tools there. We've looked at how we can make the data actually better and rich with AI. And also then how we can empower users as well for really deep analysis with that last demo there. Yep. That's great. So thank you all for tuning in. I hope that you were inspired, learned something, or was just a little bit entertained by tuning in today. Hope to see you next time. And until then, just have a great time and see you again. Thank you, everybody. Bye. Bye.