Hello. My name is Marsha Michel. I want to talk today about some work we've done with some of my colleague, Jesse Hamilton and Annie Weng, where we were looking at a solution for hosts that were located at different locations to be able to talk to one another, but with some constraints on the network. The reason we did it like that is that we were looking for a solution where we needed direct connection between hosts that were at different locations on firewall, not always connected to the same network stack. So we have hosting the Cloud, hosting the data center, some hosts we're working from home, and we even had some edge device that needed to be able to talk to one another. The problem is obviously if you're behind a firewall, you have to be able to talk on the same layer. Usually you go in through a VPN, and then you're connecting to the host. Well, unfortunately here, everybody is behind different layers, so that's not as functional. Overnight networks are the way to go because they would create a network layer on top of the current network that exists and make everybody accessible on IPs that are predetermined. There are multiple solutions out there for overlay networks. We've looked at a few. We've looked at particular as Slack, Sneabula at internet and at tail scale. They are all mature enough to be usable. Unfortunately, firewalls do their job very well, in the sense that if you're trying to connect to a host that is behind a firewall, very often you are going to get blocked even if you're the one reaching out to anything that doesn't have a central relay. So that's where actually, tail scale was the most functional of the lot because it had technology that made it possible for it to relay information through a middle host, right? It also had a different technology to go through firewalls in order for packets to be able to go out. If you're interested, I highly recommend you look at the different block posts that are out there. I didn't put any here, but there are different block posts that talk in particular about how tail scale does connectivity and there are initiatives for the other network to work out those solutions. Unfortunately, in the end, for the program we were trying to work on, tail scale adds some components that were closed source and that made it a little more difficult for us to get approval to use them. So we had to look at another solution. That other solution turns out to be open VPN. The classic open VPN, we use the specific implementation of open VPN which is available publicly on the Docker Hub and on GitHub and we change a tiny bit how open VPN is configured so that we are able to use the client to client communication method. Now, client to client does one thing in particular, it makes it possible for hosts that connect to a VPN to see one another and to talk to one another. The classic VPN configuration is I'm going for the VPN and I can talk to the hosts behind the VPN but I cannot talk to the hosts that are connected on the same VPN as I. Well, when you do client to client that makes it possible for you to actually do that extra layer. So what you see here is basically steps needed to set up the open VPN, you need a volume for Docker. Once you have a volume, you generate a default configuration. Here it's going to be called open VPN cloud. It's going to be over UDP. We are generating a default configuration file and once we have the different configuration file we are modifying inside the open VPN.com there's two lines that you see topology subnet and client to clients. Then that implementation of open VPN makes it possible for you to do authentication using CA so it's basically the classic OVPN exchange. So you set up a CA passphrase, certificate authorities of course. You start the open VPN server and then you're able to go to the step where you're able to create static IPs for each host. And that's actually very important for some of the projects that we wanted this technology for. We needed to be able to access hosts and not have, we didn't have a discovery service, right? So we needed to figure out, we needed for every host to always have the same IP. So we did that by configuring it so that a given host would always get the same IP. So here is an example of how to get your CA file as the first two line. You do the same thing on all the hosts you want to connect. Here we have hosts named server one, server two, ohm one and edge one, user one, sorry, and edge one. And they're gonna be on 10, 20, 30, and 40, right? <IP_ADDRESS>.20.30.40. Then what you do is you basically connect using an open VPN free client. I think it's, you can't see, but there we go.  You need open VPN free in order to get to work. So what I'm gonna do is I'm gonna quickly share something else. I'm gonna quickly share, I have a Linux VM that I set up just to show you how that works. So I'm gonna share a window with my Linux VM, there we go. Okay, so I'm in the Linux VM. I am going to try to ping one of the hosts. As you can see, it's not answering as we're expecting. There is no way for it to reach the private IP. So I'm gonna start my, I generated earlier today an open VPN file for myself. And I'm gonna do a one-time connection and I'm gonna do a one-time connection. And I'm gonna do a one-time connection and I'm connected. So now if I ping, I can actually ping the host. That host is a GPU box at the data center and it's running and it's connected to the server. So now what I can do is I installed on it a Jupyter, CUDA, DNN, TensorFlow open-cv container. So I'm gonna SSH into it, there we go. And I'm gonna run my container. I'm gonna grab the token. I'm gonna go back here. That was because I was disconnected. I'm gonna reload, give it the token. And I have a freshly running Jupyter notebook with a Python kernel and if I run bash, I can access the commands and show I have four GPUs available to me in that Jupyter notebook, which is running in the data center, remotely accessible and through the firewall that we have at the data center. Now, of course, you need to be able to SSH into the host for you to be able to do that. And you can see, I guess I have dot two. My configuration is dot two. I'm gonna share back my slides. Sorry, here with me, which is that one. For each client, just make sure that you have the right open VPL remote setup. That's kind of important. If, for example, the server is itself, you don't wanna expose the default port for open VPN, right? You need to modify the remote on the OVPN file. But beyond that, what we've just achieved is basically this. We've made it possible for all the hosts that are at different locations. So we have tested it with OpenStack instances we have tested with OpenStack instances behind the VPN. We've tested it with Roost as a data center. We've tested it on AWS. We've tested it on Edge device. And I'm working from home right now and I'm basically just access the data center without being connected to the official data center VPN. If I can talk to every one of those hosts currently. And with that, I wanna thank you for your time and I'm gonna welcome questions. And the information in how to reproduce that will be made available also we expect in the blog post in the near future.


