Hello and welcome to NewsClick. We are here to discuss today United States' recognition of Jerusalem as Israel's capital and the UN vote that followed it. And for that we have Prabir Pukhaya Stavidas. Hi, Prabir. So I wanted to first hear from you what your opinion is on the massive 128 member state vote against U.S. recognition of Jerusalem as Israel's capital. What kind of message does it send and what impact does it really have on this issue right now? It's an interesting issue because this time United States has been much more isolated than ever before. In fact, apart from Guatemala and Honduras, the two sort of client states in Latin America today and small island states, Marshall Islands, Nauru and so on, no major country has voted for the United States. Its opposition to the resolution that was moved on condemning, essentially condemning United States or violating the United Nations Security Council resolutions on the subject which said Jerusalem is not to be made unilaterally a part of Israel. It is only one part of Jerusalem, which West Jerusalem, which used to be a part of Israel. It's really again a change in 1948 itself. But this Jerusalem was occupied in 67 war and there are various security council resolutions saying that it should not be occupied by Israel. It's a part of West Bank and that's what should not be changed. So United States trying to change it unilaterally has been condemned by a huge number of countries, even its closest allies, including the United Kingdom, France did not vote for it. Of course, there is a certain number of abstentions that took place. But leaving that aside, this has been an unequivocal clear vote against the US trying to change unilaterally the position of Jerusalem. So I think that's a very significant change. Now, the United States has responded by essentially threats. Nikki Halley has said that we will punish the United Nations, we'll punish the countries who have behaved in this particular way. Now punishing the United Nations is a very significant position being taken by the ambassador of United States to United Nations. It's saying essentially that if you don't listen to us, we'll cut your money. Now, this is something that the United States has said in various other bodies, but not to United Nations, that you must always vote what we tell you to vote because we're giving you money. That's never been the position. In fact, it's also interesting that United Nations agreed to be in on US territory under certain conditions. And one of the things, of course, that US would play a significant part of the salaries, the money required for the United Nations. On the understanding, a lot of it goes back to US employees over there. So this threat is a very surprising threat, if you will. But yes, I think this time, US has been much more isolated than ever before in the United Nations. Coming to India on this vote, now India's position around this whole issue for the last three years is looking really odd now because the Modi government has had a really open pro-Israel policy all this while. And also then following up with the sort of support from the US-Israel lobby, so to speak. And even after the Jerusalem decision, the statement from MEA was really vague, a two-liner when there were governments across the world taking strong moves like South Africa, at least condemning it in very strong terms. And now we have the vote, India joined the number of countries that voted against this decision. And we have representatives of the government trying to defend this, or even spokespersons otherwise saying that this is pragmatic. Now at one point it just seems an embarrassing situation for the Modi government to have to take this position after three years of this lobbying. What would you think about this? Well, there are two ways of reading this. One is to read it at face value, which that in any number of times Indian government has said, we stand by our earlier positions. That we are delinking the issue of Palestine from that of Israel. Israel is a friend. We buy arms from them. We have country-to-country relations with them and that we are going to deepen. At the same time, we have our traditional position on the question of Palestine and we'll stick by that. Now we know that this has been hollowed out from the big, from at least last 10, 15, 20 years, particularly when large-scale attacks have taken place here on the West Bank or say on Gaza. That Indian government has condemned not Israel, but the attacks. Sometimes it appears that it was as if it's a natural disaster. We are very sorry that it has happened kind of statement. So this has been ambiguity in India's position regarding Palestine, but on votes, on crucial matters of vote, it has either abstained or it has voted against Israel. So that's been a consistent policy that they have not supported the Israel position on certain issues in the United Nations. This time, there was a fear that India would also abstain, like a lot of other US allies did. They didn't vote for the resolution, they abstained. So they didn't really vote against US either. So there was a feeling that India might in this case join the abstainees as it were. In this case, India has actually voted against. So that's a significant issue. We could read it as a continuation of India's foreign policy on Palestine and Israel or we could read it that this time the OIC, the countries have been far more active campaigning for their position and they have the right on their side because it's true. The UN Security Council resolutions are very clear on this and therefore US was violating United Nations Security Council resolutions, but I think there has also been a message in the capitals of different countries that this is a test case that whether you stand by international law or you don't and if you don't stand by international law, then we are free also to take positions vis-à-vis your country and it stand on various issues. India has two issues to worry about. One is the OIC has not supported Pakistan for a very long time. In spite of what is happening in Kashmir, they have tried to stay out of the Kashmir issue by and large. So therefore if they start talking about India's shall we say human rights in Kashmir, it could be embarrassing for India, but also that India has a lot of shall we say income as a part of its remittance income from West Asia. So it's a huge economic issue for India as well. We buy Israeli goods, we buy Israeli arms, they don't really buy from us. So it's a relationship where we are the buyers and therefore theoretically we should have the stronger hand, but when it comes to West Asia we are really benefiting from the relationship. So we are more vulnerable for economic pressures and this particular case I think pragmatism of the kind that we need to also protect our economic interests with the older position of what is India's traditional position on such issues that it is against colonialism, it's against the occupation of West Bank, I think both have combined. At the same time we have Netanyahu visiting India in January and although this visit was planned since before but in the light of this decision on Jerusalem, this becomes almost like the first endorsement from a third state of what is happening in Jerusalem. So I'm wondering if this gives any kind of confusing message and goes against India's interest like you said in West Asia because it definitely did vote against the US, but soon after that Netanyahu is going to be in a visit and we saw the sort of cozying up, should I say when Modi visited Tel Aviv and this is kind of this visit back kind of a thing. So don't you think this is then going to give or rather give a contradictory message to the same that India might have thought of preserving given the UN vote? Well I think India's calculation would be that we are buying so much arms from Israel so we are really buying them off if you will. So we don't really have much to worry about what can Israel retaliate against us not selling us arms. Well that would not be too bad a thing for Indian military in the long run you will have indigenous industry. A lot of people have complained that we have given our industrial future particularly in the in terms of self-reliance in armaments and give by handing it over to Israel at least the significant sectors of it and we also know that Israeli armaments industry is extremely corrupt and is a corrupting influence. There have been various cases in Israel on that itself and we also have cases in India against Israeli companies for which they have been blacklisted in the past. So I do think, I don't think Israel has leveraged. I think on this India has leveraged therefore the fact that they are going to say come we are friends and so on. Netanyahu has very little wiggle room on that count. I do think that a part of it is ideological that it's really a part of the Islamophobia of this government by which they think Israel and the United States and its war on terror a sort of ideological counterparts to its own position internally which of course they don't say publicly. Point is that it is very difficult for India to lose by taking a position against Israel but they certainly have a lot to lose by not taking a position which is according to international law. So Praveen you've outlined how the business interests interests don't really dictate that India should go with Israel in the way that it portrays itself to go. At the same time Indian media are constantly portrays this relationship as one of necessity for India while as you've pointed out there is actually an ideological aspect to it. So how do you think this image that has been portrayed in media can be addressed or responded to? I think the bigger problem is in the media itself. Today media, big media is very much a part of big capital okay and therefore the interests of big capital dictates what their media will do. That's one of the reasons why over a period of time we see media moving much more to the right A and also becoming much more shall we say manufacturing news in the interest of capital and not taking into account what the people want or the people may feel. Israel being a big arm seller has also a lot of clout with a lot of Indian companies who want to now line up for collaboration agreements and these collaboration agreements therefore also drive what they're interested in. They are the ones who are making the payoffs to big media houses. I would suspect that this is not even this innocent that they're only playing only to interest the big capital but there is also a degree of corruption within the media that there are other perks advertisements from Israeli companies various other things which are also behind. The reason that media today does not want to talk about Palestine but it's primary news is Israel and how good it is for India. So I think there is a bigger problem we have in the media which you need to address. Thank you Praveen. Thank you for joining us. This is all for today. Please do follow us on our Facebook page, YouTube channel and our website newsclick.in


