POPULARITY
In this episode of The Distribution, host Brandon Sedloff welcomes Jennifer Stevens, co-founder of Alliance Global Advisors, for a deep dive into one of the fastest-evolving areas in private markets: entity-level investing and GP stakes. With decades of experience advising both allocators and investment managers, Jen brings a unique perspective on how this corner of the market has moved from niche to mainstream—and what GPs need to know as they explore strategic capital partnerships. They unpack the structure of GP stakes and platform-level investments, the rise of co-GP and hybrid models, and why this trend is accelerating in real estate investment management. Jen explains the growing demand for alignment between investors and managers, the increasing focus on succession planning, and the role of distribution in scaling investment platforms. She also outlines the critical importance of cultural fit, cash flow stability, and growth potential when attracting capital at the entity level. Key themes include: Why entity-level capital is no longer taboo—and what's driving its growth The tradeoffs between strategic support and ceding economics or control How credibility, due diligence, and investor signaling impact fundraising Lessons from recent transactions across real estate, private equity, and alternatives How GPs can position their firms to be attractive to strategic capital partners Whether you're an emerging manager, an allocator exploring GP stakes, or an established firm thinking about long-term growth, this episode offers a rare, detailed look at what it takes to succeed in today's evolving investment landscape. Links: Alliance Global Advisors - https://alliance-globaladvisors.com/ Jennifer on LinkedIn - https://www.linkedin.com/in/jenniferyoungstevens/ Brandon on LinkedIn - https://www.linkedin.com/in/bsedloff/ Juniper Square - https://www.junipersquare.com/ Topics: (00:00:00) - Intro (00:01:31) - Jen's background and career (00:02:36) - How are investors and sponsors accessing entity-level capital? (00:06:38) - How have you seen GP stakes evolve? (00:11:11) - Why is there a gap between distribution channels and the offerings from GP stakes investors? (00:15:18) - Inferring credibility (00:17:58) - Creating alignment with strategic partners (00:21:16) - How LPs can access alignment alpha (00:23:06) - How can GPs position themselves to be more attractive to capital providers? (00:25:58) - Scale and growth for GPs (00:29:06) - Representative transactions seen in the market (00:37:14) - Lessons learned (00:40:11) - Closing thoughts
Inferring from the suitable replies to his query received from Sita and the trust reposed in him by the latter, Hanuman reveals to her the role of an envoy allotted to him by Sri Rama and repeats the enquiries made by the two brothers about her welfare. Taking him to be Ravana disguised as a monkey, Sita , on the other hand reproaches him when the latter approaches her in order to bow down at her feet. In order to allay her fears, Hanuman for his part discloses to her his reality as a minister of Sugriva as well as requests her to give credence to his words.Recitation: 00:00 - 06:59Translation: 07:04 - 16:42
Title: Church Leaders: Priority #1 Text: Acts 20:7-12 FCF: We often struggle listening and obeying church leadership. Prop: Because obedient church leaders give their highest priority to the spiritual growth of the church, we must consider it our highest priority by listening to and obeying our leaders' spiritual instruction. Scripture Intro: [Slide 1] Turn in your bible to Acts chapter 20. In a moment we'll read from the Legacy Standard Bible starting in verse 7. You can follow along in the pew bible or in whatever version you prefer. Some have noted that last week's message was somewhat surprising. In reading what amounts to essentially an itinerary, perhaps you too did not think that there would be much to learn from such a text. Nevertheless, we see Paul's consistent desire to exhort, encourage, and teach the scriptures to believers all around the Aegean Sea. In what is quickly becoming Luke's emphasis, we will notice yet again the character of Paul in this text this morning. I dare say that as many were surprised by last week's message hidden in a seemingly empty 6 verses, many will be equally surprised by this week's message. Because many a believer has no doubt entered this text and been led to believe that Luke's primary point is the miracle of raising a young boy back to life. However… would it shock you to hear that the death and resurrection of this young boy is actually just an interruption in what is the main point of this passage? Don't believe me? Let's look. Please stand with me to give honor to and to focus on the reading of the Word of God. Invocation: Most loving and gracious Father. You have sent Your Son to purchase us from the domain of darkness. You have sent Your Spirit to dwell in us and make us new. And to guide us in Your ways you have raised up for us godly church leaders whose primary objective is to do all that is in their power to ensure our spiritual success. Father, I pray that you might send your Spirit among us today to reveal to us the blessing of Your Dear Son's Undershepherds and their purpose which has been ordained by Christ Himself. May Your people grow in their attentiveness, submission, and love for spiritual instruction. We pray this in Jesus' name, Amen. Transition: Let us get right to the text this morning… there is much to cover. I.) Obedient church leaders give their highest priority to the spiritual growth of the church, so we must be attentive and submissive to spiritual instruction. (7-9) a. [Slide 2] 7 - And on the first day of the week, when we were gathered together to break bread, i. From some of the earliest writings we have of church fathers that are not the writings of the apostles, we understand that the early church met together on the first day of the week to worship God together. ii. They called it the Lord's Day. iii. On the first day of the week in creation God created the heavens and the earth. His Spirit moved upon the formless waters and brought order out of chaos. He created light and separated the light from the darkness. On the first day of the week our Savior rose from the dead and brought spiritual light to His people separating them from spiritual darkness forever, bringing them the dawn of new creation. iv. While there are many Christians who believe that the Lord's Day is the equivalent of the Christian Sabbath, there is actually very good reasons to conclude that this is, in fact, not the case. v. At some point in the near future, I plan to do a deeper dive into this matter. The title of that study will be, “Should we celebrate a Christian Sabbath on Sunday?” We'll discuss the arguments posited by both sides and see if we can't find an answer together. vi. Until then, it is important to understand that the church at this time both obyed the Sabbath on Saturday, if they were Jewish, and also gathered together on Sunday as the church, Jew or Gentile. vii. Luke points out here that gathering together to celebrate the Lord's Supper, sharing a fuller meal together, worshipping God and hearing preaching of the Word on Sunday – was all normal and common practice in the church since its beginning. b. [Slide 3] Paul began speaking to them, intending to leave the next day, and he prolonged his message until midnight. i. Luke and Paul spent a week in Philippi celebrating the feast of unleavened bread, they traveled for 5 days to Troas and then stayed in Troas 7 days. ii. This is the seventh day of their stay in the city of Troas and Paul and Luke intend to leave the next day. iii. Paul is trying to make it to Jerusalem for Pentecost. Pentecost is on the 50th day after Passover. So, if we are tracking, we are about 14 days into that 50. iv. Given what could happen during travel, Paul and his companions are eager to press on – but not so much so that they abandon believers seeking discipleship. v. We see Paul staying up to midnight preaching a message of exhortation from the word of God to the brothers and sisters there in Troas. vi. Although church services would no doubt be held after sunset to accommodate lower class workers, it is certainly not a normal thing for services to have gone on this long. We can infer that from Luke telling us that Paul prolonged his message until midnight. vii. Paul wishes to leave them with as much teaching as possible. viii. The word for speaking here is often used of dialectic teaching where there are questions and answers. It would have been structured and ordered – but there would have been opportunities for discussion as well. ix. Because of this we can reasonably assume that the vast majority of the believers here at Troas were interacting with Paul and Paul was not droning on and on to a group of people who were bord out of their skulls. x. Inferring these details from what Luke has told us, helps us to see this narrative episode for what it is because so often people see it for what it isn't. xi. More on that as we go forward. c. [Slide 4] 8 - Now there were many lamps in the upper room where we were gathered together. i. I literally laughed out loud after the fourth or fifth time reading this passage through. ii. It suddenly occurred to me the potential comedy associated with this little verse. iii. Luke seems to imply that everything upstairs was well lit with many lamps. It wasn't dark. Paul was preaching, so it wasn't quiet. iv. In other words, Eutychus didn't have a lot of great excuses to fall asleep. v. Now as I turned to commentators and scholars to confirm that this is what Luke is saying, I was shocked to see how many different opinions there are on the significance of this little verse. 1. Some, but very few, saw it the way I did where these lights were meant to exonerate Paul and the church in Eutychus' falling asleep. a. There were actually punishments associated with young people falling asleep in the synagogue at that time. b. You could actually be expelled from the Synagogue for 30 days if you were a youth that fell asleep during the teaching of the Word of God. c. Therefore, Luke may be hinting that Eutychus has some of this blame as Paul and the church did not make it easy to fall asleep since it was loud and well-lit. 2. Some conclude that Luke is implying that the upper room was very warm with so many lit lamps. a. Thus, it was very conducive for sleep… in other words the opposite reading of what I saw. b. But, if it were too warm, wouldn't Eutychus have stood a better chance at staying awake at the window? 3. Other commentators, knowing that they were no doubt oil lamps, suggest that the oxygen in the room would have been in low supply. a. Again, indicating that it was conducive to sleep. b. But Eutychus being at the window has the best chance of breathing easy. 4. Still others suggest that this comment of many lamps is intended to suggest that the room was quite full of people, who have brought their torches with them. a. The strength of this interpretation seems to be in keeping with Luke's emphasis. b. Luke is emphasizing Paul and his conduct as a good church leader and with many people there and only 1 falling asleep, again Eutychus is to blame for falling asleep. 5. And even others suggest that the many lights indicate that the Christians were not hiding or meeting in secret. a. Again, a valid interpretation. b. However, if this is Luke's point, it seems to be well hidden since there is no indication of persecution by the authorities in the city of Troas. vi. When we come down to it, we must understand verse 8 in the context of the whole. The miracle, as we will see, and Eutychus' part in all this, is very… VERY small. vii. Luke is telling this story to further authenticate Paul as a servant of God like previous servants you may have seen in the scriptures including both Peter and even Jesus Himself. viii. Therefore, I conclude that this comment about the lights has to be related to exonerating Paul from any blame associated with this accident. d. [Slide 5] 9 - And there was a young man named Eutychus sitting on the windowsill, sinking into a deep sleep. i. Nevertheless, despite there being many lamps and despite Paul speaking with power and authority, and despite all these folks gathered and discussing the scriptures together, this young man named Eutychus, was sinking into a deep sleep. ii. Now to be fair, it is midnight. Assuming he woke that day at sunrise, and assuming that he spent all day working as a slave boy, which the word “boy” in verse 12 could also be interpreted to mean, and assuming the evening had been full of celebration with the church, feasting, many songs, and long sermons… we can see why Eutychus might have been a little sleepy. iii. And perhaps he sought the window because it WAS getting stuffy in the house and Eutychus sought the cool breeze off the Aegean to keep himself awake? We can assume noble intentions. iv. In any case, Eutychus fights a losing battle with his weak humanity. v. He does not take enough necessary steps to stay awake. e. [Slide 6] And as Paul kept on talking, he sunk into that sleep and fell down from the third floor and was picked up dead. i. Paul continues to preach because the message is not finished. ii. We even get the impression that most of the church gathered there in the upper room were attentively listening and even participating in discussion. iii. Indeed, Paul seems to be the one making a great sacrifice here. Despite having to leave in the morning, he continues to preach. iv. Nevertheless, Eutychus succumbed to his human need for sleep and fell out of the third story window. v. The expression, picked up dead, is an idiom suggesting that he was dead when he hit the ground. Most likely a broken neck. vi. There is absolutely no reason to believe anything different in this text other than that Eutychus was dead. Not unconscious or appearing dead. Luke is a physician remember. He would certainly be able, with relative precision, to determine if the boy was merely unconscious or dead. vii. Luke says he is dead. f. [Slide 7] Summary of the Point: Since, as we've said, Luke's emphasis seems to be less on Eutychus and the miracle and more on Paul and his excellence as a spokesperson of God in a long line of prophets all the way back to the Old Testament, it is important to see that the message of this text is primarily rooted in a truth about obedient and godly church leadership. Paul is not an Elder of a church, although he is certainly qualified to be one. He is a missionary and an apostle. A Preacher, an Evangelist. His role encompasses various roles we still have even now in the church. Meaning Paul is able to provide an example for us for all church leaders. And we see very clearly in this text, the priority that Paul puts on the spiritual growth of the church. Even though he must leave the very next day, he meets, into the late hours of the night, with these believers in Troas, ministering to them and growing them in spiritual instruction. He lingers with them, at the expense of himself. We see prophets, priests, kings, other apostles, and even Jesus Himself doing similar things. Paul then is a model for us of what Godly and obedient church leaders value most. What they prioritize most in their ministries. And it is, quite simply, the spiritual growth of the church. So, what ought to be the response of the church to such a church leader? We ought to listen attentively and submissively to our spiritual leadership. Yes, Eutychus provides for us a negative example. Even though we can excuse him for being tired – the bottom line is that to a certain degree, he allowed himself to fall asleep. Much like Jesus rebuked his disciples for sleeping while he prayed in Gethsemane, so also, we must see Eutychus' example as a rebuke to us, and recognize that we cannot passively grow in spiritual maturity. We cannot grow closer to Christ by osmosis. Instead, we must actively listen and obey instruction from the Word of God. Transition: [Slide 8(blank)] Well, we already know what happens to Eutychus. In fact, the story is so well known that there isn't a lot of suspense here on what will happen next. But after Eutychus is raised… it might be a shock to you what happens then. Let's get into it. II.) Obedient church leaders give their highest priority to the spiritual growth of the church, so we must also greatly appreciate spiritual instruction. a. [Slide 9] 10 - But Paul went down and fell upon him, and after embracing him, he said, “Do not be troubled, for his life is in him.” i. Paul, pauses his sermon for the immediate physical need of the young boy Eutychus. ii. He goes down to the street and falls upon the boy. iii. In a scene which is reminiscent of Elijah and Elisha laying upon someone in order to raise them from the dead, Paul embraces the young man and pulls him close. iv. Luke does not tell us that Paul prayed for him. He does not tell us that Paul commanded him to live again. v. Given the fact that he was dead when he hit the ground, one thing we can be sure – it was the power of God, not Paul, that raised Eutychus from the dead. vi. When Paul recognizes that life has returned to him, he assures everyone that there is no reason to be worried or troubled. The boy is alive. vii. So, what now? The boy is raised? Probably time to dismiss everyone and go home right? b. [Slide 10] 11 - And when he had gone back up and had broken the bread and eaten, he talked with them a long while until daybreak, and then left. i. In what could certainly be seen as rather unkind or lacking compassion, Paul returns inside and fellowships and speaks with the church until daybreak. ii. Some may suggest that after such a terrible tragedy being averted only by a miracle from God, perhaps that was a good time to call it a night and return home. iii. Instead, Paul continues to fellowship with the church and even speak further with them concerning the things of the Lord. iv. Probably Luke intends The Lord's Supper here when he mentions breaking bread. v. He stays until the sun rises. vi. This is a true expression of Paul's priorities. vii. Certainly, he did not ignore the physical world, as if it did not matter or was evil – like the Gnostics would later conclude. viii. Instead, he had compassion on the boy who had died, but when he was alive again, he returned to spiritual matters and matters of fellowship with the body of Christ – for these were of utmost priority to Paul before he left them for Jerusalem. ix. Perhaps because he assumed he would never return. c. [Slide 11] 12 - And they took away the boy alive, and were not a little comforted. i. And just in case there was any doubt as to the boy's condition as the night went on – he went away alive with his family. ii. He did not swoon back as if he hung on the balance between life and death. iii. Instead, he was dead, and was now alive. iv. His family left the church assembly after daybreak greatly comforted because he was as he came. Alive and well. d. [Slide 12] Summary of the Point: Luke again emphasizes the priority that church leadership must give to spiritual growth. Just because something is the highest priority doesn't mean other things aren't important. Paul was obviously not done instructing the congregation in Troas. But he interrupted all that he was saying to go and minister to the young man. However, once he was raised back to life, Paul went right back to breaking bread and teaching the believers again. No doubt even using the vivid death to life illustration to teach on Christ through the Lord's Supper and further explain the nature of Christianity to them. It is very clear that Paul's top priority, even in the midst of someone dying during one of his sermons, was to ensure the spiritual growth of God's children. What do we see as the response? Paul's continued ministry of the Word is met by people who have reordered their life to appreciate the instruction. Even the newly raised Eutychus stays until Paul is finished. If the church leadership is prioritizing spiritual growth, that should also be the priority of the church as well. Conclusion: So, CBC, what have we learned today and how then shall we live? Doctrinal Takeaway: [Slide 13] Every episode in the book of Acts exposes the work of God to spread the gospel and the kingdom of Christ to the uttermost parts of the earth through His apostles. And in this particular context, we see the priority of those God is using to do this. The priority of church leaders, even missionaries like Paul, is to focus on the spiritual growth of the church. Paul needs to leave on Monday, but the Christians of Troas need his instruction. So, Paul stays up with them until daybreak to instruct them in the Word. Even when he is interrupted by a young man falling from a window and dying, Paul, by the power of the Holy Spirit, raises the young man back to life and then continues ministering to the spiritual growth of the believers in Troas… including the young man who had just been raised. This is a pattern for us describing what every obedient and godly church leader ought to prioritize above everything else. Namely, the spiritual growth of the children of God to be mature and Christlike people. In this little story we see two responses to the priority Paul places on spiritual growth. The first is a negative example of Eutychus. He did not remain attentive or submissive to the spiritual instruction of Paul. Second, we see that after he was raised, Eutychus stayed, proving that his priorities had reoriented around the importance of spiritual instruction. So we too much put spiritual instruction as our primary objective by attentively listening and obeying it. But let me apply this more directly to us today. Let me give you some rather toe crunching applications this morning. 1.) [Slide 14] Mind Transformation: “What truth must we believe from this text?” or “What might we not naturally believe that we must believe because of what this text has said?” We must affirm that church leaders are required by God to focus on the spiritual growth of those in their charge. a. Though a miracle occurs in this text, it is very obviously an interruption in what is the priority for Paul. b. Paul sacrificially gives of himself to teach and preach to hungry believers in Troas. He has to depart the very next day, but stays up with them until midnight discussing the things of the Lord. c. They are interrupted by this tragedy, but the moment it is resolved, Paul goes right back to preaching and fellowshipping with the church there. d. The heart of Paul shows a clear priority on the spiritual instruction and growth of God's people. e. If we go back, we see this same heart found in the prophets and godly kings of Israel. We see this same heart in Jesus as he corrects Martha for working while spiritual instruction was occurring. f. No matter what your preconceived ideas of what a Pastor or Elder should be… you must come to grips with the reality that our primary role… the one for which we will stand before God to be judged… is whether or not we focused on the spiritual instruction and growth of God's people. g. Knowing this, it may require you to discard some expectations you may have of your Elders. h. Our culture expects pastors to be all kinds of things that would cause us to sacrifice spiritual instruction as our primary objective. i. Many were raised expecting their pastor to make house visits, hospital visits, go do to door evangelizing, conduct weddings, perform funerals, call on everyone in the church just to check in with them, come to people's houses and mow their lawns, fix their plumbing, and a whole host of other expectations that could require an Elder to sacrifice the one priority that the Lord has placed on his shoulders. j. Now, can an Elder do these things? Should an Elder do these things? Certainly. k. But not at the expense of our primary objective. l. It has been almost a decade, so I feel as though I can speak of it plainly without seeming like I am airing dirty laundry. m. But before I became the pastor here, I was an associate pastor of another church for about 6 years. n. About a year before I was fired, the lead pastor met with me and told me that he did not think that I was called to be a pastor. He explained that I did not seem to have a heart of compassion for others as a pastor should and suggested I become a professor at a seminary since I spent most of my time preparing to teach the scriptures. o. My friends, this pastor was deceived. He was duped to believe that compassion for others, specifically in acts of kindness, should be the primary focus of a pastor. p. And he believed it so much that he was convinced that something was wrong with me for prioritizing teaching God's people His Word. q. I bear no ill will toward him, because the Lord's hand of providence clearly led me to this church, and in June I'll have been your pastor for 9 years. r. But one of the things I have appreciated the most about you as a church family, is that you have allowed me to put your spiritual instruction as my highest priority. s. I must confess that I often feel a longing in my heart to call each of you to check in. I feel a longing in my heart to visit you when you are ill. And when the Lord allows, I do enjoy visiting or calling you and by the end of our conversations I always feel a desire to make it a more frequent occurrence. t. But among the other Elders or the congregation, I have never felt an expectation to do anything other than devoting most of my time to deep study and diligent instruction of the Word of God. u. And for this – I say, thank you. v. And also, let's keep it that way for all the Elders. w. God's primary objective for every spiritual leader, is to see to the spiritual instruction and growth of those to whom He has entrusted to us. x. But, of course, we can pendulum swing too far, can't we? 2.) [Slide 15] Refutation: “What lies must we cast down” or “What do we naturally believe, or have been taught to believe, that this passage shows is false?” We must deny that church leaders should only focus on the spiritual growth of the church. a. We notice in this text that in the middle of a long discussion about spiritual things, Paul is interrupted by such a petty little thing as the death of one of the church members.
The Illinois Attorney General's office has apologized to a federal judge demanding answers after implying his ruling against the state's mass transit concealed carry ban has “safety implications.” Northern District of Illinois federal Judge Iain Johnston ruled the Second Amendment is violated by the state's prohibition of people carrying concealed firearms on mass transit. The state appealed and in a motion said the “the potential safety implications of the Court's order are highlighted by a recent mass shooting on the CTAs Blue Line, in which four people were murdered with firearms three days after the Court's order was entered.” Johnston demanded whoever wrote that to answer questions during a hearing scheduled Wednesday.Support this podcast: https://secure.anedot.com/franklin-news-foundation/ce052532-b1e4-41c4-945c-d7ce2f52c38a?source_code=xxxxxx
Inferring the Divine string holding everything together / 3 levels of the absolute truth / Krishna is the most attentive friend / Krishna's not our stepping stone / We are individual, eternal sparks of the divine / Sacrifice means understanding we are not the center / Krishna is the unconditional love we're looking for SB 7.10.48-49
Inferring the Divine string holding everything together / 3 levels of the absolute truth / Krishna is the most attentive friend / Krishna's not our stepping stone / We are individual, eternal sparks of the divine / Sacrifice means understanding we are not the center / Krishna is the unconditional love we're looking for SB 7.10.48-49
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Inferring the model dimension of API-protected LLMs, published by Ege Erdil on March 19, 2024 on LessWrong. A new paper by Finlayson et al. describes how to exploit the softmax bottleneck in large language models to infer the model dimension of closed-source LLMs served to the public via an API. I'll briefly explain the method they use to achieve this and provide a toy model of the phenomenon, though the full paper has many practical details I will elide in the interest of simplicity. I recommend reading the whole paper if this post sounds interesting to you. Background First, some background: large language models have a model dimension that corresponds to the size of the vector that each token in the input is represented by. Knowing this dimension dmodel and the number of layers nlayers of a dense model allows one to make a fairly rough estimate 10nlayersd2model of the number of parameters of the model, roughly because the parameters in each layer are grouped into a few square matrices whose dimensions are Θ(dmodel).[1] Labs have become more reluctant to share information about their model architectures as part of a turn towards increasing secrecy in recent years. While it was once standard for researchers to report the exact architecture they used in a paper, now even rough descriptions such as how many parameters a model used and how much data it saw during training are often kept confidential. The model dimension gets the same treatment. However, there is some inevitable amount of information that leaks once a model is made available to the public for use, especially when users are given extra information such as token probabilities and the ability to bias the probability distribution to favor certain tokens during text completion. The method of attack The key architectural detail exploited by Finlayson et al. is the softmax bottleneck. To understand what this is about, it's important to first understand a simple point about dimensionality. Because the internal representation of a language model has dmodel dimensions per token, the outputs of the model cannot have more than dmodel dimensions in some sense. Even if the model upscales its outputs to a higher dimension doutput>dmodel, there will still only be "essentially" dmodel directions of variation in the output. There are ways to make these claims more precise but I avoid this to keep this explanation simple: the intuition is just that the model cannot "create" information that's not already there in the input. Another fact about language models is that their vocabulary size is often much larger than their model dimension. For instance, Llama 2 7B has a vocabulary size of nvocab=32000 tokens but a model dimension of only dmodel=4096. Because an autoregressive language model is trained on the task of next-token prediction, its final output is a probability distribution over all of the possible tokens, which is nvocab1 dimensional (we lose one dimension because of the constraint that a probability distribution must sum to 1). However, we know that in some sense the "true" dimension of the output of a language model cannot exceed dmodel. As a result, when nvocabdmodel, it's possible to count the number of "true" directions of variation in the nvocab1 dimensional next token probability distribution given by a language model to determine the unknown value of dmodel. This is achieved by inverting the softmax transformation that's placed at the end of language models to ensure their output is a legitimate probability distribution and looking at how many directions the resulting nvocab dimensional vector varies in.[2] Results Doing the analysis described above leads to the following results: Informally, what the authors are doing here is to order all the directions of variation in the probability vector produced by t...
Link to original articleWelcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Inferring the model dimension of API-protected LLMs, published by Ege Erdil on March 19, 2024 on LessWrong. A new paper by Finlayson et al. describes how to exploit the softmax bottleneck in large language models to infer the model dimension of closed-source LLMs served to the public via an API. I'll briefly explain the method they use to achieve this and provide a toy model of the phenomenon, though the full paper has many practical details I will elide in the interest of simplicity. I recommend reading the whole paper if this post sounds interesting to you. Background First, some background: large language models have a model dimension that corresponds to the size of the vector that each token in the input is represented by. Knowing this dimension dmodel and the number of layers nlayers of a dense model allows one to make a fairly rough estimate 10nlayersd2model of the number of parameters of the model, roughly because the parameters in each layer are grouped into a few square matrices whose dimensions are Θ(dmodel).[1] Labs have become more reluctant to share information about their model architectures as part of a turn towards increasing secrecy in recent years. While it was once standard for researchers to report the exact architecture they used in a paper, now even rough descriptions such as how many parameters a model used and how much data it saw during training are often kept confidential. The model dimension gets the same treatment. However, there is some inevitable amount of information that leaks once a model is made available to the public for use, especially when users are given extra information such as token probabilities and the ability to bias the probability distribution to favor certain tokens during text completion. The method of attack The key architectural detail exploited by Finlayson et al. is the softmax bottleneck. To understand what this is about, it's important to first understand a simple point about dimensionality. Because the internal representation of a language model has dmodel dimensions per token, the outputs of the model cannot have more than dmodel dimensions in some sense. Even if the model upscales its outputs to a higher dimension doutput>dmodel, there will still only be "essentially" dmodel directions of variation in the output. There are ways to make these claims more precise but I avoid this to keep this explanation simple: the intuition is just that the model cannot "create" information that's not already there in the input. Another fact about language models is that their vocabulary size is often much larger than their model dimension. For instance, Llama 2 7B has a vocabulary size of nvocab=32000 tokens but a model dimension of only dmodel=4096. Because an autoregressive language model is trained on the task of next-token prediction, its final output is a probability distribution over all of the possible tokens, which is nvocab1 dimensional (we lose one dimension because of the constraint that a probability distribution must sum to 1). However, we know that in some sense the "true" dimension of the output of a language model cannot exceed dmodel. As a result, when nvocabdmodel, it's possible to count the number of "true" directions of variation in the nvocab1 dimensional next token probability distribution given by a language model to determine the unknown value of dmodel. This is achieved by inverting the softmax transformation that's placed at the end of language models to ensure their output is a legitimate probability distribution and looking at how many directions the resulting nvocab dimensional vector varies in.[2] Results Doing the analysis described above leads to the following results: Informally, what the authors are doing here is to order all the directions of variation in the probability vector produced by t...
Do you like lemonade? If so, you won't want to miss out on the lemonade I make on today's episode. We're discussing goals on this episode of the Retirement Plan Live series and we get to catch up with Lori from the 2017 Retirement Plan Live. Find out what she is up to and how to work through shared and separate goals in retirement. OUTLINE OF THIS EPISODE OF THE RETIREMENT ANSWER MAN RETIREMENT PLAN LIVE [3:42] Mark and Mary's differences developed into a big conversation [9:00] Mark's values [10:12] Mary's values [14:01] Inferring their goals [16:03] When they will retire CATCHING UP WITH LORI FROM THE 2017 RETIREMENT PLAN LIVE [22:48] What Lori and Bruce are up to today [27:18] Has their retirement plan changed? [33:01] Their plans for the future [35:15] Her advice for new retirees TODAY'S SMART SPRINT SEGMENT [38:12] Revisit your goals for retirement Resources Mentioned In This Episode RetireAgile.com LiveWithRoger.com 2017 Retirement Plan Live with Lori and Bruce 193, 194, 195, 196 Rock Retirement Club Roger's YouTube Channel - Roger That BOOK - Rock Retirement by Roger Whitney Roger's Retirement Learning Center
Inferring from Isaiah 1:19, you shall eat the good of this year if you are willing and obedient. Willingness and obedience are the cornerstones of a prosperous and fulfilling life. It is not enough to be merely willing; we must pair our willingness with obedience to God's commands. Listen to this podcast episode by Prophet Christopher Yaw Annor to learn how to "eat the good of this year". May you be empowered by the Spirit of God through this word. Scriptures used: Isaiah 1:19; 2 Corinthians 8:12; Proverbs 12:24. _________ Subscribe and share this podcast with your family and friends. Have questions? Send us an email via info@icgcholyghosttemple.org and we will be glad to assist you. --- Send in a voice message: https://podcasters.spotify.com/pod/show/prophetannor/message
In today's addition of "Two Intellectual Idiots Fostering Political and Cultural Literacy" Dan, Corey, and Bel "The Bodysnatcher " take YOU, the disenfranchised or politically homeless sane person into:Vivek Ramaswamy's recent battles with the corporate media. After being asked if he "condemns white supremacy", Mr. Ramaswamy responded by calling out reporters for asking him a "gotcha" question while stating that he vehemently denounces dangerous and violent racial discrimination of all types. Inferring that he has no way of knowing how NBC and other mainstream outlets define White Supremacy. Is it the DEI definition or the dictionary definition? We'll break down the exchange and discuss how the media has the ability to take simple ideas (good and bad) and weaponize them to take down the enemies of the establishment. AND MORE... IF YOU LIKE: The Free Press Dan Carlin Breaking Points With Krystal & Saagar The Fifth Column Reason Magazine The Reason Round Table The Reason Interview With Nick GillespieThe Grayzone Dave Smith's "Part of the Problem" Blocked and Reported NPR Based Politics The Daily Wire StatusCoup The Jordan Harbinger Show The Jimmy Dore Show The Joe Rogan Experience Useful Idiots "Honestly" With Bari Weiss Matt Taibbi Glen Greenwald Aaron Matè Max Blumenthal
Nick Hasty is the Director of Product, Discovery & Machine Learning at Giphy, an animated-gif search engine that allows users to search, share, and discover GIFs. MLOps podcast #198, Inferring Creativity. // Abstract Generative AI models have captured our imaginations with their ability to produce new "creative" works such as visually striking images, poems, stories, etc, and their outputs often rival or excel what most humans can do. I believe that these developments should make us re-think the nature of creativity itself, and through identifying parallels and differences between generative models and the human brain we can establish a framework to talk about creativity, and its relationship to intelligence, that should hold up against future revelations in ML and neuroscience. // Bio Nick Hasty is a technologist & entrepreneur with a background in the creative arts. He was the founding engineer for GIPHY, where he's worked for the last 10 years and now leads ML/AI product initiatives. He also servers as a consultant helping early-stage startups scale their product and engineering teams. Before GIPHY, he worked with arts+cultural organizations such as Rhizome.org and the Alan Lomax archives. He got his graduate degree from NYU's ITP program. // MLOps Jobs board https://mlops.pallet.xyz/jobs // MLOps Swag/Merch https://mlops-community.myshopify.com/ // Related Links Website: http://jnhasty.com/ Previous talks: https://engineering.giphy.com/giphy2vec-natural-language-processing-giphy/ https://changelog.com/practicalai/38 --------------- ✌️Connect With Us ✌️ ------------- Join our slack community: https://go.mlops.community/slack Follow us on Twitter: @mlopscommunity Sign up for the next meetup: https://go.mlops.community/register Catch all episodes, blogs, newsletters, and more: https://mlops.community/ Connect with Demetrios on LinkedIn: https://www.linkedin.com/in/dpbrinkm/ Connect with Nick on LinkedIn: https://www.linkedin.com/in/nickhasty/ Timestamps: [00:00] Nick's preferred coffee [00:15] Takeaways [06:58] Nick's background in ML [12:15] Nick's GIPHY journey [17:39] Nick's Success Factors [20:50] The trajectory of AI [28:09] Identifying as a product engineer [32:42] Evaluate LLMs vs. Traditional Models [35:03] AI Product: Intuition vs Data [38:53] Giphy AI Product Development [45:25] Startups and Venture Assistance [52:30] AI Funding Landscape Shift [54:00] Wrap up
Examining the creativity of generative artificial intelligence tools brings up interesting parallels with human cognition. Just as AI systems predict and fill gaps, our brains do so too, drawing from a wide range of learned behaviours, experiences and beliefs. Both entities heavily rely on their training data: AI on diverse datasets, humans on factors like personal histories, culture and upbringing.Of course, creativity is not only a generative optimisation tool developed by our homo-sapien ancestors in order to survive. The frictions and surprises that occur in the creative process provide valuable data for better informing our understanding of ourselves and our place in the world. Nick uses the metaphor of a therapist to reframe the potentials of human-AI collaboration. Just as a therapist does, these tools can help humans to unpack, twist and turn concepts to aid better understanding and make meaningful breakthroughs. The results are often new and surprising (the essence of what creativity is all about.)Nick ends with some hopeful predictions for creative expression and that it can lead to more creative, inspired and poetic results. Ultimately, AI can help us to better learn what it means to be human.
Helping students to understand what they read is one of the most central academic aims of school. No matter what subject you're teaching, students' reading comprehension likely plays a big role in their success in your classroom.Back in 1992, Dr. P. David Pearson and others identified six strategies that proficient readers consistently use as they read: using schema, inferring, questioning, determining importance, visualizing, and synthesizing. Explicitly teaching these strategies can improve students' comprehension. The question is, how can these strategies be taught in a way that students can easily connect with?Today, we'll hear from teacher and education consultant Tanny McGregor. In this excerpt from her book Comprehension Connections, Tanny focuses on one of the slipperiest strategies: inferring.See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.
OpenAI's trademark application for GPT-5 could signify a continued advancement in natural language processing and machine learning. Google's "mind-reading" AI raises ethical concerns about potential implications and future uses of the technology. Soft MoE, a new type of mixture of expert architecture proposed by Google DeepMind, outperforms standard Transformers and popular MoE variants in visual recognition. PerceptionCLIP, a method proposed by the University of Maryland and the Bosch Center for Artificial Intelligence, improves zero-shot image classification by inferring and conditioning on contextual attributes, achieving better generalization, group robustness, and interpretability. Contact: sergi@earkind.com Timestamps: 00:34 Introduction 01:23 OpenAI Files Trademark Application For GPT-5 02:44 Google's 'mind-reading' AI can tell what music you listened to based on your brain signals 04:26 Nvidia H100 GPUs: Supply and Demand 05:17 Fake sponsor 07:24 From Sparse to Soft Mixtures of Experts 09:11 More Context, Less Distraction: Visual Classification by Inferring and Conditioning on Contextual Attributes 10:47 Music De-limiter Networks via Sample-wise Gain Inversion 12:45 Outro
Zach and Anthony discuss Yellow's ongoing struggles and its impact on the freight market and ask if there are any signs of an economic inflection point in the data. Follow the Freightonomics Podcast Other FreightWaves Shows Learn more about your ad choices. Visit megaphone.fm/adchoices
Zach and Anthony discuss Yellow's ongoing struggles and its impact on the freight market and ask if there are any signs of an economic inflection point in the data. Follow the Freightonomics Podcast Other FreightWaves Shows Learn more about your ad choices. Visit megaphone.fm/adchoices
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.06.29.547138v1?rss=1 Authors: Wan, G., Liao, M., Zhao, D., Wang, Z., Pan, S., Du, B. Abstract: Reconstructing neuron-level brain circuit network is a universally recognized formidable task. A significant impediment involves discerning the intricate interconnections among multitudinous neurons in a complex brain network. However, the majority of current methodologies only rely on learning local visual synapse features while neglecting the incorporation of comprehensive global topological connectivity information. In this paper, we consider the perspective of network connectivity and introduce graph neural networks to learn the topological features of brain networks. As a result, we propose Neuronal Circuit Prediction Network (NCPNet), a simple and effective model to jointly learn node structural representation and neighborhood representation, constructing neuronal connection pair feature for inferring neuron-level connections in a brain circuit network. We use a small number of connections randomly selected from a single brain circuit network as training data, expecting NCPNet to extrapolate known connections to unseen instances. We evaluated our model on textit{Drosophila} connectome and textit{C. elegans} worm connectome. The numerical results demonstrate that our model achieves a prediction accuracy of 91.88% for neuronal connections in the textit{Drosophila} connectome when utilizing only 5% of known connections. Similarly, under the condition of 5% known connections in textit{C. elegans}, our model achieves an accuracy of 93.79%. Additional qualitative analysis conducted on the learned representation vectors of Kenyon cells indicates that NCPNet successfully acquires meaningful features that enable the discrimination of neuronal sub-types. Our project is available at url{https://github.com/mxz12119/NCPNet} Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Sentry is an application monitoring tool that surfaces errors and performance problems. It minimizes the need to manually look at logs or dashboards by identifying common problems across applications and frameworks. David Cramer is the co-founder and CTO of Sentry. This episode originally aired on Software Engineering Radio. Topics covered: What's Sentry? Treating performance problems as errors Why you might no need logs Identifying common problems in applications and frameworks Issues with Open Telemetry data Why front-end applications are difficult to instrument The evolution of Sentry's architecture Switching from a permissive license to the Business Source License Related Links Sentry David's Blog Sentry 9.1 and Upcoming Changes Re-Licensing Sentry Transcript You can help edit this transcript on GitHub. [00:00:00] Jeremy: Today I'm talking to David Kramer. He's the founder and CTO of Sentry. David, welcome to Software Engineering Radio. [00:00:08] David: Thanks for having me. Excited for today's conversation. What's Sentry? [00:00:11] Jeremy: I think the first thing we could start with is defining what Sentry is. I know some people refer to it as an error tracker. Some people have referred to it as, an application performance monitoring tool. I wonder if you could kind of describe in, in your words what it is. [00:00:30] David: You know, as somebody who doesn't work in marketing, I just tell it how it is. So Sentry started out doing error monitoring, which. You know, dependent on who you talk to, you might just think of as logging, right? Like that's the honest truth. It is just logging just a different shape or form. these days it's hard to not classify us as just an APM tool that's like the industry that exists. It's like the tools people understand. So I would just say it's an APM tool, right? We do a bunch of things within that space, and maybe it's not, you know, item for item the same as say a product like New Relic. but a lot of the overlap's there, so it's like errors performance, which is like latency and sort of throughput. And then we have some stuff that just goes a little bit deeper within that. The, the one thing i would say that is different for us versus a lot of these tools is we actually only do application monitoring. So we don't do any since like systems or infrastructure monitoring. Meaning Sentry is not gonna tell you when you need to replace a hard drive or even that you need new hard, like more disk space or something like that because it's just, it's a domain that we don't think is relevant for sort of our customers and product. Application Performance Monitoring is about finding crashes and performance problems that users would associate with bugs [00:01:31] Jeremy: For people who aren't familiar with the term application performance monitoring, what is that compared to just error tracking? [00:01:41] David: The way I always reason about it, this is what I tell new hires and what I would tell, like my mother, if I had to explain what I do, is like, you load Uber and it crashes. We all know that's bad, right? That's error monitoring. We capture the crash report, we send it to developers. You load Uber and it's a 30 second spinner, like a loading indicator as a customer. Same outcome for me. I assume the app is broken, right? So we also know that's bad. Um, but that's different than a crash. Okay. Sentry captures that same thing and send it to developers. lastly the third example we use, which is a little bit more. I think, untraditional, but a non-traditional rather, uh, you load the Uber app and it's like a blank screen or there's no button to submit, like log in or something like this. So it's kind of like a, it's broken, but it maybe isn't erroring and it's not like a slow thing. Right. Same outcome. It's probably a bug of some sorts. Like it's what an end user would describe it as a bug. So for me, APM just translates to there are bugs, user perceived bugs in your application and we're able to monitor and, and help the software teams sort of prioritize and resolve those, those concerns. [00:02:42] Jeremy: Earlier you were talking about actual crashes, and then your second case is, may be more of if the app is running slowly, then that's not necessarily a crash, but it's still something that an APM would monitor. [00:02:57] David: Yeah. Yeah. And I, I think to be fair, APM, historically, it's not a very meaningful term. Like I as a, when I was more of just an individual contributor, I would associate APM to, like, there's a dashboard that will tell me what's slow in my application, which it does. And that is kind of core to APM, but it would also, none of the traditional tools, pre sentry would actually tell you why it's broken, like when there's an error, a crash. It was like most of those tools were kind of useless. And I don't know, I do actually know, but I'm gonna pretend I don't know about most people and just say for myself. But most of the time my problems are errors. They are not like it's fast or slow, you know? and so we just think of it as like it's a holistic thing to say, when I've changed the application and something's broken, or it's a bug, you know, what is that bug? How do we help people fix it? And that comes from a lot of different, like data signals and things like that. the end result is still the same. You either are gonna fix it or it's not important and you ignore it. I don't know. So it's a pretty straightforward, premise for us. But again, most companies in the space, like the traditional company is when you grow a big company, what happens is like you build one thing and then you build lots of check boxes to sell more things. And so I think a lot of the APM vendors, like they've created a lot of different products. Like RUM is a good example of another acronym that lives with an APM. And I would tell you RUM is completely meaningless. It, it stands for real user monitoring. And so I'm like, well, what's not real about monitoring the application? Well, nothing's not real, but like they created a new category because that's how marketing engines work. And that new category is more like analytics than it is like application telemetry. And it's only because they couldn't collect the app, the application telemetry at the time. And so there's just a lot of fluff, i would say. But at the end of the day too, like developers or engineering teams, it's like new version of the application. You broke something, let's tell you about it so you can fix it. You might not need logging or performance monitoring [00:04:40] Jeremy: And, and so earlier you were saying how this is a kind of logging, but there's also other companies, other products that are considered like logging infrastructure. Like I, I would think of companies like Paper Trail or Log Tail. So what space does Sentry fill that's that's different than that kind of logging? [00:05:03] David: Um, so the way I always think about it, and this is both personally true, and what I advise other folks is when you're building something new, when you start from zero, right, you can often take Sentry put it in, and that's good enough. You don't even need performance monitoring. You just need like errors, right? Like you're just causing bugs all the time. And you could do that with logging, but like the delta between air monitoring and logging is night and day. From a user experience, like error monitoring for us, or what we built at the very least, aggregates the errors. It, it helps you understand the frequency. It helps you when they're new versus old. it really gives you a lot of detail where logs don't, and so you don't need logging often. And I will tell you today at Sentry. Engineers do not use logs for the most part. Uh, I had a debate with one of our, our team members about it, like, why does he use logs recently? But you should not need them because logs serve a different purpose. Like if you have traces which tell you like, like fast and slow in a bunch of other network data and you have this sort of crash report collection or error monitoring thing, logs become like a compliance or an audit trail or like a security forensics, tool, and there's just not a lot of value that you would get out of them otherwise, like once in a while, maybe there's like some weird obscure use case, but generally speaking, you can just pretend that you don't need logs most days. Um, and to me that's like an evolution of the industry. And so when, when Sentry is getting started, most people were still logs. And if you go talk to SRE teams, they're like, oh, login is what we know. Some of that's changed a little bit, but. But at the end of the day, they should only be needed for more complicated audit trails because they're just not a good solution to the problem. It's just free form data. Structured or not, doesn't really matter. It's not aggregated. It's not something that you can really use. And it's why whenever you see logging tools, um, not even the papertrails of the world, but the bigger ones like Splunk or Cabana, it's like this weird, what we describe as choose your own adventure. Like go have fun, build your dashboards and try to make the logs useful kind of story. Whereas like something like Sentry, it's just like, why would you waste any time trying to build dashboards when we can just tell you when something new is broken? Like that's the ideal situation. [00:06:59] Jeremy: So it sounds like maybe the distinction is with a more general logging tool, like you mentioned Splunk and Kibana it's a collection of all this information. of things happening, even though nothing's necessarily wrong, whereas Sentry is more Sentry is it's going to log things, but it's only going to log things if Sentry believes something is wrong, either because of a crash or because of some kind of performance issue. People don't want to dig through logs or dashboards, they want to be told when something is wrong and whyMost software is built the same way, so we know common problems [00:07:28] David: Yeah. I, i would say it's about like actionability, right? Like, like nobody wants to spend their time digging through logs, digging through dashboards. Metrics are another good example of this. Like just charts with metrics on them. Yeah. They tell me something's happening. If there's lots of log statements, they tell me something's going on, but they're not, they're not optimized to like, help me solve a problem, right? And so our philosophy was always like, we haven't necessarily nailed this in all cases for what it's worth, but. It was like, the goal is we identify an actual problem, like close to like a root cause kind of problem, and we escalate that up and that's it. Uh, versus asking somebody to like go have to like build these dashboards, build these things, figure out what data matters and all this because most software looks exactly the same. Like if you have a web service, it doesn't matter what language it's written in, it doesn't matter how different you think your architecture is from somebody else's, they're all the same. It's like you've got a request, you've got a database, you've got some cache, you've got all these like known, known quantity things, and the slowness comes from the same places. Errors are structured while logs are not [00:08:25] David: The errors come from the same places. They're all exhibiting the same kinds of behavior. So logging is very unstructured. And what I mean by that is like there's no schema. Like you can hypothetically like make it JSON and everybody does that, but it's still unstructured. Whereas like errors, it's, it's a tight schema. It's like there's a type of error, there's a message for the error, there's a stack trace, there's all these things that you know. Right. And as soon as you know and you define those things, you can just build better products. And so distributed tracing is similar. Hypothetically, it's a little bit abstract to be fair, but hypothetically, distributed tracing is creating a schema out of basically network annotations. And somebody will yell at me for just simplifying it to that. I would tell 'em that's what it is. But, same goal in mind. If you know what the data is, you can take action on it. It's not quite entirely true. Um, because tracing is much more freeform. For example, it doesn't say if you have a SQL statement, it should be like this, it should be formatted this way, things like that. whereas like stack traces, there's a file name, there's there's a line number, there's like all these things, right? And so that's how I think about the delta between what is useful information and what isn't, I guess. And what allows you to actually build things like Sentry versus just build abstract exploration. Inferring problems rather than having user identify them [00:09:36] Jeremy: Kind of paint the picture of how someone would get started with a tool like Sentry. Do they need to tell Sentry anything about their application? Do they need to modify their source code at all? give us a picture of how that works. [00:09:50] David: Yeah, like one of our fundamentals, which I think applies for any real business these days is you've gotta like reduce user friction, right? Like you've gotta make it dead simple to use. Uh, and for us there were, there was like kind of a fundamental driving constraint behind that. So in many situations, um, APM vendors especially will require you to run an agent a basically like some kind of process that runs on your servers somewhere. Well, if you look at modern tech stacks, that doesn't really work because I don't run the servers half my stuff's in the browser, or it's a mobile app or a desktop app, and. Even if I do have those servers, it's like an entirely different team that controls them. So deploying like a sidecar, an agent is actually like much more complicated. And so we, we looked at that and also because like, it's much easier to have control if you just ship within the application. We're like, okay, let's build like an SDK and dependency that just injects into the, the application that runs, set an API key and then you're done. And so what that translates for Sentry is we spend a lot of time knowing what Django is or what Rails is or what expresses like all these frameworks. And just knowing how to plug into the right signals in those frameworks. And then at that point, like the user doesn't have to do anything. And so like the ideal outcome for Sentry is like you install the dependency in whatever language makes sense, right? You somehow configure the API key and maybe there's a couple other minor settings you add and that gives you the bare bones and that's it. Like it should just work from there. Now there's a lot you can do on top of that to enrich data and whatnot, but for the most part, especially for errors, like that's good enough. And that, that's always been a fundamental goal of ours. And I, I think we actually do it phenomenally well. [00:11:23] Jeremy: So it sounds like it infers things about the application without manual configuration. Can you give some examples of the kind of things that Sentry knows without the user having to tell it? [00:11:38] David: Yeah. So a good example. So on the errors side, we know literally everything because an error object in each language has all these attributes with it. It, it gives you the stack trace, it gives you a lot of these things. So that one's straightforward. On the performance side, we use a combination of leveraging some like open source, I guess implementations, like open telemetry where it's got all this instrumentation already and we can just soak that in, um, as well as we automatically instrument a bunch of stuff. So for example, say you've got like a Python application and you're using, let's say like SQL Alchemy or something. I don't actually know if this is how our SDK works right now, but, we will build something that's aware of that library and make sure it can automatically instrument the things it needs to get the right information out of it. And be fair. That's always been true for like APM vendors and stuff like that. The delta is, we've often gone a lot deeper. And so for Python for example, you plug it into an application, we'll capture things like the error, error object, which is like exception class name exception value, right? Stack trace, file, name, line number, all those normal things, function name. We'll also collect source code. So we'll, we'll give you sort of surrounding source code blocks for each line in the stack trace, which makes it infinitely easier to consume. And then in Python and, and php, and I forget if we do this anywhere else right now, we'll actually even allow you to collect what are called stack locals. So it'll, it'll give you basically the variables that are defined almost like a debugger. And that is actually, actually like game changing from a development point of view. Because if I can go look in production when there's an incident or a bug and I can actually see the state of the application. , I, I never need to know like, oh, what was going on here? Oh, what if like, do I need to go reproduce this somehow? I always have the right information. And so all of that for us is automatic and we only succeed like, it, it's, it's like by definition inside of Sentry, it has to be automatic. Like if we ask the user to do anything whatsoever, we're failing. And so whenever we design any product or anything, and to be fair, this is how every product company should operate. it's gotta be with as little user input as humanly possible. And so you can't always pull that off. Sometimes you have to have users configure stuff, but the goal should always be no input. Detecting errors through unhandled exceptions [00:13:42] Jeremy: So you, you're talking about getting a stack trace, getting, the state of variables, source code. That sounds like that's primarily gonna be through unhandled exceptions. Would you say that's, that's the primary way that you get error? [00:13:58] David: Yeah, you can integrate in other ways. So you can like trigger our API to capture an, uh, an exception. You can also, for better or worse, it's not always good. You can integrate through logging adapters. So if you're already using a logging framework and you log their errors there, we can often capture those. However, I will say in most cases, people use the logging APIs wrong and the data becomes junk. A good, a good example of this is like, uh, it varies per language. So I'm just gonna go to Python because Python is like sort of core to Sentry. Um, in Python you have the ability to log messages, you can log them as errors, you can log like actual error objects as errors. But what usually happens is somebody does a try-catch. They, they capture the error they rescue from it. They create a logging call, like log dot error or something, put the, the error message or value in there. And then they send that upstream. And what happens is the stack trace is gone because we don't know that it's an error object. And so for example, in Python, there's actually an an A flag. You pass the logging call to make sure that stack trace stays present. But if you don't know that the data becomes junk all of a sudden, and if we don't have a stack trace, we can't actually aggregate data because like there's just not enough information to like, to run hashing on it. And so, so there are a lot of ways, I guess, to capture the information, but there are like good ways and there are bad ways and I think it, it's in everybody's benefit when they design their, their apt to like build some of these abstractions. And so like as an example, when, whenever I would start a new project these days, I will add some kind of helper function for me to like log an exception when I like, try catch and then I can just plug in whatever I need later if I want to enrich the data or if I wanna send that to Sentry manually or send it to logs manually. And it just makes life a lot easier versus having to go back and like augment every single call in the code base. [00:15:37] Jeremy: So it, it sounds like. When you're using a tool like Sentry, there's gonna be the, the unhandled exceptions, which are ones that you weren't expecting. So those should I guess happen without you catching them. And then the ones that you perhaps do anticipate, but you still consider to be a problem, you would catch that and then you would add some kind of logging statement to your code that talks to Sentry directly. Finding issues like performance problems (N+1 queries) that are not explicit errorsz [00:16:05] David: Potentially. Yeah. It becomes a, a personal choice to be fair at that, at that point. but yeah, the, the way, one of the ways we've been thinking about this lately, because we've been changing our error monitoring product to not just be about errors, so we call it issues, and that's in the guise of like, it's like an issue tracker, a bug tracker. And so we started, we started putting what are effectively like, almost like static analysis concerns inside of this issue tracker. So for example, In our performance monitor, we'll do something called like detect n plus one queries, which is where you execute a, a duplicate query in a loop. It's not necessarily an error. It might not be causing a problem, but it could be causing a problem in the future. But it's like, you know, the, the, the qualities of it are not the same as an error. Like it's not necessarily causing the user to experience a bug. And so we've started thinking more about this, and, and this is the same as like logging errors that you handle. It's like, well, they're not really, they're not really bugs. It's like expected behavior, but maybe you still want to keep it like tracking somewhere. And I think about like, you know, Lins and things like that, where it's like, well, I've got some things that I definitely should be fixing. Then I've got a bunch of other stuff that's like informing me that maybe I should take action on or not. But only I, the human can really know at the end of the day, right, if I, if I should prioritize that or not. And so that's how I kind of think about like, if I'm gonna try catch and then log. Yeah, you should probably collect that data. It's probably less important than like the, these other concerns, like, like an actual unhandled exception. But you do, you do want to know that they're happening and whatnot. And so, I dunno, Sentry has not had a strong opinion on this historically. We're just like, send us whatever you want to capture in this regard, and you can pay for it, that's fine. It's like usage based, you know? we're starting to think a lot more about what should that look like if we, if we go back to like, what's the, what's the opinion we have for how you should use the product or how you should solve these kinds of software problems. [00:17:46] Jeremy: So you gave the example of detecting n plus one queries is, is that like being aware of the framework or the ORM the person is using and that's how you're determining this? Or is it at more of a lower level than that? [00:18:03] David: it is, yeah. It's at the framework level. So this is actually where Open Telemetry causes a lot of harm, uh, for us because we need to know what a database query is. Uh, we need to know like the structure of the query because we actually wanna parse it out in a lot of cases. Cause we actually need to identify if it's duplicate, right? And we need to know that it's a database query, not a random annotation that you've added. Um, and so what we do is within these traces, which is like if you, if you don't know what a trace is, it's basically just like, it's a tree, like a tree structure. So it's like A calls B, calls C, B also calls D and E and et cetera, right? And so you just, you know, it's a trace. Um, and so we actually just look at that trace data. We try to find these patterns, which is like, okay, B was a, a SQL query or something. And every single sibling of B is that same SQL query, but sort of removing certain parameters and stuff for the value. So we'll look at that data and we'll try to pull out anomalies. So m plus one is an example of like a fairly obvious anti pattern that everybody knows is bad and can be optimized. Uh, but there's a lot of other that are a little bit more subjective. I'll give you an example. If you execute three SQL statements back to back, one could argue that you could just batch those SQL statements together. I would argue most of the time it doesn't matter and I don't need to do that. And also it's not guaranteed that that is better. So it becomes much more like, well, in my particular situation this is valuable, but in this other situation it might not be. And that's where I go back to like, it's almost like a linter, you know? But we're trying to infer all of that from the data stream. So, so Sentry's kind of, we're kind of a backwards product company. So we build our product from a technology vision, not from customers want this, or we have this great product vision or anything like that. And so in our case, the technology vision is like, there's a lot of application data that comes in, a lot of telemetry, right? Errors, traces. We have a bunch of other streams now. within that telemetry there is like signal. And so one, it's all structured data so we know what it is so we can actually interpret it. And then we can identify that signal that might be a problem. And that signal in our case is often going to translate to like this issue concept. And then the goal is like, well, can we identify these problems for people and surface them versus the choose your own adventure model, which is like, we'll just capture everything and feed it to the user and they can figure out what matters. Because again, a web service is a web service. A database is a database. They're all the same problems for everybody. All you know, it's just, and so that's kind of the model we've built and are continuing to evolve on and, and so far works pretty well to, to curate a lot of these workflows. Want to infer everything, but there are challenges [00:20:26] Jeremy: You talked a little bit about how people will sometimes use tracing. And in cases like that, they may need some kind of session ID to track. Somebody making a call to a service and that talks to a database and that talks to other services. And you, inside of your application, you have to instrument some way of tracking. This all came from this one request. Is that something that Sentry can infer or is there something that the developer has to put into play so that you can track that sort of thing? [00:21:01] David: Yeah, so it's, it's like a bit of both. And i would say our goal is that we can infer everything. The reality is there is so much complexity and there's too much of a, like, too many technologies in the world. Like I was complaining about this the other day, like, the classic example on web service is if we have a middleware hook, We kind of know request response, usually that's how middleware would work, right? And so we can infer a lot from there. Like basically we can infer the boundaries, which is a really big deal. Okay. That's one thing is boundaries is a problem. What we, we describe that as a transaction. So like when the request starts. When the request ends, right? That's a very important boundary for everybody to understand because when I'm working on the api, I care about the API boundary. I actually don't care about what the database is doing at its low level or what the JavaScript application might be doing above it. I want my boundary. So that's one that we kind of can do. But it's hard in a lot of situations because of the way frameworks and technology has been designed, but at least traditional stuff like a, a traditional web stack, it works like a Rails app or a DDjango app or PHP app kind of thing, right? And then within that it becomes, well, how do you actually build a trace versus just have a bunch of arbitrary labels? And so we have a bunch of complicated tech within each language that tries to establish that tree. and then we annotate a lot of things along the way. And so we will either leverage Open Telemetry, which is an open format spec that ideally has very high quality data. Ideally, not realistically, but ideally it has high quality data. Every library author implements it great, everybody's happy. We don't have to do anything ever again. The reality is that data is like all over the map because there's not like strict requirements for what, how the data should be labeled and stuff. And not everything even has that data. Like not everything's instrumented with open telemetry. So we also have a bunch of stuff that, unrelated to using that we'll say, okay, we know what this library is, we're gonna try to infer some characteristics from this library, or we know what maybe like the DDjango template engine is. So we're gonna try to infer like when the template renders so you can capture that block of information. it is a very imperfect science and I would tell you like it's not, even though like Open Telemetry is a very fun topic for people. It is not necessarily good, like it's not in a good state. Could will it ever be good? I don't know in all honesty, but like the data quality is like all over the map and so that's honestly one of our biggest challenges to making this experience that, you know, tells you what's going on in your database so it tells you what's going on with the cash or things like this is like, I dunno, the cash might be called something completely random in one implementation and something totally different in another. And so it's a lot of like, like data normalization that you have to deal with. But for the most part, those libraries of things you don't control can and will be instrumented. Now the other interesting thing, which we'll see how this works out, so, so one thing Sentry tries to do there, we have all these layers of telemetry, so we have errors and traces, right? Those are pretty high level concepts. We also have profiling data, which is very, very, very, very low level. So it's usually only if you have like disc. I like. It's where is all the CPU time being spent in my application? Mostly not waiting. Like waiting's usually like a network call, right? But it's like, okay, I have a loop that's doing a lot of math, or I'm writing a bunch of stuff to disc and that's really slow. Like often those are not instrumented or it's like these black box areas of a performance. And so what we're trying to do with profiling data, instead of just showing you flame charts and stuff, is actually say, could we fill in these gaps in these traces? Like basically like, Hey, I've got a long period of time where the app's doing something. You know, here's an API call, here's the database stuff. But then there's this block, okay, what's that function or something? Can we pull that out of the profiling data? And so in that case, again, that's just automatic because the profile actually knows everything about the application and know it. It has full access to the function and the stack and everything, right? And so the dream is that you would just always have everything filled in the, the customer never has to do anything with one minor asterisk. And the asterisk is what I would call like business context. So a good example would be, You might wanna associate requests with a specific customer or something like that. Like you might wanna say, well it's uh, I don't know, Goldman Sachs or one of these big companies or something. So you can know like, well when Goldman Sachs is having performance issues or whatever it is, oh maybe I should focus on them cuz maybe they pay you a lot of money or something. Right. Sentry would never know that at the end of the day. So we also have these like kind of tagging contextual APIs that will say like, tell us some informations, maybe it's like customer, maybe it's something else that's relevant to your application. And we'll keep that data associated with the telemetry that's like present, you know, um, but the, at least the telemetry, like again, application's just worth the same, should be, there should be a day in the next few years that it's just all automatic. and again, the only challenge today is like, can it be high quality and automatic? And so that, that's like to be determined. [00:25:50] Jeremy: What you're kind of saying is the ideal is being able to look at this profiling information and be able to build a full picture of. a, a call from beginning to end, all the different things to talk to, but I guess what's the, what's the reality today? Like, what, what is Sentry able to determine, in the world we live in right now? [00:26:11] David: So we've done a lot of this like performance detection stuff already. So we actually can do a lot now. We put a lot of time into it and I, I will tell you, if you look at other tools trying to do tracing, their approach is much more abstract. It's like your traditional monitoring tool that's like, we're just gonna collect a lot of signals and maybe we'll find magic anomaly detection or something going on in it, which, you know, props, but that can figure that out. But, a lot of what we've done is like, okay, we kind of know what this data looks like. Let's go after this very like known quantity problem. Let's normalize the data. And let's make it happen like that's today. Um, the enrichment of profiles is new for us, but it, we actually can already do it. It's not perfect. Detection of blocking the UI thread in mobile apps [00:26:49] David: Um, and I think we're launching something in April or May, something around the, that timeframe where hopefully for the, the technologies we can instrument, we're actually able to surface that in a useful way. but as an example that, that concept that I was talking about, like with n plus one queries, the team built something using profiling data. and I think this, this might be for like a mobile app more so than anything where mobile apps have this problem of, it's, you've got a main thread and if you block that main thread, the app is basically frozen. You see this on desktop apps all the time. You, you very rarely see it on web apps anymore. But, but it's a really big problem when you have a web, uh, a mobile or desktop app because you don't want that like thing to be non-responsive. Right? And so one of the things they did was detect when you're doing like file io on the main thread, you know, right. When you're writing a disc, which is probably a slow thing or something like that, that's gonna block the whole thing. Because you should just do it on a separate thread. It's like an easy fix, potentially may not be a problem, but it could become a problem. Same thing as n plus one. But what's really interesting about it is what the team did is like they used the profiling data to detect it because we already know threads and everything in there, and then they actually recreated a stack trace out of that profiling data when it's surfaced. So it's actually like useful data with that. You could like that I or you as a developer might know how to take and actually be like, oh, this is where it happens at the source code. I can actually figure it out and go fix it myself. And to me, like as like I, I'm still very much in the weeds with software that is like one of the biggest gaps to most things. Is it just, it doesn't make it easy to consume or like take action on, right? Like if I've got a, a chart that says my error rate is high, what am I gonna do with that? I'm like, okay, what's breaking? That's immediately my next question. Right? Okay. This is the error. Where is that error happening at? Again, my next question, it, it's literally just root cause analysis, right? Um, and so that, that to me is very exciting. and I, I don't know that we're the first people to do that, I'm not sure. But like, if we can make that kind of data, that level of actionable and consumable, that's like a big deal for me because I will tell you is like I have 20 years of software experience. I still hate flame charts and like I struggle to use them. Like they're not a friendly visualization. They're almost like a, a hypothetically necessary evil. But I also think one where nobody said like, do we even need to use that? Do we need that to be like the way we operate? and so anyways, like I guess that's my long-winded way of saying like, I'm very excited for how we can leverage that data and change how it's used. [00:29:10] Jeremy: Yeah. So it sounds like in this example, both in the mobile app blocking the UI or the n plus one query is the Sentry, suppose, SDK or instrumentation that's hooked inside of your application. There are certain behaviors that it knows are, are not like ideal I guess, just based on. people's prior experience, like your own developers know that, hey, if you block the UI thread in this mobile application, then you're gonna have performance problems. And so that way, rather than just telling you, Hey, your app is slow, it can tell you your app is slow and it's because you're blocking the UI thread. Don't just aggregate metrics, the error tracker should have an opinion on what actual problems are [00:29:55] David: Exactly, and I, and I actually think, I don't know why so many people don't recognize this gap, because at the end of the day, like, I don't know, I don't need more people to tell me response times are bad or anything. I need you to have an opinion about what's good because. The only way it's like math education, right? Like, yeah, you learn the basics, but you're not expected to say, go to calc, but, and then like, do all the fundamentals. You're like, don't get a calculator and start simplifying the problem. Like, yeah, we're gonna teach you a few of these things so you understand it. We're gonna teach you how to use a calculator and then just use the calculator and then make it easier for everybody else. But we're also not teaching you how to build a calculator because who cares? Like, that's not the purpose of it. And so for me, this is like, we should be helping people sort of get to the finish line instead of making them run the entirety of the race over and over if they don't need to. I don't, I don't know if that's a good analogy, but that has been the biggest gap, I think, in so much of this software throughout the industry. And it's, it's, it's common everywhere. And there's no reason for that gap to exist these days. Like the technology's fine. And the technology's been fine for like 10 years. Like Sentry started in oh eight at this point. And I think there was only one other company I recall at the time that was doing anything that was even similar to like air monitoring and Sentry when we built it, we're just like, what if we just go deeper? What if we collect all this information that will help you debug the problem instead of just stopping it like a log aggregator or something kind of thing, so we can actually have an opinion about it. And I, I genuinely, it baffles me that more people do not think this way because it was not a hard problem at the time. It's certainly not hard these days, but there's still very, I mean, a lot more people do it now. They've seen Sentry successful and there's a lot of similar implementations, but it's, it's just amazes me. It's like, why don't you, why don't people try to make the data more actionable and more useful, the teams versus just collect more of it, you know? 40 people working on learning the common issues with languages and frameworks [00:31:41] Jeremy: it, it sounds like maybe the, the popularity of the stack the person is using or of the framework means that you're gonna have better insights, right? Like if somebody makes a, a Django application or a Rails application, there's all these lessons that your team has picked up in terms of, Hey, if you use the ORM this way, your application is gonna be slow. Whereas if somebody builds something totally homegrown, you won't know these patterns and you won't be able to like help as much basically. [00:32:18] David: Yeah. Yeah, that's exactly, and, and you might think that that is a challenge, but then you look at how many employees exist at like large tech companies and it's, it's not that big of a deal, like, , you might even think collecting all the information for each, like programming, runtime or framework is a challenge. We have like 40 people that work on that and it's totally fine. Like, and, and so I think actually all these scale just fine. Um, but you do have to understand like the domain, right? And so the counter version of this is if you look at say like browser applications, like very rich, uh, single page application type experiences. It's not really obvious like what the opinions are. Like, like if, if you, and this is like real, like if you go to Sentry, it's, it's kind of slow, like the app is kind of slow. Uh, we even make fun of ourselves for how slow it is cuz it's a lot of JavaScript and stuff. If you ask somebody internally, Hey, how would we make pick a page fast? They're gonna have no clue. Like, even if they have like infinite domain experience, they're gonna be like, I'm not entirely sure. Because there's a lot of like moving parts and it's not even clear what like, like good is right? Like we know n plus one is bad. So we can say not doing that is the better solution. And so if you have a JavaScript app, which is like where a lot of the slowness will come from is like the render times itself. Like how do you fix it? You, you can't actually build a product that tells you what to fix without knowing how to fix it, right? And so some of these newer and very fast moving targets are, are frankly very difficult for us. Um, and so that's one thing that I think is a challenge for the entire industry. And so, like, as an example, a lot of the browser folks have latched onto web vitals, which are just metrics that hopefully tell you something about the application, but they're not always actionable either. It'll be like, the idea with like web vitals is like, okay, time to interactive is an an important metric. It's like how long until the page loads that a user can do what they're probably there to do. Okay. Like abstractly, it makes sense to us, but like put into action. How do I optimize time to interactive? Don't block the page. That's one thing. I don't know. Defer assets, that's another thing. Okay. So you've gotta like, you've gotta build a technology that knows these assets could be deferred and aren't. Okay, which ones can be deferred? I don't know. Like, it, it, it's like such a deep rabbit hole. And then the problem is, six months from now, the tech will have completely changed, right? And it won't have like, necessarily solved some of these problems. It will just have changed and they're now a completely different shape of problem. But still the same fundamental like user experience is the same, you know? Um, and to me that's like the biggest challenge in the industry right now is that like dilemma of the browser at the end of the day. And so even from our end, we're like, okay, maybe we should step back, focus on servers again, focus on web services. Those are known quantities. We can do that really well. We can sort of change that to be better than it's been in the past and easier to consume with things like our n plus one detections. Um, and then take like a holistic, fresh look at browser and say, okay, now how would we solve this to make sure we can actually really latch onto the problems that like people have and, and we understand, right? And, you know, we'll see when we get there. I don't think any product does a great job these days for helping, uh, solve those problems. . But I think even without the, the products, like I said, like even our team would be like, fixing this is gonna take months because it's gonna take months just to figure out exactly where the, the common bottlenecks are and all these other things within an application. And so I, I guess what I mean to say with that is there's a lot of opportunity, I think with the moving landscape of technology, we can find a way to, whether it's standardized or Sentry, can find a way to make that data actionable want it something in between there. There are many ways to build things on the frontend with JavaScript which makes it harder to detect common problems compared to backend [00:35:52] Jeremy: So it sounds like what you're saying, With the, the back end, there's almost like a standard way of doing things or a way that a lot of people do it the same way. Whereas on the front end, even if you're looking at a React application, you could look at tenant react applications and they could all be doing state management a totally different way. They could be like the, the way that the application is structured could be totally different, and that makes it difficult for you to infer sort of these standard patterns on the front end side. [00:36:32] David: Yeah, that's definitely true. And it, it goes, it's even worse than that because well, one, there's just like the nature of JavaScript, which is asynchronous in the sense of like, it's a lot of callbacks and things like that. And so that already makes it hard to understand what's going on, uh, where things are happening. And then you have these abstractions like React, which are very good, but like they pull a lot of that away. And so, as an example of a common problem, you load the application, it has to do a lot of stuff to make the page render. You might call that hydration or whatever. Okay. And then there's a completely different state, which is going from, it's already hydrated. Page one, I, I've done an interaction or something. Or maybe I've navigated a page too, that's an entirely different, like, sort of performance problem. But that hydration time, that's like a known thing. That's kind of like time to interactive, right? But if the problem is in your framework, which a lot of it is like a lot of the problems today exist because of frameworks, not because of the technology's bad or the framework's bad, but just because it's abstracted and it's really hard to make it work in all these situations, it's complicated. And again, they have the same problem where it's like changing non sem. And so if the problem is the framework is somehow incorrectly re rendering the page as an example, and this came up recently, for some big technology stack, it's re rendering the page. That's a really bad problem for the, the customer because it's making the, it's probably actually causing a lot of CPU seconds. This is why like your Chrome browser tabs are using so much memory in cpu, right? How do you fix that? Can you even fix that? Do you just say, I don't know, blame the technology? Is that the solution? Maybe that is right, but how would we even blame the technology like that alone, just to identify why it's happening. and you need to know the why. Right? Like, that is such a hard problem these days. And, and personally, I think the only solution is if the industry sort of almost like standardizes on a way to like, on a belief of how this should be optimized and how it should be measured and monitored kind of thing. Because like how errors work is like a standardization effectively. It may not be like a formal like declaration of like, this is what an error is, but more or less they always have the same attributes because we've all kind of understood that. Like those are the valuable things, right? Okay. I've got a server rendered application that has client interaction, which is sort of the current generation of the technology. We need to standardize on what, like that web request, like response life cycle is, right? and what are the moving targets within there. And it just, to me, I, I honestly feel like a lot of what we use every day in technology is like beta. Right. And it's, I think it's one of the reasons why we're constantly always having to up, like upgrade and, and refactor and, and, and shift dependencies and things like that because it is not, it's very much a prototype, right? It's a moving target, which I personally do not think is great for the industry because like customers do not care. They do not care that you're using some technology that like needs a change every few months and things like that. now it has improved things to be fair. Like web applications are much more like interactive and responsive sometimes. Um, but it is a very hard problem I think for a lot of people in the world. [00:39:26] Jeremy: And, and when you refer to, to things feeling like beta, I suppose, are, are you referring to the frameworks people are using or the libraries they're using to support their front end development? I, I'm curious what you're, you're thinking there. [00:39:41] David: Um, I think it's everything. Even like the browser APIs are constantly shifting. It's, that's gotten a little bit better. But even the idea like type script and stuff, it's just like we're running like basically compilers to make all this code work. And, and so the, even that they're constantly adding features just because they can, which means behaviors are constantly changing. But like, if you look at a real world example, like React is like the, the most dominant technology. It's very well designed for managing the dom. It's basically just a rendering engine at the end of the day. It's like it's managed to process updates to the dom. Okay. Makes sense. But we've all learned that these massive single page applications where you build all your application logic and loaded into a bundle is a problem. Like, like, I don't know how big Sentry's bundle is, but it's multiple megs in size and it takes a little while for like a, even on fast fiber here in the Bay Area, it takes a, you know, several seconds for the UI to load. And that's not ideal. Like, it's like at some point half of us became okay with this. So we're like, okay, what we need to do is go back, literally just go back 10 years and we need to render it on the server. And then we need some stuff that makes interactions, you know, highly responsive in the UI or dynamic content in the ui, you know, bring, it's like bringing back jQuery or something. And so we're kind of going full circle, but that is actually like very complicated because the way people are trying to do is like, okay, we wanna, we wanna have the rendering engine operate the same on the server and is on as on the client, right? So it's like we just write one, path of code that basically it's like a template engine to some degree, right? And okay, that makes sense. Like we can all get behind that kind of model. But that is actually really hard to make work with a lot of people's software and, and I think the challenge and framers have adopted it, right? So they've taken this, so for example, it's like, uh, react server components, which is basically just like, can we render it on the server and then also keep that same interaction in the ui. But the problem is like frameworks take that, they abstract it and so it's another layer of complexity on something that is already enormously complex. And then they add their own flavor onto it, like their own opinions for maybe what the world way the world is going. And I will say like personally, I find those. Those flavors to be very hard to adapt to like things that are tried and true or importantly in this context, things that we know how to monitor and fix, right? And so I, I don't know what, what the be all end all is, but my thesis on this is you need to treat the UI like a template engine, and that's it. Remove all like complexity behind it. And so if you think about that, the term I've labeled it as, which I did not come up with, I saw this from somebody at some point, is like, it's like your front end as a service. Like you need to take that application that renders on the server and the front end, and it's just an entirely different application, which is annoying. and it just calls your APIs and that's how it gets the data it needs. So you're literally just treating it as if it's like a single page application that can't connect to your database. But the frameworks have not quite done that. And they're like, no, no, no. We'll connect to the database and we'll do all this stuff, but then it doesn't work because you've got, like, it works this way on the back end and this way on the front end anyways. Again, long winded way of saying like, it's very complicated. I don't think the technology can solve it today. I think the technology has to change before these problems can actually genuinely become solvable. And that's why I think the whole thing is like a beta, it's like, it's very much like a moving target that we're eventually we'll get there and it's definitely had value, but I don't know that, um, responsiveness for low latency connections is where the value has been created. You know, for like folks with bad internet and say remote Africa or something, like I'm sure the internet is not a very fun place for them to use these days. Some frontend code runs on the server and some in the browser which creates challenges [00:43:05] Jeremy: I guess one of the things you mentioned is there's this, almost like this split where you have the application running on the server. It has its own set of rules because it, like you said, has access to the database and it can do things that you can't do in the browser, and then you have to sort of run the same application in the browser, but it's not quite the same application because it doesn't have access to the same things in the browser. So you have this weird disconnect, I suppose. [00:43:35] David: Yeah. Yeah. And, and, and then the challenges is like a developer that's actually complicated for you from the experience point of view, cuz you have to know somehow, okay, these things are ta, these are actually running on the server and only on the server. And like, so I think the two biggest technologies that try to do this, um, or at least do it well enough, or the two that I've used, there might be some others, um, are NextJS and remix and they have very different takes on how to do this. But, remix is the one I use most recently. So I, I'll comment on that. But like, there's a, a way that you kind of say, well, this only runs on, I think the client as an example. And that helps you a little bit. You're like, okay, this is only gonna render on the client. I can, I actually can think about that and reason about that. But then there's this thing like, okay, sometimes this runs on the server, only this part runs on the server. And it's, it just becomes like the mental capacity to figure out what's going on and debug it is like so difficult. And that database problem is like the, the normal problem, right? Like of like, I can only query the database on the server because I need secure credentials or something. Okay. I understand that as a developer, but I don't understand how to make sure the application is doing what I expect it to do and how to fix it if something goes wrong. And that, that's why I think. , I'm a, I'm a believer in constraints. The only way you make progress is you simplify problems. Like you just give up on solving the complicated thing and you make the problem simpler. Right? And so for me, that's why I'm like, just take the database outta the equation. We can create APIs from the client, from the server, same security levels. Okay? Make it so it can only do that and it has to be run as almost like a UI only thing. Now that creates complexity cuz you have to run this other service, right? And, and like I personally do not wanna have to spin up a bunch of containers just to write like a simple like web application. but again, I, I think the problem has not been simplified yet for a lot of folks. Like React did this to be fair, um, it made it a lot easier to, to build UI that was responsive and, and just updated values when they changed, you know, which was a big deal for a long period of time. But I feel like everything after has not quite reached that that area, whereas it's simple and even react is hard to debug when it doesn't do what you want it to do. So I don't know, there, there's so gaps I guess is what i would say. And. Hopefully, hopefully, you know, in the next five years we'll kind of see this come to completion because it does feel like it's, it's getting closer to that compromise. You know, where like we used to have pure server rendered apps with some weird janky JavaScript on top. Now we've got this bridge of really complicated, you know, JavaScript on top, and the server apps are also complicated and it's just, it's a nightmare. And then this newer generation of these frameworks that work for some types of technology, but not all. And, and we're kind of almost coming full circle to like server rendered, you know, everything. But with like allowing the same level of interactions that we've been desiring, I guess, on the web. So, and I, fingers crossed this gets better, but right now I do not see like a clear like, oh, it's definitely there. I can see it coming. I'm like, well, we're kind of making progress. I don't love being the beta tester of the whole thing, but we're kind of getting there. And so, you know, we'll see. There are multiple ways to write mobile apps as well (flutter, react native, web views) [00:46:36] Jeremy: I guess you, you've been saying this whole shifting landscape of how Front End works has made it difficult for Sentry to provide like automatic instrumentation and things like that for, for mobile apps. Is that a different story? Like is it pretty standardized in terms of how do you instrument an Android app or an iOS app. [00:46:58] David: Sort of, but also, no, like, a good example here is like early days mobile, it's a native application. You ship a binary known quantity, right? Or maybe you embedded a web browser, but like, that was like a very different thing. Okay. And then they did things where like, okay, more of it's like embedded web browser type stuff, or dynamically render content. So that's now a moving target. the current version of that, which I'm not a mobile dev so like people have strong opinions on both sides of this fence, but it's like, okay, do you use like a, a hybrid framework which allows you to build. Say, uh, react native, which is like arou you to sort of write a JavaScript ish thing and it runs on both Android and mobile, but not really well on either. Um, or do you write a native, native app, which is like a known quantity, but then you may maintain like two code bases, have two degrees of expertise and stuff. Flutters the same thing. so there's still that version of complexity that goes on within it. And I, I think people care less about mobile cuz it impacts people less. Like, you know, there's that whole generation of like, oh, mobile's the future, everything's gonna be mobile, let's not become true. Uh, mobile's very important, but like we have desktops still. We use web software all the time, half the time on mobile. We're just using the web software at the end of the day, so at least we know that's a thing. And I think, so I think that investment in mobile has died down some. Um, but some companies like mobile is like their main experience or one of their driving experience is like a, like a company like DoorDash, mobile is as important as web, if not more, right? Because of like the types of customers. Spotify probably same thing, but I don't know, Sentry. We don't need a mobile app, who cares? It's irrelevant to the problem space, right? And so I, I think it's just not quite taken on. And so mobile is still like this secondary citizen at a lot of companies, and I think the evolution of it has been like complicated. And so I, I think a lot of the problems are known, but maybe people care less or there's just less customers. And so the weight doesn't, like, the weight is wildly different. Like JavaScript's probably like a hundred times the size from an investment point of view for everyone in the world than say mobile applications are, is how I would think about it. And so whether mobile is or isn't solved is almost irrelevant to the, the, the like general problem at hand. and I think at the very least, like mobile applications, there's like, there's like a tool chain where you can debug a lot of stuff that works fairly well and hasn't changed over the years, whereas like the web you have like browser tools, but that's about it. So. Mobile apps can have large binaries or pull in lots of dependencies at runtime [00:49:16] Jeremy: So I guess with mobile. Um, I was initially thinking of native apps, but you're, you're bringing up that there's actually people who would make a native app that's just a web view for a webpage, or there's React native or there's flutters, so there's actually, it really isn't standard how to make a mobile app. [00:49:36] David: Yeah. And even within those, it comes back to like, okay, is it now the same problem where we're loading in a bunch of JavaScript or downloading a bunch of JavaScript and content remotely and stuff? And like, you'll see this when you install a mobile app, and sometimes the binaries are huge, right? Sometimes they're really small, and then you load it up and it's downloading like several gigs of data and stuff, right? And those are completely different patterns. And even within those like subsets, I'm sure the implementations are wildly different, right? And so, you know, I, that may not be the same as like the runtime kind of changing, but I remember there was this, uh, this must be a decade ago. I, I used, I still am a gamer, but. Um, early in my career I worked a lot with like games like World of Warcraft and stuff, and I remember when games started launching progressive loading where it's like you could download a small chunk of the game and actually start playing and maybe the textures were lower, uh, like resolution and everything was lower fidelity and, and you could only go so far until the game fully installed. But like, imagine like if you're like focused on performance or something like that, measuring it there is completely different than measuring it once, say everything's installed, you know? And so I think those often become very complex use cases. And I think that used to be like an extreme edge case that was like such a, a hyper-specific optimization for like what The Warcraft, which is like one of the biggest games of all time that it made sense, you know, okay, whatever. They can build their own custom tooling and figure it out from there. And now we've taken that degree of complexity and tried to apply it to everything in the world. And it's like uhoh, like nobody has the teams or the, the, the talent or the, the experience to necessarily debug a lot of these complicated problems just like Sentry like. You know, we're not dealing with React internals. If something's wrong in the React internals, it's like somebody might be able to figure it out, but it's gonna take us so much time to figure out what's going on, versus, oh, we're rendering some html. Cool. We understand how it works. It's, it's a known, known problem. We can debug it. Like there's nothing to even debug most of the time. Right. And so, I, I don't know, I think the industry has to get to a place where you can reason about the software, where you have the calculator, right. And you don't have to figure out how the calculator works. You just can trust that it's gonna work for you. How Sentry's stack has become more complex over time [00:51:35] Jeremy: so kind of. Shifting over a little bit to Sentry's internals. You, you said that Sentry started in, was it 2008 you said? [00:51:47] David: Uh, the open source project was in 2008. Yeah. [00:51:50] Jeremy: The stack that's used in Sentry has evolved. Like I remembered that there was a period where I think you could run it with a pretty minimal stack, like I think it may have even supported SQLite. [00:52:02] David: Yeah. [00:52:03] Jeremy: And so it was something that people could run pretty easily on their own. But things have, have obviously changed a lot. And so I, I wonder if you could speak to sort of the evolution of that process. Like when do you decide like, Hey, this thing that I built in 2008, Is, you know, not gonna cut it. And I really need to re-architect what this system is. [00:52:25] David: Yeah, so I don't know if that's actually the reality of why things have changed, that it's like, oh, this doesn't work anymore. We've definitely introduced complexity in the sense of like, probably the biggest shift for Sentry was like, it used to be everything, and it was a SQL database, and everything was kind of optional. I think half that was maintainable because it was mostly built by. And so I could maintain like an architectural vision that kept it minimal. I had the experience to figure it out and duct tape the right things. Um, so that was one thing. And I think eventually, you know, that doesn't scale as you're trying to do more and build more into the product. So there's some complexity there. but for the most part you can, it can still
OpenAI's ChatGPT leaked potential new features for a business variant of the chatbot, while Aya aims to accelerate multilingual AI progress through open collaboration. LEACE and Leveraging Large Language Models for Scalable Vector Graphics-Driven Image Understanding propose new methods for improving fairness, interpretability, and computer vision. Contact: sergi@earkind.com Timestamps: 00:34 Introduction 01:33 Leaked ChatGPT Docs Reveal Potential New Features 03:08 Introducing Aya: An Open Science Initiative to Accelerate Multilingual AI Progress 06:01 Apple execs on Facebook 07:01 Fake sponsor 08:40 LEACE: Perfect linear concept erasure in closed form 10:23 Can Large Language Models Infer Causation from Correlation? 11:42 Leveraging Large Language Models for Scalable Vector Graphics-Driven Image Understanding 13:44 Outro
Have you ever wondered why love can sometimes seem “blind”? Or why some people are drawn to people who might not be the best for them? In this episode, we look into the fascinating world of human behavior and the underlying factors that shape our relationships. Join us as we explore the profound insights of Philip Shanker and find out how attachment theory helps us understand our actions and habits. Drawing from attachment theory, we discover that our early attachment experiences have a lasting impact on our attachment styles and how we form relationships. We explore how our experiences as kids affect our ability to love and form our own personalities. We also challenge the stigmas associated with mental health by recognizing that modern psychological theories, rooted in attachment theory, embrace a broader understanding of our upbringing and its impact on various aspects of our lives. Through this transformative episode, you will gain a deeper understanding of why we do the things we do and uncover strategies for cultivating healthier and more fulfilling relationships. Listen to Episode 177 to learn more! Attachment Theory The importance of attachment in human development Two types of attachment wounds Inferring trauma on our children How childhood attachment experiences affect our relationships Attachment, Trauma and Transference
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.05.02.539055v1?rss=1 Authors: Sadeghi, M., Sharif Razavian, R., Bazzi, S., Chowdhury, R. H., Batista, A. P., Loughlin, P. J., Sternad, D. Abstract: Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.04.18.537149v1?rss=1 Authors: Saghafi, S., Rumbell, T. H., Gurev, V., Kozloski, J. C., Tamagnini, F., Wedgwood, K. C., Diekman, C. O. Abstract: Alzheimer's disease (AD) is believed to occur when abnormal amounts of the proteins amyloid beta and tau aggregate in the brain, resulting in a progressive loss of neuronal function. Hippocampal neurons in transgenic mice with amyloidopathy or tauopathy exhibit altered intrinsic excitability properties. We introduce a novel parameter inference technique, deep hybrid modeling (DeepHM), that combines deep learning with biophysical modeling to map experimental data recorded from hippocampal CA1 neurons in transgenic AD mice and age-matched wildtype littermate controls to the parameter space of a conductance-based CA1 model. Although mechanistic modeling and machine learning methods are by themselves powerful tools for approximating biological systems and making accurate predictions from data, when used in isolation these approaches suffer from distinct shortcomings: model and parameter uncertainty limit mechanistic modeling, whereas machine learning methods disregard the underlying biophysical mechanisms. DeepHM addresses these shortcomings by using conditional generative adversarial networks (cGANs) to provide an inverse mapping of data to mechanistic models that identifies the distributions of mechanistic modeling parameters coherent to the data. Here, we demonstrate that DeepHM accurately infers parameter distributions of the conductance-based model and outperforms a Markov chain Monte Carlo method on several test cases using synthetic data. We then use DeepHM to estimate parameter distributions corresponding to the experimental data and infer which ion channels are altered in the Alzheimer's mouse models compared to their wildtype controls at 12 and 24 months. We find that the conductances most disrupted by tauopathy, amyloidopathy, and aging are delayed rectifier potassium, transient sodium, and hyperpolarization-activated potassium, respectively. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Ultimate ends may be easily hidable behind convergent subgoals, published by TsviBT on April 2, 2023 on LessWrong. [Metadata: crossposted from. First completed December 18, 2022.] Thought and action in pursuit of convergent instrumental subgoals do not automatically reveal why those subgoals are being pursued--towards what supergoals--because many other agents with different supergoals would also pursue those subgoals, maybe with overlapping thought and action. In particular, an agent's ultimate ends don't have to be revealed by its pursuit of convergent subgoals. It might might therefore be easy to covertly pursue some ultimate goal by mostly pursuing generally useful subgoals of other supergoals. By the inspection paradox for the convergence of subgoals, it might be easy to think and act almost comprehensively like a non-threatening agent would think and act, while going most of the way towards achieving some other more ambitious goal. Note: the summary above is the basic idea. The rest of the essay analyzes the idea in a lot of detail. The final main section might be the most interesting. What can you tell about an agent's ultimate intent by its behavior? An agent's ultimate intent is what the agent would do if it had unlimited ability to influence the world. What can we tell about an agent's ultimate intent by watching the external actions it takes, whether low-level (e.g. muscle movements) or higher-level (e.g. going to the store), and by watching its thinking (e.g. which numbers it's multiplying, which questions it's asking, which web searches it's running, which concepts are active)? Terms The cosmos is everything, including the observable world, logical facts, observers and agents themselves, and possibilities. A goal-state is a state of the cosmos that an agent could try to bring about. (A state is equivalent to a set of states; more formally, the cosmos is a locale of possibilities and a goal-state is an open subspace.) An instantiation of a cosmos-state is a substate. E.g. [I have this particular piece of gold] is an instantiation of [I have a piece of gold in general]. A goal is a property of an agent of the form: this agent is trying to bring about goal-state G. Overloading the notation, we also say the agent has the goal G, and we can imprecisely let the term also stand for whatever mental elements constitute the goal and its relations to the rest of the agent. A pursuit of G is behavior, a set of actions, selected to achieve G. Since an agent having a goal G is basically the same as the agent pursuing G, we also say e.g. "the farmer has the goal [grow crops]", which really means, "the farmer selects actions that ze expects will bring about zer goal state [have crops], and so ze behaves in a way that's well-described as [growing crops]". A strategy (for G) is a pursuit (of G) that involves an arrangement of goals (perhaps in sequence or in multiple parallel lines, perhaps with branching on contingencies). If an agent is following a strategy for G, then for each goal Gs in the strategy, Gs is a subgoal of the agent's goal of G, and G is a supergoal of Gs. We can also loosely say that some goal G′ is a subgoal of G if G′ helps achieve G, whether or not there's an agent pursuing G using G′, meaning vaguely something like "there's a strategy sufficient to achieve G that uses G′ as a necessary part" or "many agents will do reasonably well in pursuing G if they use G′". An intermediate goal is a goal that motivates the pursuit of subgoals, and itself is motivated by the pursuit of one or more supergoals. The motivator set of a goal G is the set of goals Gs such that Gs is plausibly a supergoal of G. The (sufficient) strategy set of a goal G is the set of strategies that are sufficient to achieve G. Inferring supergoals through subgoals Suppose that G is an in...
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Ultimate ends may be easily hidable behind convergent subgoals, published by Tsvi Benson-Tilsen on April 2, 2023 on The AI Alignment Forum. [Metadata: crossposted from. First completed December 18, 2022.] Thought and action in pursuit of convergent instrumental subgoals do not automatically reveal why those subgoals are being pursued--towards what supergoals--because many other agents with different supergoals would also pursue those subgoals, maybe with overlapping thought and action. In particular, an agent's ultimate ends don't have to be revealed by its pursuit of convergent subgoals. It might might therefore be easy to covertly pursue some ultimate goal by mostly pursuing generally useful subgoals of other supergoals. By the inspection paradox for the convergence of subgoals, it might be easy to think and act almost comprehensively like a non-threatening agent would think and act, while going most of the way towards achieving some other more ambitious goal. Note: the summary above is the basic idea. The rest of the essay analyzes the idea in a lot of detail. The final main section might be the most interesting. What can you tell about an agent's ultimate intent by its behavior? An agent's ultimate intent is what the agent would do if it had unlimited ability to influence the world. What can we tell about an agent's ultimate intent by watching the external actions it takes, whether low-level (e.g. muscle movements) or higher-level (e.g. going to the store), and by watching its thinking (e.g. which numbers it's multiplying, which questions it's asking, which web searches it's running, which concepts are active)? Terms The cosmos is everything, including the observable world, logical facts, observers and agents themselves, and possibilities. A goal-state is a state of the cosmos that an agent could try to bring about. (A state is equivalent to a set of states; more formally, the cosmos is a locale of possibilities and a goal-state is an open subspace.) An instantiation of a cosmos-state is a substate. E.g. [I have this particular piece of gold] is an instantiation of [I have a piece of gold in general]. A goal is a property of an agent of the form: this agent is trying to bring about goal-state G. Overloading the notation, we also say the agent has the goal G, and we can imprecisely let the term also stand for whatever mental elements constitute the goal and its relations to the rest of the agent. A pursuit of G is behavior, a set of actions, selected to achieve G. Since an agent having a goal G is basically the same as the agent pursuing G, we also say e.g. "the farmer has the goal [grow crops]", which really means, "the farmer selects actions that ze expects will bring about zer goal state [have crops], and so ze behaves in a way that's well-described as [growing crops]". A strategy (for G) is a pursuit (of G) that involves an arrangement of goals (perhaps in sequence or in multiple parallel lines, perhaps with branching on contingencies). If an agent is following a strategy for G, then for each goal Gs in the strategy, Gs is a subgoal of the agent's goal of G, and G is a supergoal of Gs. We can also loosely say that some goal G′ is a subgoal of G if G′ helps achieve G, whether or not there's an agent pursuing G using G′, meaning vaguely something like "there's a strategy sufficient to achieve G that uses G′ as a necessary part" or "many agents will do reasonably well in pursuing G if they use G′". An intermediate goal is a goal that motivates the pursuit of subgoals, and itself is motivated by the pursuit of one or more supergoals. The motivator set of a goal G is the set of goals Gs such that Gs is plausibly a supergoal of G. The (sufficient) strategy set of a goal G is the set of strategies that are sufficient to achieve G. Inferring supergoals through subgoal...
Link to original articleWelcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Ultimate ends may be easily hidable behind convergent subgoals, published by TsviBT on April 2, 2023 on LessWrong. [Metadata: crossposted from. First completed December 18, 2022.] Thought and action in pursuit of convergent instrumental subgoals do not automatically reveal why those subgoals are being pursued--towards what supergoals--because many other agents with different supergoals would also pursue those subgoals, maybe with overlapping thought and action. In particular, an agent's ultimate ends don't have to be revealed by its pursuit of convergent subgoals. It might might therefore be easy to covertly pursue some ultimate goal by mostly pursuing generally useful subgoals of other supergoals. By the inspection paradox for the convergence of subgoals, it might be easy to think and act almost comprehensively like a non-threatening agent would think and act, while going most of the way towards achieving some other more ambitious goal. Note: the summary above is the basic idea. The rest of the essay analyzes the idea in a lot of detail. The final main section might be the most interesting. What can you tell about an agent's ultimate intent by its behavior? An agent's ultimate intent is what the agent would do if it had unlimited ability to influence the world. What can we tell about an agent's ultimate intent by watching the external actions it takes, whether low-level (e.g. muscle movements) or higher-level (e.g. going to the store), and by watching its thinking (e.g. which numbers it's multiplying, which questions it's asking, which web searches it's running, which concepts are active)? Terms The cosmos is everything, including the observable world, logical facts, observers and agents themselves, and possibilities. A goal-state is a state of the cosmos that an agent could try to bring about. (A state is equivalent to a set of states; more formally, the cosmos is a locale of possibilities and a goal-state is an open subspace.) An instantiation of a cosmos-state is a substate. E.g. [I have this particular piece of gold] is an instantiation of [I have a piece of gold in general]. A goal is a property of an agent of the form: this agent is trying to bring about goal-state G. Overloading the notation, we also say the agent has the goal G, and we can imprecisely let the term also stand for whatever mental elements constitute the goal and its relations to the rest of the agent. A pursuit of G is behavior, a set of actions, selected to achieve G. Since an agent having a goal G is basically the same as the agent pursuing G, we also say e.g. "the farmer has the goal [grow crops]", which really means, "the farmer selects actions that ze expects will bring about zer goal state [have crops], and so ze behaves in a way that's well-described as [growing crops]". A strategy (for G) is a pursuit (of G) that involves an arrangement of goals (perhaps in sequence or in multiple parallel lines, perhaps with branching on contingencies). If an agent is following a strategy for G, then for each goal Gs in the strategy, Gs is a subgoal of the agent's goal of G, and G is a supergoal of Gs. We can also loosely say that some goal G′ is a subgoal of G if G′ helps achieve G, whether or not there's an agent pursuing G using G′, meaning vaguely something like "there's a strategy sufficient to achieve G that uses G′ as a necessary part" or "many agents will do reasonably well in pursuing G if they use G′". An intermediate goal is a goal that motivates the pursuit of subgoals, and itself is motivated by the pursuit of one or more supergoals. The motivator set of a goal G is the set of goals Gs such that Gs is plausibly a supergoal of G. The (sufficient) strategy set of a goal G is the set of strategies that are sufficient to achieve G. Inferring supergoals through subgoals Suppose that G is an in...
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.03.15.532611v1?rss=1 Authors: Haber, A., Wanner, A., Friedrich, R. W., Schneidman, E. Abstract: The map of synaptic connectivity among neurons in the brain shapes the computations that neural circuits may perform. Inferring the design principles of neural connectomes is, therefore, fundamental for understanding brain development and architecture, neural computations, learning, and behavior. Here, we learn probabilistic generative models for the connectomes of the olfactory bulb of zebrafish, part of the mouse visual cortex, and of C. elegans. We show that, in all cases, models that rely on a surprisingly small number of simple biological and physical features are highly accurate in replicating a wide range of properties of the measured circuits. Specifically, they accurately predict the existence of individual synapses and their strength, distributions of synaptic indegree and outdegree of the neurons, frequency of sub-network motifs, and more. Furthermore, we simulate synthetic circuits generated by our model for the olfactory bulb of zebrafish and show that they replicate the computation that the real circuit performs in response to olfactory cues. Finally, we show that specific failures of our models reflect missing design features that we uncover by adding latent features to the model. Thus, our results reflect surprisingly simple design principles of real connectomes in three different systems and species, and offer a novel general computational framework for analyzing connectomes and linking structure and function in neural circuits. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.03.08.531516v1?rss=1 Authors: Kang, J. U., Mooshagian, E., Snyder, L. H. Abstract: Many studies infer the role of neurons by asking what information can be decoded from their activity or by observing the consequences of perturbing their activity. An alternative approach is to consider information flow between neurons. We applied this approach to the Parietal Reach Region (PRR) and the Lateral Intraparietal area (LIP) in posterior parietal cortex. Two complementary methods show that, across a range of reaching tasks, information flows primarily from PRR to LIP but not vice versa. This suggests that PRR determines the spatial goals of coordinated eye and arm movements and instructs LIP of those goals. Based on these findings, we conclude that PRR and LIP operate in a parallel rather than hierarchical manner to plan arm and eye movements, respectively. Similar methodology can be applied to other areas to infer their relative relationships. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2023.02.06.527389v1?rss=1 Authors: Soldado Magraner, J., Mante, V., Sahani, M. Abstract: The complex activity of neural populations in the Prefrontal Cortex (PFC) is a hallmark of high-order cognitive processes. How these rich cortical dynamics emerge and give rise to neural computations is largely unknown. Here, we infer models of neural population dynamics that explain how PFC circuits of monkeys may select and integrate relevant sensory inputs during context-dependent perceptual decisions. A class of models implementing linear dynamics accurately captured the rich features of the recorded PFC responses.These models fitted the neural activity nearly as well as a factorization of population responses that had the flexibility to capture non-linear temporal patterns, suggesting that linear dynamics is sufficient to recapitulate the complex PFC responses in each context. Two distinct mechanisms of input selection and integration were consistent with the PFC data. One mechanism implemented recurrent dynamics that differed between contexts, the other a subtle modulation of the inputs across contexts. The two mechanisms made different predictions about the contribution of non-normal recurrent dynamics in transiently amplifying and selectively integrating the inputs. In both mechanisms the inputs were inferred directly from the data and spanned multi-dimensional input subspaces. Input integration likewise consistently involved high dimensional dynamics that unfolded in two distinct phases, corresponding to integration on fast and slow time-scales. Our study offers a principled framework to link the activity of neural populations to computation and to find mechanistic descriptions of neural processes that are consistent with the rich dynamics implemented by neural circuits. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
ABSTRACT Gil Elbaz speaks with Tadas Baltrusaitis, who recently released the seminal paper DigiFace 1M: 1 Million Digital Face Images for Face Recognition. Tadas is a true believer in synthetic data and shares his deep knowledge of the subject along with insights on the current state of the field and what CV engineers need to know. Join Gil as they discuss morphable models, multimodal learning, domain gaps, edge cases and more TOPICS & TIMESTAMPS 0:00 Introduction 2:06 Getting started in computer science 3:40 Inferring mental states from facial expressions 7:16 Challenges of facial expressions 8:40 Open Face 10:46 MATLAB to Python 13:17 Multimodal Machine Learning 15:52 Multimodals and Synthetic Data 16:54 Morphable Models 19:34 HoloLens 22:07 Skill Sets for CV Engineers 25:25 What is Synthetic Data? 27:07 GANs and Diffusion Models 31:24 Fake it Til You Make It 35:25 Domain Gaps 36:32 Long Tails (Edge Cases) 39:42 Training vs. Testing 41:53 Future of NeRF and Diffusion Models 48:26 Avatars and VR/AR 50:39 Advice for Next Generation CV Engineers 51:58 Season One Wrap-Up LINKS & RESOURCES Tadas Baltrusaitis LinkedIn Github Google Scholar Fake it Til You Make It Video Github Digiface 1M A 3D Morphable Eye Region Model for Gaze Estimation Hololens Multimodal Machine Learning: A Survey and Taxonomy 3d face reconstruction with dense landmarks Open Face Open Face 2.0 Dr. Rana el Kaliouby Dr. Louis-Philippe Morency Peter Robinson Jamie Shotton Errol Wood Affectiva GUEST BIO Tadas Baltrusaitis is a principal scientist working in the Microsoft Mixed Reality and AI lab in Cambridge, UK where he leads the human synthetics team. He recently co-authored the groundbreaking paper DigiFace 1M, a data set of 1 million synthetic images for facial recognition. Tadas is also the co-author of Fake It Till You Make It: Face Analysis in the Wild Using Synthetic Data Alone, among other outstanding papers. His PhD research focused on automatic facial expression analysis in difficult real world settings and he was a postdoctoral associate at Carnegie Mellon University where his primary research lay in automatic understanding of human behavior, expressions and mental states using computer vision. ABOUT THE HOST I'm Gil Elbaz, co-founder and CTO of Datagen. In this podcast, I speak with interesting computer vision thinkers and practitioners. I ask the big questions that touch on the issues and challenges that ML and CV engineers deal with every day. On the way, I hope you uncover a new subject or gain a different perspective, as well as enjoying engaging conversation. It's about much more than the technical processes – it's about people, journeys, and ideas. Turn up the volume, insights inside.
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2022.11.28.518256v1?rss=1 Authors: Rezaei, M. R., Jeoung, H., Gharamani, A., Saha, U., Popovic, M. R., Yousefi, A., Chen, R., Lankarany, M. Abstract: The subthalamic nucleus (STN) of the basal ganglia interacts with the medial prefrontal cortex (mPFC) and shapes a control loop, specifically when the brain receives contradictory information from either different sensory systems or conflicting information from sensory inputs and prior knowledge that developed in the brain. Experimental studies demonstrated that significant increases in theta activities (2-8 Hz) in both the STN and mPFC as well as increased phase synchronization between mPFC and STN are prominent features of conflict processing. While these neural features reflect the importance of STN-mPFC circuitry in conflict processing, a low-dimensional representation of the mPFC-STN interaction referred to as a cognitive state, that links neural activities generated by these sub-regions to behavioral signals (e.g., the response time), remains to be identified. Here, we propose a new model, namely, the heterogeneous input discriminative-generative decoder (HI-DGD) model, to infer a cognitive state underlying decision-making based on neural activities (STN and mPFC) and behavioral signals (individuals' response time) recorded in 10 Parkinson's disease patients while they performed a Stroop task. PD patients may have conflict processing which is quantitatively (may be qualitative in some) different from healthy population. Using extensive synthetic and experimental data, we showed that the HI-DGD model can diffuse information from neural- and behavioral data simultaneously and estimate cognitive states underlying conflict and non-conflict trials significantly better than traditional methods. Additionally, the HI-DGD model identified which neural features made significant contributions to conflict and non-conflict choices. Interestingly, the estimated features match well with those reported in experimental studies. Finally, we highlight the capability of the HI-DGD model in estimating a cognitive state from a single trial of observation, which makes it appropriate to be utilized in closed-loop neuromodulation systems. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Inferring Maps of the Sun's Far-side Unsigned Magnetic Flux from Far-side Helioseismic Images using Machine Learning Techniques by Ruizhu Chen et al. on Thursday 24 November Accurate modeling of the Sun's coronal magnetic field and solar wind structures require inputs of the solar global magnetic field, including both the near and far sides, but the Sun's far-side magnetic field cannot be directly observed. However, the Sun's far-side active regions are routinely monitored by helioseismic imaging methods, which only require continuous near-side observations. It is therefore both feasible and useful to estimate the far-side magnetic-flux maps using the far-side helioseismic images despite their relatively low spatial resolution and large uncertainties. In this work, we train two machine-learning models to achieve this goal. The first machine-learning training pairs simultaneous SDO/HMI-observed magnetic-flux maps and SDO/AIA-observed EUV 304$r{A}$ images, and the resulting model can convert 304$r{A}$ images into magnetic-flux maps. This model is then applied on the STEREO/EUVI-observed far-side 304$r{A}$ images, available for about 4.3 years, for the far-side magnetic-flux maps. These EUV-converted magnetic-flux maps are then paired with simultaneous far-side helioseismic images for a second machine-learning training, and the resulting model can convert far-side helioseismic images into magnetic-flux maps. These helioseismically derived far-side magnetic-flux maps, despite their limitations in spatial resolution and accuracy, can be routinely available on a daily basis, providing useful magnetic information on the Sun's far side using only the near-side observations. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2211.12666v1
Inferring Maps of the Sun's Far-side Unsigned Magnetic Flux from Far-side Helioseismic Images using Machine Learning Techniques by Ruizhu Chen et al. on Wednesday 23 November Accurate modeling of the Sun's coronal magnetic field and solar wind structures require inputs of the solar global magnetic field, including both the near and far sides, but the Sun's far-side magnetic field cannot be directly observed. However, the Sun's far-side active regions are routinely monitored by helioseismic imaging methods, which only require continuous near-side observations. It is therefore both feasible and useful to estimate the far-side magnetic-flux maps using the far-side helioseismic images despite their relatively low spatial resolution and large uncertainties. In this work, we train two machine-learning models to achieve this goal. The first machine-learning training pairs simultaneous SDO/HMI-observed magnetic-flux maps and SDO/AIA-observed EUV 304$r{A}$ images, and the resulting model can convert 304$r{A}$ images into magnetic-flux maps. This model is then applied on the STEREO/EUVI-observed far-side 304$r{A}$ images, available for about 4.3 years, for the far-side magnetic-flux maps. These EUV-converted magnetic-flux maps are then paired with simultaneous far-side helioseismic images for a second machine-learning training, and the resulting model can convert far-side helioseismic images into magnetic-flux maps. These helioseismically derived far-side magnetic-flux maps, despite their limitations in spatial resolution and accuracy, can be routinely available on a daily basis, providing useful magnetic information on the Sun's far side using only the near-side observations. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2211.12666v1
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2022.11.15.516592v1?rss=1 Authors: Lu, J., Surendralal, S., Bouchard, K. E., Jin, D. Z. Abstract: Songs of the Bengalese finch consist of variable sequences of syllables. The sequences follow probabilistic rules, and can be statistically described by partially observable Markov models (POMMs), which consist of states and probabilistic transitions between them. Each state is associated with a syllable, and one syllable can be associated with multiple states. This multiplicity of syllable to states association distinguishes a POMM from a simple Markov model, in which one syllable is associated with one state. The multiplicity indicates that syllable transitions are context-dependent. Here we present a novel method of inferring a POMM with minimal number of states from a finite number of observed sequences. We apply the method to infer POMMs for songs of six adult male Bengalese finches before and shortly after deafening. Before deafening, the models all require multiple states, but with varying degrees of state multiplicity for individual birds. Deafening reduces the state multiplicity for all birds. For three birds, the models become Markovian, while for the other three, the multiplicity persists for some syllables. These observations indicate that auditory feedback contributes to, but is not the only source of, the context dependencies of syllable transitions in Bengalese finch song. Copy rights belong to original authors. Visit the link for more info Podcast created by Paper Player, LLC
Inferring Line-of-Sight Velocities and Doppler Widths from Stokes Profiles of GST NIRIS Using Stacked Deep Neural Networks by Haodi Jiang et al. on Monday 10 October Obtaining high-quality magnetic and velocity fields through Stokes inversion is crucial in solar physics. In this paper, we present a new deep learning method, named Stacked Deep Neural Networks (SDNN), for inferring line-of-sight (LOS) velocities and Doppler widths from Stokes profiles collected by the Near InfraRed Imaging Spectropolarimeter (NIRIS) on the 1.6 m Goode Solar Telescope (GST) at the Big Bear Solar Observatory (BBSO). The training data of SDNN is prepared by a Milne-Eddington (ME) inversion code used by BBSO. We quantitatively assess SDNN, comparing its inversion results with those obtained by the ME inversion code and related machine learning (ML) algorithms such as multiple support vector regression, multilayer perceptrons and a pixel-level convolutional neural network. Major findings from our experimental study are summarized as follows. First, the SDNN-inferred LOS velocities are highly correlated to the ME-calculated ones with the Pearson product-moment correlation coefficient being close to 0.9 on average. Second, SDNN is faster, while producing smoother and cleaner LOS velocity and Doppler width maps, than the ME inversion code. Third, the maps produced by SDNN are closer to ME's maps than those from the related ML algorithms, demonstrating the better learning capability of SDNN than the ML algorithms. Finally, comparison between the inversion results of ME and SDNN based on GST/NIRIS and those from the Helioseismic and Magnetic Imager on board the Solar Dynamics Observatory in flare-prolific active region NOAA 12673 is presented. We also discuss extensions of SDNN for inferring vector magnetic fields with empirical evaluation. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2210.04122v1
Finding something online might seem easy - but as Marcus Eagan tells it, it's not easy to get it right. In today's episode, MongoDB's Staff Product Manager on Atlas Search speaks with Jason and Patrick about his own journey in software development and how to best use search engines to capture user intent. 00:00:34 Introductions00:01:30 Marcus's unusual origin story00:05:10 Unsecured IoT devices00:09:56 How security groupthink can compromise matters00:12:48 The Target HVAC incident00:17:32 Business challenges with home networks00:21:51 Damerau-Levenshtein edit distance factor ≤ 200:23:58 How do people who do search talk about search00:30:35 Inferring human intent before they intend it00:46:13 Ben Horowitz00:47:32 Seinfeld as an association exercise00:52:27 What Marcus is doing at MongoDB00:58:30 How MongoDB can help at any level01:01:00 Working at MongoDB01:08:14 FarewellsResources mentioned in this episode: Marcus Eagan: Website: https://marcussorealheis.medium.com The Future of Search Is Semantic & Lexical: https://marcussorealheis.medium.com/the-future-of-search-is-semantic-and-lexical-e55cc9973b63 13 Hard Things I Do To Be A Dope Product Manager: https://marcussorealheis.medium.com/13-hard-things-i-do-to-be-a-dope-database-product-manager-7064768505f8 Github: https://github.com/MarcusSorealheis Twitter: https://twitter.com/marcusforpeace MongoDB: Website: https://www.mongodb.com/ Atlas: https://www.mongodb.com/cloud/atlas/register Careers: https://www.mongodb.com/careers Others: Damerau-Levenshtein distance: https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance Lucene: https://lucene.apache.org/core/ Target HVAC Incident (2014, Archive Link): https://archive.is/Wnwob Mergify:Website: https://mergify.com/ If you've enjoyed this episode, you can listen to more on Programming Throwdown's website: https://www.programmingthrowdown.com/ Reach out to us via email: programmingthrowdown@gmail.com You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
Recipe for inferring sub-surface solar magnetism via local mode-coupling using Slepian basis functions by Srijan Bharati Das. on Monday 19 September Direct seismic imaging of sub-surface flow, sound-speed and magnetic field is crucial for predicting flux tube emergence on the solar surface, an important ingredient for space weather. The sensitivity of helioseismic mode-amplitude cross-correlation to $p$- and $f$-mode oscillations enable formal inversion of such sub-photospheric perturbations. It is well-known that such problems are written in the form of an integral equation that connects the perturbations to the observations via ``sensitivity kernels". While the sensitivity kernels for flow and sound-speed have been known for decades and have been used extensively, formulating kernels for general magnetic perturbations had been elusive. A recent study proposed sensitivity kernels for Lorentz-stresses corresponding to global magnetic fields of general geometry. The present study is devoted to proposing kernels for inferring Lorentz-stresses as well as the solenoidal magnetic field in a local patch on the Sun via Cartesian mode-coupling. Moreover, for the first time in solar physics, Slepian functions are employed to parameterize perturbations in the horizontal dimension. This is shown to increase the number of data constraints in the inverse problem, implying an increase in the precision of inferred parameters. This paves the path to reliably imaging sub-surface solar magnetic features in, e.g., supergranules, sunspots and (emerging) active regions. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2209.07979v1
Recipe for inferring sub-surface solar magnetism via local mode-coupling using Slepian basis functions by Srijan Bharati Das. on Monday 19 September Direct seismic imaging of sub-surface flow, sound-speed and magnetic field is crucial for predicting flux tube emergence on the solar surface, an important ingredient for space weather. The sensitivity of helioseismic mode-amplitude cross-correlation to $p$- and $f$-mode oscillations enable formal inversion of such sub-photospheric perturbations. It is well-known that such problems are written in the form of an integral equation that connects the perturbations to the observations via ``sensitivity kernels". While the sensitivity kernels for flow and sound-speed have been known for decades and have been used extensively, formulating kernels for general magnetic perturbations had been elusive. A recent study proposed sensitivity kernels for Lorentz-stresses corresponding to global magnetic fields of general geometry. The present study is devoted to proposing kernels for inferring Lorentz-stresses as well as the solenoidal magnetic field in a local patch on the Sun via Cartesian mode-coupling. Moreover, for the first time in solar physics, Slepian functions are employed to parameterize perturbations in the horizontal dimension. This is shown to increase the number of data constraints in the inverse problem, implying an increase in the precision of inferred parameters. This paves the path to reliably imaging sub-surface solar magnetic features in, e.g., supergranules, sunspots and (emerging) active regions. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2209.07979v1
Dr. Jennifer Hill, Professor of Applied Statistics at New York University, joins Jon this week for a discussion that covers causality, correlation, and inference in data science. In this episode you will learn: • How causality is central to all applications of data science [4:32] • How correlation does not imply causation [11:12] • What is counterfactual and how to design research to infer causality from the results confidently [21:18] • Jennifer's favorite Bayesian and ML tools for making causal inferences within code [29:14] • Jennifer's new graphical user interface for making causal inferences without the need to write code [38:41] • Tips on learning more about causal inference [43:27] • Why multilevel models are useful [49:21] Additional materials: www.superdatascience.com/607
We welcome Dr. Jennifer Hill, Professor of Applied Statistics at New York University, to the podcast this week for a discussion that covers causality, correlation, and inference in data science. In this episode you will learn: • How causality is central to all applications of data science [4:32] • How correlation does not imply causation [11:12] • What is counterfactual and how to design research to infer causality from the results confidently [21:18] • Jennifer's favorite Bayesian and ML tools for making causal inferences within code [29:14] • Jennifer's new graphical user interface for making causal inferences without the need to write code [38:41] • Tips on learning more about causal inference [43:27] • Why multilevel models are useful [49:21] Additional materials: www.superdatascience.com/607
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2022.09.06.506839v1?rss=1 Authors: Mao, X., Chang, Y.-C., Zanos, S., Lajoie, G. Abstract: Objective. Neurostimulation is emerging as treatment for several diseases of the brain and peripheral organs. Due to variability arising from placement of stimulation devices, underlying neuroanatomy and physiological responses to stimulation, it is essential that neurostimulation protocols are personalized to maximize efficacy and safety. Building such personalized protocols would benefit from accumulated information in increasingly large datasets of other individuals' responses. Approach. To address that need, we propose a meta-learning family of algorithms to conduct few-shot optimization of key fitting parameters of physiological responses in new individuals. While our method is agnostic to neurostimulation modality, here we demonstrate its effectiveness on the problem of physiological modeling of fiber recruitment during vagus nerve stimulation (VNS). Using data from acute VNS experiments, the mapping between amplitudes of stimulus-evoked compound action potentials (eCAPs) and physiological responses, such as heart rate and breathing interval modulation, is inferred. Main results. Using additional synthetic data sets to complement experimental results, we demonstrate that our meta-learning framework is capable of directly modeling the physiology-eCAP relationship for individual subjects with much fewer individually queried data points than standard methods. Significance. Our meta-learning framework is general and can be adapted to any input-response neurostimulation mapping problem. Moreover, this method leverages information from growing data sets of past patients, as a treatment is deployed. It can also be combined with several model types, including regression, Gaussian processes with Bayesian optimization, and beyond. Copy rights belong to original authors. Visit the link for more info Podcast created by PaperPlayer
Constraining planetary mass-loss rates by simulating Parker wind profiles with Cloudy by Dion Linssen et al. on Thursday 08 September Models of exoplanet atmospheres based on Parker-wind density and velocity profiles are a common choice in fitting spectroscopic observations tracing planetary atmospheric escape. Inferring atmospheric properties using these models often results in a degeneracy between the temperature and the mass-loss rate, and thus provides weak constraints on either parameter. We present a framework that can partially resolve this degeneracy by placing more stringent constraints on the expected thermospheric temperature. We use the photoionization code Cloudy within an iterative scheme to compute the temperature structure of a grid of 1D Parker wind models, including the effects of radiative heating/cooling, as well as the hydrodynamic effects (expansion cooling and heat advection). We constrain the parameter space by identifying models that are not self-consistent through a comparison of the simulated temperature in the He 10830 $r{A}$ line-forming region to the temperature assumed in creating the models. We demonstrate this procedure on models based on HD 209458 b. By investigating the Parker wind models with an assumed temperature between 4000 and 12000 K, and a mass-loss rate between $10^{8}$ and $10^{11}$ g s$^{-1}$, we are able to rule out a large portion of this parameter space. Furthermore, we fit the models to previous observational data and combine both constraints to find a preferred thermospheric temperature of $T=8200^{+1200}_{-1100}$ K and a mass-loss rate of $dot{M}=10^{9.84^{+0.24}_{-0.27}}$ g s$^{-1}$ assuming a fixed atmospheric composition and no gas pressure confinement by the stellar wind. Using the same procedure, we constrain the temperatures and mass-loss rates of WASP-69 b, WASP-52 b, HAT-P-11 b, HAT-P-18 b and WASP-107 b. arXiv: http://arxiv.org/abs/http://arxiv.org/abs/2209.03677v1
We welcome Dr. Jennifer Hill, Professor of Applied Statistics at New York University, to the podcast this week for a discussion that covers causality, correlation, and inference in data science. In this episode you will learn: • How causality is central to all applications of data science [4:32] • How correlation does not imply causation [11:12] • What is counterfactual and how to design research to infer causality from the results confidently [21:18] • Jennifer's favorite Bayesian and ML tools for making causal inferences within code [29:14] • Jennifer's new graphical user interface for making causal inferences without the need to write code [38:41] • Tips on learning more about causal inference [43:27] • Why multilevel models are useful [49:21] Additional materials: www.superdatascience.com/607
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Formal Philosophy and Alignment Possible Projects, published by Daniel Herrmann on June 30, 2022 on The AI Alignment Forum. Context We (Ramana, Abram, Josiah, Daniel) are working together as part of PIBBSS this summer. The goal of the PIBBSS fellowship program is to bring researchers in alignment (in our case, Ramana and Abram) together with researchers from other relevant fields (in our case, Josiah and Daniel, who are both PhD students in Logic and Philosophy of Science) to work on alignment. We've spent a few weeks leading up to the summer developing a number of possible project ideas. We're writing this post in order to both help ourselves think through the various projects and how they might actually help with alignment (theory of change), and to (hopefully!) get feedback from other alignment researchers about which projects seem most promising/exciting. We've discussed five possible project directions. The first two in particular are a bit more fleshed out. For each project we'll describe the core goals of the project, what a possible plan(s) of attack might be, and how we'd expect a successful version of the project to contribute to alignment. Many of our projects inherit the theory of change for all agent foundations work (described here by John). In the descriptions below we focus on slightly more specific ways the projects might matter. Possible Projects Project 1: Inferring Algebras from Behavior Description Standard representation theorems in decision theory (for example, Savage and Jeffrey-Bolker) show that when an agent's preferences satisfy certain rationality and structural constraints, then we can represent the preferences as if they were generated by an agent who is maximizing expected utility. In particular, they allow us to infer meaningful things about both the probability and the utility function. However, these representation theorems start off with the agent's conceptual space (formally, an algebra) already “known” to the person trying to infer the structure. The goal of this project would be to generalize representations theorems so that we can also infer things about the structure of an agent's algebra from her preferences or choice behavior. Theory of Change A representation theorem is a particular kind of selection theorem. John has argued that selection theorems can help us understand agency in a way that will help with alignment. Inferring an agent's conceptual space from her behavior also seems like it might be useful for ELK (for ELK, we might want to think of this project as helping with a translation problem between the agent's algebra/conceptual space and our own). Plan of Attack In order to develop a new representation theorem (or at least understand why proving such a theorem would be hard/impossible), there are two core choices we would need to make. The first is how to define the data that we have access to. For example, in Savage the starting data is a preference ordering over acts (which are themselves functions from states to outcomes). In Jeffrey-Bolker, the data is a preference order over all propositions in the agent's algebra. Notice that both preference orderings are defined over the kinds of things we are tying to infer: Savage acts make essential use of states and outcomes, and in Jeffrey-Bolker the preference ordering is over the members of the algebra themselves. Thus, we would need to find some type of data that looks like preferences, but not preferences over the very objects we are trying to infer. One possible candidate would be observed acts (but then we would need a theory of what counts as an act). Additionally, and perhaps (given the difficulty of the problem) importantly, we might allow ourselves access to “side data”. For example, we might help ourselves out to facts about the agent's architecture, the proc...
What is worse than the triune god lie? The hookers that made him up of course. These mongrels truly believe in their sinful hearts They understand God to be a triune god. with absolute certainty to add further insult to injury. Well in this latest episode we will rip apart the most important tactic usrf to define God. Inferring...
Why does anybody care about natural abstractions? Do they somehow relate to math, or value learning? How do E. coli bacteria find sources of sugar? All these questions and more will be answered in this interview with John Wentworth, where we talk about his research plan of understanding agency via natural abstractions. Topics we discuss, and timestamps: 00:00:31 - Agency in E. Coli 00:04:59 - Agency in financial markets 00:08:44 - Inferring agency in real-world systems 00:16:11 - Selection theorems 00:20:22 - Abstraction and natural abstractions 00:32:42 - Information at a distance 00:39:20 - Why the natural abstraction hypothesis matters 00:44:48 - Unnatural abstractions used by humans? 00:49:11 - Probability, determinism, and abstraction 00:52:58 - Whence probabilities in deterministic universes? 01:02:37 - Abstraction and maximum entropy distributions 01:07:39 - Natural abstractions and impact 01:08:50 - Learning human values 01:20:47 - The shape of the research landscape 01:34:59 - Following John's work The transcript John on LessWrong Research that we discuss: Alignment by default - contains the natural abstraction hypothesis The telephone theorem Generalizing Koopman-Pitman-Darmois The plan Understanding deep learning requires rethinking generalization - deep learning can fit random data A closer look at memorization in deep networks - deep learning learns before memorizing Zero-shot coordination A new formalism, method, and open issues for zero-shot coordination Conservative agency via attainable utility preservation Corrigibility Errata: E. coli has ~4,400 genes, not 30,000. A typical adult human body has thousands of moles of water in it, and therefore must consist of well more than 10 moles total.
Commentary by Dr. Sadeer Al-Kindi
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Inferring utility functions from locally non-transitive preferences, published by Jan Hendrik Kirchner on February 10, 2022 on The AI Alignment Forum. As part of the AI Safety Camp, I've been diving a bit deeper into the foundations of expected utility theory and preference learning. In this post, I am making explicit a connection between those two things that (I assume) many people already made implicitly. But I couldn't find a nice exposition of this argument so I wrote it up. Any feedback is of course highly welcome! Preference utilitarianism and the Von-Neumann-Morgenstern theorem. At the risk of sounding drab, I briefly want to revisit some well-trodden territory in the realm of expected utility theory to motivate the rest of this post. When we are thinking about the question of how to align advanced AI with human values, we are confronted with the question of whether we want to capture "How humans act" or "How humans should act". Both approaches have virtue, but if we're being ambitious we probably want to aim for the latter. However, our understanding of "How humans should act" is still rather confused and ready-made solutions to "plug into" an AGI are not available. Rather than tackling the entire problem at once, we might focus on one particularly well-formalized portion of ethics first. A possible answer to the question "How should I act?" comes from preference utilitarianism where we focus on satisfying everyone's preferences (as revealed by their choices). I say that this portion of ethics is well-formalized because, it turns out, if you are being reasonable about your preferences, we can represent them succinctly in a "utility function," u(A)∈R. This utility function has the neat property that for two possible options, L and M, you prefer option M over option L iff u(M)>u(L). This is the famous "von-Neumann-Morgenstern theorem" which sits at the heart of an approach of "doing good better". Now given that the utility function lives in the realm of mathematics, there is a seemingly natural strategy to use it to steer AI. Get everyone's utility functions, combine them into a target function, and then let the AI pick the actions that increase the target function the most. If we have to pick a single number to maximize, there is a case to be made that utility is one of the best single numbers we can hope for. Sounds good. Where is the catch? The futility of computing utility. Let's start by trying to write down a utility function. The proof of the von-Neumann-Morgenstern is constructive, i.e., it doesn't only guarantee the existence of a utility function, it also shows us the way to get there. Here is a step-by-step guide: 1. Write down all the possible elementary outcomes that we might want to know the utility of. Ah. Yeah. That's going to be a problem. "All the things" is a lot of things. We might (and will, in this post) limit ourselves to a toy domain to make some progress, but that will be a poor substitute for the thing we want: all the possible outcomes affecting all existing humans. We might not think of some outcomes because they appear too good to be true. (Or too weird to be thinkable.) We might even want to include those outcomes in particular, as they might be the best option that nobody realized was on the table. But if we can't think of them, we can't write them down. (Perhaps there is a way out. An essential nuance in the first step is writing down "all the possible elementary outcomes." We don't need to consider all the outcomes immediately. We only need to consider a set from which we can construct the more complicated outcomes. We need a basis of the space of possibilities. That's already infinitely easier, and we're always guaranteed to find a basis. Hopefully, we can find a basis of a system that is rich enough to describe all relevant ou...
Welcome back to Neurotech Pub!In this episode, Vikash Gilja reprises his role as Vikash Gilja. We are also joined by Konrad Kording, Chethan Pandarinath, and Carsen Stringer. We talk about how dimensionality reduction is used to better understand large scale neural recordings. This episode is fairly technical, but it contains many great references if you are interested in learning more. We open with a brief explainer video by Paradromics' own Aditya Singh.Check out full video with transcript here: https://www.paradromics.com/podcast/neurotech-pub-episode-4-trading-spaces-dimensionality-reduction-for-neural-recordings00:40 | Dimensionality Intro04:42 | Podcast Start07:50 | Janelia Research Campus08:56 | Translational Neuroengineering Lab09:35 | Stanford Neural Prosthetics Translational Lab10:10 | Shenoy Lab12:00 | Deep Brain Stimulation12:57 | Chethan's work on retinal prosthetics15:00 | Immunology15:20 | Jonathan Ruben15:30 | Byron Yu15:41 | Gatsby Computational Neuroscience Unit18:00 | Joshua Tenenbaum18:30 | Kording Lab at UPenn18:46 | Neuromatch Academy19:47 | Neuromatch Academy Q&A21:21 | Dimensionality reduction for neural recordings26:22 | The Curse of Dimensionality30:11 | Principal Component Analysis32:20 | Neural Firing as a Poisson Process33:13 | Shared Variance Component Analysis35:18 | Cross validation in large scale recording38:29 | A theory of multineuronal dimensionality39:10 | Random projections explained with visuals42:24 | Correcting a reductionist bias48:30 | Noise Correlations49:35 | More on Noise Correlations57:40 | LFADS01:01:51 | What is a stationary process?01:06:02 | Inferring single-trial neural population dynamics01:06:46 | Task Specificity01:07:28 | Lee Miller01:08:18 | “I don't know, I might be wrong”01:13:16 | Neural Constraints on Learning01:15:00 | A recent exciting paper from Yu and Batista Labs01:19:01 | Hume on CausationWant more? Follow Paradromics & Neurotech Pub on Twitter Follow Matt A, Konrad Kording, Chethan Pandarinath, and Carsen Stringer on Twitter.
Is your narrator killing subtext by inferring other characters' thoughts too accurately? Find out in this latest of the Most Common Writing Mistakes!