Welcome to this virtual celebration of your graduation from AUS. We know that this is no substitute for being together and we look forward to seeing you when circumstances permit. In spite of the difficulties, you have persevered and have been successful. As you make the transition to life after graduation, I am sure that your ability to persevere will serve you well. The University is proud of your accomplishments and grateful for the contributions that you've made to enriching AUS as students, as campus leaders, and as role models for your peers. I wish you continued success as you join your fellow alumni to make the world better. Congratulations again. I hope that you enjoy this video intended to celebrate all that you have accomplished. Congratulations. On behalf of His Highness, Sheikh Dr. Sultan bin Muhammad al-Qasimi, member of the UAE Supreme Council, ruler of Sharjah, president of the American University of Sharjah, members of the Board of Trustees, the faculty and staff. Congratulations to the class of fall 2020. Much has changed since the first day you stepped onto campus and the world has changed in unexpected ways. AUS has expanded facilities, launched new programs, enhanced research opportunities for faculty and students, and renewed the focus on student success, including an increased emphasis on the transition to university life. Due to the foresight and the extraordinary vision of His Highness, AUS today is not only characterized by the incredible buildings that we enjoy due to his generosity, but the campus is much more. It is a diverse academic community enriched by the students, staff, and faculty who contributed to the advancement of the academic mission of the university. While the change that has occurred at AUS has been significant, it pales in comparison to the change that has taken place in the world. The pre-final exam anxiety that you experienced just a short time ago may seem minor when compared to the challenges ahead. However, my confidence is restored each time I speak with AUS students and graduates who are confident, capable, and prepared to face a complex future. At just as you have successfully negotiated the challenges associated with pursuing a degree, I am confident that you will rise to the even greater challenges that lie ahead. Education is a gift that comes at a cost and sacrifice, and we should not forget to thank those who have supported you in order to make today possible. Please join me in recognizing the family members and friends who have supported you through this journey. Given what you've accomplished academically and as contributors of the AUS community through class discussions, community service, initiatives, leadership roles, performances, extracurricular activities, and research and teaching assistants, I am confident that you will continue to make a difference in the world. Congratulations graduates. I am delighted to join you, your families and friends, in celebration of this major milestone in your lives. A degree from AUS is here finally. It's indeed a distinct honor for me to share the excitement of this moment with all of you and to express the sense of pride that everyone in the AUS community feels for your accomplishments. We all know that you have come to this point through a great deal of dedication, persistence, and hard work. That is always the case for an AUS graduate, but the fact that you have done so and that the severe restrictions mandated by the current pandemic simply adds to our pride and to our admiration for your achievements. It should also be a source of great joy to all of you. Rejoice in this your day and please accept my warmest congratulations on your graduation and my best wishes as you embark in a new phase in your life. Hello everyone. On behalf of the faculty and staff of the College of Arts and Sciences, I congratulate you on your graduation and reaching this important milestone in your life. Interacting with you is one of the great privileges of working at AUS. I had short discussions with many of you in the hallways of CAS. I have learned from your professors about your stimulating classroom discussions and have watched you perform on stage, present in international conferences and when international awards. I have witnessed this process of transformation myself and I sincerely say you are nothing short of inspiring. We are proud of your achievements, but you should not stop here. There is much more to do and today marks a new beginning. We are aware that finding a job or starting your own business or going to graduate school can be stressful and challenging at the best of times and that the current health situation and the declining economy may intensify this stress and amplify the challenges. However, I am confident that with your strength, resilience, unique skills and the education you have received at AUS, you will overcome these challenges and succeed in whatever you choose to do. Some of the most devastating things that happen to you will teach you the most as great things never come from your comfort zone. As you have learned in CAS, chase your dreams, but don't lose sight of the greater purpose. Congratulations and I wish you all the best. Hello everyone and allow me to begin this by extending a massive congratulations to all of my fellow graduates. This is a great big moment for all of us. We're all moving on to another chapter of our lives and I'm sure you're all very excited, but for some of us and myself included, getting to this point wasn't necessarily the smoothest ride. If you know me and you know my story at AUS and you probably know that it wasn't very smooth. It was a very turbulent trip, but joining the mass communication department made a world of a difference. I managed to make some of the best friends that I can think of and I managed to really connect with some incredible professors who really helped me become the best version of myself. Through the things they taught me in and out of a classroom, I really learned a lot from them. I learned how to really just understand the world differently, especially the media. Just looking at the media in a different perspective and I truly attribute all of that to my professors. They were all wonderful and great people and I will miss them very much and the friends that I made here are friends I'd probably call that for life, I imagine, hopefully. And I'm lucky enough to be able to call them my friends and I truly respect and admire them all and I hope you guys and everyone who watches this has had a similar experience, at least the good part of that experience minus the turbulent beginning. But with that, I'd like to end with saying again, congratulations to all of you and I wish you all the best of luck in your future, be it a career or furthering education or anything else, whatever you decide you want to do, it is all in your hands. Whatever you wish to do, you should do that. And again, congratulations one more time. Go celebrate safely, be responsible and be happy. Congratulations. The world needs you and AUS will continue to need you. You, along with the 16,000 alumni that you join, will continue to remain an important part of the AUS community, just as I hope that AUS will remain part of you. I look forward to the time we can gather to celebrate your graduation. Until then, I wish you continued success. Congratulations, proud AUSers. Accuracy, fellow graduates, we did it. We accomplished our dreams and our major steps that we took in this journey. I hope that wherever our future takes us, we allow it to take us somewhere and even beyond. The past four years were more than an academic journey. I will definitely miss my morning rides to Sharjah and I will miss the ITF room at SBA, but I'm definitely prepared for a career in corporate finance. Besides quality education, AUS gave me friendships and memories that I will forever remain grateful for. It gave me the opportunity to represent students in the Student Council for one year, which I consider one of my greatest achievements. In the future, I hope the type you simply represent AUS as an alumina and make it and its community proud. After graduating high school, I always went with the coat that says, be fearless in the pursuit of what sets your soul on fire. And this coat has governed the life I live for the majority of my academic and social spheres throughout my time in college. To thank you to my MCM department and faculty that shaped me to the woman I am today that you guys are looking at. And of course, my friends that turned into my family. I can't wait to see what the future holds for me and each one of you and take all that AUS has taught us over the four years, patience, commitment, hard work, and kindness. Here's to our next journey of adulthood. AUS, you'll be missed. Thank you once again.


I'm Rear Admiral Bob Burke, Commander Submarine Group 8 and Deputy Commander of the United States Sixth Fleet here aboard the Los Angeles Class Attack Submarine USS Pittsburgh. Submarines are frequently unseen but important aspect of maritime operations in the naval forces Europe and Africa areas of responsibility. Today's force leverages the nuclear powered submarines unique attributes of stealth, endurance and agility to support joint and naval operations. This allows assured access to denied or hostile areas, shared knowledge of the battle space and if required power projection with surprise from close in. While the submarines are impressive it's the crew that makes the ship a formidable fighting machine able to operate for months at a time submerged and undetected. I'm proud of each of you who call yourself a Submariner and thank you for your continued efforts to ensure undersea dominance. America's submarine force, where it matters, when it matters.