All right. Good morning, Radiant Church. Welcome to our morning prayer time. I want to invite you just wherever you're at to stand with us as we worship the Lord together this morning. I'm going to start by reading out of Colossians chapter one starting in verse 13. It says, For he rescued us from the domain of darkness and transferred us to the kingdom of his beloved Son, in whom we have redemption, the forgiveness of sins. He is the image of the invisible God, the firstborn of all creation. For by him all things were created both in the heavens and on earth. Visible and invisible, whether thrones or dominions or rulers or authorities, all things have been created through him and for him. He is before all things and in him all things hold together. This morning we are seeking after you, Lord Jesus. We are seeking after you for you take preeminence. You take the first place in our hearts, in our lives. We pray right now that you would receive the glory to your name. We pray right now that we would even receive greater revelation of this preeminence, of this first place, even now just stirring up your own spirit, engaging with the Lord, praising the name of Jesus, the name that is above every other name. Just even saying his name, Jesus, Jesus, Jesus, would you take the first place in our hearts, in our minds, in our spirits? There are so many things that take our time and our attention away, but right now would you have our full attention? Would you have all of our affection, all of our adoration? We love you, Lord Jesus. We are gathered today to say that we love you. Take your place.  Love you, Lord Jesus. Just say his name out loud. We love you, Lord Jesus. We worship you today. Take priority, perfect, sinless life, but to sacrifice. There was no way, be of our attention, be of our affection. Bruce chapter 10 it says, Therefore, brethren, since we have confidence to enter the holy place by the blood of Jesus, by a new and living way which he inaugurated for us through the veil that is his flesh. And since we have a great high priest over the house of God, let us draw near with a sincere heart in full assurance of faith, having our hearts sprinkled clean from an evil conscience and our bodies washed with pure water. Lord, would we receive a greater revelation of this? And would thankfulness and gratitude fill our hearts? Thank you, Lord Jesus, that you made a way through the veil.  Thank you, Lord, that we can now confidently, boldly, with clean conscience, enter into the presence of a holy God. We do it with humility. We do it knowing that it was only made possible by your blood. Can you just even begin to thank the Lord? Thank you, Lord. Thank you, Lord. Thank you for the sprinkling of your blood. Thank you for being the sacrifice. Thank you for taking the wrath of God, for restoring us, renewing us, redeeming us, forgiving us, your voice. Thank you. Let us get close. Jesus said that I am the thine and you are the branches and that we must abide in him, remain close. And he says, let us draw near with a sincere heart in full assurance of faith, having our hearts sprinkled clean from an evil conscience. Lord, we ask that even what we think of ourselves or what we have, even our stained conscience from the sins of the past, Lord, let that shame be washed away by the blood of Jesus and let us enter into your presence confidently, knowing full well who we are. We have assurance by the blood of Jesus that we are sons and daughters of the Most High God.  Lord, we don't want to be orphans in the house of God. We want to act like sons and daughters who rejoice in our Father. So we rejoice in you, Lord, today. We rejoice in you today because you have paid a great price to have us with you. You have paid a great price that we could enter in, clean and pure by the blood of your Son. Thank you, Lord. Thank you, Lord. It would be our strength even now. Filled with joy in the house of the Lord, being a people covered in a veil of shame and anxiety, wondering and supposing, does God approve of me?  You have been botched. You have been redeemed.  So we stand in awe and wonder, rejoicing in the miracle of God that is salvation, placed in the miracle of God that is your salvation. David said, Lord, restore to me again the joy of my salvation. God, we ask that you restore to your sons and daughters the joy of salvation.  What does it look like to be a confident daughter? Restore this now to us, Lord, as we rejoice in your presence. We have confidence in you. We have assurance.  And I hear the Lord even inviting you into a season of being lighter in his presence, not being burdened down by shame and condemnation, for there is no condemnation for those who are in Christ Jesus. Lord, we lay down every burden that has held us, fusion and anxiety. Lord, would we see ourselves the way that you see us? Would we understand our position as sons and daughters of the Most High? Would we not be like the prodigal son that came with his head bowed low in shame to the Father? But would we see how you're receiving us right now?   And I pray in and shame we break it off in the name of Jesus. We shake it off in the name of Jesus that we might stand in confidence in the presence of our God, just to your spiritual reality. It's only possible by his action, his redemption, you receive it as a free gift. We walk out the reality of who he says that we are. Lord, would you continue to teach us what it looks like to be a son and a daughter in orphans for too long? We've been slaves for too long. We wear this garment, we wear this identity that you said you don't have to wear that anymore. You have the ring of my family. You have the identity of a son, a daughter of the Most High God. You have been purchased, you have been redeemed.  Lord, we thank you that we belong. We are no longer lost, we are no longer slaves in orphans, wondering and supposing if we are approving of us. If you receive us, you receive us in the name of Jesus.  People want you to contemplate for a moment.  What would you look like if you acted like a daughter of the Most High? How would you act differently? How would you speak differently? How would you worship differently? How would you ask differently? Lord, I pray that today you would teach us what it looks like and that we would have the confidence to act like sons and daughters, to draw close to the throne of grace, to draw close to our Father. We look like it, voice in His presence together. We rejoice in His presence. I want to feel comfortable in God's presence. I don't want to feel like I'm out of place or I don't belong. A son walks into his Father's house and he owns the place. He feels the comfort of his Father's house. He enjoys the blessings of his Father. Can we just even enjoy the blessings of our Father right now? Just even let Him loud it upon us, lavish it upon us. Even right now, God, I pray that the love of God would be lavished upon us, that we would receive it, not arguing with it, not giving excuses, but we receive the love of God. Here I'm singing, the Lord delights in you. Delight in Him. Delight is in us. The last few moments, I want to invite us to go into a time of prayer and intercession for the church and the people of God as we've been praying here out of Hebrews chapter 10 and bringing in the realization of, as sons and daughters, we act differently in the presence of God. And I just heard the word for this prayer time being joyful obedience to the Lord. It goes on to say in verse 23, let us hold fast the confession of our faith, of our hope, without wavering. For He who promised is faithful. And let us consider how to stimulate one another to love and good deeds, not forsaking our own assembling together as in the habit of some, but encouraging one another. And all the more as we see the day drawing near. Lord, we pray that as your sons and your daughters as your church, that we would act like that. We would behave like sons of the house, daughters of the house. And Lord, in the place of doing of love and good deeds, would there be a spirit of joyful obedience to you? Oh Lord, Lord, we have heard your commands and your son Jesus said, if you love me, then obey me. Lord, I pray that as sons and daughters of the house, we do not just go out and try to live out a religious life, obeying laws and rules, but God, we have a joyful obedience because we want to be close to you. Lord, I pray that you would encourage the church, encourage your people, encourage our hearts to walk in love and good deeds, joyfully obeying the commands of the Lord.  And we want to love you through our obedience to you. So in Jesus' mighty name, we ask for joyful obedience to be a marker of the people of God and to be markers of sons and daughters. You mark us with steadfastness, strengthened and encouraged by your spirit to walk in love and good deeds. Lord, would you encourage us? Give us the courage to be able to make decisions that look like citizens of heaven. Lord, we don't live under the laws and the rules of this age, but we live beneath the laws and the rules of yours. And Lord, it is not in a place of not just getting our get out of hell free card and are just not sinning and not doing wrong, but Lord, we want to be spurred on to good deeds. We want to do the acts of your kingdom. It says in Ephesians that he has prepared good works for us ahead of time. These good deeds do not save us. These good deeds do not earn us anything. So Lord, we do them with obedience and we do them with joy. We want to bring joy to your heart. Lord, I even pray in the areas where the church has been disobedient, where the church has been deaf to the ear of the Lord. We have been slow in our reaction. Lord, would there be a spirit of obedience on the church to hear what you say, to do what you're doing, to be a part of what you're doing, Lord? Lord, just even now ask the Lord to encourage his church. With your own words, Lord, encourage our church. Encourage your people. Encourage them towards love. Encourage them towards obedience. Lord, for the discouraged among us would even us as the people of God have a word of encouragement on our lips. When someone fails, when someone falls, we are there to encourage them and help pick them up. Lord, we are weak in Hebrews 4.   What does joyful obedience look like? What does it look like to delight in the Lord with our obedience? It's not just a fleek in the stillness of this moment to allow the Lord to speak to you and ask him, Lord, where can I be obedient to you today? How can I be obedient and give me the strength and the courage to do it with joy? Father, show us what obedience looks like today. How can we bless your heart today?  Bless your heart today. In Holy Spirit, I pray that you would strengthen us to carry it out. It's in Jesus' mighty name. Well, thank you so much for joining us for our morning hour of prayer and I encourage you as we pray things here. It's not supposed to stay here, but it's supposed to carry into our lives today, into our schools, into our homes, into our workplaces and what we go is joyfully obedient to the Lord today. Have a great rest of your day.