With all the moves that the Baltimore Ravens made this week, everybody's wondering what is going to be the next big move for the Baltimore Ravens? Who are they going to bring in to make everything that they've been doing? Everybody that they've traded, that they've cut, that they've signed, who are they gonna bring in next to make it all make sense? Well, that's what we hear to talk about on today's episode of Questions From Team. Keep it clean. Before we get into it, make sure you subscribe to the channel, turn your notifications on, and run them likes up. Leave a like on the video. And also, if you ever want to be part of Questions from Team Keep it Clean, you can send an email to teamkeepitclean at gmail.com or for the Team Keep it Clean patrons. You can send it directly on Patreon. You don't have to send it via email. If you would like to become a Team Keep it Clean patron, you can go to patreon.com slash engravingvids. Special shout out to all the Team Keep it Clean patrons. Special shout out to all the Team Keep it Clean channel members, and special shout out to all of y'all just completely, because I love y'all. I appreciate y'all. And you know what, without any further ado, let's get straight into it. First question, it came from my guy, Harry, and he said the following. So, hey, engraving, how are you and Team Keep it Clean family? Doing, hey, we doing good. He says, so far, this offseason EDC looks like he's on a mission to get back to the Super Bowl that John Harbaugh's coaching robbed him of last year. Besides the Ronnie Stanley move and the resigning of Josh Johnson, I loved what he's done. Okay, so he's not a big fan of those two moves. Anyway, he said, I understand why he did the moves. I just don't love them. Anyway, I want EDC to do these moves before the draft that could set us up for greatness. All right, let's see what my guy's got to say. First, signed Mike Williams to a Provid deal. He represents a big-body ex-receiver that we need. Plus, after how Ravens Free agents are cashing in, this offseason, I think he would want a chance to reset his market and also get a ring. Mike Williams, when he was the, I almost thought that he was gonna be the lone man out when it came to the Chargers because he was the only one that got cut. Keenan Allen was still there.  And they were like, oh, Chargers might have to give it all for it. But he was the only one that got cut. But then Keenan Allen got traded to the Bears. But then Khalil Mack and Joey Bosa, Chargers like, nah, y'all ain't going nowhere. It's probably because of great Roman offensive coordinator. Like receivers? Nah, we don't need them big-money receivers. They can go bye-bye. Y'all can leave. Cause he's like, he got Gus Edwards. They getting ready to get Hayden Hurst. Hey, Greg Roman just reuniting everybody from the old Ravens again. He just bringing them all back together. It's just only a matter of time. But anyway, with Mike Williams, he's nice. He has missed a little bit of time being hurt, but he's nice. But if they could sign him to, like you said, a prove it deal. Something where they don't invest too much money into him just in case, but at the same time it can't be something that's disrespectful because hey, he's still gotta get his too. If they could work something out, then that, I would like it. I would like it. He would be an excellent compliment to Zay Flowers, to Rashad Bateman. Because it's like Zay Flowers is smaller frame, but crazy agile, crazy route runner, always getting open. Got some good speed too. Rashad Bateman, got some good speed. He'd be getting open himself, but obviously he's like six-one, so a little bigger frame. Got some good speed, got some good hands. And with Rashad Bateman, he'd be getting open a lot to a good route runner as well. But then you got Mike Williams, who got some good speed, got some good crazy athleticism. He could jump out of the gym, go up and get it. And that's your big target. Like you wanna throw it up 50-50 ball? Oh yeah, by all means, go for it. So I would love if they got Mike Williams, especially at the right price. He would not count against the compensatory pick formula, because you know Ravens are all about them comp picks. So I would like that move. Now, this next move, he obviously sent this before. Cause I guess Steelers were thinking the same line that my guy Harry was thinking. So he said a second move, which isn't sexy, but what workforce would be bringing back to Sean Elliott? He would be a cheap replacement for Geno Stone. And when he was here and healthy, he balled. Okay, well, we know that. Third move, get either Chase Young or Derek Warnett on a prove it deal. Chase Young is the more talented player. And maybe like Clowney, he could find his home here. It's only 35 minutes from where he grew up. And hopefully the Raven culture can awaken the beast within him because he will be held accountable for playing like a Raven. Chase Young, his market has been very quiet. I ain't heard nothing on Chase Young at all. Didn't even for a little bit. I didn't even realize he was a free agent. Well, I haven't heard nothing about him at all. I posted this question on Twitter two days ago. Like why is it being so quiet on Chase Young? A lot of people are like, oh, they feel like it's probably because of his lack of effort, especially in the 49ers and Lions game. And you can never say that one game can determine how so many people will feel about you for a full off season. But like, if it's a bad play, if you missed a play or something like that, that's one thing, but if it's lack of effort, ooh, that's a whole another level right there. So people will look at that and be like, do you think we want to pay him a bunch of money? Lack of effort. Ooh, yeah, that's a yikes, yikes. But I don't know, man, I just rather Jadaven Clowney than all of this. He said, oh, we could go with Derek Barnett who is not as talented, but gives full effort when he's on the field. Ah, I see what he did there with that one. He said, let me know your thoughts on these new moves and everyone. Stay blessed, appreciate your hair. Next question came from my guy, Anthony. He said, are we done? Was up in Graven? Hope you're on a fam or great. So we got King Henry, but are we done? The Bears traded a fourth for Kenyan Allen and Hollywood went to the Chiefs. The Ravens have nine picks, released players and restructured Ronnie Stanley's contract. So they are making some room for money and we have picks to trade. Do you see the Ravens adding more before the draft? As always, God bless and trust. I definitely do, I definitely do for sure. I think we all do. I think there's no way that the Baltimore Ravens, now I could see them adding more before and after the draft. Like again, free agency never stops. Once it starts, it never stops. It's literally the remainder of the off season, the remainder of the regular season. It's in a playoffs too. You can always sign people, always. So but the Ravens are not gonna be done. I could see them because right now they have a vacancy at right tackle, at right guard and at left guard. I could really see Ben Cleveland being one of those spots, being the right guard at right tackle. I could see that, I could see Ben Cleveland getting one of the spots and them signing, one more is a veteran and one more is a rookie, whether it's the guard, whether it's the right tackle. One is a veteran and one's a rookie. If they, because I know they don't want to pigeonhole themselves, but I think based off of a trust factor, what you would be willing to do, Lamar Jackson is behind the line. I think they would much rather have a rookie be somebody who would be on the inside rather than the outside. So if they do end up going with a rookie, I could see it being the left guard or right guard. If they want to move Ben Cleveland over something like that. I don't see the rookie being the right tackle, especially if Ravens are in win now mode. I'm not saying a rookie can't come in to do it, but I would see it being a guard over a tackle. But that's just me. T Higgins, next question came from Tammy. She said, I saw an article from Sports Illustrated that T Higgins wants to trade to play with Ravens, Lamar Jackson. Hey, T Higgins would be nice, man. I like T Higgins a lot. I know he dealt with some injuries over this past year, but T Higgins, when he plays, that boy can play, man.  It's like he got gorilla glue on his hands because that boy, he don't be dropping, man. But T Higgins, he's nice. So if, I know it ain't gonna happen. I mean, I think it will. If for it to happen for him to go to the Ravens, they will have to give up some crazy like draft capital, especially for the Bengals to trade him to the Ravens. Like the team that they trying to catch up to, to make the Ravens better, it will take a lot of draft capital to make that happen for the Baltimore Ravens and for Bengals to even consider it.  Next question came from my guy, BB. He said, do you think EDC is clearing up money to sign a big name defensive back? Or will he attempt to bring back JC 24, Jadavian Clowney, or both? A big name defensive back. Right now, no.  Cause again, the market is it's slowing down. It's slowing them the first couple of days. Everything is hot. It's like, oh yeah, yeah, yeah. But now it's slowing down a bit and things are they had a slower pace now. So everybody a lot more chill right now. So the deals that are given out, they're gonna be a lot less. Not necessarily a lot less, but they ain't gonna be, oh, all this money anymore. So which it's a benefit for Eric, the cost of the Baltimore Ravens, but really just everybody. So I can see them bringing in another corner though.  So there's Arthur Millette. I know a lot of Ravens fans want them to bring him back. Arthur Millette was interesting, man. He was interesting. He did make some plays, he did miss some plays. He was very interesting. I just, I feel like I don't even know how to grade him. Cause he just felt like so weird to me, man. But I wouldn't be surprised if they did bring him back, but yeah, they did bring back Ardarius Washington. So hopefully he can be healthy and he can hold it down in the slot if that's where they end up playing him or if he's gonna be sort of their third safety, whatever he's gonna do. Hopefully he can just stay healthy cause he can be a contributor too for sure. But yeah, I can see them, actually yeah, I can see them doing both. After Jadaven Clowney finishes his world tour, finishes getting all his free meals and stuff. And I ain't mad at it, man. I can see them bringing him back as well. He said with the production last year from Clowney, it would be in the best interest for the Ravens to resign him and solidify the edge. Yeah, he gotta want to sign too. And it's too early cause we ain't even close to training camp. So you know, Jadaven Clowney, he takes his time. He takes his dear time. So yeah, I wouldn't expect Jadaven Clowney to sign anywhere. So even if you don't sign with the Ravens, I don't expect him to sign anywhere soon cause this is his thing. He said Xavier Howard is a free agent as of today. He could be a great fit due to the fact that Marlon is often hurt. I wouldn't say Marlon is often hurt. I say last year, obviously he was, but he's not often hurt. Last year was sort of an anomaly. It was just rough the whole way for Marlon. Started off rough and just, yeah, it was rough for him injury wise, but I wouldn't say he's often hurt. He has missed some time before too, but nothing like this past year. Anyway, he said acquiring health at a defensive back position is imperative for longevity. Also, I wouldn't mind acquiring T. Higgins, LOL. Thanks for the channel fam. I appreciate it. He said hashtag charm city royalty King Henry. Oh yeah, we got him. Next question came from my guy, Mike. He said, oh Jerry's world. Many blessings to you and your family. Man, I get so excited when you read my question. I go tell my wife, hey, no, I appreciate you even sending in the question, Mike. So thank you. See, I'm 47, LOL, but I saw that this year, a regular season game is coming and my mother-in-law said, we'll be there. Oh, your mother-in-law, oh, she don't play. Your mother-in-law, not even your mother-in-law. She's ready to go to the games. Okay, hey, I love it.  Oh, okay. I'll go into the Ravens and Cowboys game. That'd be something. We'll see. We'll see. I don't know what, if any games we going to yet this year, that's a really, really, really good question. It's so early, I don't know. I gotta, it depends on how the schedule is and stuff like that. And now going to games, it ain't gonna be the same because by then we're gonna have the two kids. So we'll see, we'll see, man. But yeah, I'll let you know once we figure everything out. And then, yeah, we'll just go from there. Next question came from Malachi. I said, likely at wide receiver, for a big wide receiver.  Now I'm a freshman in college. You know, all I can say is, wow, time flies. Yeah, wow, yeah, I'm old now. Well, thank you.  So that's four years, right? I think, right? The freshman, yeah. I don't know, you know, my man that messed up. Anyway, he said, I've seen your channel grow over the years and you've been my number one choice for Raven's News since day one. Just wanna congratulate you on your achievements and hope that you and your family are doing well. Appreciate that, Malachi. Thank you. I hope you're doing good in college too. He said, but back to the topic. I want and I think the Ravens need to put likely at wide out since they don't know how to use two tight ends at one time. It would save the headache like to go through draft in a wide receiver that Lamar has no chemistry with and it would save us a draft pick and money. Likely and Lamar already have chemistry. Likely is also a player that can get, yeah, I can go get the jump ball. That way Lamar has all weapons, all on the field and he can have trust without him having to be Superman. This is just my thoughts. I just want you to know what you think. Once again, congratulations, all love and team. Keep it clean. Appreciate that a lot, Malachi. Man, I don't even know what they should do, man. I like, I don't understand it and I just think it's crazy. Is it Lamar? Is he the reason why it can't be Mark Andrews and Isaiah Likely eating at the same time when they both fall in the field? Cause again, when it's one or the other, they're fine. They're fine. When one of them's out and the other one's in, oh, no problem. But when they both, it's weird, man. So I don't know.  And that has happened before, but still, I just, I don't know, man. I don't know what it is. Hopefully this will be the year that they can get it right. They can fix it. They can, like, cause they're just both so dangerous. They both can beat you in so many different ways and they will both just make the offense that much better. Because it's like, I remember when, obviously Mark Andrews was playing, he was doing this thing. He was going off. He was leading the tight ends and I think with touchdowns. Yeah, he was leading touchdowns and maybe yards too, but he was doing this thing. He got hurt. Okay. Isaiah Likely this time. All right. Isaiah Likely came in, oh man. And we're thinking like, if he would have been a starter, obviously he couldn't be because of Mark Andrews, but he would be a starter. He would for sure, without a no doubt of our mind, be a top 10 Titan in the league, probably top five, top five. Yeah. Not even top 10, top five Titan in the league. And I ain't got no doubt in my mind that he would be that because he was that good. Him and Lamar's chemistry was crazy.  Everything just went downhill from there. And it was like, what is going on? So Raven's got to get that thing fixed and they got to get it fixed ASAP because if they can fix that, like that can make, what was a really good offense last year overall, it could take them to a whole another level. Raven's Edge Russia, David O'Jobbo, that's a name that I have often forgot about a lot. Next question came from my guy, Caleb. He said, hello and Graven, hope you're doing well and your family too. Appreciate that, Caleb. I'm seeing everywhere that the Raven's biggest need for the team is the edge position. That is blasphemous when you take a closer look. Adafi Awey was considered per PFF, the most improved player in the ASC North last season, totaling five sacks, 23 total tackles, four tackles for loss and 31 pressures in 13 games. I was a little more mentoring and experienced. I can see him having a 10 plus sacks season. So with that, this is tricky because with PFF, I would recommend, it's just me, y'all know, I ain't no professional like that, but it can't just go off of the PFF. PFF numbers are very weird. They're very weird. And in my opinion, they can be very inconsistent because you can watch a game and you can look at a, you can watch it with your eyes. Wow, that player had a great game. He had an amazing game. You see PFF score, oh, they rate them super low. Like what? Then on the flip side, he said, oh, that player, he struggled this game bad. It was a rough game for him. Oh man, he didn't do good at all. PFF has him as one of the top players in the game. It's the weirdest thing. So I don't know how PFF judges stuff, but it can be very, very finicky, I guess. But as far as a die fair way, the thing, I think why people are not sold on a die fair way yet and still saying that edge is a position that we need. Obviously because you're David and Clowney, he's a free agent. I'm able to die fair way. We're just wondering when he's gonna turn that corner. When he's really gonna turn into like, oh, okay, yeah, we got one. We got one because they obviously drafted him in the first round based off of his speed. He was a project. He was an athletic freak, but it just hasn't consistently translated to the field yet. Now I do remember earlier this year, he had missed like three, four games in a row due to injury, but then he came back and he was like on a tear. He was like a completely different a die fair way, but then he sort of quieted down a bit. But I think with him, people just hoping that he finishes more. And pressures are one thing. Pressures are nice. Sacks are another thing too. Sacks are not everything, but it's just a combination of both. But people are just waiting for him to really turn that corner. And I think that's what a lot of Raven fans are not sold on yet. And just wondering like, all right, when is it gonna be official? When is he really gonna take that big leap? But let's continue with the rest of your question. He said, David Ajaubo is also never talked about. Well, before we continue, it's cause he doesn't play. He hasn't played really. In his rookie year, he came in at the end of the year and that was a red shirt year pretty much.  But, and then this year, he played like what a game or two maybe. Then he just heard he had a partially torn ACL and ankle injury too. So that's why he's never gets talked about cause he never plays. He's never out there. It ain't because anybody got a personal vendetta with him or anything like that. But it's just cause he's just, he's never out there. So that's why he never gets talked about. But anyway, continuing. He said David Ajaubo was never talked about. David Ajaubo has two sacks, seven tackles and two force fumbles and only 104 snaps. That's one sack every 54 snaps. For comparison, T.J. White, who played 931 snaps this season, averaged one sack every 49 snaps. Miles Garrett, every 58 snaps. And Max Crosby, every 75 snaps. I do appreciate that breakdown. I love that. I appreciate that a lot. Thank you for that. I said those are two finalists and defensive player of the year, winners for last season. David Ajaubo barring another injury is elite talent and should not go unnoticed. See, that's the thing though. You said barring another injury. We obviously hope that he doesn't get hurt. We hope that he's healthy, but he ain't been healthy. He ain't been close to healthy. And that's the thing with him. He has not been close to healthy. That's the scary part. So yeah, we hope that he can be on the field cause it's there, but we can't see it be executed if he's not in uniform. And then I'm sure if it's frustrating for us as fans, just imagine what he's going through as a player. That's tough, man. You know what he said? But yet I see people saying that the Ravens should cut him in trade for Josh Allen or signed Daniel Hunter. Oh, I would have loved if they signed Daniel Hunter. And Josh Allen would have been nice too. But those guys are, they're healthy. They're productive, healthy players. So I'm not mad at any Ravens fan who said that. Daniel Hunter went to the Texans though. I think Texans are loaded. Texans are loaded. But anyway, I said the only move I think we should make is signing a veteran edge to mentor those two. People should start worrying about the Ravens defense and more about our offensive line situation. But anyway, I just wanted to get your take on David a job. Well, it seems like people just forget he even exists despite his numbers through only 104 snaps. Yeah, again, like I said, those numbers are nice. And the average that you broke down is nice, but his health hasn't been nice. And that's the bigger issue. Next question came from my guy, Martin, who didn't shout out to you for being a team keeper, clean patron. He said, I find myself in a strange position. I'm always against rooting for players that cause any type of injury to another person, whether that be emotionally, spiritually, physically, or mentally. I love the Ravens, but football is not bigger than life. That's true. And athletes aren't above regular people. That's true. Just because they have talents, hard work and dedication. Just because someone isn't guilty by law doesn't mean they didn't do anything wrong. Also doesn't mean that they did. I don't know how I can root for a person or team that has someone that has caused damage to someone outside of football. I'm not telling anyone how they should feel or what they should think. I'm just saying this to get it off my chest. Ever since the whole Zay flowers, it's not my place to judge that only belongs to God. It just doesn't feel right to me to root for someone involved in that type of situation. Maybe I need to step back from football. Luckily it's the off season, so I have plenty of time to think about it. That's a really deep question. And with that whole situation, the same thing that we've been saying from jump is that we just, we don't know what happened. We don't know what happened. The only people that know what happened is who was there and that's it. And you hope that nothing happened. That's the hope, obviously. But we just, we don't know. We don't know. They suspended the case. We don't know what happened, but you just hope that they can, whether they stay together or not, I think they broke up, I don't know, but you just hope that they can have healthy relationships moving forward with whoever they're with.  Hopefully their relationships can be healthy moving forward and there will be, they won't have to deal with anything like this. Nothing like this will come up. Could you just hope the best for people? You hope the best for people. You wish the best for people and you don't, yeah, like I said, you don't want them to be in any situation like this. So hopefully this will be just, yeah, again, just hope for the best, but that's really all I can say about it. Cause again, it's just, we just don't know. And that's it, and since we don't know, that's all you can do is just hope for the best.


So Mati, Bitcoin growth has been slowing down lately and prominent trader Peter Brandt expressed some concern that if current parabolic phase is violated, we could expect either an 80% correction of seven months advance or a smaller correction with definition of new parabola. What do you think about this analysis? Do you agree? So first of all, I disagree with the premise. I don't think that it's been slowing down. I think that it's been kind of, well, we could say that crypto has been cooling off. I mean, we saw some massive gains this year so far and we could take a look at the rising trend line since April 2nd. We had that big pop on April 2nd and this is basically a very, very steep incline. So the fact that it's been kind of consolidating lately, this basically shows that it's taking those massive gains and kind of etching them into the actual value of the currency. This morning, I tweeted out a nice triangle formation that was coming where we could see it was coming to a head around 11,300. About an hour after I tweeted this, though, we did see a breakout to the upside, but that's really on the short term. Overall, what I think that Peter was trying to do was give us kind of just a worst-case scenario. And I know I'm pretty familiar with Peter Brandt's analysis and his trading style, and what he always likes to stress is the asymmetric risk that lies in cryptocurrencies. So meaning that you have 100% risk on the downside and on the upside if we do see a parabolic rise, you could see Bitcoin going to $50,000, $100,000, or even more. So a lot more than 100%. That's a very good risk to reward scenario for high-risk investors. So I would like to ask you now about the Deutsche Bank's latest decision to shrink its investment bank operation. This decision led to a cut of 18,000 jobs. So why do you think Deutsche Bank took this decision? And what do you think is going to be the impact on the crypto world?  And those trading desks have been largely unprofitable over the last few years. We have to realize that we're right now in a unique situation that we've never seen in history as far as the global economy, where central banks around the world have kept interest rates artificially low, many of them at zero, some of them even below zero. So what happens is that the bond market has basically taken all of the yields and dropped them to the floor following the central bank. So right now, an investor who sees a 2% opportunity over the course of a year, they're just getting hungry over that. And in my mind, this is basically, it means that there isn't a lot of meat on the bones as far as global investments are concerned. So an investment bank like Deutsche Bank, usually they make their money off of those yields. They make their money off of lending money. And if they can get 5% or 6%, they're doing great. But the global environment just doesn't allow for that because you have central banks who are buying bonds that have even a negative yielding interest. So what it basically means is that following the financial crisis, we've been in an emergency mode. And we talked about, or the central banks were talking about exiting that emergency mode. But since the start of 2019, they're actually going in deeper, providing more and more liquidity into the market, which is pushing down yields further and further and further. So in that environment, it's very difficult for any investment bank to really make money because that's where they make their money from. So talking about crypto exchanges, lately, major crypto exchanges like Huobi and Airisax have been implementing high frequency trading, which is a type of trading that allow clients to trade at a much higher speed than regular clients. So can you actually expand a little bit on the advantages of high frequency trading and maybe tell us what you think about the future of this practice in the crypto trading world? Yeah, it's an interesting progression, no doubt. I mean, high frequency trading has been available in traditional markets for a very long time. It's a particular advantage for algo trading and robot trading. It'd be interesting also to understand how exactly they offset that. Obviously, it's not going to be really possible to have a high frequency trade in Bitcoin that's settled in real time because we know that Bitcoin is not settled quite that quickly. Bitcoin transaction can take 10 minutes, an hour, sometimes two hours, depending on the fee that you allocate. Whereas high frequency trading, we're usually talking about milliseconds. So very likely those brokers will need to take some of the exposure onto their book. But what it shows is that the market is now mature enough where those brokers can come in and do that acting as a market maker for those high frequency traders. So in general, I think that it's a very good sign that the market is more stable now. And I believe that having that option will also bring more stability to price because robots and algos, they're generally getting price feeds from several different locations. So now that they can act on those arbitrage opportunities a little bit quicker or even much quicker in some cases, they basically take out the arbitrage opportunities, which means that the price across all brokers should remain more stable going forward. So you pointed out that peer-to-peer Bitcoin trading has spiked reaching a level which you haven't seen since last November. So what do you think is the significance of this indicator? Yeah, so local bitcoins is a website where people can trade Bitcoin with each other, so peer-to-peer. This website is Coin Dance, which basically tracks the volumes that are happening on local bitcoins. And you can see this little spike over here, which brought us up to 65.6 million dollars within a week. This is the largest volume that we've seen since November. And we have to also remember that local bitcoins recently reduced some of the options for peer-to-peer trading versus fiat money or cash trading. They've reduced their options in Iran, I believe. So it's interesting to see that their volumes have been increasing pretty gradually since the start of the year. But what's most interesting to me about this chart is that we can see the overall level since 2017. So if we take a look around here, this is where Bitcoin volumes first surpassed 50 million dollars per week. That's in September of 2017. And as you can see very clearly, it hasn't really gone much below that level since that time. So what we're seeing here is that Bitcoin once upon a time was trading on a very low level. And at this point, we can see the maturity of the market, how much these volumes have grown. Now, if we do see another spike like we saw in 2017, we're on this assumption that there's a parabolic run happening and a massive leap forward in adoption. This could very easily again like it's happened in the past where we see peer-to-peer volumes suddenly at 5 billion and then come down relaxation down to half a billion or whatever it is at the time. So I think that this is a very clear sign that people are using Bitcoin for its intended purpose, which is to transfer value, store value, and trade it peer-to-peer.