Today's Trending Topics from eslgold.com Now you can be part of the conversation. We're here to help you. Know what to talk about. Understand what people are saying. Bring your speaking skills to the next level. Okay, let's get started. What's everybody talking about these days? What's trending? What do you need to know about the topic? What do you want to say about it? How do you say it? Ready? Today's topic is... Da-da-da-da! Smart Speaker Who? What? How? What is it? A smart speaker is a device that plays your favorite music, provides answers from verbally introduced questions, and controls parts of your home using a built-in virtual assistant feature. Smart Speaker expands what we normally think of as a music playback system, from LifeWire.com. A famous brand of Smart Speaker is the Echo Dot from Amazon.com. Let's dig a little deeper. Vocabulary words you need to know to talk about this topic. Speaker This is the electronic sense. Smart also in the electronic sense. Device Features. These are special characteristics. Voice control or voice controlled. Command or commands. Virtual or digital assistant. Music playback. Stream or streaming. Wirelessly. Built in as part of the device. Let's learn more about these words. The word speaker has many meanings. A speaker can be a person who is talking. That's not what this means. A speaker here is an electronic device that supplies and amplifies sound. Speakers usually come in pairs. They're connected to other devices by cables or wires. Smart speakers can interact wirelessly or without wires with other smart devices. A device is an object, tool, or machine that performs a special function. What's special about smart speakers? Voice control. This means that you can activate the device by talking. Command means that you tell it what to do and it will perform the task. Command can also be used as a noun. It's something you say. In that way, it is a virtual assistant. Virtual means almost or not 100%. Even though it's not 100% real, it can perform functions that a real person, machine, or system might do. It's also called a digital assistant. Some famous brands are Alexa, Siri, and Cortana. Music playback and streaming. In the olden days, when you wanted to hear a song, you could buy the CD or recording and play it back on your home device or player whenever you wanted. That was quite expensive because you had to purchase the song or songs in a particular format and a machine to play them on. You could also wait for a radio station to play the songs and listen to them for free but you had little control over when and how the songs were played. With streaming, you don't have to purchase a stored recording of the song. The songs are held elsewhere and you access them one by one through an online service which sends or streams them to your device in real time. Think of a river or a stream that flows and brings you, in this case, information or music or media. Your turn. Let's have a conversation. Ready to talk about this? Here's a sample conversation. Guess what? I just got a new Apazot smart speaker. That's great! What does it do? Well, it streams music. I just tell it what songs I want to hear and it plays them. Wow! How do you activate it? It's voice controlled. It's a virtual assistant that follows my every command. What other features does this miracle machine have? It tells me the information I need and it has built-in functions to control the temperature and connect wirelessly to other smart devices around the house. Maybe I should get one. Okay, Spalexa, get my friend an Apazot. Watch your credit card number. Hey, now wait a minute. Make your own conversations about smart speakers and other electronic devices. Use some of the new words you've learned. Also, here are some phrases you can use to get you started. If we want to talk about a certain topic, sometimes we start the conversation with the phrase, guess what? This means I have something interesting to tell you. Normally, another person might say, what? Tell me. They don't always say that. Sometimes you just tell them the information. I just got a new device, whatever that machine or device is. Really? That's great! That's wonderful! That's amazing! What does it do? What can you do with it? Well, I can or it can. So this is a good way to start a conversation and continue it with your partner. It's your turn to practice. Talk to a partner, pretend you just got a new device and tell them about it. Pause the video and take as much time as you'd like to practice this. Conversation 2 Pretend you just purchased a new electronic device. Describe the device and its features to a group of friends. Convince them that they should buy one. For example, let me show you or tell you about my new device. Tell about what it does. Tell about some of the functions. It has tell about special features. It comes with tell about built-in elements of the device. Then another person might say, what about this? Or what about this particular feature? And then you respond to questions about your new device. Another person might ask information questions. Where? Why? How? Respond to them with more information. Feel free to pause the video and practice having a conversation with your friend or friends about an electronic device. Talk more about electronic devices. Take as much time as you'd like. Show and tell something about your device. Or just talk about a device that you're thinking about buying. Go ahead. Use some of the conversation strategies and vocabulary that you just learned. Have fun and talk for as much time as you'd like. Hope that was helpful. Remember to review the words and phrases you learned from this video. And if you liked this, give us a thumbs up in the comments section below. Don't forget to subscribe to our channel. Check out the links below for more information about these types of products. Thanks for watching. This video was brought to you by the following English learning websites.