Okay, so tonight I'm going to talk about conversational agents. I often call chatbots. I'm going to talk about the technology behind them, because one of them. All right, about the technology behind them should be okay. All right, and sort of the different types about them. I think there's a lot of confusion around sort of conversational agents about what they can do, how do you make them, and the various types of them. So, about me, I spend most of my time working on deep learning that supports algorithmic trading. I have a startup that I don't really have much to do with nowadays, which is a children's app company. It has about four million users, and the team sort of runs it itself. And for me, I think that deep learning is by far the most interesting thing to be working on nowadays. All right, so, and in conversation agents, I'm going to propose that there are four sort of key types of conversational agents. And you will recognize some of these. You may recognize some of these. You may not. So, the first type is what we call the real sort of old style chatbots. I don't know if anyone's ever sort of played with these. These are generally made with a language called AIML. Has anyone played with AIMM? Yeah, generally in an audience, some people have. Also, IBM's sort of Watson's public interface uses a similar system to that. Then we've got sort of what I call the simple modern chatbot, which is generally what you see on Facebook nowadays for any sort of interaction that you're using on Facebook. Then we have like generative chatbots, which are things like Twitter bots and stuff like that. And then the last one I'm going to say is like an intelligent agent. These are sort of things like Google Assistant. So, big things to think about when you're building conversational agents. First one is sort of open domain versus closed domain. And this is one of the reasons why people get frustrated at these things very much. By open domain, I mean that you can talk about anything to this conversational agent. Whereas a closed domain is very specific about what topic you can speak about it to. People get very frustrated when they want to speak to a wider domain than the chatbot or the conversational agent supports. And it's probably one of the main reasons why when we talk to people out on the street, they kind of hate these things a lot. Another thing to think about is sort of pre-made answers versus dynamic responses. A lot of the chatbots, especially the old ones, very much, it's just a fixed answer. The person says, it says A, it responds with B. There's no sort of dynamic element going on there. Next thing to think about is, is this just for chat or is it triggering some sort of action going on as well? So, one of the big advances with the Facebook ones is that we do have like an API or something like that that can call different things. If you want to, you know, order something or something like that, it can interact very well. And then the last one I would say is sort of think about is access to what information and access to the web or not. So the more advanced ones, as I'll sort of talk about later on, have a lot of access to be able to do things. So let's look at the old ones. AIML was basically an XML language. The famous sort of chatbots like this, the first one was called ELISA, which is what, the late 60s, 70s. I've forgotten exactly what the date was, but it's a long time ago. And it was trying to, you know, basically just have a conversation with people for psychotherapy. I don't think it was that great because it didn't take off that much. Nowadays, the only place you sort of see these things is there's a site called Pandora Bots, which is worth just sort of looking at to sort of see how things were done in the past. And Watson, which is also maybe worth looking at to see how things were done in the past. Yes, I wasn't saying much more about my experiences with Watson. Often these things use things like regex to sort of filter strings, look for things in strings, that kind of thing. In a sense of AI and deep learning, they're very dumb bots, right? They really don't know anything.  Now that said, when someone does script out every little thing, they're really impressive. And you still see these around a lot because there are people who will spend six months scripting out one conversation in all the different directions that it could go. And when you talk to those bots, they do actually sound, you know, kind of interesting. There's a really good one, a mobile one called Angry Bot, which basically is using this thing and it basically gets, its whole aim is to get you into an argument with it. And it's very good at that, right? They're outdated and they're very fixed and sort of set in the way that they work. So this is an example of AIML. You can sort of see that this whole part is just to say hello, right? And trust me, that was probably about two or three times longer. I just sort of cut what would fit on the screen. But it is good to know the sort of past. So, okay, the modern ones, simple modern chat bots. These are what sort of took off, started taking off probably a year ago with Facebook opening up its own platform for bots. One of the things that, I think one of the smart things that Facebook did do was understand that in this day and age, people would rather press a button than type everything. So therefore they optimize that in the UI a lot. Okay, so how do these things work? Generally, and I'm just going to be sort of quite general, the most sort of simple modern chat bots work on what I call an intent and a slot system or an intent and a variable system. So basically everything you say to it, it's looking for the intent of what you said and then it's looking for the variables that fit in to that intent. So I've put some examples here. Can I order a pizza? Can I order a hamburger? So both those statements are the exact same intent. It's just the slot or the variable in the slot that's changed. So the slot actually there would be called, we'd call it what the order is, what the product is or something like that. And you'll find that nowadays the way a lot of these things are working is you can define intense and you can then define variables that are allowed to be in those intents. Now if you're going to deal with something like a pizza ordering system and suddenly you say, I want to order a BMW Series 5. It's not going to have a clue what you're talking about. So the company that I think is best at this sort of stuff, if you do want to make one of these things, happens to be bought by Google. I did think that they were the best before they were bought by Google, but it's a company called api.ai. And they really mastered this sort of system and got it to be, I just got some water. Their interface is probably the best by far out there. It makes it very simple.  But you can do it by yourself. So this is where the fun starts. And you'll find that actually doing this thing is not that difficult. People think that it's quite difficult, but it's not. You're basically, and everything I'm going to talk about tonight is kind of built on the previous three talks, right? Kathleen made a good point about you're building sort of a classification thing for doing, this is exactly the same. You're building a classifier to predict a class of what that intent is. So most chatbots will really only have a very limited number of intents. Maybe usually they max out at like 15 or 20 intents, often only sort of four or five intents. So if we think about that from sort of a deep learning perspective, it's not that difficult to build a classifier that only has to classify those things. And so obviously the thing that we need to do is we need to define what the classes are going to be, and then we need to pick some algorithms that we can use. Now, here's the thing. You can use logistic regression. How many of you psych it learn? Everyone knows psych it learn, right? Just go into psych it learn, open logistic regression, build something like this with a number of intents. You find very quickly you can get to 85, 90% accuracy at being able to predict the intent. You then need to sort of play around with how you're going to handle the variables or something like that. And actually if you wanted to, you could kind of combine this with the old style and maybe use this for doing your intents and then say rejects or something like that for your variables. But we can use a whole bunch of different things to actually sort of do these. Now, we need a pipeline. So again, building what other people said, okay, if we're going to build something and we're going to make it quite good, then we want to have a pipeline. And our pipeline is going to do the things that exactly, you'll find that when we're dealing with text, all these things sort of fit together in the same way. So every single thing here I've got here is something that was mentioned in the first three talks. You're going to generally tokenize your stuff to get it into separate words or into separate elements of words. You're going to vectorize your words by getting them into embeddings. You can also, you know, sort of the old-fashioned way to do that is to put them into one-hot encodings. You will find embeddings do much better. And then, yeah, words are back in gloves. So here's a sort of diagram, a very, very simple pipeline. And you can go home and do this with TensorFlow. And very quickly, you could build something that would be able to handle your own sort of chatbot very quickly. Again, these are simple chatbots, right? They're very much closed domain. Okay, so I've put down, yeah. API.ai and Google do these things pretty simply. I think they're probably the best ones to do. They only tend to work on closed domains. They're really good for things like ordering a pizza, booking a flight. That said, even booking a flight, they're often not that great. You know, really simple tasks, generally very transactional tasks that you know the person's going to say this and this and this and this. These kind of chatbots are very good for when you can totally predict what the conversation will be. Okay, the next type of chatbot are your generative chatbots. So you've probably seen these around the net. And a lot of them are very fun to sort of play with and to look at. This one was, I think, was quite well known last year in the election. And what it basically does is it tweets as if it was Donald Trump. But it doesn't seem to say the word loser enough. That's my... Okay, so there's a few ways you can build these, right? Generally, you need a reasonably large corpus to do this. So someone like Trump, what they do is they build it on all his past speeches. Perhaps he's also passed tweets and stuff like that. And then there are a number of ways you can do this. You can either do this straight with sort of like an RNN LSTM way, which has been very... There's a quite well-known code example called Char RNN. Anyone heard of that? I'll describe it. Okay, so Char RNN is made by Andre Capati. And basically what he did was just... He did it at a character level and it's just... It learns a corpus and then it predicts the next character. So you feed it in, say, 10 characters and it looks at those 10 characters and then it works out what it thinks should be the next character. And therefore it will then start to generate random text. And you can train it up... Like generally, you want to train it up on something reasonably large. I think he uses Shakespeare's, you know, the full works of Shakespeare. I did it one time with the whole book, Alice in Wonderland. And you'll find that very quickly it can generate text that is very readable but when you search the initial corpus, that text is not in there. So it creates an illusion that it's being... It's done in that style. And that's how they can do it for things like Trump and stuff like that. Like I said before, you need a large amount of training and data to be able to do this. Ideally, the more the better. If you've only got small amounts of data, then it's very... You'll be very limited in what it can generate. So one of the things you can add to this is a thing called Beam Search. I realize I should have had a... Maybe next time we can look at... Beam Search is a bit more advanced. What Beam Search basically does is predict sort of out of a whole bunch of different random things it lets you predict which ones are more likely. If you've seen Westworld, there is a great episode in Westworld where... Do people watch Westworld here? They're holding the thing and it's basically showing five or six words that the girl could say next and she's trying to say it faster and it basically picks out what she's doing. That is actually a good, perfect illustration of Beam Search. The other thing that you can do to these generative chatbots is that if you are training the maps, so I built one of these ones that was basically trained on a corpus that was conversations on Reddit. Very graphic language. But the funny thing with this is you would ask it something like, what's your name? If you think about it, what's your name in that corpus which... I think the whole corpus was five gig of text files, so it's a pretty big corpus. There's a lot of names in there and there's probably a lot of times that someone has said on Reddit, what's your name and someone else has replied. The classic thing that happens with these chatbots is that you type in, what's your name? It says, my name is Fred. You say, what's your name? My name is Sam. What's your name? My name is Joanna, right? Because it's doing it purely out of sort of randomness. So a way you can get around that is if you do want to sort of play around with something like this, is you can take your initial corpus, filter out all the names with like something like a ner or, you know, some sort of entity recognition search and replace them with a token. And then every time it sees the token, you can sort of teach your bot that this is going to, you know, that, okay, every time I see this token, I'm going to use this name. Every time I see this other kind of token, it's going to mean this. That sort of tends to give it a lot more coherence. So Anusha basically talked about sequence-to-sequence models. Sequence-to-sequence models are extremely interesting. They are very complicated, especially when you factor in a thing called attention, which makes them a lot better.  And I heard someone asking before about are these like auto-encoders? They're not auto-codes. When we talk about a decoder, so the blue bit here is the encoder and the orange bit is the decoder. Basically, it's just two sets. Think of it as two separate networks. You can almost think of it as two networks. Like we did in the GANs. For those of you who were there when I, when I taught the GANs how we had, like, a generative network and a discriminating network. This is not quite like that, but you have a network that basically takes an input, makes a sort of matrix, which then it passes on to the encoder, and the encoder can then take that matrix and generate an output from that. So the sort of the key bit here, you'll often see things like this where you've got, you know, a start tag so that you're basically telling your system that this is the start of a sentence. You've got your question or your sentence. You've got an end of sentence tag, the EOS tag, and you've got a go tag, which basically means that the next part of the decoder should kick in. I don't have any padding tags there, but I wish I should sort of mention those as well. These are also very good for training generative chatbots. They're also sort of a preliminary example of how you train a neural translation system and things like that. I'll actually mention these a little bit more when I talk about sort of the advanced things. Okay, so generative chatbots are great, yeah, great for fun, for messing around. They're not really ideal for business cases unless you had some sort of amazing data set and you had customers that had a very good sense of humor because you're always playing the risk that the thing may say something really weird, especially if it was trained on Reddit or something, out of the blue it would just suddenly start swearing at you. They start the long way to go, but I do think this is, it's very interesting to sort of know these and play around with them and sort of see what they can do because I do think in the future we're going to get a lot better at these as we incorporate some things like masking and a few other things that sort of make, that allow networks to understand more about concepts and the context that they're in. I think you'll start to see these to take off a bit more. So actually last night I programmed up one of these to sort of give you, I'm not going to go through code because we don't have a lot of time, but I will put this up on GitHub and I'll send out the link and I'll maybe even just make a video walkthrough of the code. This is basically just a very simple system that is done in Keras using LSTMs to do a generative chatbot. So I'll send something out about this over the next few days. Okay, the hybrid agents. So for me this is where all the interesting stuff is at. And I will give you an example of a hybrid agent. I'll give you a couple of examples of hybrid agents. So this is a hybrid agent that I've made called Kate. There are some emails from people. You have been here recently. Kate, can you tell me how many new articles were published on tech in Asia in the last three hours? Are there any articles in the past two days on AI? There are two articles that were published in the last day. Would you like to know their titles? Yes, please. First article, nine Southeast Asian startups made it into Google's new Launchpad class. Second article, Google Launchpad picks six startups from India. Shows love for AI. So that's... I'll cut this really short. So this is another one where I'll sort of explain what's going on in this one in a bit. Kate, what is your name? I am Sam. I remember you, Sam. Kate, what's on my schedule today? You have nothing scheduled today. Your next event is a phone call meeting with team tomorrow at 8 a.m. Okay, Kate, go into learning mode. Okay, Sam, I'm going to add a learning mode. Kate, create a category called sports teams with the subcategory basketball teams. Okay, I have created a subcategory basketball teams under the category sports teams. Kate, please add the entity, the LA Lakers, to basketball teams and to my likes. Is that the Los Angeles Lakers team? Short main Lakers or LA Lakers? Yes, the Los Angeles Lakers. Is their website NPA? Calm slash Lakers? Yes, that's the correct site. Okay, Sam, I have added the basketball team Lakers to your likes. When are they playing next? The LA Lakers next game is later today. Kate, what are we currently talking about? We are currently talking about the Los Angeles Lakers next game. Okay, so I'll just stop there a few times. So, okay, let's talk about how these work, right? Because they don't always work, all right? So, hybrid agents, for start, you've got speech to text, all right? Now, I would say straight out, speech to text, just use an API, right? There's no point in sort of building your own model for that. These have the ability to access wider info. They use custom NER and POS, so parts of speech tagging, for extracting variables. Now, what Martin showed you early on tonight about building your own NER system? So, Martin was showing you a very simple example of building a NER for, you know, just recognizing names. Now, that's, you know, and he pointed out that, in fact, both Martin and Karthik pointed out that often the challenge with a lot of this stuff is that your, is that it will work fantastic on, let's say, an American corpus, but it won't work on an Asian corpus, or it'll work fantastic on a corpus related to one topic, but it won't, you know, go for another topic. So, the big thing you always want to do is train your own systems for unique stuff. Anything that you're going to be doing that's sort of slightly unusual, build your own model that can then, you know, build on someone else's model, like Martin did building on NLTK. If you want to get really tricky, you could then sort of ping Google's model and use their model to train your model. I shouldn't be saying a lot about that. Anyway, the same, that basically sets it up so that you can then start to recognize more things that you want to. Okay, the next thing is the whole concept of a graph system.  It's one of the biggest things that, you know, one of the biggest stones on the road to AGI is getting, you know, algorithms which can really understand concepts. Now, the way I've done it in that video is I've kind of tricked you, right, by having it so that it's a graph system so that you basically, it understands certain things already and then I can add on to it, add on another node to that graph. So if it understands sports and then I can have another node for sports teams, then underneath that, it could have different types of sports, it could have different sports teams. It has no clue what those things are, but it's very good at being able to create the illusion that it does. The other thing you want to do with these things is that you want to have multiple ways to check the intent. So you all, I think a lot of you understand what an ensemble model is. So instead of just having one way, like I suspect probably the API or AI uses ensemble models a lot for the way it does things. But you want to have, you know, a number of ways to do this. So again, none of, there's only one thing different that I'm mentioning here that we haven't had tonight and that is the character CNN classification. So more and more, and Karthik mentioned a model that OpenAI did where basically they train things on a character level and for some bizarre reason it was able to then learn all this extra information. And we can do things with character level stuff, which then, if you think about it, when you're training something for word-based stuff, anytime someone spells something wrong, it messes up your entire system. Whereas if you do it for character level stuff, even if the person spells the word, you know, 10% wrong, your system will have a decent chance of being able to work out what it's about. So this is sort of a new thing of using character level CNNs. And also, yes, you know, using CNNs for text. It's maybe something we can talk about in the advanced one. So here's an example of the architecture of an intelligent agent. So it's a little bit simplified, but it's mostly there. You've basically got the speech. SET is speech to text. You've got, so I put first layer of intent detection and a check layer of intent detection. Really, you could just use an ensemble, right? You've got entity extraction for knowing at any point what the entities are. You've got some sort of verb extraction for knowing what the actions are. And even though they're kind of part of the intent as well, I think it's also good to have them out, then you've got your logic. So you've got a whole bunch of things going on in logic. Now, then you can also do a thing called translate. You can start to translate. So I will come back to that in a minute. You then can access information. So the way you want to access information is generally through some sort of knowledge graph. And that might be a graph database. I'm going to show you a few of those in a moment that you can sort of use. Actions, just think of that as like an API call. If you want to make an API call to something to find some information out. And you think about it. It's not that difficult to build APIs that do things nowadays. It's not that difficult to use something to scrape tech in Asia, then build an API that, whenever I ping it, it tells me, okay, what are the unread articles and what the text is? So then I can just pull that in and process that. So that's an example of actions. And then you also got unstructured retrieval. So the ultimate API, if you really want to think about it, is HTML. Most people don't think of it like that, but really at the end of the day it is. You ping a website. It sends you stuff back.  If you're not using anything to do with images, then you can start to look for things in that data. And often one of the ways to do this sort of thing is to look at two or three different sources and look for a commonality. And if there's a commonality there, there's a decent chance that it will be what your thing is after. So then you basically generate a response, beam search. You can beam search the response and then basically text back to speech. Knowledge bases. Google has a fantastic one. The Google Knowledge Graph. Most people don't know about this, but if you think about when you run a search, you often see things coming up on the right side, like if you type in someone's name or someone like that, you'll see information coming up about them. That's generally coming from the Google Knowledge Graph. And you can actually access that API. And you can search that API. And then once you've got that API, you can then lift information off that. So some other ones you can use are Freebase, which I think has been discontinued now, and Dbpedia, which is basically like a database of Wikipedia. So the Google Knowledge Graph looks something like this. This is an example for Taylor Swift. And you can see very quickly it gives us a few URLs that we can find out more information about this person. It gives us sort of an article body. It wouldn't be that hard to pick up from here that Taylor Swift is a singer, or a singer-songwriter. In fact, it's even in the description, right?  For Dbpedia down the bottom, you'll see that it's got her birthplace. It's got her birth date, right? It's got a sort of description of her, which is not as useful. But if we wanted to build a bot that you could ask anyone's birthday or anyone's age, it's not that difficult to do. Right? Once you're using a system like that. Does this make sense to people? So the translation bit, and this is still cutting edge, and I think it's one of the directions that I'm very interested in, and I think Martin certainly interested it in, is instead of think about translation as not just translating from English to French or from English to Chinese, but think about translating from English to SQL Now if you think about it, mentally you can do that, right? Everyone understands what SQL is, or any sort of database language. If you start thinking about that as a translation thing, you'll get a lot further along. Okay, the really, really hard stuff, and to be honest, this is the stuff that I spend hours thinking about, asking Martin questions about proposing things, you know, trying testing things out. At least three things, is how do you have stateful conversations? So you notice that I ask her at the end, what have we been talking about? And she can do that. At the moment all she's doing is storing a rough variable, right? There's nothing very impressive there.  And it will know that you're still talking about Barack Obama. I haven't quite worked out exactly how they're doing that and they don't seem to want to tell anyone in the world how they're doing it. Right? If anyone at Google knows, please come and tell me. The other big thing is context. So knowing the context is really important. You know, if we know the context of certain things, we can do a lot of things. Now with mobile devices we can know things like your context of your location. So if you're building some sort of, you know, chatbot app where you're basically saying, what are the top 10 restaurants near me? Okay, if I've got your location, I'll probably kind of work that out, you know, in a number of different ways.  And if I, you know, if I'm saying something quite, if you're watching something quite funny and someone says a joke, you're more likely to take that next statement as a joke than you are as something, you know, really serious. Because of the context of the conversation. That's something still that we've got a long way to go with these kind of things. And I come to take different uses. I basically ask, is this Sam, is this, you know, that kind of thing. Google Home can, right? So that's something at least that's, you know, really hard sort of to do unless you're a multi-billion dollar company. So tips, so I would encourage you if you do want to do any sort of conversational agent. The biggest, biggest thing is try to limit the domain of the conversation. I use Google Cloud for speech. It's probably one of the best ones out there. I try to use what, you know, make use of whatever is off the shelf. In my example, I'm using a lot of things like Spacey, you know, that came up earlier tonight.  So you're trying to use things that are off the shelf, but then use your own models for anything that's going to be unique, anything that's going to be, you know, unusual. And then also try to get as many conversations as possible. If you're doing this for any sort of business case, if you can get access, like if it's, say, for a support thing, if you can get access to a million support conversations that a company's already had, you can predict very accurately what, you know, that they will be doing and what sort of questions people are going to come up with. Okay, that's it. So next time, I'm happy to take questions from you, but next time we were thinking that what we might do is get you to vote on some of the topics. So I think we will send out a link with some way for people to vote, but I... So definitely new machine translation is a really interesting topic in text because it basically uses sequence to sequence with attention. Some of the newer versions of advanced summarization also use attention and you find that increases the abilities that it has a lot more. CNN's for text classification, I talked about that. In advanced buildings, Babel, do people know Babel? Facebook's Q&A sort of thing, we could do that. Or Passisaurus. How many have heard of Passisaurus? All right, Passisaurus is the new sort of pre-made models from Google that kind of do what Passi McPass face does. Oh, can you hotdog, no hotdog? So I'm curious, yeah, like, you know, do people have a preference? Is there anything that people are really interested in? One of the big things for both Martin and I is like we're constantly trying to work out do people want to know, you know, what are the big things that people want to know? The cool thing with sort of text is that you find that probably 70% of what you end up doing is sort of that pipeline stuff that all four of us spoke about. But once you've sort of got some stock code to do that or once you've learned how to do it, you can get through that part of it very quickly. And then it's just a matter of trying out different models, trying out different things. So any questions? Do I have to take questions or...? Any questions? No, I know it's late. Okay. All right. Oh, everyone's just waiting out for the swag that we've got. The old chatbots, you think that if someone does have such a chatbot, how difficult is it to move this over to the generating type? You've got to ask yourself first, do you want to move it over to the generative type? Because the generative type, most times, is not going to be good for something like business or something like that. If you're talking about moving over to the modern type or something like that, yeah, okay, that's actually very simple. Really simple. Please, all of you, just go and spend an hour and build a chatbot in api.ai. You will see how simple it is. And it will also give you a really good understanding of how these things work going forward. Everyone's looking for their name. Any other questions? It would be a vector, right? Yes. How do we convert that into a word? How do we find the corresponding word? If you think about it, in the example that I'll upload over the next couple of days, what I'm doing is basically going from a word to word to VEC, pulling down the vector. In the case that I'm using, I think I'm using the 300, so it's a 300-dimensional vector. You run that through your machine.  And then you use an equation to basically look on word to VEC for the closest word to that particular point in space. And that could be cosine distance. It could be a whole bunch of different equations. No, you don't have to search through the entire vocabulary. You don't have to search through the entire vocabulary. But there are ways that you can do it faster. It's one of the big things that Facebook has been working on lately is exactly that kind of thing, taking a very big embedding and being able to search it a lot quicker. Because you're right, it is something that can be quite slow for certain things. But it's actually very simple to convert back and forth. And you'll find that if you're doing, for most things, you're not going to have a problem. Where Facebook has problems with it is because they're basically... So Facebook runs every single thing on Facebook through a CNN. And it produces an embedding that sort of takes that, whether it's a video, whether it's an image, whatever it is, and then they put it into this vector space. From that, they can see very quickly that if the image you uploaded goes to the vector space where all the porn images are, they won't let this photo go live. And they can do that very simply. They can also do pretty amazing things because then they can start seeing, okay, you uploaded this picture. And this picture is kind of like another picture that someone else uploaded. And so from that, we can deduce that these two people were at the same event. There's a chance that they might have similar interests. If you can stack all these things enough, you can then predict whether they're likely to be friends or not and send them a hint to become friends, all those sorts of things. You're going to see this sort of thing happen a lot more. For me, embeddings are not just for text, embeddings are for everything. If you really start thinking about using embeddings for everything, and I think going forward, that's going to be a big thing, yes? That was the last question. Yes, sorry. Sorry, it's so late. We all tend to ramble, I guess.