So, bienvenido Álvaro Barbero, Chief Data Scientist at IIC, Álvaro, welcome. Great to see you. Thank you, Nicolas. Thanks for the introduction. So, that's right. I'm going to talk about how to find your natural language models for the Spanish language. And with experiences we got in working with these kind of models. So, let me just share my slides. We will get going. Okay, here you are. So, the first thing I would like to mention is that I was already present at big things last year, so I'm grateful for being here once again. And I'm not only mentioning this to give thanks, but also because my last year's talk was quite related to this year's talk also. So, let me start by saying that previously on being things, okay, you know how these things goes. Okay, so what was my last, my talk last year about, so it was also about language models. And I'm just going to give you a very brief summary of that because I think it's relevant to understand what I'm going to talk today. You don't need to actually have watched this talk, I'm just giving you the summary. So, last year I proposed this problem. Let's try to solve this cattle competition about text classification. But instead of using the whole training data set we had available for this, let's try to use a more real world like version of this data set. So instead of having like 100,000 data points available, we just use a thousand 600 texts for training our model. And this made things quite more difficult, because now you have to put a lot of engineering and thinking in your model, and you can trust just the big data to do everything for it, right. So there are a lot of techniques that you can use from the world of NLP here. And here's a summary of what works and what didn't. So if you use standard models, and when I say standard models, I'm talking about just very basic machine learning models like doing bug upwards and doing random forest linear models, so on. Well, this can only take you so far, right. Of course, if you use recent advances in neural networks like LSTMs, gated recording units and all that neural things stuff, you can do better. But there is a significant point of improvement that is very useful when you have so little data for training. It's when you use parts of the network that were pre-trained with a different data set. So when you use transfer learn. And you can see in this plot that when we use the fast text embeddings to get some significant improvement. So fast text is there are some embeddings that were pre-trained by Facebook on a general data set of the English language. And if you incorporate that into your model, it means that you don't have to learn that thing. Okay, but take a look at what worked best for this problem. So we have this logo here of this hugging phase. Actually, this is the name of the company that creates this library, hugging phase. This library is called Transformers and it worked really well for this problem. So what is this Transformer thing about? Why did it work so well in this problem with so few data? Well, the idea is that this library mainly uses language models, which will be the main point of this talk, right? So what's a language model about? Well, if you think about it, about the way you learn any language, actually, you should need to do it in two steps, right? Just think about it in the way a baby learns language. You first learn to read or learn to speak, let's say, and then after you are, let's say, proficient in that, you can start doing some more interesting things like classifying topic, detect the emotions, summarize the arguments, answer questions out of different tasks, right? But before doing all these interesting stuff, of course, you need to learn how to read, right? Now, the point is that in most of our NLP models, we try to do both things at the same time, because we just have a single data set, like the dataset that I just described for this Kaggle task, and we have a model that starts with no knowledge about language and tries to learn everything to be able to classify these texts into different classes, right? So it's a lot of learning efforts we are putting into the model, right? So what happens if we split the training procedure in these two tasks? So this is what language models are currently doing. And just to give you an example, BERT is probably the most famous language model. It was introduced about two years ago by Google, and they performed the training procedure in this exact two-step way I described. So first, you take a very large dataset of the English language in this case, or any language you want to model. And this dataset does not need to be labelled. So this means you can use the whole Wikipedia, for instance, or any dataset of books or dumps of the internet, just really whatever. And you make the model learn how words are structured in this language, okay? So once the model has learned this part, which is akin to the idea of learning how to read, you can now fine-tune the same model to your specific natural language problem, right? So for instance, in this slide, you can see spam classification, which means you will take your small dataset of labelled data about spam or non-spam messages, and you will fine-tune the language model for that task, right? So how actually is this performed, right? Because, well, probably most of you understand how a language, well, how a model can learn from a labelled dataset, but what about the first part about the unlabeled dataset? Okay, the key idea is to build a language learning task by, well, changing a little bit the unsupervised dataset we have constructed. So the first task that was used in BERT for learning the structure of the language is called mask language model. And the idea is very similar to what you might have seen when you are doing exercise to try to learn a second language. You will take a sentence, pick a word from that sentence, and take it out. So you just leave a blank space there. And the model tries to predict which word is now missing from that gap, right? So in this example, in this slide, we remove the improvisation word. We replace it by a special word called mask. And the model needs to predict that. And the way it does it is, well, BERT is essentially a very large neural network, which is a deep network. I will fine-tune all the weights in the network to optimise this task. So filling out these gaps you are creating. So this is the first task used for learning these language models without actually having levels. And the second task is a little bit of a higher level task in which you will take two sentences from the sentence. And tell BERT, OK, BERT, this is a positive sample, OK? Then you will take two samples from different documents, put them together as well. And tell BERT, OK, BERT, this is a negative sample. So in this way, what BERT is trying to solve is a minor classification task in which it's trying to tell apart phrases that came from the same document or from different documents. So you are trying to make this language model understand a little bit more of the overall architecture of the document or the overall structure. Right. So we need to understand the structure, right? The correlations between words and the sentence and so on. And then after that, you can perform this fine-tuning step I told you about which you can perform a few more steps of back propagation to tune your neural network for your specific supervised data set. OK. So that's great. And the thing is that, well, this was the first language model. But since BERT was created two years ago, we have seen an incredible evolution in language models. In this plot, you can see how as time has evolved. We have been obtaining language models with more and more parameters. So here, parameters means that the deep neural network we are using to learn the language is larger and larger and deeper and deeper. It even goes to the point in which you have a GPT-3, which was released last summer by OpenAI. And this model has 117 billion parameters. So it's a huge model, right? So it's so large, you can't even use it for, let's say, business as usual tasks. But it can be able to solve very complex problems. Now the thing is, well, we have seen this evolution here, right? And now the point is, well, we have seen some improvements not only in the size of these language models, but also on different aspects of these models, like improving the architecture, improving the efficiency. I have summarized more or less how these models have been improvement in these two trends we can see here. So we have either models that try to exploit larger datasets or they build larger neural networks so they can learn more from that data. And there is another trend which goes in parallel, which tries to compress these models. So try to build the smaller models that perform at more or less the same level of accuracy in your NLP task or architectural improvements, which actually try to learn the model in a different way, maybe using slightly different layers or slightly different ways of learning from the data. So you can actually make this learning procedure more effective, right? So here we have some examples of both trends, like Roberta from Facebook, T5 from Google, GP2.3 and GP2.3 from OpenAI, this particular from Hagenphase, Borg from Amazon, Barton, Albert again from Google, and ProphetNet from Microsoft. So we can't really have a clear code of whether each one of these models is following one trend or the other. Some of them provide mixed improvements, but actually we can see that the evolution of this field is more or less following these lines. Right, so that's great. It's not that only companies that have very large clusters can use these models. We also have smaller versions that can be used for, let's say, our daily tasks. And the thing is that this doesn't seem to stop here, right? So this plot you are looking at right now is extracted from the GP2.3 paper. And what you can see here is that when you use a larger model and you spend more time optimizing that model, the improvements you have in these language learning tasks are quite noticeable. And we haven't yet reached a point in which increasing the model even more doesn't provide additional benefits. Of course, the issue is that for every step of improvement you have to build the model size. So it's more and more costlier to build these models, but it seems that we still have a long way to go in terms of making these models bigger and more efficient and getting further improvements in our NLP tasks. So, well, that's great since we have a promising future in this field. But the thing is, if we take a look at all of these models, it seems like they are very focused on our very specific language, right? So Bert was created for the English language. Roberta, which is the Facebook version, also speaks in English. We have GPT-3, GPT-3, which also speaks in English. We have Bart from Google and also Albert that also speaks in English. So, well, maybe we could ask a question. So, Albert, how is your Spanish language going? Hmm. Not so well, right? So, where are the other languages? So, we are focusing on Spanish because, well, this conference used to be named 2 years ago, Big Data Spain, and I also work on a data science firm on Spain, but we could ask the same question for their languages. Well, fortunately, we have a multi-lingual version of Bert. So, this version was trained with 100 Wikipedia's, which were selected by, well, basically taking the Wikipedia's, which a larger number of pages. So, we have here documents from Spaniards, German, Italian, Russian, Chinese, Japanese, and so on, up to 100 languages. And they built a single language model that was able to work with all these languages. So, this means, in particular, that you have a CERVO vocabulary, which includes characters from the Latin alphabet, but also Celeric, Kanji, Hiragana, Hangul, and so on. So, this is a larger model, but actually it works. It can be used for different languages, other than English. So, we made a little test to see if this works so well, if we could apply this in particular for the Spanish language. So, the test we created was based on the TAS task. So, TAS is a competition that is performed every year in Spain. It follows a conference called CEPLIN, which is about the Spanish natural language processing community. And, well, this is a sentiment analysis task, right? So, we get some short texts, and we try to predict whether this text is positive or negative. And this interesting thing here is that this task is defined for the Spanish language, but also that it mixes several Spanish variants. So, we have texts from Spanish speakers of Costa Rica, Spain, Mexico, Peru, and Uruguay. We created, let's say, an artificial data set by aggregating different data sets from several years of this competition. And, well, you can see here the results for the test data set we prepared. So, it seems that when you use these classic methods, like, again, bag of words, random forwards, and so on, even if you use some embedding methods that the embedding is provided by spacing, you're still far away from the performance of this multi-language model. And even if this model wasn't specifically designed to learn how Spanish works, it was very well for a Spanish task. So, that's good news, right? So, most of the language models we have around are for English, but this multi-language model works well in Spanish. Now, the thing is, if you take a look at the community, you can see that some language-specific models are starting to appear. And here you can see some funny examples, like, we have Camembert for the French language, Robert for Dutch, Grigbert for the Greek language, right? So, what about Spanish? So, it's one of the most spoken languages in the world. Well, fortunately, we do have a language model that is specific for Spanish, and it's called Beto. It was created by some researchers at the University of Chile, the Computer Science Department. An interesting thing about this model is that it closely follows the architecture of the original BERT, but with some of the improvements that Roberta introduced, this model by Facebook. It's also available in the Transformers library, so you can use it straight away. And also an interesting point is that they use a new corpus, a new dataset that these guys created by aggregating a lot of different sources of Spanish documents, like Wikipedia, books, documents from the European Union, and so on and so on, right? So, we have a dataset of three billion tokens that was used to train this model, and this model is specific to the Spanish language. So, this will be something useful for Spanish NLP tasks, right? Well, we tested it in the same task as I showed you two slides ago, and indeed the improvement is quite significant. So, we already got an improvement by using a language model that wasn't specific to Spanish, but when we do actually use our model specific to Spanish, we get a further 10% improvement in F1 score of this task. So, this is a very significant improvement. So, that's great. Good news. This BERT language model works very well for Spanish. Now, the thing is, we wanted to try it a little bit more. So, we designed this experiment, which is a little bit mischievous, if I might say, because we wanted to test what we call the domain gap, which means we are going to build a model, so we are going to find you better for a domain of language, and we are going to test it in a different domain. When I'm talking about domains, let me give you an example of what I'm talking about. So, this is a problem about tweet classification, again, about positive or negative opinions. And the first domain is related with tweets about social issues, like where people discussing about politics, feminines, inclusive language, and so on. So, we trained the model in this domain, and then we used that model and changed it to classify tweets from a completely different domain. This is the domain too. You can see in the slide, and it was about customers expressing their opinions or complaining about different supermarket chains. So, you can see there are two completely unrelated domains. The task is the same, it's sentimentalizes, but the domain is different. So, the language used there is different. You can see here some examples of the kind of tweets we gathered. They're in Spanish, of course, so for non-Spanish speakers, just let me tell you that. So, in the first example, for instance, we see somebody saying that they are in favor of associations that are against violence towards women and child, but the negative tweet says that, well, it's complaining that somebody seems to be very interested in these feminist issues now, but in the past didn't pay much attention, right? So, these are the kind of discussions we're working with. While in the second domain, you can see a positive tweet that is so in support in favor of some supermarket chain. While in the next tweet, you can see somebody complaining that he's never going to buy again in the supermarket chain, okay? So, these are the kind of tasks we're trying to solve, positive and negative. And here are the results. So, again, we are comparing a classic machine learning method, like TFIDF plus a linear model against Beto. And you can see two bars here. So, the blue one is the results we obtained for the first domain, which was the domain in which we train our model. And the orange one was when we actually tested this model and changed it into a different domain. So, the scores are normalized. So, the performance on the first domain for the first model is 100%. And you can already see there is a domain gap there, right? When we try to apply the same model for a different domain, even if it's the same task, we see a drop in performance, which is to be expected, right? Because the language is a little bit different. So, what happens if we use a language model like Beto? So, what we see here is that, first, we have an improvement, a general improvement, just because we are using a language model. So, we go from 100% to 100%. 10%. And then the domain gap we find when changing domains is actually smaller. And this makes a lot of sense, because the first method is based on just counting words, counting expressions. And then the method based on a model language has learned the general structure of the language. So, even if you change domains, because it has seen data from a lot of different domains in the pre-training stage, it knows more or less how to do the jump, right? So, that's a little bit of a hard way of explanation, but this seems to be the main reason. Right, so, again, this works very well. Now, there's one more thing. What happens if we compare this language model, which we have and works beautifully, against the latest language models in English? We can see a huge difference, because just starting from the training data set, so, the data sets we can find for the English model language are like 20 times larger. And this makes also that the model, like the neural network you are training, is also quite larger. So, GPT-3 is probably an exception, because it's too large for most practical applications, I would say. But some other language models that work very well in English are like twice or three times the size of the language model we have for Spanish. And this also implies that you will need better hardware to train, right? So, the language model we have for Spanish is great. It works very well. But there is a clear way of improvement, right? All of the improvements that we have been looking at for the English language in these past years, in these two years, can be applied also for the Spanish language. So, there's a long way to go. And thus, because of this, let me introduce you to the RigOberta team. Okay? So, we are a team of experts in Spanish NLP, and the team is comprised by different a variety of experts from computational linguists to computer scientists, machine learning experts. And our objective here with this project is to build a new language model for Spanish, which we are going to call RigOberta. And our plan is to build a model that works better than the one we have right now by incorporating all these new features that English language models have been showing in the past years, past months, let's say. So, we want to incorporate five key ingredients here. So, first, we are going to build a larger corpus. We also want to do a more detailed control on the kind of texts that our model will learn from, so better corpus quality. This will imply that we will also need to use better hardware. And we will also want to incorporate into the neural network model itself some of the advances we have seen, again, in recent English language models. And there's also a final key step that we want to try, which is to be able to do domain adoption. In order to even reduce more the domain gap I have been talking before. So, let me tell you a little bit about these points on how we are doing this right now. So, the dataset we are building for pre-training this model is built from three different sources. The first one is called OSCAR, which is an openly available dataset that you can find. It's split by languages. And also, well, basically it's a dump of the internet, right? And for the Spanish language, you have about 26 billion words there that you got there from. So, that's a lot of content, right? We also are adding our own dataset that we gathered from different providers, which is about 128 gigabytes of news from different Spanish media outlets. And we are also adding the Spanish Wikipedia, which is actually not so big compared with the other datasets. But it's a useful reference for high quality texts. So, let me tell you what I mean when I'm talking about high quality texts, which is another key ingredient we are thinking about. The idea is that we want to take all these massive dataset we are building and filter it a little bit in a way that many tests that are not really representative of language are being dropped out. So, we are doing this in three steps. So, first, we are going to, well, we are actually removing duplicates that we can find in the dataset. So, even if these datasets are more or less curated, you can sometimes find the same piece of news in different parts of the dataset. So, we want to remove that to have a more faithful representation of the dataset. We are also removing some texts that may include a significant part of the text in a language different from Spanish. And we also want to add this quality filter so that texts that are more similar to how people really write in Spanish are the ones that are given more relevance when training our model. Right. So, for instance, to remove the text that are from a different language, we are building now two lists of characters, one which we call the positive list. So, you can see here there are characters that belong to the Spanish language, like those from the Latin alphabet. But also, you will find we also have symbols, numerals, different kind of emojis that we find to be commonly used. And we do want our model to learn embeddings for those emojis. And on the other hand, we also have another set of characters which are not so useful, right, because there might be characters from different languages like Korean, Japanese, Chinese, or there might be special unique characters we don't want in your data or emojis that are not so common so we don't want to actually pay the time to learn embeddings for them. So, that's one filter. Now, the second one is our quality filter. And the idea is that we developed inside our team a guideline of which kind of text we consider to be of high quality. So, to give you an example, this means, okay, any text that looks like HTML garbage, like a lot of HTML levels and so on, we don't want that in your model because that's some text that somehow entered into the dataset but it's not it doesn't represent that of the way people write Spanish. And on the other hand, like news or pieces of Wikipedia articles and so on, those are high quality text. Okay, so we standardize this definition of what means to be a text of high quality. Then we manually level a golden standard of text of high quality and low quality. And with this golden standard, we trained a simple machine learning model that just by taking a look at work counts and simple features is able to produce a score. So, you input a text and it tells you the quality of this text is 90% or 10% or so. So, the way we want to make use of this is just by shortening all our data by this quality score and making our language model to start learning by looking at the top quality text and keep going down the list. So, in this way, we are going to put more focus on text that looks more like the text people using on the internet on different sources, like real Spanish language. Right. Now, to train all of this, we are now currently testing different hardware platforms. So, we are now currently benchmarking GPUs and GPUs. We don't have a clear cut winner right now because that's also something we are doing right now in this project. And we are also incorporating some technical details from different language and English that have worked very well. Like, for instance, using very large batch sizes. This has provided very good results in the Roberto model or changing a little bit these pre-training tasks like what is done in the Albert model or this cleaning procedure that was using GPT-3s and actually our clean procedure is heavily inspired by that one. So, those are some improvements that by the same cost of training the model can provide actually results, which we expect we will result in a better model. Right. So, there is one more thing that we want to add, which is domain adoption. Our plan is that we are going to be a general language model for Spanish, but after that we want to perform some more fine-tuning iterations to learn how particular domains of language are well, are structured. Like, for instance, we are now working on the legal domain and we want to create our legal version of Rigoberta, which we can now then apply to problems in the legal NLP sector. And I can say that we are working together with the law firm Garregas in trying to find applications of this model in the law sector, which is a great opportunity. And we also have in mind that in the future we might be specializing in this model for biomedical and other different tasks, right? But this is our plan. So, now, what can we tell about the model now? Just very quickly, what we have done so far is to create an alpha version of Rigoberta by running more training iterations over the beta model using our dataset, right? And with this, we have already seen some improvements. So, here you can see the learning curves. We can see how, as the learning progresses, we are able to obtain better results when we use our cleaning pipeline versus when we use the unclean corpus. So, it seems like we have cleaned the corpus, the dataset, is useful. The same happens if we use larger GPUs, which means we are using larger batch size. So, as we got from, as we learn from different papers on the English language models, it seems to be an ancient idea, and indeed, it looks like that. But to give you some more specific results, we also tried this on a document classification task. And just very briefly, we gathered some tweets talking about the Spanish city of Toledo, and we tried to classify them in nine different topics, which are highly unbalanced, and also they can be mixed. The same tweet can belong to different categories. So, we compare different models in this problem, and we got some surprising results. Because, since this is a document classification model, semantics are not so relevant. Basic machine learning model works quite nicely. And actually, the language models we have before doesn't work so well, but it seems that with these alpha versions of Rigoberta, we are actually, right now, being able to obtain slightly better results than with the classic model. So, this is a good piece of news. It seems that the work we are doing is actually working out. And now, what do we plan to do from right now? From right now. So, our next step will be to completely build this corpus, this training dataset, and to finish this cleaning pipeline. And then we will gather a cluster of GPUs or GPUs, whatever we decide to use, and train this model from scratch, right? So, we don't depend on the way Beto was trained, and these might allow us to go one step further, right? So, this is our plan for the end of this year and probably next year. That's also to give you some final conclusions on not only our plan on NLP, but also the general idea is that, well, language models work really, really well. Like, Joffrey Hinton was in this tweet joking about that maybe building larger and larger models will give us the answer to the question of what's the life, the universe and everything. And also, François Chalet, which is the author of Keras, said that, well, you might keep building these models larger and larger, but this doesn't really take you to strong AI in the same way that building taller and taller towers won't take you to the moon. It means, well, we are kind of going in the right direction. So, these models are better and better. But probably with this technology, we won't be able to actually build a really strong AI, like a language model which you can talk to and can reason and answer you in a human way, right? And the reason is that this is kind of like the old Chinese box dilemma, Chinese room dilemma. So, from the outside, you see a very large model that has surprisingly good results, like the results you have probably seen for GPT-3. But on the inside, it's just a giant correlation machine. This is what we have. These models do not have a real grounding on what each word means, what's a pen. The model doesn't know. It doesn't know that the word pen goes together with these other words. And with that, it makes very beautiful rich science, but it won't give you strong AI. So, what I'm trying to say with this is we are not really closer to the perfect NLPA. Alvaro, hi.  Would it be possible for you to wrap things up fairly quickly? Actually, I was wrapping already. So, just my final phrase is the final sentence that these models won't take us to strong AI, but they will be more and more useful in practical problems. And that's my key takeout. That's fantastic. Thank you so much, Alvaro. So, we have time for a few questions. That's great. Thank you. Very detailed presentation. Fascinating. A question from Angel. He asks, when do you expect to get final results from the Rigoberta project and what business application do you plan for it? Okay, good question. Our original plan was to have this model finished by the end of this year, but cleaning in Corpus is becoming a little bit more difficult than we thought. So, we are still working on that. So, maybe the first months of next year. And for practical applications, we are thinking about, well, sentiment analysis, document classification, but maybe also document summarizing is something we have in mind. Okay. I'm curious about NLP in general. And I'm wondering if some languages are intrinsically more difficult for any NLP. You mentioned the multilingual BERT platform that was adapted for 100 languages. Does it perform equally in all languages? Or are some just easier structurally, or because of the pronunciation or for whatever reason, they're always going to be more of a challenge? Well, we do have the hunch that Spanish is more difficult than English because of the more complex structure of the Spanish language. But it also highly depends on how much data you have of training. For languages in which you don't have so many data resources, it will be more difficult. Right. And you started to outline some of the sectors that you're going to be working in going forward. I think you mentioned the biotech sector. Can you talk in a little bit more detail about where you see the greatest opportunities for what you're doing right now? Okay. So we have a parallel project that is about building some kind of question-answering bot in which you can ask it questions about COVID, about different things about this virus. And it will try to look in the database of documents and tell you, well, I think the answer to this question is this one. So if you improve the base technology you are using, which is the language model, you will be able to build a bot that can give you more accurate answers to your questions. So that's one of the applications, but this is a general technique, right? So once you improve the base language model, all your NLP applications can benefit from it. Right. I don't know if you have this kind of information or data, but is it possible to quantify just how big an industry NLP is in 2020 and how much it's grown over the last few years, just to get a sense of how important this is becoming now? Well, I don't have precise data to give you, but I will say that at least the interest, let's say the industrial and academic interest in this field has grown in the last years. You can see it in the number of papers, all this in the number of applications we can find around. So I will say it's a rising trend right now. We have some requests for your slides. Will you be sharing those later? Yes, of course. Is there some way for people to get them? Well, I guess we could share them through Twitter. We might send a link, okay? Okay. So if you follow me on Twitter, I will try to share them that way. Fantastic. That was another request for your contact details, but people can always reach you through the networking platform as well. So, Alvaro, once again, thank you so much for that highly entertaining and interesting talk. Hopefully we'll see you again next year. I hope so also, okay? Okay, thanks so much. Thank you, Nicolas. Thank you, everyone, for listening.


friends welcome back to the channel a brand new legendary terror raid event has been announced for pokemon scholar and violet we're going to cover all of the details in today's video as well as some pokemon you can take into these raids to beat them with and get them easily in your games so again at the end of the latest indigo disc trailer we had the announcement of the next terror event that will be happening in pokemon scholar and violet and this time we'll be for two legendary pokemon featuring diarga and palkia they will be coming to the games later today as a recording this on the 7th of december so prepare for battles of pal day and proportions when diarga and palkia appear in five star terror raid battles these will be five star terror raids they won't be seven star terror raids they won't be as powerful as we'd normally see these terror raid events so not too difficult to take down you'll be able to take on these legendary pokemon from thursday the 7th of december at 4 p.m pst which translates into about midnight utc which is about 9 p.m eastern time as well diarga will be appearing in pokemon scarlet so that will be exclusive to scarlet players whereas palkia will be exclusive to pokemon violet so you will be able to go online if you've got an online subscription and access other raids that players are hosting for the opposite version that you don't have in your copy to get both of them in one game and it does outline that you can only catch diarga and palkia once per save file so you can't catch multiple of these which makes kind of sense but you can keep challenging them to obtain more rewards after you've caught them so hoping the reward drops for these two pokemon will be good you'll be able to find the five star terror raid battles after completing pokemon scarlet and violet's main story however players who haven't completed the main story may still participate in terror raid battles by joining other trainers in multiplayer so even if you haven't finished the game you'll be able to access these online you can participate in terror raid battles against pokemon that won't appear in the version of your game you're playing by joining terror raid battles hosted by a trainer with the opposite version of the game like we've just outlined we do need the paid online membership to be able to do this but both of these pokemon look as though they will be dragon types their terror typing will be dragon we don't know much information other than that as of yet but the events will be going live later today like i say and we will be streaming the terror raid events here live on the channel so if you've got a copy of violet and you want to be able to grab a copy of dialga i will be hosting them tonight and i will try and do on my violet as well for those of you that have scarlet so you can grab palkia and we'll be able to do these and run through them pretty easy like i say they are five star raids now i have prepared some builds in game just going into these i don't know if they're going to be useful but obviously we'll find out when the raids go live but two pokemon that come to mind straight away are flutermen and azumaril azumaril in particular because it has got that fairy and water typing it will be neutral or at least taking neutral hits from dialga because it is going to have access to those steel type attacks being part steel and dragon it's probably likely going to have flash cannon and it doesn't have any way to kind of boost its moves so that's something to kind of not worry about too much but we went for the fairy terror typing on this shell bell as the held item and being a five star raid i feel like you can get away with a bellydrum set maybe not so much online but soloing in your game you should be fine move said that we went forth misty terrain bellydrum light screen and play rough light screens going to give you a bit more of a buffer against those special attacking moves that you're going to see from dialga very straightforward ev spread of 252 hp 252 in attack with an adamant nature and the ability is huge power basic premise is going to be turn one get your light screen up then turn two bellydrum and then just start spamming play roughs as well so until you can translate and as i say these are five star raids i don't expect these to be too difficult but this is just something that a lot of you probably already have in your games that can be useful and will be good against both the palkia and the dialga the only thing you're going to have to watch out from the dialga's point of view is going to be thunder or thunderbolt that it potentially could have access to the other option that i do feel like will be quite good in this raid is going to be flutter main it is going to be able to outspeed both of these terror bosses so no problem on that front it is going to have the shell bell as a held item you can even put the expert bell on this if you would prefer to we've got the fairy terror typing and the move set is going to be calm mind fake tear shadow ball and draining kiss product synthesis is the ability and the ev spread is 252 hp 252 special attack with a modest nature the basic idea behind this set is going to be because you can outspeed both the dialga and the palkia get a calm mind up turn one that is going to make sure that you can take those threatening steel type attacks from the dialga in particular if you're taking this in but i think after a couple of calm minds you're going to be in a really good position where you're able to just take those attacks very easily utilize fake tears before the shield goes up to law the special defense on the target pokemon and then just start spamming draining kiss especially after you terastalize you be recovering health as well as doing a good sizable damage so these are two builds like i say that will feature in today's video we'll see if they do work when the raid goes live later today of course we will be streaming it like i've said so we will soon find out on that front but that is all of the information and everything that i wanted to cover in today's video very exciting that we are getting legendary pokemon that are coming to the games in terorates in particular dialga and palkia let me know down in the comment section which one you prefer you team dialga or team palkia i've got to probably say i'm probably team dialga on this one i do like palkia but dialga is just a little bit cooler so looking forward to getting both of these in the game later and being able to catch them and uh hope you are too if you are around for the stream do drop by we'll be going through them and doing them online so we'll be sharing the raids with those who want the opposite version from the copy that they've got and it'll be a lot of fun so hopefully you'll see then hopefully you have a lot of fun taking part in this event it is running for a long period of time a week after the indigo disc drops so a long time to take advantage of this one in scholar and violet have a great rest of your day though friends if you found today's video useful please do consider dropping a like do subscribe to the channel to stay up to date with all of our pokemon scholar and violet content and i will see you all in another video very soon and take care of yourselves and bye bye


Medvedev wants to continue attacks on drones because Americans are impudent. Dmitry Medvedev, deputy chairman of the Russian Security Council, has said that the attack on the American drone was carried out over part of Russian territory and the Americans were completely impudent, so there is no need to stand on ceremony with them. Medvedev wrote it on Telegram in general to put it simply, Americans are extremely impudent and it is wrong to stand on a ceremony with them, although military contacts are needed, of course, Medvedev said. According to Medvedev, the air code used the terms prohibited areas and restricted areas. He believes drones should abide by their rules, especially during combat operations. Medvedev began to lie that the UAV was over a part of Russian territory to which our sovereignty extends. At the same time, he threatened U.S. Senator Lindsey Graham with physical violence. The latter criticized the lack of a decisive response to the incident in the Black Sea.


Guru Shishya Parampara, it is the cornerstone, it is the main pillar on which Sanatana Dharma stands. It is Sanatana Dharma, eternal way of living and expressing life. Why is it eternal? Because from age to age, from decade to decade, from century to century, gurus emerge, they carry on the teachings of the past, or they change. Then they bring new teachings, which are in tune with the current generations and their needs. It is an eternal, constantly in motion Dharma that evolves as time evolves. Why would anyone in their right senses reject the idea of a guru?


So, let's dive into the hands-on so we can actually see how this is used. At this point, what I'm going to do is I'm going to swap to the cheat sheet because it's probably going to be easier to follow. So, we're now at the LPBAM hands-on section. If I just give you an overview of what we're trying to achieve first. So, we're going to set up an example kind of similar to what we used before. We're going to use the ADC, ADC4, and low-power DMA. And we'll use two channels of low-power DMA. We could use only one, but to kind of highlight how flexible this is, we'll use two to show you how it's configured in the tool. And the idea is that we trigger the ADC samples from the low-power timer. And the low-power timer is configured to give samples at two different frequencies or two different data rates. So, we'll have this running for one second at 256 hertz, which generates 256 half-words of data. And then we'll reconfigure the timer to change the sample rate to 64 hertz. So, we'll reduce the sample rate and again sample for a second, which gives us 64 bits of data, half-words of data. So, we'll take channel 1 DMA to actually do the DMA transfers from the ADC to the memory. And we'll use a second channel, channel 0, to reconfigure the parameters of the timer so that we can implement the PWM function. So, for Q1, we are handling the timer. So, we'll have three function nodes as you'll see later. The first thing we do is we configure the timer and start it. We start it running with a sample rate of 256 hertz. And then once the transfer is complete from the ADC at 256 hertz, we then reconfigure the timer to 64 hertz and then go around the loop like that. For the ADC, this is quite simple. We're literally just taking data from the ADC data conversion register and transferring it into memory. And we will, because we have a total of 320 samples in total, we'll store 320 samples into memory. So, let's actually start the hands-on now. So, the other two guys used CubeMX for the design for creating the basic configuration and then swapped over to Cube IDE. It's completely a matter of personal choice, but I thought it was a good idea to show you how all of that can be done within Cube IDE itself. So, Cube IDE actually includes all of the functionality of CubeMX in the one tool. If you were using something like IAR or KyleMDK as your IDE environment, then you would use CubeMX to generate your configuration and import it into that tool. But I wanted to highlight that ST have their own tool as well to do all that, which is Cube IDE. So, before we start, I recommend that if you have any other open projects from before, I would recommend to close them down because it's very easy to get mixed up between different files and you end up editing one file and saving it, but it's not part of your actual project. So, I do suggest that you close all existing projects. So, do that by right clicking on any open projects and then select close project. So, we want to start a new project. We're going to start one from scratch. The first thing we do is we go to File, New, STM32 Project. And this will pull up the target selection wizard, which is very similar now to what you would have seen in CubeMX. And we need to target the specific... We're going to start with a microcontroller, but I want to show you a tip because I can never remember the actual specific part number that's on the board. But I know that I can select this nuclear board that we have in the what we call the board selector tab. So, if you click on board selector and type U575, it will pull up the nuclear board, but it also tells you what the mounted MCU is. And if we were to click on that, that would take us directly to the MCU selector tab. So, it swaps focus and allows us to very quickly select the individual MCU that's used on that board. So, it's important that we're selecting it from the MCU tab because we're starting with a completely blank piece of paper as it were, but this is a quick way of selecting the correct component. So, make sure that you have the STM32 U575 ZIT6Q highlighted, and then press Next. We need to give our project a name. This can be anything you want, but I'm going to call it LPBAM, for example. Now, we don't have to worry about tool chain selection because we're doing all of this within cube IDE, so it's all set for you directly. We can click Finish at this point, or we can click the Next button, and the Next button just allows us to review that it's using a specific device with a specific firmware package. You should have the correct device selected here, so then we click on Finish, and it will go away, and it will start to build the Cubamex configuration for you, and it will open it up in a new window in cube IDE. If your machine is slow like mine is today, it might take a few seconds. You'll see the usual warning that we've seen all day about iCache, because we haven't had a chance to set it yet, so it's warning us that it's not been enabled. We still do want to generate code though, so we click on Yes. Okay. Right. I actually have my Cubamex perspective fully maximized. I meant to reset that before I started this hands-on. Do that now, and I'll show you why I'm doing that in a minute. But this is what you will see when it opens up normally. You'll see the standard cube IDE project navigator structure here, and then because we've opened up a Cubamex perspective, we've got what looks like a mini version of Cubamex running in the cube IDE window. Now, it may be that you find that these windows are a little bit restrictive in terms of space, especially when you have only one monitor to play with, like on a laptop, for example. So instead of, we can reuse some of this space by maximizing this view. So we would go up to this Maximize button here, and we maximized the Cubamex perspective. So if I click on that, it will essentially take up all of the spare space, and now it looks identical to how the Cubamex looked. So now we've got our project open. The first thing we want to do is to get rid of some of these warnings that we were dealing with. So the first one was the iCache warning, if you remember. So we go to the System Core, iCache, and let's enable it and select one-way direct mapped. And that will turn off the warnings that we normally get when we generate code. So now we want to enable the low-power DMA. So if we go to the low-power DMA option here, and we want to use two channels, one channel for the ADC, one channel for the low-power timer. So if we select channel zero and select it to Linkless Mode and do the same for channel one, put that to Linkless Mode, that allows us to do that. So for channel one, we actually want to enable the interrupt for channel one because channel one is the timer channel and channel zero is for the ADC. So we want to enable the interrupt for channel one, global interrupt. So on the NVIC tab here, click on Enabled for the interrupt. Everything else stays the same. The other thing we need to do, because we're all about trying to save power for this example, is to make sure that we're using the Switch Mode Power Supply option rather than the LDO option. So as I think you saw with Anders, we go down to the Power and Thermal block, click on Power, and we need to make sure, if it's not set already, that the power regulator setting is for SNPS. Now, if you've done this in Qubemax, it probably will be SNPS automatically, but it's not that way if you use Qubemide, so we need to change that. So we select SNPS, and then we need to double check the clock settings. The default clock settings are probably right, but it's worth just checking. So we want to use MSIS, which is already selected, and this default configuration gives us an H clock of 4 MHz. We're not trying to run things really really super fast, because the whole point is we're trying to save power. Okay, so that's the peripheral setup. If I just go back to the pinout and configuration view that you're used to, you'll see that there's actually two discrete tabs here, one of them is new. It's called LP-BAM scenario and configuration, and this is an extra set of tools that are part of Qubemax and Qubemide that allows us to automate the process of generating link lists that are targeted for LP-BAM operation. So these are link lists that we're using with low power DMA, rather than GP-DMA, and they're going to be used in stop-to mode. So we shift our focus to the LP-BAM scenario editor, and we do that just by clicking on that tab, double-clicking on it rather, and it should bring up this new screen, and we know we're in the LP-BAM tool because the background changes from the sort of ST blue to this pink or red colour. And first thing we need to do is click on the add application icon here under LP-BAM manager. This will open up a new configuration for us, and in this left-hand pane, this is where we have access to all of the individual peripherals that are active or can be active in this smart run domain. So we've got ADC4, which we're going to use in a minute, and LP-Timer1. So we select the components from this area, and then we have our queues displayed in this middle panel, and then on the right-hand side is where we configure the queue as a whole and also the individual nodes, and you'll see me do that as we go along. So under scenario here, we have a default queue name already allocated, but we're going to change that to something a little bit more informative, so we'll call it timer. So we're creating one queue for the timer, and we want to create another queue, so if I click on add queue, and we call this ADC, then hit return. So now in our queue editor view, we have two individual tabs, timer and ADC. We can see the cursor move here when we swap tabs. So these are our two separate DMA channel queues. Now we need to actually configure them. So if you select the timer queue, you can either select it from clicking on the actual tab here, or you can select it by selecting under the scenario editor, but it doesn't matter, but it's important that the timer queue is selected, and we want to now add the functionality or the individual nodes of this queue that we wish to use. So we go, because this is a timer queue, we want to configure the LP timer one, LP TIM, we select that, expand it, and now we have some options. And first of all, we want a start block. So click on start, and then, and this is used to configure the timer. Okay, it's just to do the initial configuration and to start the timer itself. But if you remember, we wanted two separate configurations for the timer. One to sample at 256 hertz, and one to sample at 64 hertz. So we have two PWM blocks that we want to add. So we go to PWM, click plus, and that gives us a configuration block for PWM mode. And we want another one, so we click on it again. So eventually we should have three blocks. First one is initialization and start block, and then we have two blocks that control how the PWM function is working. Okay, so that's how we want to configure the timer. We'll come back and do the actual detail configuration shortly. But now we want to go to the ADC tab, and this is swapping us to the ADC queue. And now we need to go to ADC four, and we need to select ADC conversion data. So here there are three different versions of ADC conversion. I'll try and explain what the differences are. Conversion config is simply a block that configures the ADC. So which ADC channel is being used, what it sample rates are, et cetera. Conversion data is a block that just includes a configuration for transferring data from the ADC into memory. So what's its destination, and how many words, et cetera, et cetera. And conversion is a mixture of both of those two. So it configures the device and transfers the data. So if we were to look at config, I don't actually, I don't want to actually add it, but it combines both of them. Now, in this particular case, our queue only needs the data version because it's being configured in another set of settings that we'll come on to later when we come on to the pinout configuration. So you should have two tabs here, timer with three elements, start PWM two and three. And on the ADC tab, we should have one element, which is the ADC conversion data. So now we actually want to configure these two individual DMA queues. So let's go to the timer tab. Okay. And we need to select, we need to make sure that we click on the first block in the timer queue, the start function. And we need to change the start mode from single to continuous. If we don't do that, you'll get one conversion and that will be it basically, or one set of conversions. Okay. Then we go to the PWM configuration and we want to set up here. We want to set up the period and the pulse width. But first of all, we need to enable those settings. So for period update state, we select enabled. Same for pulse update and repetition state. Okay. Now, we need to set the period value, pulse value and repetition value. And in the cheat sheet, we actually explain where those figures come from. And the key thing is that in the next few steps, we will configure the timer clock to be LSI, which is 32 kilohertz with a prescalar of one. So if we then go through and work out what these period values should be, we come to the figure of 127 for the period value. The pulse value is 63 and the repetition counter is 255. So I'll go and fill those values in. So period value is 127. So that needs to go here. Pulse value is 63 and repetition value is 255. Okay. So that's the first counter and that was 256 hertz. Then we want to sample at 64 hertz. So we go to the second PWM block. And we need to enable the period update, pulse update and repetition update. The values this time, it's 511 for the period value. It's 255 for the pulse value and it's 63 for the repetition value. And just to show you again that the working is there, be a little bit careful because if you look at the animation, if I recall correctly, in the animation, the values used are wrong, but use these values in the cheat sheet here. So we've configured the timer settings. Now we need to go to the ADC queue. Okay. And we need to enable the transfer complete interrupt. So this one here. So once it's completed, it's transferred, it raises an interrupt. And this is when you have the ADC selected. Okay. If you can't see it, it's probably because you've selected the actual block itself, but we're talking about the overall queue setting. So here we have transfer complete interrupt specified. So then go to the actual conversion data block itself and this is where we need to actually control how the ADC is, where it's transferring data from and to. So we need to know the buffer name that we're transferring into. So this is the data buffer name and we've called it, let me just delete it all, and in code we're using the variable name data sequence. So we use that. The data buffer offset. So where do we want to start writing into it? Well, we want to start to address zero or location zero. So let's put that in there. And then the size. If you remember, we were having 256 samples followed by another 64 samples. So that makes 320 samples in total. And that'll give us two seconds worth of sampling. So everything else can be left at it is. Now, what we've been doing here is we've been setting up our individual queues. We also can configure how these individual peripherals are configured in terms of which channels we're using and what pins they're using, et cetera. So we go next to the Pinout and Configuration tab. But this is a Pinout and Configuration tab that's part of the LP BAM scenario wizard. It has a potential to be confusing because you're used to a Pinout and Configuration wizard that's part of CubumX. But this is Pinout and Configuration tab within this LP BAM tool. So we click on it. And it looks just like the Pinout and Configuration tab within CubumX. And it is, but it's a subversion of it, a subset of it because it's only giving us the peripherals that we can use in this mode. Let me just extend that tab. So first thing we need to go to is the ADC channel and make sure that's configured correctly. So we go to ADC4 and we want to monitor the internal VREF. So we're just using one channel of ADC to monitor the internal voltage reference. So now we can go to the settings for this ADC mode. We go to parameter settings here a little bit bigger and we want to change a few settings. So we want to change the sequencer setting. So it's sequencer is here. Okay, under ADC settings, sequencer and it's currently set to sequencer set to fully configurable. Now, we need to set it to not fully configurable, which sounds a little strange, but this is essentially using the ADC in a legacy mode that's compatible with the subset of features that are available in LPBAM. So we need to set this to be able to modify some of the other settings. Okay, we need to generate or specify that we're using DMA Continuous Requests. So here they're setting here DMA Continuous Requests. We need to enable that. And just like we did with Jeff, so we don't get overflows, we want low power auto weight enabled. We can leave the sampling time at one and a half cycles. Nothing needs to be changed there. But we do need to enable the interrupt from the ADC for. So if we go to the Envig tab here, you can click on enabled and this turns on the interrupt for the ADC channel. Now, you may have noticed there's a check LPBAM design button here and this allows us to run some checks and basic sanity checks to make sure our configuration is okay. So we can click on it, but we should get some errors. We can see those. We've got some pink or red text and it's complaining because I haven't configured the LP timer. So we've specified the configuration for the peripheral itself. What we're doing here is specifying the configuration of the peripheral. What we did in the previous step was configure the queue. Okay, so now we're configuring the peripheral itself. We've only done the ADC. We have not done the timer yet. So we need to go to the timer and to configure that. So we select under the timers LP timer one and we need to enable it for a start. So we select it to count internal clocks. Okay, we need to set channel one active. And we want to set it to no IO used only internal input output connections. And if we scroll further down, we need to specify how the counter is being used. So under the compare option, capture compare selection here. We need to, at the moment it's configured by default to capture and we want to configure it to compare because we're setting a time period that we want to trigger on. So we set that to compare. And then although we've done it in the queue itself, we need to set a default initial configuration for the period and pulse width. So we go and we go to period and we use the same values as before. So it's 63 and then the pulse value down here is sorry, I used the wrong. So it should be 127 for period and pulse value should be 63. If we go into LP stop to mode, then we want to configure as many of the peripherals as possible. And then also the memory and flash blocks to be disabled so that we're saving power. So we would go down to the power and thermal tab. Go to the power block. And here, first of all, we need to double check that it's got SNPS selected and it should do. Now what we want to do is essentially turn off or power down all of the SRAM pages other than SRAM 4 and iCash. And let me just extend this box a little bit. So what we need to do is change these settings here. So we want to change all of them except SRAM 4 and iCash power down. And basically turn power them down in stop mode. What this means is that we get this slight inversion of the name because currently the feature is disabled and the feature is to power down in stop mode. And we want to power down in stop mode so we enable the feature. Very strange English, but that's the way it's been set up in the tool. So unfortunately there is no group select so we have to do these individually one by one. I'm afraid it's very tedious, but that's the way it is in the tool right now. So we go through each one and enable the power off function. The way to look at it. Go down all of them. Turning everything off so it's not going to get used. Now we leave SRAM 4 enabled because that's where we want to store our linked list configuration. We use iCash as well again because when we do boot the processor up we want it to be running from cache. But decache can go off. These settings can be off. And SRAM 4 fast wake up will leave this disabled because we're going for the ultimate in low power so we can leave that disabled. Just before I leave this tab, if I go to the further up this screen, we can look at the debug pins. So if you remember I mentioned that with three signals that could be mapped to GPIO pins. And these can be enabled for you to monitor these signals. And we do talk about that in the debug section in the cheat sheet. But we don't have time to run through that today and we don't have logic analyzers either to compare it against. So we'll leave that as it is, but I just wanted to highlight to you that they were there. So now we do need to make sure that we are configuring the clocks correctly for this DMA queue. So again, we have a tab that's very, very similar to the standard QMX tab for clock configuration. But again, it's the tab you want is part of this LP BAM scenario configuration tool. So if you click on that, you should know that you're in the right tool because the background to the tab is still is pinky red color. Don't go back to the pin out and configuration tab up here because you'll be editing the wrong information. This is part of the LP BAM tool. So for the low power timer, if you remember I mentioned that we were going to use LSI. So we need to select LSI for the low power timer because currently it's set to MSI K. So let's select LSI and it's a 32 K clock. So that's where we got our values for the counter timer periods, etc. Now the ADC 4, we want to clock that one. So this is ADC 4 clock MUX. We want to select MSI K for that one, which sets it at 4 MHz. This is the rate that the peripheral is being driven at. Its core clock is 4 MHz. If we go up to the top of the screen, we just verify that the wake up clock, so the clock we use to wake up from stop mode is configured for MSI. Because we're using this tool as part of the LP BAM setup, it's assuming that we're running in the stop modes. And in the stop modes, you don't have access to the PLLs, you don't have access to many of the other clocks. So everything that you don't have access to is grayed out. And this is to give a clue to you that actually you're in LP BAM mode and that we shouldn't be using these components. So that's why we still get the full clock tree, but you can't configure most of the options. Now, if we now click on the check LP BAM design, we shouldn't get any pink or red warnings or errors anymore because we've configured the timer, we've configured the ADC. Now, we've done in the LP BAM tool, so we go and click back on the standard.ioc tab up here, which brings us back to the standard CubeMX perspective that we're familiar with. So if we click on that, it will change the focus back to the CubeMX standard tool, eventually. Oh, sorry. Basically, you can't see it because it's off-screen, but it gave me a little dialogue that it's checking the data and building the interface to GUI. So now we're back to what we understand as CubeMX perspective. There is one thing that we need to do to change in the project manager code generation setting. So we go to project manager and go to code generator. We want to set in the how. We want to set all three pins and log. Okay. This is just to, again, to reduce power consumption. So any pins are not using. Rather than having them floating around, we'd set them to analog and that reduces power consumption. We don't need to set any of the project settings up because we did this when we created the CubeID project right from the start. So this is the different way of getting into CubeID. It was just doing everything from within CubeID. So it saves you having to specify the project location, et cetera, because you've done that in the project creation wizard. So if we now save this configuration by hitting the save button or we can click on the generate code button. It doesn't matter which one we use, but if I hit save, it will ask me, do I want to generate code? Yes, we do. And this will now swap the configuration perspective back to the code editing configuration and generate the code. So I click yes to this and we come back to the standard CubeID configuration and it generates code.