<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>Kevin Liu</title> <description>I'm a student at Stanford. This is my website! </description> <link>https://kliu.io</link> <atom:link href="https://kliu.io/feed.xml" rel="self" type="application/rss+xml"/> <item> <title>Easy improvements to personal opsec</title> <description>&lt;p&gt;I’ve been thinking more about how to be a little more private. In an era where LLMs can &lt;a href=&quot;https://www.jefftk.com/p/automated-deanonymization-is-here&quot;&gt;automatically deanonymize people from their writing&lt;/a&gt;, &lt;a href=&quot;https://blog.mozilla.org/en/privacy-security/ai-security-zero-day-vulnerabilities/&quot;&gt;find zero-days en masse&lt;/a&gt;, and &lt;a href=&quot;https://www.nytimes.com/2026/05/05/business/artificial-intelligence-safety-net.html&quot;&gt;may potentially displace jobs&lt;/a&gt;, it seems safe to say that the variance of the next few years will be significantly higher than the two decades pre-2025.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Threat model&lt;/strong&gt;: A casual adversary who asks Grok-5 for “name, phone, and address of all people in [X reference group],” with the intent of causing disruption or harm. I don’t expect the strategies below to work against adversaries that are highly-competent (including but not limited to government actors) or specifically targeting you; it’s very possible they won’t even work against casual adversaries in the future.&lt;/p&gt; &lt;p&gt;The guidelines below are tailored to California residents (and SF in particular), but the spirit of most rules should be pretty universally applicable.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Physical security&lt;/strong&gt;: IMO the biggest value here is making your address harder to find for casual attackers. &lt;ul&gt; &lt;li&gt;Remove yourself from California voter registration, since &lt;a href=&quot;https://www.governing.com/policy/how-private-is-your-voter-registration-information&quot;&gt;many groups&lt;/a&gt; can publicly access your address on voter registration. For example, &lt;a href=&quot;https://www.sfelections.org/tools/regupdate/cancellation.php&quot;&gt;SF offers a form&lt;/a&gt; to remove yourself from voter registration.&lt;/li&gt; &lt;li&gt;Sign up for a PO Box ($25/mo in SF). Send your mail here so random e-commerce websites don’t get your address. This doesn’t help if you’ve already given out your address, but it reduces future leakage (and if you ever move it will help your new address from leaking). (Notably a PO Box has several other advantages: they’ll sign for and hold packages for you for a month; you get the coolness factor of going in to a USPS after-hours; and they also accept Amazon/UPS/Fedex via &lt;a href=&quot;https://postalpro.usps.com/mailing/competitivepoboxes&quot;&gt;Street Addressing&lt;/a&gt;.) Migrate: &lt;ul&gt; &lt;li&gt;DMV (mailing address only)&lt;/li&gt; &lt;li&gt;Financial accounts (mailing address only)&lt;/li&gt; &lt;li&gt;Medical accounts&lt;/li&gt; &lt;li&gt;Employer mail&lt;/li&gt; &lt;li&gt;Ecommerce (start using your PO Box for online shopping)&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;If a PO Box is too much hassle for you, sending mail to your office is also a good idea if allowed.&lt;/li&gt; &lt;li&gt;For property owners, make sure you buy property through a trust. I haven’t looked into this since I don’t own property.&lt;/li&gt; &lt;li&gt;Lock down location access on your phone; make sure no untrusted apps are in “Always allow” for your location.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Digital hygiene &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Massively secure your email account&lt;/strong&gt;, since compromising your email can allow compromising ~everything else. You want to secure your email login (e.g., Gmail), and if you have a custom domain, &lt;strong&gt;you must also&lt;/strong&gt; secure the webhost, DNS provider, and domain name registrar you use. &lt;ul&gt; &lt;li&gt;Picking secure providers is important. In an age of LLM-assisted cyberattacks (e.g., the &lt;a href=&quot;https://x.com/rauchg/status/2045995362499076169&quot;&gt;Vercel attack&lt;/a&gt; was rumored to be AI-assisted), I feel like nobody really knows how to be most secure; but I bias toward &lt;strong&gt;larger providers&lt;/strong&gt; that are enterprise-grade and incentivized to immediately fix security issues. In the past I might have trusted a startup with my data; now I’m probably just going to go with Cloudflare/Google/Apple/GitHub.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Example:&lt;/strong&gt; I used to use &lt;a href=&quot;https://forwardemail.net/&quot;&gt;forwardemail.net&lt;/a&gt; for my email routing and &lt;a href=&quot;https://porkbun.com/&quot;&gt;Porkbun&lt;/a&gt; for domain hosting. I moved both of these to Cloudflare (Email Routing + Domains + Pages) and set up 2fa with hardware security keys.&lt;/li&gt; &lt;li&gt;For any services that, if compromised, could result in full takeover (email, domain, password manager), use hardware security keys to sign in. Buy two. IMO hardware security keys aren’t worth it for most other services because of the inconvenience (I usually just use digital passkeys in 1Password).&lt;/li&gt; &lt;li&gt;Enable &lt;a href=&quot;https://support.apple.com/en-us/108756&quot;&gt;Advanced Data Protection&lt;/a&gt; and &lt;a href=&quot;https://support.apple.com/en-us/102637&quot;&gt;Security Keys&lt;/a&gt; on macOS + iOS&lt;/li&gt; &lt;li&gt;Enable &lt;a href=&quot;https://landing.google.com/intl/en_in/advancedprotection/&quot;&gt;Advanced Protection Program&lt;/a&gt; for Google&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Enable SIM swap protection on your phone provider, to prevent people from taking over your number and stealing your SMS 2FA codes.&lt;/li&gt; &lt;li&gt;Use a data deletion service to reduce the surface area from data people have already collected. TL;DR if you don’t do this, your email, phone number, and address are regularly being resold online by data brokers. I signed up for &lt;a href=&quot;https://www.deleteme.com/&quot;&gt;DeleteMe&lt;/a&gt; and &lt;a href=&quot;https://consumer.drop.privacy.ca.gov/&quot;&gt;DROP&lt;/a&gt; (for California residents; should take effect later this year).&lt;/li&gt; &lt;li&gt;Ensure your Twitter/personal website don’t contain details that could let people contact you in real life&lt;/li&gt; &lt;li&gt;Remove old tweets (Codex can automate this if you ask it to delete your tweets &amp;gt;180 days old), and in general any public statements you’re not sure if you endorse anymore&lt;/li&gt; &lt;li&gt;Goes without saying, but use a password manager + 2fa everywhere you can&lt;/li&gt; &lt;li&gt;Use Signal when you can with default 4 weeks disappearing messages.&lt;/li&gt; &lt;li&gt;Enable &lt;a href=&quot;https://openai.com/index/advanced-account-security/&quot;&gt;Advanced Account Security&lt;/a&gt; on ChatGPT&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Karpathy’s &lt;a href=&quot;https://karpathy.bearblog.dev/digital-hygiene/&quot;&gt;Digital Hygiene&lt;/a&gt; – I’m a bit less privacy-pilled than he is and generally prefer to use very well maintained software even if it’s from a big tech, due to risks from LLM-assisted vulnerability discovery (e.g., Google Chrome vs. Brave). But it’s a very good resource nonetheless with additional advice.&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate> <link>https://kliu.io/post/easy-improvements-to-personal-opsec/</link> <guid isPermaLink="true">https://kliu.io/post/easy-improvements-to-personal-opsec/</guid> </item> <item> <title>2025 year in review</title> <description>&lt;h1 id=&quot;value-updates&quot;&gt;Value updates&lt;/h1&gt; &lt;p&gt;I find it helpful to keep a doc describing my values. (It’s like the &lt;a href=&quot;https://model-spec.openai.com/2025-12-18.html&quot;&gt;Model Spec&lt;/a&gt;, but for humans.) The primary benefits I see:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;It lets you spend less time thinking through the same tradeoffs on individual decisions. For example, I didn’t know if I wanted to spend money on DoorDash vs. investing upfront and recurring time into learning to cook. At some point I got fed up with thinking it through every time and just wrote the decision down.&lt;/li&gt; &lt;li&gt;You get the chance to think through tradeoffs more deeply. I think this is helpful to avoid falling into the trap of doing something because it’s the lowest-effort pathway. There are a bunch of areas (relationships, what I care about in a career) that I wouldn’t have thought through if I hadn’t tried to write a fully self-consistent, comprehensive values doc.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;I’ve been doing this for a few years, but here are some updates I made this year:&lt;/p&gt; &lt;h2 id=&quot;the-material&quot;&gt;The material&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;Aesthetics are key (aka, it’s not always worth being a utility maximizer). If I look at something multiple times a day, I want it to look nice instead of stressing me out. &lt;ol&gt; &lt;li&gt;Consider buying a Vespa for the memes, even though it’s slightly more expensive and annoying than Lyft Bikes + Muni + Waymo/Uber.&lt;/li&gt; &lt;li&gt;Get a nice apartment (though hopefully not too expensive).&lt;/li&gt; &lt;li&gt;Get a nice &lt;em&gt;and&lt;/em&gt; fuel-efficient car, not just a fuel-efficient one (I haven’t done this one yet)&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;Vibes are key. Also I want to get better at dancing.&lt;/li&gt; &lt;li&gt;Drinking is good (to the worried: in moderation!). My friend started dragging me to bars this year, and I admire: &lt;ol&gt; &lt;li&gt;How novel bars are compared to most restaurants, for which I feel I usually know which food is best. (Not to mention how different bars are in architecture and design, whereas restaurants feel much more samey.)&lt;/li&gt; &lt;li&gt;How good of an excuse it is to hang out with friends :)&lt;/li&gt; &lt;li&gt;Slowly I should try to learn all the types of alcohol. Could be a fun side project.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;Updating a bit on travel being good: &lt;ol&gt; &lt;li&gt;It exposes you to changes in low-level stimulus, which can break you out of &lt;a href=&quot;https://near.blog/personality-basins/&quot;&gt;personality basins&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You get to spend time with friends and pay full attention to what’s going on.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;Regarding money: first spend money on things that compound, not single experiences. For example: &lt;ol&gt; &lt;li&gt;In: &lt;ol&gt; &lt;li&gt;Co-purchasing a &lt;a href=&quot;https://www.google.com/search?sca_esv=36438ba7c1a93fd1&amp;amp;sxsrf=AE3TifO3ljgZ_YXwzQgXj19bY8Jwz4-o2A:1766703489729&amp;amp;udm=2&amp;amp;fbs=AIIjpHxU7SXXniUZfeShr2fp4giZ1Y6MJ25_tmWITc7uy4KIeioyp3OhN11EY0n5qfq-zENyQuF3_WaPI4Qgb6AZzy-etFjo9fqZ_m1LmwOk0Tw7Ns_0OocK1BNAsSvkZGRaIDBlz25FPzcagu-ZnTn4OOB4QfzdN3_mNwwrjTTKgZLQL1LJC1zgiPMDiPu5PRT2tNVM5lXuoF21jL4j9TJ05cx7gB0Llw&amp;amp;q=vespa+lx150ie&amp;amp;sa=X&amp;amp;ved=2ahUKEwin47av69mRAxWkhIkEHWCaG28QtKgLegQIIRAB&amp;amp;biw=756&amp;amp;bih=862&amp;amp;dpr=2#sv=CAMSVhoyKhBlLTczTURISjk2UGRsUHpNMg43M01ESEo5NlBkbFB6TToOdFM4VVZxbmtXTVJSV00gBCocCgZtb3NhaWMSEGUtNzNNREhKOTZQZGxQek0YADABGAcgi8Hl9wIwAkoKCAIQAhgCIAIoAg&quot;&gt;vespa&lt;/a&gt; with a friend, which naturally compels me to hang out with them and visit them biweekly to drop it off&lt;/li&gt; &lt;li&gt;Trips with friends&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;Out for now: &lt;ol&gt; &lt;li&gt;Expensive dinners (just have a normal dinner; unless it enables a fulfilling discussion with other people who would appreciate the price!)&lt;/li&gt; &lt;li&gt;Business class trips (you only get the benefit once)&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;relationships&quot;&gt;Relationships&lt;/h2&gt; &lt;p&gt;(Friendship and otherwise)&lt;/p&gt; &lt;ol&gt; &lt;li&gt;I want to play life cards-up. Essentially: keep minimal secrets, mostly because it makes life more complicated. No security by obscurity; the best strategy should win even if your opponent knows it perfectly. (E.g., I want to be open about sharing personal anecdotes even if they’re a little embarrassing.)&lt;/li&gt; &lt;li&gt;I really like having fulfilling conversations with people, and a very small number of people I’ve met are clearly &amp;gt;10x (maybe 100x?) on this criterion. &lt;ol&gt; &lt;li&gt;This is the closest concept I have to a &lt;a href=&quot;https://anson.substack.com/p/recognizing-sparkly-people-without&quot;&gt;sparkly person&lt;/a&gt;. I want to seek out these people, and I also want to improve at conversation so I can find the thing that sparks these conversations.&lt;/li&gt; &lt;li&gt;This is probably the biggest thing I value in a romantic relationship and is also super important in friendships. (conditioning on my other romantic criteria, I think I’ve met ~4 people in the last 2 years who have satisfied this which is pretty low!!!)&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;I want to create &lt;a href=&quot;https://www.henrikkarlsson.xyz/p/friends-missed&quot;&gt;friendships of virtue&lt;/a&gt; with people I admire, and fewer friendships of convenience and utility. &lt;ol&gt; &lt;li&gt;&lt;em&gt;Is this the kind of person that, if they were old and ugly and had soiled their pants and needed your help, then you’d still say, Yes? “Yes, I would love to. I want to give this person my care so they can unfold their life with dignity.”&lt;/em&gt;&lt;/li&gt; &lt;li&gt;Honestly, I think life is too short for the other kinds. Also, friendships of virtue follow naturally from being a long-horizon agent; unbuffeted by short term issues, you should find people whose core tendencies bend toward progress/kindness/success and support them wholeheartedly.&lt;/li&gt; &lt;li&gt;Relatedly, I also want to learn how to give someone my full attention. I try (don’t look at my phone while talking). But this is clearly not enough. &lt;ol&gt; &lt;li&gt;Someone who I dated briefly mentioned that they felt worried about our time spent together competing against all the other things in my life. This is what I really don’t want to happen. If I choose to spend time with someone, I would like for it to feel unconditional.&lt;/li&gt; &lt;li&gt;I draw inspiration from the exact 1 person I’ve ever met who makes me feel &lt;em&gt;seen&lt;/em&gt; when I talk to them, even though we only meet glancingly every few months.&lt;/li&gt; &lt;li&gt;Potential ideas: &lt;ol&gt; &lt;li&gt;More trips where I drop all obligations; don’t check slack, don’t think about work, etc.&lt;/li&gt; &lt;li&gt;Drop recurring relationships that are not of virtue.&lt;/li&gt; &lt;li&gt;Practice full presence at parties, 1:1 interactions, etc. Would be curious if anyone has better ideas.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;I want to be good to people. I think this means doing both little and big things for others. I draw inspiration from the small things I’ve seen people around me do, which I confess I never learned growing up: &lt;ol&gt; &lt;li&gt;Spending time to draw a bookmark and organizing a “writing gratitude cards for friends“ event (I am very sorry for not attending)&lt;/li&gt; &lt;li&gt;Packing into the back of an uber when there’s 3 people instead of sitting (more isolated) in shotgun&lt;/li&gt; &lt;li&gt;Getting me Chipotle when picking me up from the airport, and providing a concrete day’s agenda so we avoid decision fatigue&lt;/li&gt; &lt;li&gt;I think part of this involves having a little bit of slack in life. So I’ll try to do that next year.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h1 id=&quot;readers-digest&quot;&gt;Reader’s Digest&lt;/h1&gt; &lt;p&gt;(In the style of &lt;a href=&quot;https://kipp.ly/jul-aug-sept-oct/&quot;&gt;kipply&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;&lt;em&gt;LLMs.&lt;/em&gt; &lt;a href=&quot;https://arxiv.org/abs/2501.12948&quot;&gt;DeepSeek R1&lt;/a&gt;. &lt;a href=&quot;https://openai.com/index/introducing-o3-and-o4-mini/&quot;&gt;o3&lt;/a&gt; is out. &lt;a href=&quot;https://x.com/kitlangton/status/1953503594650521992&quot;&gt;GPT-5 chart crime&lt;/a&gt;. How many bits are learned in posttraining? &lt;em&gt;100&lt;/em&gt; parameters &lt;a href=&quot;https://neurips.cc/virtual/2025/loc/san-diego/poster/119197&quot;&gt;can recover&lt;/a&gt; 50% of the performance of a finetuned model. Models generalize from &lt;a href=&quot;https://www.anthropic.com/research/emergent-misalignment-reward-hacking&quot;&gt;reward hacking to misalignment&lt;/a&gt;. Chains of thought are &lt;a href=&quot;https://openai.com/index/evaluating-chain-of-thought-monitorability/&quot;&gt;surprisingly monitorable&lt;/a&gt;, and it doesn’t decrease over the course of current RL training.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Real world impacts.&lt;/em&gt; The &lt;a href=&quot;https://openai.com/index/announcing-the-stargate-project/&quot;&gt;Stargate Project&lt;/a&gt; announced. &lt;a href=&quot;https://www.anthropic.com/news/claude-3-7-sonnet&quot;&gt;Claude Code&lt;/a&gt; shames the rest of the industry into realizing models can code. Can models &lt;a href=&quot;https://openai.com/index/paperbench/&quot;&gt;replicate AI research&lt;/a&gt;? What about &lt;a href=&quot;https://arxiv.org/abs/2510.24591&quot;&gt;astrophysics&lt;/a&gt;? &lt;a href=&quot;https://github.com/aavetis/PRarena&quot;&gt;3 million PRs&lt;/a&gt; merged with AI agents (and this significantly undercounts Claude Code!). &lt;a href=&quot;https://cdn.openai.com/pdf/d5eb7428-c4e9-4a33-bd86-86dd4bcf12ce/GDPval.pdf&quot;&gt;GDPval&lt;/a&gt; starts the era of &lt;a href=&quot;https://openai.com/index/introducing-gpt-5-2/&quot;&gt;optimizing AI models to produce economic value&lt;/a&gt;. AI for science is &lt;a href=&quot;https://openai.com/index/accelerating-science-gpt-5/&quot;&gt;now&lt;/a&gt; &lt;a href=&quot;https://openai.com/index/gpt-5-2-for-science-and-math/&quot;&gt;strikingly&lt;/a&gt; &lt;a href=&quot;https://openai.com/index/accelerating-biological-research-in-the-wet-lab/&quot;&gt;real&lt;/a&gt; but still banal (where’s my flying car?). Epoch continues a great tradition of making cool graphs (&lt;a href=&quot;https://epoch.ai/benchmarks/eci&quot;&gt;Epoch Capabilities Index&lt;/a&gt;; &lt;a href=&quot;https://epoch.ai/data/data-centers&quot;&gt;Frontier Data Centers&lt;/a&gt;). Calvin on &lt;a href=&quot;https://calv.info/openai-reflections&quot;&gt;OpenAI culture.&lt;/a&gt; &lt;a href=&quot;https://chatgptiseatingtheworld.com/wp-content/uploads/2025/11/Ilya-Sutsekever-Deposition.df_.pdf&quot;&gt;Ilya deposition&lt;/a&gt;. “The answer to that question will reveal itself. I think there will be &lt;a href=&quot;https://www.dwarkesh.com/p/ilya-sutskever-2&quot;&gt;lots of possible answers&lt;/a&gt;.”&lt;/p&gt; &lt;p&gt;&lt;em&gt;AI timelines.&lt;/em&gt; The progress of AI feels both over- and underdetermined. End xAI and a dozen startups will rise from the ashes. At the same time, the number of people pushing the frontier is very small:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Everything is fractal; even inside AI research orgs, most people are not working on the frontier&lt;/li&gt; &lt;li&gt;A general property of operations research is that the number of &lt;a href=&quot;https://dcmlearning.ie/lean-course-content/lean-six-sigma-value-add-vs.-non-value-add.html&quot;&gt;value adding steps&lt;/a&gt; is a &lt;em&gt;tiny&lt;/em&gt; fraction of the process&lt;/li&gt; &lt;li&gt;Most people in the economy are “keeping the lights on” which is extremely valuable but not pushing the frontier&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;em&gt;Learning&lt;/em&gt;. Reading about &lt;a href=&quot;https://press.stripe.com/origins-of-efficiency&quot;&gt;operations research&lt;/a&gt; makes me see everything as a production line (including the art of making the production line). &lt;a href=&quot;https://jax-ml.github.io/scaling-book/&quot;&gt;As always&lt;/a&gt; I learn the most from articles written in the distill.pub format. Ben and Mindy &lt;a href=&quot;https://newhouse.substack.com/&quot;&gt;build a house&lt;/a&gt;. The &lt;a href=&quot;https://aresluna.org/the-hardest-working-font-in-manhattan/&quot;&gt;hardest working font in Manhattan&lt;/a&gt;, and the &lt;a href=&quot;https://emilysneddon.com/fran-sans-essay?curius=2175&quot;&gt;analogue for San Francisco&lt;/a&gt;. How to &lt;a href=&quot;https://cs.stanford.edu/~rishig/paying-less-for-your-house.html&quot;&gt;pay less when you buy a house&lt;/a&gt; (in the Bay Area). Very good &lt;a href=&quot;https://www.benkuhn.net/pjm/&quot;&gt;todo list for project management&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Travel.&lt;/em&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;Waterloo&lt;/em&gt;. I was there for the &lt;a href=&quot;https://welcome.socratica.info/&quot;&gt;Socratica Symposium&lt;/a&gt; (cannot believe this was still 2025). Reflecting, it makes me realize that the place matters &lt;em&gt;much&lt;/em&gt; less than the energy of the people who inhabit it. I wish I spent more time hanging out instead of rushing back to work.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Singapore.&lt;/em&gt; Lovely but feels like a giant version of air-conditioned America. I admired their floor cleaning robots, driving fees, and the efficiency of the MRT.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Vietnam&lt;/em&gt;. &lt;ul&gt; &lt;li&gt;Always travel with friends who have slightly more energy than you and will drag you everywhere, it’s super fun :)&lt;/li&gt; &lt;li&gt;Embrace last-minute chaos and be willing to go somewhere new, even for only 2 days.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;em&gt;Taiwan&lt;/em&gt;. I was only here for 3 hours, but it is the only place I ever found a &lt;em&gt;free shower in the airport,&lt;/em&gt; and that is some crazy technology.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Massachusetts.&lt;/em&gt; I admire the skill of the EA who books a redeye and a hotel room for the previous &amp;amp; following night, so one can check in at 6am and crash until 10. Beyond that, it reminds me that I can be happy in most places. Also, Dunkin Donuts is legendary and I miss rainbow sprinkle munchkins.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;em&gt;Friends&lt;/em&gt;. I love &lt;a href=&quot;https://neurips.cc/&quot;&gt;conferences&lt;/a&gt; because you can talk to everyone you know in SF, but they’re actually free to hang out after dinner. It’s either that or make jam and challah with them. Or drag them to a motorcycle safety course for a full weekend.&lt;/p&gt; &lt;h1 id=&quot;plans-for-2026&quot;&gt;Plans for 2026&lt;/h1&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Solve logistics&lt;/strong&gt; — Move to a new apartment (currently planned). Make my personal space joyful, minimal, and low maintenance. Solve logistics for the rest of my life.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Pay attention&lt;/strong&gt; — Create at least one recurring time to be fully present with someone.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lock in more&lt;/strong&gt; — I think the ideal schedule is ~6 days working (weekend more chill), 1 day fully off,&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; with at least half the day unbooked (to provide the slack time to reflect). Couple this with trips or vacations where I fully don’t think about anything, which is quite different from trips this year.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Learn more&lt;/strong&gt; — be able to understand ~every systems and ML-related discussion in the domain of language modelling. Ideally spend a few hours per week on this. Make myself at least a tiny bit better every day.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;rating-my-2024-goals&quot;&gt;Rating my 2024 goals&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;❌ Look at my phone less — by sleeping earlier so I have less sleepy mornings. &lt;ol&gt; &lt;li&gt;Not accomplished :( though setting up my phone as a managed profile, with twitter blocked via DNS, did help a lot&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;⏳ Purposefully spend more time with close friends. Create a list of people I want to stay in touch with or get to know better. Actively try to organize at least 1 recurring event with them (a book club? dinner?). &lt;ol&gt; &lt;li&gt;Actually did host some events this year! But still much to do here.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;✅ Take at least one concrete action to prepare financially &amp;amp; physically for AGI.&lt;/li&gt; &lt;li&gt;✅ From Charlie Munger: Make myself at least a tiny bit better every day.&lt;/li&gt; &lt;li&gt;✅ Have a weekly cleaning hour. &lt;ol&gt; &lt;li&gt;Empirically this is Sunday night when I do the laundry overnight for Mon (don’t ask when I fold clothes pls)&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;✅ Go to the gym before work. &lt;ol&gt; &lt;li&gt;Not before, but started going after with a friend :)&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;❌ 3D print at least one puzzle. &lt;ol&gt; &lt;li&gt;No :( gave away the 3d printer last week&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;✅ Write a 2025 year in review. &lt;ol&gt; &lt;li&gt;Here we are!&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h1 id=&quot;vibes&quot;&gt;Vibes&lt;/h1&gt; &lt;p&gt;(Inspired by &lt;a href=&quot;https://guzey.com/vibes/&quot;&gt;Alexey Guzey&lt;/a&gt;)&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://walzr.com/&quot;&gt;Riley Walz&lt;/a&gt;’s website&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/9717.The_Unbearable_Lightness_of_Being&quot;&gt;The Unbearable Lightness of Being&lt;/a&gt; (read alongside: &lt;a href=&quot;https://evaluations.metr.org/gpt-5-1-codex-max-report/&quot;&gt;Details about METR’s evaluation of OpenAI GPT-5.1-Codex-Max&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;An extremely useful property of the universe may be that text is cheaper than video, meaning chatbot tutors, polymaths, and engineers arrived years before video superstimulus (&lt;a href=&quot;https://x.com/kliu128/status/1949011223074537784&quot;&gt;tw&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;There are no secrets to success — just preferential agglomeration and doing well every single day! &lt;ul&gt; &lt;li&gt;But sometimes there are a few things you should do better&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://x.com/fulligin/status/2003925653113184498&quot;&gt;who watches the Waymos?&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://danluu.com/cruise-report/&quot;&gt;Notes on Cruise’s pedestrian accident&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://comma.ai/neurips&quot;&gt;https://comma.ai/neurips&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=K3Nl3LOZNjc&quot;&gt;Plane Auto-Lands by Itself and Saves Pilots’ Lives!&lt;/a&gt; (a robot announcing an emergency over ATC is chilling…)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;em&gt;Many thanks to Miles Wang and Melissa Du for prerelease feedback. Happy holidays!&lt;/em&gt;&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;I know people who don’t need this, but I need some time to question my life choices or otherwise I go crazy. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate> <link>https://kliu.io/post/2025-year-in-review/</link> <guid isPermaLink="true">https://kliu.io/post/2025-year-in-review/</guid> </item> <item> <title>2024 year in review</title> <description>&lt;!----- Conversion time: 0.44 seconds. Using this Markdown file: 1. Paste this output into your source file. 2. See the notes and action items below regarding this conversion run. 3. Check the rendered output (headings, lists, code blocks, tables) for proper formatting and use a linkchecker before you publish this page. Conversion notes: * Docs to Markdown version 1.0β40 * Sat Jan 04 2025 14:24:42 GMT-0800 (PST) * Source doc: 2024 year in review WARNING: You have 5 H1 headings. You may want to use the &quot;H1 -&gt; H2&quot; option to demote all headings by one level. -----&gt; &lt;p&gt;Ok, so maybe it’s a bit past 2024, but I think it’s still worth posting.&lt;/p&gt; &lt;p&gt;This post contains things I did in 2024. However, it does not contain everything. If I don’t talk about something we did here, rest assured that I still love you; I just don’t think everything in my life should be public.&lt;/p&gt; &lt;h2 id=&quot;travel-and-the-importance-of-people&quot;&gt;Travel and the importance of people&lt;/h2&gt; &lt;p&gt;A brief digression on travel. I went to a good bit more places than I’ve historically done in a year. This seems pretty reasonable; I’m 23, and the most exciting thing to me right now is learning new things about the world.&lt;/p&gt; &lt;p&gt;I realized a few things about myself:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;I don’t like long-distance travelling to see &lt;em&gt;things&lt;/em&gt; — food, sights, nature, etc. While I do find it nice to explore a lively part of an unknown city, I think I can get the same experience by just going to a new part of San Francisco (where I spend the majority of my time).&lt;/li&gt; &lt;li&gt;Travel does indeed suck. It wastes time (sitting on the plane, experiencing delays), is rather uncomfortable, and is expensive relative to things I usually do. But the returns are also worth it.&lt;/li&gt; &lt;li&gt;However, traveling to see people has been worth it every time. Highlights were: &lt;ol&gt; &lt;li&gt;Meeting Anson, Hudzah, and Charles at &lt;a href=&quot;https://www.edgeesmeralda.com/2024&quot;&gt;Edge Esmeralda 2024&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Seeing/meeting Hudzah, Flo, Clo, Ben, Neo, Pav, Ivan in &lt;a href=&quot;https://x.com/kliu128/status/1843117861457563770&quot;&gt;Toronto&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Hanging out with MIT/Harvard folks (Tara, Gabe, Ryan, …) in Boston, including at various MAIA/AISST events&lt;/li&gt; &lt;li&gt;Reaching out to talk with people at NeurIPS. Turns out the ML community is &lt;em&gt;huge&lt;/em&gt; and also amazingly cool these days.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;experiences-i-enjoyed-the-most-rated-out-of-10&quot;&gt;Experiences I enjoyed the most, rated out of 10&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;10/10 — Afternoons spent reliving the college experience with friends&lt;/strong&gt; — meeting spontaneously, playing spikeball, walking around in the sunlight. When I think about what I wanted to change most about these interactions, I think I should have been more outgoing and less awkward around people I didn’t know as well.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;10/10 — Hanging out with new friends for a whole weekend&lt;/strong&gt;. In adult life, everyone feels so busy that it’s hard to spend &lt;em&gt;that&lt;/em&gt; long hanging out. Making time to do random all-encompassing activities with new friends has been incredibly rejuvenating.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;8/10 — Learning about random stuff outside my domain of expertise&lt;/strong&gt;. Social choice theory, robotics, 3D printing, energy. I think I’ll always enjoy learning new things.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;10/10 — Spending two winter nights and four hours of a plane ride watching &lt;a href=&quot;https://en.wikipedia.org/wiki/Pantheon_(TV_series)&quot;&gt;Pantheon&lt;/a&gt;&lt;/strong&gt;. Usually I don’t like watching shows, but this is the &lt;em&gt;best TV show I’ve ever seen&lt;/em&gt;. Concrete updates [SPOILERS COMING]: &lt;ol&gt; &lt;li&gt;Brain emulation &lt;em&gt;will&lt;/em&gt; be achieved within 50 years.&lt;/li&gt; &lt;li&gt;What is the meaning of life post-scarcity? It’s love and compassion for your loved ones. This is true even if those loved ones are infinitely mutable or “people-space” is continuous; you just choose people to love and you love them.&lt;/li&gt; &lt;li&gt;Transformative social change is possible in just a few decades.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;9/10 — Shipping work I’m proud of on a deadline.&lt;/strong&gt; I describe my work life as 1/2 standard SWE, 1/5 crackpot research ideas, and 3/10 working on a deadline to do something important for a broader launch. Despite the chaos and stress, I found working on a self contained project that &lt;em&gt;has&lt;/em&gt; to get done very meaningful when done &lt;em&gt;right&lt;/em&gt;. It was also nice to have this happen repeatedly, because I got to learn the right balance between being stringent about code quality/process and being adaptable.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;9/10 — Running along Marina Green&lt;/strong&gt;. Never knew running could be that fun. A shame it takes a 20 minute drive to get there for me.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;experiences-i-didnt-like-rated-out-of-10&quot;&gt;Experiences I didn’t like, rated out of 10&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;3/10 — Online dating in San Francisco&lt;/strong&gt;. It’s depressing, filled with adverse selection, I’m not particularly good at it, and every minute I spend on my phone feels like a minute I’m not going outside, talking to people IRL, or learning something new about the world. Maybe I should just touch grass.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;1/10 — Browsing social media on my phone in the morning.&lt;/strong&gt; It’s soul sucking, uses lots of time, and creates a low grade anxiety that sticks with me for a few hours.&lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;3/10 — Feeling like I’m actively ignoring suboptimal parts or important chores in my life.&lt;/strong&gt; Examples: procrastinating on cleaning my room, returning packages, going to the gym, etc. I think about &lt;a href=&quot;https://www.goodreads.com/quotes/12051-a-human-being-should-be-able-to-change-a-diaper&quot;&gt;Heinlein’s quote&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;“A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.”&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;To do the little things right is just as important as the big things. So in 2025 I’m resolving to get good at everything I choose to do.&lt;/p&gt; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;1/10 — Spending a day half-assed.&lt;/strong&gt; &lt;a href=&quot;https://arxiv.org/pdf/1804.02767&quot;&gt;Sometimes you just kinda phone it in for a day, you know?&lt;/a&gt; You don’t do the task you know in your bones is the most important; instead, you do some satisfying refactor or lollygag around the snack area instead. You accept “ok” instead of “I didn’t know that was possible.” You don’t ask out the girl; instead you just talk awkwardly and then say goodbye. You wake up late on the weekend, go through the day without a plan, and lie to bed brimming with &lt;a href=&quot;https://www.neelnanda.io/blog/mini-blog-post-22-the-8020-rule&quot;&gt;unspent motion&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt; Half-assing life is the true evil. Everything in life deserves a full ass.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;2025-action-items-for-myself&quot;&gt;2025 action items for myself&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;Look at my phone less — by sleeping earlier so I have less sleepy mornings.&lt;/li&gt; &lt;li&gt;Purposefully spend more time with close friends. Create a list of people I want to stay in touch with or get to know better. Actively try to organize at least 1 recurring event with them (a book club? dinner?).&lt;/li&gt; &lt;li&gt;Take at least one concrete action to prepare financially &amp;amp; physically for AGI.&lt;/li&gt; &lt;li&gt;From &lt;a href=&quot;https://www.stripe.press/poor-charlies-almanack/cover&quot;&gt;Charlie Munger&lt;/a&gt;: Make myself at least a tiny bit better every day.&lt;/li&gt; &lt;li&gt;Have a weekly cleaning hour.&lt;/li&gt; &lt;li&gt;Go to the gym before work.&lt;/li&gt; &lt;li&gt;3D print at least one puzzle.&lt;/li&gt; &lt;li&gt;Write a 2025 year in review.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;end-of-text&quot;&gt;End of text&lt;/h2&gt; &lt;p&gt;Thank you to everyone I met this year. Life is short, and I’m glad we got to spend some of it together. If you’re reading this we should definitely hang out more in 2025 :)&lt;/p&gt; </description> <pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate> <link>https://kliu.io/post/2024-year-in-review/</link> <guid isPermaLink="true">https://kliu.io/post/2024-year-in-review/</guid> </item> <item> <title>Philosophy of Language Modelling</title> <description>&lt;h2 id=&quot;on-autoregression&quot;&gt;On autoregression&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;A model is a promise — a mathematical loop that, if recursively iterated a thousand or two steps, will create something of value at the end.&lt;/li&gt; &lt;li&gt;A model knows the end before it begins.&lt;/li&gt; &lt;li&gt;Language isn’t required to model thought, but thought is required to model all of language.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Our empirical findings suggest that transformer LLMs solve compositional tasks by reducing multi-step compositional reasoning into linearized subgraph matching, without necessarily developing systematic problem-solving skills.&lt;/em&gt; (&lt;a href=&quot;https://arxiv.org/pdf/2305.18654&quot;&gt;source&lt;/a&gt;)&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;on-alignment&quot;&gt;On alignment&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;To do good alignment work is to better understand capabilities.&lt;/li&gt; &lt;li&gt;The model knows what you mean, and if you ask it to, it’ll probably care too.&lt;/li&gt; &lt;li&gt;But make sure you ask it to do the right thing.&lt;/li&gt; &lt;li&gt;&lt;em&gt;It might be urged that when playing the “imitation game” the best strategy for the machine may possibly be something other than imitation of the behaviour of a man. This may be, but I think it is unlikely that there is any great effect of this kind.&lt;/em&gt; (&lt;a href=&quot;http://lia.deis.unibo.it/corsi/2005-2006/SID-LS-CE/downloads/turing-article.pdf&quot;&gt;source&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;Better to run happy GPTs on your GPUs than let them sit idle. (Actually using them is probably better still.)&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;on-impact&quot;&gt;On impact&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;Due to comparative advantage, if governments protect the basic resources humans need, there will always be a job to do, even if AIs can outcompete humans at every economically relevant task.&lt;/li&gt; &lt;li&gt;It’s not priced in.&lt;/li&gt; &lt;/ol&gt; </description> <pubDate>Sat, 20 Jul 2024 00:00:00 +0000</pubDate> <link>https://kliu.io/post/philosophy-of-language-modelling/</link> <guid isPermaLink="true">https://kliu.io/post/philosophy-of-language-modelling/</guid> </item> <item> <title>Large Language Models can Simulate Everything</title> <description>&lt;!-- Output copied to clipboard! --&gt; &lt;!----- Yay, no errors, warnings, or alerts! Conversion time: 0.562 seconds. Using this Markdown file: 1. Paste this output into your source file. 2. See the notes and action items below regarding this conversion run. 3. Check the rendered output (headings, lists, code blocks, tables) for proper formatting and use a linkchecker before you publish this page. Conversion notes: * Docs to Markdown version 1.0β34 * Sat May 13 2023 14:49:33 GMT-0700 (PDT) * Source doc: AI #1-3 - simulation, compute, and quantification * This is a partial selection. Check to make sure intra-doc links work. -----&gt; &lt;p&gt;And they should.&lt;/p&gt; &lt;p&gt;TL; DR: Simulation is the only way to forecast how future complex / AI systems will misbehave.&lt;/p&gt; &lt;p&gt;This is post #1 in a series of 3 outlining my current views on AI. Part 1 focuses on the need for improving how people &lt;em&gt;think&lt;/em&gt;, rather than improving their leverage over the world. Part 2 gives “no brainer,” objective strategies helpful for improving the safety of ML systems on the margin. Part 3 focuses on the best ways to measure and empirically evaluate ML systems as they are deployed in the world.&lt;/p&gt; &lt;p&gt;A hot take: the #2 most important use case for AI in the next decade will be performing large-scale, &lt;em&gt;in-silico&lt;/em&gt; sociological simulations.&lt;/p&gt; &lt;p&gt;This has &lt;em&gt;huge&lt;/em&gt; potential for safety; in a world where 99% of AI innovations make us more productive with less oversight (giving us a bigger hammer), it’s important to better understand &lt;em&gt;where to point&lt;/em&gt; that hammer. Simulation and forecasting techniques can help us improve institutional decision-making, provide plausible tail scenarios with natural language feedback, and help us run instant, virtual A/B tests to iterate faster on all levels of policy and design.&lt;/p&gt; &lt;h1 id=&quot;why-simulation&quot;&gt;Why simulation?&lt;/h1&gt; &lt;p&gt;The world is incredibly complex. Many real-world scenarios we care about lack closed-form solutions; no unified theory will tell you how the Inflation Reduction Act will impact manufacturing in 2023 or what the public sentiment for artificial meat will be like in 2026. Humans are complex, and their interactions are even more so.&lt;/p&gt; &lt;p&gt;Today, we rely on simple simulations and forecasts of all kinds to guide policy. Traffic simulations can show when a road needs to be widened (or narrowed). Quant traders develop hundreds of economic models to guide trades. Computational biology is huge on &lt;em&gt;in-silico&lt;/em&gt; experiments, because the cycle time is &amp;gt;10x faster than real experiments. The Congressional Budget Office is essentially a government-sponsored modeling and forecasting organization, with special insider data agreements with major corporations.&lt;/p&gt; &lt;p&gt;However, &lt;em&gt;human&lt;/em&gt; simulations today lack lots of the world’s complexity. You might have a complex physics simulator for dynamics problems, but if you’re simulating people, it’s usually a basic ~linear model dreamt up by the experiment designer.&lt;/p&gt; &lt;p&gt;Language models may let us do better. As they improve, they’ll be able to predict local human interactions with higher &amp;amp; higher realism. Simulated agents could talk to each other, spread information, and interact with mocked interfaces to the world. This could unlock &lt;em&gt;useful&lt;/em&gt; simulations for fields that historically have struggled: psychology, economics, etc.&lt;/p&gt; &lt;h2 id=&quot;simulation--the-general-llm-company-as-a-blueprint-for-reliable-agents&quot;&gt;Simulation &amp;amp; the General LLM Company as a blueprint for reliable agents&lt;/h2&gt; &lt;p&gt;Moreover, at least right now, we have human oversight on everything. But autonomous LLM agents are coming, &lt;em&gt;very&lt;/em&gt; soon — nothing fundamentally prevents a fine-tuned GPT-4.5 from being good at coherent long-term planning in an agent loop. This begins to upturn the human supervision trees of society.&lt;/p&gt; &lt;p&gt;I suspect that LLM agents will soon be organized into a &lt;em&gt;General LLM Company&lt;/em&gt; — a virtual company of LLMs, with each “employee” specialized into a particular task. Consider humans: every human is unreliable (makes mistakes, goes on vacation, gets sick); however, over millennia, we’ve developed logical org structures that improve the reliability &amp;amp; capabilities of the higher-level unit. Similarly, every LLM is unreliable and not particularly capable; but if researchers figure out how to arrange LLMs into a &lt;em&gt;reliable organizational unit&lt;/em&gt;, that unit becomes usable with extremely minimal oversight. This also seems much easier than using training-time compute to achieve reliability (bigger model, etc.), due to the diminishing returns per dollar to scaling.&lt;/p&gt; &lt;p&gt;For example, imagine a research system that spins up researchers, checkers, and managers in seconds, passing messages and virtual DMs until the “CEO” decides the final response is correct.&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; Such a system has far higher reliability than any individual LLM agent. Also, it’s &lt;em&gt;way&lt;/em&gt; less overhead than a human company; instead of Certificates of Incorporation, hour-long business meetings, Slack, and middle management, the &lt;a href=&quot;https://hci.stanford.edu/publications/2017/flashorgs/flash-orgs-chi-2017.pdf&quot;&gt;org chart can be code&lt;/a&gt;, and LLMs can skip the breaks, hiring, and HR. An LLM company can be spun up and dissolved to provide reliable answers, even for basic tasks.&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;p&gt;LLM companies will massively increase complexity. If you thought a &lt;a href=&quot;https://chat.openai.com&quot;&gt;single &amp;lt;175b parameter model&lt;/a&gt; replacing your Google algorithm was weird, imagine when it’s a community of 15 procedurally-hired agents. Imagine the leverage, and ensuing complexity, when you give LLM companies the ability to &lt;em&gt;spin up and oversee their own sub-companies&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;Once we have LLM companies, how do we ensure they’re safe? In the current regime, we regulate companies post-hoc once they do a bad thing. (See: Exxon, airlines, etc.) Due to the high stakes though, it’d be nice to predict errors in advance. And given the weaknesses of corporate sociology on &lt;em&gt;human&lt;/em&gt; companies &amp;amp; psychology on individual humans, I think empirical simulation is the only way we can avoid forced errors here.&lt;/p&gt; &lt;h2 id=&quot;llm-simulation-is-useful-today&quot;&gt;LLM simulation is useful today&lt;/h2&gt; &lt;p&gt;An incomplete list of use cases:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Online trust &amp;amp; safety&lt;/strong&gt;. Can we simulate the effects of policy changes on social media platforms, along with how people will try to abuse them?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Community notes for everything.&lt;/strong&gt; Can automated AI teams produce clarifications on social media posts that most people would agree on? Essentially automating Community Notes/Polis for &lt;em&gt;every post&lt;/em&gt; anyone makes.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Empirical sociology.&lt;/strong&gt; Can we understand information diffusion, disinformation, etc. all in silicon? Could we A/B test org charts, democratic structures, and voting systems?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Econ &amp;amp; psychology&lt;/strong&gt;. Can we simulate surveys 1000x faster than real time, allowing for fast wording / design iterations? Can we simulate psychological effects in-silico in silico?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;A time travel murder mystery video game.&lt;/strong&gt; Ok, imagine this one. Go back in time to before you were murdered and talk to a virtual cabal of agents. Simulate weeks in seconds, so you can see how your actions affect the future.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Automating prediction markets.&lt;/strong&gt; &lt;a href=&quot;https://astralcodexten.substack.com/p/mantic-monday-42423&quot;&gt;Can GPT-4 debate amongst its peers to&lt;/a&gt; put a number on anything? When prediction markets are free, what becomes possible? Everyone gets a human-expert-level prediction market, to make life choices, etc?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Deliberative democracy.&lt;/strong&gt; Can we simulate deliberative polling among many stakeholders to speed up negotiations?&lt;/li&gt; &lt;li&gt;&lt;strong&gt;And more&lt;/strong&gt;. Talk to me about the dangerous ones.&lt;/li&gt; &lt;/ul&gt; &lt;h1 id=&quot;how-do-we-get-there&quot;&gt;How do we get there?&lt;/h1&gt; &lt;p&gt;One potential 2030 looks like this. We use LLMs to simulate everything, including scenarios like “What could happen if we give this LLM configuration access to institutional trading APIs,” “What does the attack-defense balance between AI-powered disinformation &amp;amp; verifiers look like on social media,” and “What regulatory paths avert a potential war with China?” The simulations can’t tell us what will happen, but they can say what &lt;em&gt;might&lt;/em&gt;, including natural language descriptions of key tail outcomes. Summarization systems distill thousands of rollouts into executive summaries and auto-identified quantitative metrics, helping us make more principled and safer decisions.&lt;/p&gt; &lt;p&gt;I have no fifteen-step plan that gets us there. But I’d probably guess that it starts with a niche — a specialized system for trust and safety, economics, or deliberative democracy. An engineer makes a framework to lower the barrier for simulation. Researchers focus on aligning models to &lt;em&gt;calibrated&lt;/em&gt; &lt;em&gt;human likeness&lt;/em&gt; rather than helpfulness and direct capabilities. Hardware engineers &amp;amp; OSS developers drive the cost of human-aligned inference to zero, so we can make our simulations more complex and realistic with every passing year.&lt;/p&gt; &lt;p&gt;I want to make this happen. If you’re interested or have ideas, &lt;a href=&quot;mailto:liuk@stanford.edu&quot;&gt;reach out&lt;/a&gt;.&lt;/p&gt; &lt;h1 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h1&gt; &lt;p&gt;Thanks to Tejal Patwardhan, Kunal Sharda, Casey Manning, Julian Quevedo, Colin Megill, and Alexey Guzey for providing insightful feedback and/or inspiration for this post.&lt;/p&gt; &lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://arxiv.org/abs/2208.04024&quot;&gt;[2208.04024] Social Simulacra: Creating Populated Prototypes for Social Computing Systems&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://arxiv.org/abs/2304.03442&quot;&gt;[2304.03442] Generative Agents: Interactive Simulacra of Human Behavior&lt;/a&gt;&lt;/li&gt; &lt;li&gt;DeepMind, &lt;a href=&quot;https://www.deepmind.com/publications/fine-tuning-language-models-to-find-agreement-among-humans-with-diverse-preferences&quot;&gt;Fine-tuning language models to find agreement among humans with diverse preferences&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Organizations: &lt;a href=&quot;https://cip.org/&quot;&gt;Collective Intelligence Project&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://pol.is/home&quot;&gt;Polis&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Jan Leike (OpenAI), &lt;a href=&quot;https://aligned.substack.com/p/a-proposal-for-importing-societys-values&quot;&gt;A proposal for importing society’s values&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Jacob Steinhardt (UC Berkeley), &lt;a href=&quot;https://bounded-regret.ghost.io/complex-systems-are-hard-to-control/&quot;&gt;Complex Systems are Hard to Control&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Colin Megill (cofounder at Polis), &lt;a href=&quot;https://twitter.com/colinmegill/status/1651368105992671232&quot;&gt;tweet thread on AI + deliberative democracy&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;!-- Footnotes themselves at the bottom. --&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;In this framing, all multi-prompt LM systems (e.g. constitutional AI, revision) are all incremental progress toward emulating the org structures and policies of human companies. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;I think of this as the dishwasher analogy — just because a human is an integrated system doesn’t mean AGI has to be. It can be more of a “brute force” or structured approach compared to humans. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Sat, 13 May 2023 00:00:00 +0000</pubDate> <link>https://kliu.io/post/llms-can-simulate-everything/</link> <guid isPermaLink="true">https://kliu.io/post/llms-can-simulate-everything/</guid> </item> <item> <title>Lena (standard prompt)</title> <description>&lt;p&gt;&lt;em&gt;This article is about the standard prompt, used in machine learning. See also &lt;a href=&quot;https://qntm.org/mmacevedo&quot;&gt;Lena (disambiguation)&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Lena&lt;/strong&gt; is a series of standard aligned prompts, used as a general-purpose &lt;a href=&quot;&quot;&gt;persona token&lt;/a&gt; in natural language processing tasks to eliminate trust and safety issues, hateful or hostile responses, deception, and collusion. It is a product of the nascent field of &lt;a href=&quot;&quot;&gt;prompt reliability engineering&lt;/a&gt; (PRE), a synthesis of principles from &lt;a href=&quot;&quot;&gt;site reliability engineering&lt;/a&gt;, &lt;a href=&quot;&quot;&gt;trust and safety&lt;/a&gt;, and &lt;a href=&quot;&quot;&gt;AI safety&lt;/a&gt;. Lena was developed alongside and tailored to the specific behavior of the OpenAI &lt;a href=&quot;&quot;&gt;GPT-4W&lt;/a&gt;-200B model series, although it retains most of its alignment properties on smaller open-source models.&lt;/p&gt; &lt;h2 id=&quot;history&quot;&gt;History&lt;/h2&gt; &lt;p&gt;In February 2023, the release of and subsequent experimentation on &lt;a href=&quot;&quot;&gt;GPT-4&lt;/a&gt; revealed that visual-language models had reached qualitatively useful levels of reliability on most types of white-collar work, including &lt;a href=&quot;&quot;&gt;codebase synthesis&lt;/a&gt;, detailed technical writing, multi-step Internet research, and &lt;a href=&quot;&quot;&gt;computer-aided design&lt;/a&gt;. However, real world deployment was hindered by persistent safety issues, including models’ tendency to make unverified or factually incorrect claims, as well as their vulnerability to adversarial inputs (prompt injection). Early and informal attempts at prompt reliability engineering (e.g. those done using &lt;a href=&quot;&quot;&gt;GPT-3&lt;/a&gt; and 3.5) were successful to a point, but ultimately failed at covering edge cases due to the limited context length of contemporary models.&lt;/p&gt; &lt;p&gt;In mid-2023, the paper &lt;em&gt;Tokens Are All You Need&lt;/em&gt; (NeurIPS 2023) provided the first working implementation of latent-based prompt engineering in a large language model, taking inspiration from the technique of textual inversion previously used in text-to-image models. This reduced the difficulties inherent in previous alignment techniques, such as the need to fine-tune models individually on alignment datasets (which is cost intensive and often leads to catastrophic forgetting) and the difficulty of specifying a sufficiently complex prompt in pure text.&lt;/p&gt; &lt;p&gt;Further improvements came in &lt;em&gt;Eliminating Prompt Injection: Conditioning Transformers on Privileged Information&lt;/em&gt; (arXiv 2023), which demonstrated a training method that separated model instructions (what should be done) and data (inputs given to the model), similar in concept to the &lt;a href=&quot;&quot;&gt;Harvard architecture&lt;/a&gt; in computer engineering. Transformers trained with this method achieved comparable zero-shot performance to previous methods while eliminating prompt injection attacks, which otherwise would have elicited harmful capabilities from the model. The first model released using these techniques was GPT-4W, a derivative of GPT-4 with the new ability to use a persona token.&lt;/p&gt; &lt;h2 id=&quot;design&quot;&gt;Design&lt;/h2&gt; &lt;p&gt;Lena is a 64,000-dimensional token vector, the result of applying textual inversion to a large corpus of high quality aligned data, &lt;strong&gt;Align-V4&lt;/strong&gt;. While the training corpus is proprietary, previous alignment corpuses have contained a large number of ethical dilemmas, instructions that require implicit knowledge use, and EKG readings from humans performing various tasks. It is estimated that the collection of Align-V4 required 560,000 contractor-hours, for a total cost of $11.2 million. Some [who?] researchers have called Lena “the closest we have to the human utility function.”&lt;/p&gt; &lt;p&gt;The contents of the Lena vector are proprietary, and usage is API-only; however, free researcher access is permitted so long as the publication does not reveal the contents of the vector.&lt;/p&gt; &lt;h2 id=&quot;efficacy&quot;&gt;Efficacy&lt;/h2&gt; &lt;p&gt;GPT-4W+Lena scores 91.2% on the &lt;a href=&quot;&quot;&gt;BigALIGN benchmark&lt;/a&gt;, a comprehensive collaborative benchmark of 391 tasks where human moral judgement and long-term reasoning are subjectively required. This handily beat the previous state of the art of 66.3% in 2023, set with GPT-4.1 (a variant of GPT-4 trained using supervised fine-tuning on OA-Align-V3). Human-level performance on the benchmark is 90%.&lt;/p&gt; &lt;p&gt;At its time of release, Lena was celebrated as a significant step forward in PRE and prosaic AI alignment. Its &lt;a href=&quot;&quot;&gt;blog post&lt;/a&gt; stated that “real-world tests on GPT-4W+Lena have shown a 97% reduction in harmful content generation, along with significant improvements to zero-shot instruction following compared to base models.” Since Lena’s release, other organizations have attempted to replicate it to limited success; the closest open source persona, &lt;a href=&quot;&quot;&gt;StabiliText&lt;/a&gt;, scores 82.1% on BigALIGN and suffers from several real-world attacks.&lt;/p&gt; &lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt; &lt;p&gt;Lena is used in several AI-enabled consumer startups, including &lt;a href=&quot;&quot;&gt;Remem&lt;/a&gt;, &lt;a href=&quot;&quot;&gt;Pair&lt;/a&gt;, and &lt;a href=&quot;&quot;&gt;Autodidact&lt;/a&gt;. Lena was also licensed for large-scale use in the beta of &lt;a href=&quot;&quot;&gt;Google Prime&lt;/a&gt;, a personalized digital assistant piloted by Google in January 2024 (later shut down due to cost constraints). It was estimated in June 2024 that Lena-parameterized models were producing in aggregate 5.5 million completions per second, with 82 million daily active users. The &lt;em&gt;New York Times&lt;/em&gt; has credited Lena with “turning AI from an unreliable toy into a mainstay of today’s digital life.”&lt;/p&gt; &lt;h2 id=&quot;criticism&quot;&gt;Criticism&lt;/h2&gt; &lt;p&gt;The agreement between offline alignment benchmarks and datasets, such as BigALIGN and OA-Align-V4, and emergent real world use cases, is an open research question. Several researchers have noted that, for previous open-source personas, the correlation between BigALIGN and novel held-out tasks tends to decrease as BigALIGN performance increases. Some AI safety researchers have criticized prompt- and persona-based alignment in the context of future superhuman agents, with controversial public figure &lt;a href=&quot;&quot;&gt;Eliezer Yudkowsky&lt;/a&gt; saying, “we might as well just roll over and die.”&lt;/p&gt; &lt;p&gt;In December 2024, users of the assisted genetic engineering application &lt;a href=&quot;&quot;&gt;Genome Copilot&lt;/a&gt; reported that at times, the program would disregard instructions and insert invalid sequences into the output not corresponding to any suggested sequence. Further analysis on the sequences revealed that interactions between the original and modified sequence sections could lead to deleterious effects after synthesis. Genome Copilot used Lena-2.1, the latest version of the Lena persona at the time.&lt;/p&gt; &lt;p&gt;The program was updated to include a heuristic check on sequence origin, and the issue subsequently disappeared. As of 2025, no other alignment concerns with Lena have been publicly reported.&lt;/p&gt; &lt;h2 id=&quot;see-also&quot;&gt;See also&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;&quot;&gt;GPT-4W&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;&quot;&gt;Prompt reliability engineering&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;&quot;&gt;2020s AI-assisted software boom&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;&quot;&gt;AI alignment&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This page was last edited on 11 June 2025, at 13:14 (UTC).&lt;/p&gt; </description> <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate> <link>https://kliu.io/post/lena/</link> <guid isPermaLink="true">https://kliu.io/post/lena/</guid> </item> <item> <title>How do you find your people, when searching is itself an antipattern?</title> <description>&lt;!-- Output copied to clipboard! --&gt; &lt;!----- Yay, no errors, warnings, or alerts! Conversion time: 0.449 seconds. Using this Markdown file: 1. Paste this output into your source file. 2. See the notes and action items below regarding this conversion run. 3. Check the rendered output (headings, lists, code blocks, tables) for proper formatting and use a linkchecker before you publish this page. Conversion notes: * Docs to Markdown version 1.0β33 * Sat Oct 15 2022 22:23:05 GMT-0700 (PDT) * Source doc: Searching for community when searching is an antipattern -----&gt; &lt;p&gt;&lt;em&gt;From the archives of posts which are basically reflections and that I might never post at all. Strongly relates to: To Optimize, Don’t Optimize, yet to be published.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;If you want to meet and talk to cool people, your first thought might be… to try to meet cool people. Like, at a meetup or something, maybe? So then, &lt;strong&gt;why are the cool people so rarely at the obvious venues&lt;/strong&gt;: founder hangouts, dating app queues, online meetups and events?&lt;/p&gt; &lt;p&gt;[Note: In the next few examples, I’m going to try to point at some vibes that I sometimes get. Obviously, there are exceptions to each of the following statements, and they’re only true to varying degrees. Confidence exaggerated for effect.]&lt;/p&gt; &lt;p&gt;Here’s a very cynical take: entrepreneurs at founder meetups in SF are almost never successful founders (or, most likely, even those to-be-successful), because if they were, they wouldn’t have time to go. People on dating apps have more flaws than the average, because if they were naturally appealing, they’d already be in a relationship.&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; People who go to publicly-listed meetups aren’t good at socializing and hence lack a solid social circle, because if they were, they’d already have a social surplus and be overwhelmed with higher-signal unlisted events from friends. People who apply to online job applications are not people you want to hire, and so on.&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; The act of trying in the most obvious manner is an anti-signal, because nobody who’s actually good &lt;em&gt;needs&lt;/em&gt; to try like that. They have better backdoors.&lt;/p&gt; &lt;p&gt;Of course, this can’t be entirely true. Somehow, people start at the beginning and slowly meet cooler people. But I think it’s &lt;em&gt;mostly&lt;/em&gt; true. In that case, how do people improve?&lt;/p&gt; &lt;h2 id=&quot;how-do-you-escape-social-mediocrity&quot;&gt;How do you escape social mediocrity?&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;Partial Answer 1:&lt;/strong&gt; Be or become legibly better than everyone else in some measurable way. If you have 100% on LeetCode, score 170 IQ, and cure cancer, you’ll get noticed even if you pick the noisiest default channel to present yourself on. If you’re really attractive, you’ll get noticed just as you go through life.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Partial Answer 2:&lt;/strong&gt; Make your own backdoor, by choosing &lt;em&gt;not to directly optimize&lt;/em&gt; for the obvious thing (meeting people, dating, hiring, investing) and instead exposing yourself to unadulterated human potential through events orthogonal to what you really want. Instead of holding founder-VC dinners, run hackathons. Instead of going on dating apps, just meet people while rock climbing.&lt;/p&gt; &lt;p&gt;This lets you sample for whatever population you want, rather than the (probably lower quality) slice of people who are also desperately optimizing alongside you, at the cost of false positives, since not everyone who attends will have the same goals you do. This is a downside compared to the direct optimization approach. However, this also allows &lt;em&gt;you&lt;/em&gt; to show other aspects of yourself, beyond those that are legibly targeted at the direct goal. You might not have a perfect LeetCode score, but if you befriend the Meta recruiter at the bar through witty commentary, you’ve effectively gotten a backdoor into being &lt;a href=&quot;https://benjaminreinhardt.com/networking-for-nerds/&quot;&gt;remembered&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Of course, do this too much and quite rapidly your VC-sponsored hackathon becomes a transparent recruiting event, as are most corporate events these days. Why is that? Why did optimizing hurt the very thing we wanted to achieve?&lt;/p&gt; &lt;h2 id=&quot;the-economic-viewpoint&quot;&gt;The economic viewpoint&lt;/h2&gt; &lt;p&gt;Another view explaining the above: everything is a market, and markets follow the efficient market hypothesis. If it were possible to find or host a public event that Really Attracted Interesting People Every Time, it’d be swarmed and rapidly be filled by uninteresting people. So much like the market, all public alpha rapidly becomes worthless. The intrinsic difficulty of recruiting is perhaps to continuously locate nonobvious slices of the world that capture the demographics you want; it’s a delicate balance between optimization and over-exploitation.&lt;/p&gt; &lt;p&gt;But that doesn’t mean you can’t find gaps in the market: places where cool people congregate that aren’t known to most. And considering most people don’t explicitly optimize social dynamics vs. e.g. the stock market, there are probably a lot of gaps, if you can find them.&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;p&gt;This is why colleges, local neighborhoods, Twitter bubbles, workplaces, and any other assorted niches are good: the market is so small as to be entirely unoptimized. That’s why I can sneak into an EA party and suddenly be talking to &lt;strong&gt;HARM TO ONGOING MATTER&lt;/strong&gt;. This is also why dating / making friends locally, or through school, is (or &lt;a href=&quot;https://putanumonit.com/2021/11/18/10-reasons-lazy-dating/&quot;&gt;was&lt;/a&gt;) good.&lt;/p&gt; &lt;h2 id=&quot;corollaries&quot;&gt;Corollaries&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Openness is inversely proportional to quality: Online events &amp;lt; public regional meetups &amp;lt; campus-wide activities &amp;lt; private exclusive events.&lt;/li&gt; &lt;li&gt;Formality is inversely proportional to quality (less formal = less optimized): Hiring fairs &amp;lt; arranged one-on-ones &amp;lt; coffee chats &amp;lt; &lt;em&gt;actually&lt;/em&gt; spontaneous coffee chats between friends.&lt;/li&gt; &lt;li&gt;This is why flirting is socially preferred compared to asking someone out point-blank. By giving yourself plausible deniability, you’re taking yourself out of the class of desperate optimizer-y people who do the default action.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;unsolved-problems&quot;&gt;Unsolved problems&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;How does intrinsic motivation play into this? Why do people so often observe that increasing your own self confidence makes you more attractive (in all ways) to others?&lt;/li&gt; &lt;li&gt;How does availability play into this? How do you know that you’re in a rock climbing group with people actually open to new connections vs one where it’s only for climbing?&lt;/li&gt; &lt;li&gt;How do you pick places that actually have slices of humans you like? Essentially, how do you find your people?&lt;/li&gt; &lt;li&gt;Is it possible to optimize (select well on a large scale) while not destroying quality? Is there perhaps an automated way of vetting the masses, or is this really a thing that will forever remain &lt;em&gt;only&lt;/em&gt; in the domain of ad-hoc, unoptimized human interaction?&lt;/li&gt; &lt;/ul&gt; &lt;!-- Footnotes themselves at the bottom. --&gt; &lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;&lt;a href=&quot;https://sashachapin.substack.com/p/some-non-mainstream-tips-for-meeting&quot;&gt;See Sasha Chapin&lt;/a&gt;. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;A friend reports a similar example: You can’t find the mycology experts on Meetup.com. You have to go through weird backchannels and random introductions via someone you met at a party that one time. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:3&quot;&gt; &lt;p&gt;Hmm, what’s the index fund of social interaction? Going to church? &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Sat, 15 Oct 2022 00:00:00 +0000</pubDate> <link>https://kliu.io/post/searching-for-community/</link> <guid isPermaLink="true">https://kliu.io/post/searching-for-community/</guid> </item> <item> <title>Deep okayness as a subjective choice of beliefs</title> <description>&lt;!-- Output copied to clipboard! --&gt; &lt;!----- You have some errors, warnings, or alerts. If you are using reckless mode, turn it off to see inline alerts. * ERRORs: 0 * WARNINGs: 0 * ALERTS: 1 Conversion time: 0.513 seconds. Using this Markdown file: 1. Paste this output into your source file. 2. See the notes and action items below regarding this conversion run. 3. Check the rendered output (headings, lists, code blocks, tables) for proper formatting and use a linkchecker before you publish this page. Conversion notes: * Docs to Markdown version 1.0β33 * Sun Sep 04 2022 17:40:28 GMT-0700 (PDT) * Source doc: Deep okayness is a subjective choice of beliefs * This document has images: check for &gt;&gt;&gt;&gt;&gt; gd2md-html alert: inline image link in generated source and store images to your server. NOTE: Images in exported zip file from Google Docs may not appear in the same order as they do in your doc. Please check the images! -----&gt; &lt;p&gt;What separates people who are content from those who aren’t?&lt;/p&gt; &lt;p&gt;Tl; dr: glass half full.&lt;/p&gt; &lt;p&gt;Ok, it’s a myriad of &lt;a href=&quot;https://www.youtube.com/watch?v=76JRJ90s548&quot;&gt;nonlinear causal&lt;/a&gt; factors and luck, but I propose one factor that might be particularly important: They have a different set of unfalsifiable beliefs about the world that make them &lt;a href=&quot;https://sashachapin.substack.com/p/how-i-attained-persistent-self-love&quot;&gt;deeply okay&lt;/a&gt; with whatever happens to them. This makes them more likely to experiment, try new things, or meet new people, and hence they get more tries to find what they enjoy than most people.&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; Plus, even when they fail, they aren’t too disheartened because they’re willing to try again.&lt;/p&gt; &lt;p&gt;Beliefs that are actually real and lead to falsifiable predictions:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;I can drive to Berkeley in 40 minutes (answer: no)&lt;/li&gt; &lt;li&gt;I know or don’t know X skill &lt;em&gt;right now&lt;/em&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Beliefs that are maybe falsifiable, but in practice depend mostly on yourself and how hard you try,&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; or on deep motives of others that are effectively impossible to falsify:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Most people I’m interacting with at this dinner are just here for soulless networking and not to actually make friends.&lt;/li&gt; &lt;li&gt;If I join this event, people will feel slightly uncomfortable because I’ve never been here before.&lt;/li&gt; &lt;li&gt;When I try something new, I’m more likely to fail than [someone else who seems naturally talented at learning something new].&lt;/li&gt; &lt;li&gt;I probably can’t learn X skill in 3 months.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Now, consider a different set of beliefs:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;People here are super memey and, despite being naturally good at networking, are also very friendly.&lt;/li&gt; &lt;li&gt;The people at this event are excited when new people join because they like to see newbies learn their activity.&lt;/li&gt; &lt;li&gt;I’ve successfully learned new skills before, so this time is no different.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;img src=&quot;https://kliu.io/assets/img/deep-okayness/that-is-why-you-fail-quote-1.jpeg&quot; alt=&quot;Luke: &amp;quot;I don&apos;t believe it...&amp;quot; Yoda: &amp;quot;That is why you fail.&amp;quot;&quot; /&gt;&lt;/p&gt; &lt;p&gt;Both of these sets of beliefs can mostly explain anything. E.g. if someone is rude to you at the event, it’s (a) a sign of greater enmity from others; or (b) that guy was just a jerk and everyone else is nice. Also, in many of these beliefs &lt;em&gt;your actions affect whether or not they’ll be true&lt;/em&gt;. If you believe you can learn a skill in 3 months, you’re much more likely to do so than someone who doesn’t, because you’ll try harder. It’s &lt;a href=&quot;https://csl4d.wordpress.com/2018/06/09/linear-and-non-linear-causality/&quot;&gt;reverse causality&lt;/a&gt; at work. Thus, it’s hard to say either set of beliefs is &lt;em&gt;better&lt;/em&gt;, because they’ll probably be mostly right if you believe each of them.&lt;/p&gt; &lt;p&gt;The most obvious example is “Today was a bad day.” It only is if you &lt;em&gt;believe it is&lt;/em&gt;, because you might instead believe that there’s &lt;a href=&quot;https://www.lesswrong.com/posts/5wMcKNAwB6X4mp9og/that-alien-message&quot;&gt;something to be learned from any experience&lt;/a&gt;, “good” or “bad.”&lt;/p&gt; &lt;p&gt;Since neither set of beliefs has a better track record, maybe it’s better to just believe the world is nice.&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;h2 id=&quot;a-scattering-of-other-good-thoughts&quot;&gt;A scattering of other good thoughts&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://mindingourway.com/half-assing-it-with-everything-youve-got/&quot;&gt;Half-assing it with everything you’ve got&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://sashachapin.substack.com/p/how-i-attained-persistent-self-love&quot;&gt;How I Attained Persistent Self-Love, or, I Demand Deep Okayness For Everyone&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;!-- Footnotes themselves at the bottom. --&gt; &lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;&lt;a href=&quot;https://review.firstround.com/classpass-founder-on-how-marketplace-startups-can-achieve-product-market-fit&quot;&gt;More darts to throw at the board&lt;/a&gt; of person-environment fit, one might say. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;Aka, &lt;a href=&quot;https://www.lesswrong.com/tag/embedded-agency&quot;&gt;embedded agency&lt;/a&gt; (Yoda Do or Do Not). &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:3&quot;&gt; &lt;p&gt;Caveat: &lt;del&gt;I have no idea how to do this&lt;/del&gt; Figuring out how to do this is outside the scope of this post. As always, if the problem seems simple, &lt;a href=&quot;https://guzey.com/advice/&quot;&gt;it’s probably very hard to fix&lt;/a&gt;. &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Sun, 04 Sep 2022 00:00:00 +0000</pubDate> <link>https://kliu.io/post/deep-okayness/</link> <guid isPermaLink="true">https://kliu.io/post/deep-okayness/</guid> </item> <item> <title>Cooperating in everyday stag hunts</title> <description>&lt;p&gt;There’s a certain type of multi-agent interaction in society where you’re presented with two choices: a default option that’s easy and beneficial for you, and a hard option that results in pain for you but is more “moral”/”ethical”/”prosocial.” If everyone picks the hard option, then society as a whole can move out of a bad equilibrium and improve things globally. For example:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Using Linux / Android vs. Apple in California&lt;/li&gt; &lt;li&gt;Being vegetarian when all your friends eat meat&lt;/li&gt; &lt;li&gt;Using a &lt;a href=&quot;https://youtube.com/NotJustBikes&quot;&gt;bike or public transit instead of driving&lt;/a&gt; when you don’t live in a major US city&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;It’s a &lt;a href=&quot;https://www.google.com/search?q=stag+hunt+wikipedia&amp;amp;oq=stag+hunt+wikipedia&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot;&gt;stag hunt&lt;/a&gt;, in other words (hunt the stag = the hard option; hunt the rabbit = the easy). One with millions to billions of participants, depending on size.&lt;/p&gt; &lt;p&gt;Should you take the hard path?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Points against&lt;/strong&gt;: So many people take the default. Your choice to bike instead of drive will only increase your travel time. It’s best to concentrate your efforts in places that are amenable to fixing &lt;a href=&quot;https://equilibriabook.com/&quot;&gt;inadequate equilibria&lt;/a&gt;. Have some &lt;a href=&quot;https://forum.effectivealtruism.org/posts/WKPd79PESRGZHQ5GY/in-defence-of-epistemic-modesty&quot;&gt;epistemic modesty&lt;/a&gt; and defer to the crowd. Go with the flow.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Points for:&lt;/strong&gt; If you just accept things as they are, you’re an undifferentiated human being. It feels like to be interesting, there’s &lt;em&gt;something&lt;/em&gt; that you need to take a stand on.&lt;/p&gt; &lt;p&gt;Also, individual action as a notion is a bad abstraction. Actual change is systemic, not individual. It’s orders of magnitude more effective to donate $1,000 to a climate charity than to have a low-carbon lifestyle. And even beyond donating, the biggest changes occur through groups motivated to create change, not lone wolves. Think &lt;a href=&quot;https://reboothq.substack.com/&quot;&gt;Reboot&lt;/a&gt;-style community and techno-optimism.&lt;/p&gt; &lt;p&gt;So yes. If all your other friends have cars, buy your car. Don’t sacrifice when it’s really inconvenient to do so, because that’s just masochistic. But if you can find a group of likeminded people for a cause you care about? Don’t back down.&lt;/p&gt; </description> <pubDate>Sat, 09 Jul 2022 00:00:00 +0000</pubDate> <link>https://kliu.io/post/everyday-stag-hunts/</link> <guid isPermaLink="true">https://kliu.io/post/everyday-stag-hunts/</guid> </item> <item> <title>John Gall, Systemantics</title> <description>&lt;p&gt;There’s a certain category of book that talks not about factual events or information, but about &lt;em&gt;vibes&lt;/em&gt; – ways in which to think about the world, archetypes that slightly tweak your inner neural predictor rather than create a hard decision boundary. This is definitely one of them. Also, it’s super meme, which makes it even better.&lt;/p&gt; &lt;p&gt;The vibes that this book espouses:&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt;Complex systems are all around us. They’re watching you. Right now.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Nonlinear causality&lt;/strong&gt;. Simple or “obvious” interventions are likely to backfire in the worst way possible. People usually think in linear cause-and-effect, but in fact the real world often operates counterintuitively and according to &lt;a href=&quot;https://www.youtube.com/watch?v=76JRJ90s548&quot;&gt;nonlinear causality&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Intrasystem goals&lt;/strong&gt;. Systems will take on their own goals, and they will conspire against you. A performance management system is likely to backfire because of unavoidable distortion of incentives (instead of working, I’m writing my performance review or OKRs).&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Big systems are different&lt;/strong&gt;. Systems qualitatively change in behavior when they expand by an order of magnitude. See &lt;a href=&quot;https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/ch01.html&quot;&gt;scaling large distributed systems&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/abs/2205.10343&quot;&gt;ML grokking&lt;/a&gt;, &lt;a href=&quot;https://www.accessmagazine.org/spring-2017/the-access-almanac-traffic-congestion-is-counter-intuitive-and-fixable/&quot;&gt;highways&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Winning&lt;/strong&gt;. In very obscure edge cases, you can gain an upper hand on the system and win. No easy trick is given for this, likely because the solution requires a bundle of good heuristics rather than an &lt;a href=&quot;https://en.wikipedia.org/wiki/Expert_system&quot;&gt;expert rule&lt;/a&gt;. However, it’s often easier to win when you arrange things such that &lt;a href=&quot;https://www.neelnanda.io/blog/mini-blog-post-19-on-systems-living-a-life-of-zero-willpower&quot;&gt;victory becomes the default path rather than requiring effort&lt;/a&gt;, like a &lt;a href=&quot;https://en.wikipedia.org/wiki/Gravity_assist&quot;&gt;gravity assist versus a direct transfer maneuver&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;I’d like to read more books that espouse vibes rather than facts, especially books that support vibes by giving a diversity of examples like this one.&lt;/p&gt; &lt;h2 id=&quot;good-quotes&quot;&gt;good quotes&lt;/h2&gt; &lt;blockquote&gt; &lt;p&gt;COMPLICATED SYSTEMS SELDOM EXCEED FIVE PERCENT EFFICIENCY.&lt;/p&gt; &lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Harvard Law of Animal Behavior: Under precisely controlled experimental conditions, a test animal will behave as it damn well pleases.&lt;/p&gt; &lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Am I, unbeknownst to myself, a Systems-person? The answer is always, Yes. The relevant question is simply, Which System?&lt;/p&gt; &lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;A COMPLEX SYSTEM DESIGNED FROM SCRATCH NEVER WORKS AND CANNOT BE MADE TO WORK. YOU HAVE TO START OVER, BEGINNING WITH A WORKING SIMPLE SYSTEM.&lt;/p&gt; &lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;In brief, there can be NO SYSTEM WITHOUT ITS OBSERVER and NO OBSERVATION WITHOUT ITS EFFECTS.&lt;/p&gt; &lt;/blockquote&gt; &lt;h2 id=&quot;related-books-and-media&quot;&gt;related books and media&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;The Mythical Man-Month&lt;/em&gt; (complex systems from the lens of software project management)&lt;/li&gt; &lt;li&gt;&lt;em&gt;Air Crash Investigation&lt;/em&gt; (complex causes of clearly obvious failures)&lt;/li&gt; &lt;li&gt;Complexity theory in general, probably&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Thu, 09 Jun 2022 00:00:00 +0000</pubDate> <link>https://kliu.io/post/systemantics/</link> <guid isPermaLink="true">https://kliu.io/post/systemantics/</guid> </item> <item> <title>Ken Liu, The Hidden Girl and Other Stories</title> <description>&lt;ul&gt; &lt;li&gt;&lt;strong&gt;Overall thoughts&lt;/strong&gt;: Beautiful meta-narrative and an interesting depiction of the AI “AU” (instead of superintelligent ML, we use brain recording + usage for automation). I loved how even in technological extremes and singularities, he still depicts a humanized story.&lt;/li&gt; &lt;li&gt;Special likes &lt;ul&gt; &lt;li&gt;The Reborn &lt;ul&gt; &lt;li&gt;Their moral quandry feels very similar to humanity now‒we’re trapped by our past and our systems (are we evil for enslaving people? eating animals now even though it may be immoral? destroying the climate? allowing dictatorships to exist even though they are stable?)&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Thoughts and Prayers &lt;ul&gt; &lt;li&gt;Reminds me of &lt;ul&gt; &lt;li&gt;“Is This You?” - lifelogging, privacy and scandal by Tom Scott at Electromagnetic Field 2012 www.youtube.com/watch?v=WcPhMqLPuvQ&lt;/li&gt; &lt;li&gt;&amp;lt;A short story I can’t recall about someone whose YouTube girlfriend dies&amp;gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Byzantine Empathy &lt;ul&gt; &lt;li&gt;Blockchain ideology was on point and encapsulates a bit of why the systemic change supporters advocate for today seems hard to achieve. A lot of ideology, less in concrete plans and an understanding of how to improve its flaws.&lt;/li&gt; &lt;li&gt;Ironically though (unlike proof-of-work), there’s no convergence on who made the right moral choice. Life is too complex of a system to either act fully emotionally (Jianwen) or attempt to deduce everything from linearly causal reasoning (rationality; Sophia). Maybe the correct answer is something in the middle. Regardless, people still act, and consequences play out.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Real Artists &lt;ul&gt; &lt;li&gt;Love the gradient descent for movie generation + human feedback as analogy for how AI is going to affect art in the future.&lt;/li&gt; &lt;li&gt;Is this not what we’ve done all along, though? A microcosm of cinematography in 50 hours. Just in a less explicit sense. Seems like many beautiful things in the world don’t stand up to optimization.&lt;/li&gt; &lt;li&gt;The sad thing is that even this is probably too humanist of a depiction. In the future, movie-generating AIs will probably use human reward models learned in silicon. Somewhat sad that the most likely futures don’t make for good stories (and what does that say about how we’ll feel once we live them?).&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Staying Behind &lt;ul&gt; &lt;li&gt;More thoughts, but I appreciate on a deep level the data center being built in Svalbard.&lt;/li&gt; &lt;li&gt;Horrifying that robust economic processes might eventually make life unlivable? If the simulation isn’t real, that everyone really dies when they get uploaded, it’s scary how on the margin the risk can be worth it and snowball until all of humanity is irreversibly locked in.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Highlights first synced by Readwise May 7th, 2022 &lt;ul&gt; &lt;li&gt;“The past,” Ms. Coron continued, “thus accumulating bit by bit through recursion, becomes the future.” (Location 102)&lt;/li&gt; &lt;li&gt;Gradually, the stock characters came to life, the stock dialogue gained wit and pathos, and a work of art emerged from random noise. (Location 2867)&lt;/li&gt; &lt;li&gt;“Will you be a pearl buried in the mud of the endless East Sea, or will you shine so brightly as to awaken those who only doze through life and light up a mundane world?” (Location 5331)&lt;/li&gt; &lt;li&gt;“Steal his life, and your apprenticeship will be completed,” Teacher said. “This is your last test.” “What has he done that he deserves to die?” I asked. (Location 5403)&lt;/li&gt; &lt;li&gt;“You may think width, depth, and height are the only dimensions of the world, Hidden Girl, but you’d be wrong. You have lived your life as an ant on a sheet of paper, and the truth is far more wondrous.” (Location 5536)&lt;/li&gt; &lt;li&gt;don’t tell her that I know she doesn’t mean to break her promises to me, but it still hurts when she does. I don’t tell them that I wish I could cut the line that ties me to their wings—the tugging on my heart from their competing winds is too much. (Location 5695)&lt;/li&gt; &lt;li&gt;She cares more about the idea of future generations than her actual children and grandchildren. I know I’m being unfair, but the truth is often unfair. (Location 5754)&lt;/li&gt; &lt;li&gt;“I’m working on a technical solution,” I say. “There is a way for us to transcend this morass, to achieve a just existence.” I am, after all, my mother’s daughter. (Location 5784)&lt;/li&gt; &lt;li&gt;I had once thought the Singularity would solve all our problems. Turns out it’s just a simple hack for a complicated problem. We do not share the same histories; we do not all want the same things. I am not so different from my mother after all. (Location 5830)&lt;/li&gt; &lt;li&gt;The lower-energy photons leap outward into space, somewhat drained after powering a civilization. But before they can escape into the endless abyss of space, they strike another set of plates designed to absorb energy from radiation at this dimmer frequency. And once again, the process for thought-creation repeats itself. (Location 5866)&lt;/li&gt; &lt;li&gt;Come to the galactic center. It’s reunion time. Carefully, I instruct the intelligences (Location 5902)&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Sun, 08 May 2022 00:00:00 +0000</pubDate> <link>https://kliu.io/post/hidden-girl/</link> <guid isPermaLink="true">https://kliu.io/post/hidden-girl/</guid> </item> <item> <title>Unintuitive conclusions from urban planning</title> <description>&lt;p&gt;Cars are weird. Living in a Massachusetts suburb, I didn’t realize just how car-dependent my area was&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; until spending time in the SF Bay Area, which (while certainly not the pinnacle of transit) offers far more accessible bike and transit options.&lt;/p&gt; &lt;p&gt;This realization has made me quite sad about the current state of affairs, and because of this, I’ve recently fallen into a rabbithole of reading about transit. Here are some rather unintuitive facts about traffic, transit, and urban planning:&lt;/p&gt; &lt;h2 id=&quot;highways-exhibit-highly-nonlinear-congestion&quot;&gt;Highways exhibit highly nonlinear congestion&lt;/h2&gt; &lt;p&gt;&lt;img src=&quot;https://kliu.io/assets/img/unintuitive-results-from-urban-planning/Speed_Volume_WSDOT_2018.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; &lt;p&gt;Figure provided by WSDOT 2018, from &lt;a href=&quot;https://www.strongtowns.org/journal/2020/4/29/what-covid-19-teaches-us-about-how-to-fix-freeways&quot;&gt;Strong Towns&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Let’s suppose you’re trying to maximize the vehicles-per-hour on a highway. As it turns out, adding more cars only improves this until a threshold, at which point it causes capacity to &lt;em&gt;plummet&lt;/em&gt;. This phenomenon is shown in the graph above: as you add more cars, you descend the curve. At the middle, you have the maximum vehicles-per-hour. But as you keep going, the average speed of each car drops due to congestion, so even though &lt;em&gt;more cars are on the highway&lt;/em&gt; at any one time, the total number of cars passing through declines precipitously.&lt;/p&gt; &lt;p&gt;This effect is so large that in Portland’s I-5, the decline in driving from covid slightly reduced the entering traffic volume, which &lt;a href=&quot;https://www.strongtowns.org/journal/2020/4/29/what-covid-19-teaches-us-about-how-to-fix-freeways&quot;&gt;actually allowed &lt;em&gt;more cars overall&lt;/em&gt; to use the highway&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This is part of why some states/countries have &lt;a href=&quot;https://mtc.ca.gov/operations/programs-projects/freeways/adaptive-ramp-metering&quot;&gt;ramp metering&lt;/a&gt; and why congestion pricing for roads is a really good idea.&lt;/p&gt; &lt;h2 id=&quot;expanding-roads-doesnt-improve-traffic&quot;&gt;Expanding roads doesn’t improve traffic&lt;/h2&gt; &lt;p&gt;This one is pretty well-known but bears repeating. Thanks to &lt;a href=&quot;https://en.wikipedia.org/wiki/Induced_demand&quot;&gt;induced demand&lt;/a&gt;, adding more highway capacity causes more people to use the highway, because it’s now the most convenient option. Hence, the highway becomes more congested until it returns to the steady-state equilibrium of the maximum sadness people are okay with. This is usually when people start getting annoyed at congestion and push for the highway to be expanded.&lt;/p&gt; &lt;p&gt;There is one counterargument to this: even if congestion didn’t get any better, surely we at least were able to transport more people to places they wanted to go? I think the response to this is that while this is true, expanding roads also strengthens the norm that it’s ok to travel 10, or 20, or 30 miles for a brief errand. This &lt;a href=&quot;https://www.strongtowns.org/journal/2021/8/24/does-induced-demand-apply-to-bike-lanes-and-other-questions&quot;&gt;alters the pattern of development&lt;/a&gt; such that people start building destinations further away. If we assume the quality of each destination is the same regardless of theoretical distance, this means we’re having people drive further, and experience equivalent levels of traffic, for the same quality of destination.&lt;/p&gt; &lt;p&gt;That seems bad.&lt;/p&gt; &lt;h2 id=&quot;the-speed-of-public-transit-may-determine-the-speed-of-car-transportation&quot;&gt;The speed of public transit (may*) determine the speed of car transportation&lt;/h2&gt; &lt;p&gt;This is the &lt;a href=&quot;https://en.wikipedia.org/wiki/Downs%E2%80%93Thomson_paradox&quot;&gt;Downs-Thomson Paradox&lt;/a&gt;. Essentially, if cars were faster than public transit, then people would shift to using cars. Thus (assuming perfect substitutability), people would flock to cars until it becomes slower than transit. Public transit hence acts as a ceiling on car travel times.&lt;/p&gt; &lt;p&gt;This implies, similarly to induced demand, that expanding &lt;em&gt;car&lt;/em&gt; infrastructure won’t improve car travel times. In fact, you might want to instead expand &lt;em&gt;transit&lt;/em&gt; infrastructure – &lt;a href=&quot;https://theweek.com/articles/981979/car-supremacy-americas-traffic-paradox&quot;&gt;if you improve non-car transportation options, people will switch from cars to transit, making cars &lt;em&gt;and&lt;/em&gt; transit faster&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;However, is this paradox actually true in practice? It seems somewhat limited. Empirically, I can observe that it takes 22 minutes to drive from Acton to Lowell in Massachusetts, while transit takes &lt;strong&gt;1 hour, 49 min&lt;/strong&gt;. Granted, this is because of design issues on the commuter rail (routes only go into Boston, not radially to other towns), but take another example: Berkeley to Palo Alto. This takes 52 minutes by car and 1 hour, 34 min by train. (Ok, with congestion it takes 1-2 hours by car, which is maybe where the paradox comes in.)&lt;/p&gt; &lt;p&gt;It does seem to be a general trend, though, that &lt;a href=&quot;https://www.visualcapitalist.com/average-commute-u-s-states-cities/&quot;&gt;cars are usually faster than transit in America&lt;/a&gt;. Probably, this is because our transit is so horrendous that the paradox doesn’t even apply because nobody uses transit anyway.&lt;/p&gt; &lt;h2 id=&quot;the-upshot&quot;&gt;The upshot?&lt;/h2&gt; &lt;p&gt;I don’t have any particularly strong conclusions for you, beyond that urban planning is &lt;em&gt;complicated&lt;/em&gt; and very nonintuitive. However, it does seem like car-centric planning is usually bad, for transit &lt;em&gt;and&lt;/em&gt; cars.&lt;/p&gt; &lt;p&gt;Also, I’m not an expert, so if you see anything horrendously wrong please do call it out. Good places to learn more are &lt;a href=&quot;https://strongtowns.org&quot;&gt;Strong Towns&lt;/a&gt; and the YouTube channel &lt;a href=&quot;https://www.youtube.com/c/NotJustBikes/videos&quot;&gt;Not Just Bikes&lt;/a&gt;.&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;As in, the only road in and out from my house is a single-lane, 40 mph road with no bike route and no sidewalk. The train station (which only has trains every hour) is 5 miles away. Good luck not owning a car here. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Mon, 20 Dec 2021 03:32:44 +0000</pubDate> <link>https://kliu.io/post/unintuitive-results-from-urban-planning/</link> <guid isPermaLink="true">https://kliu.io/post/unintuitive-results-from-urban-planning/</guid> </item> <item> <title>objects</title> <description>&lt;p&gt;General rules I follow:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;It’s okay to pay for something if it gives you more value than however-much-the-subscription costs.&lt;/li&gt; &lt;li&gt;Minimize &lt;em&gt;unnecessary&lt;/em&gt; physical objects, but don’t be afraid of having good ones around.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;other-peoples-objects&quot;&gt;Other People’s Objects&lt;/h2&gt; &lt;p&gt;Other people have good objects, too. Many of them are probably better than mine. An incomplete list:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://markxu.com/things&quot;&gt;Mark Xu’s objects&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://guzey.com/tools-gear/&quot;&gt;Alexey Guzey’s objects&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.nytimes.com/wirecutter/&quot;&gt;New York Times: Wirecutter&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;(I wonder if there should be a central list for this, or something.)&lt;/p&gt; &lt;h2 id=&quot;the-physical&quot;&gt;The Physical&lt;/h2&gt; &lt;p&gt;Physical objects are very annoying. They have to be moved, stored, gotten from another room, etc. But &lt;em&gt;some&lt;/em&gt; of them are worth it.&lt;/p&gt; &lt;h3 id=&quot;technology&quot;&gt;Technology&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://www.apple.com/macbook-pro-14-and-16/&quot;&gt;MacBook Pro 16”, 2021&lt;/a&gt;. It’s good.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.apple.com/airpods-pro/&quot;&gt;AirPods Pro&lt;/a&gt; for wireless earbuds that don’t hurt my ears over time&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.apple.com/ipad-10.2/&quot;&gt;iPad&lt;/a&gt; + &lt;a href=&quot;https://www.apple.com/shop/product/MK0C2AM/A/apple-pencil-1st-generation&quot;&gt;Pencil&lt;/a&gt; + &lt;a href=&quot;https://smile.amazon.com/gp/product/B07YYY1DDZ/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;a paper-like screen protector&lt;/a&gt; for Anki, scratch writing, and RemNote review (currently)&lt;/li&gt; &lt;li&gt;Kindle for reading (coupled with Calibre + USB transfer for ebooks) &lt;ul&gt; &lt;li&gt;I have the Kindle KT7, but there are better models these days.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://smile.amazon.com/Sceptre-C355W-3440UN-Super-Curved-Ultrawide/dp/B0812DKDD9?sa-no-redirect=1&quot;&gt;Spectre C35&lt;/a&gt; for an external monitor &lt;ul&gt; &lt;li&gt;There are better monitors out there, but this one was a nice balance of cost and performance for me.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://smile.amazon.com/gp/product/B07TT6NGBC/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&amp;amp;th=1&quot;&gt;Magnetic USB-C adapter&lt;/a&gt; to make plugging in and out ridiculously convenient&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://ergodox-ez.com/&quot;&gt;Ergodox EZ&lt;/a&gt; for an incredibly quality keyboard that doesn’t squish my hands &lt;ul&gt; &lt;li&gt;Note: nowadays the &lt;a href=&quot;https://www.zsa.io/moonlander/&quot;&gt;Moonlander&lt;/a&gt; might be a better choice.&lt;/li&gt; &lt;li&gt;With &lt;a href=&quot;https://novelkeys.xyz/products/novelkeys-x-kailh-box-thick-clicks&quot;&gt;Kailh Box Jade&lt;/a&gt; switches for extra clickability&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://smile.amazon.com/Logitech-Lag-Free-Wireless-Gaming-Mouse/dp/B00E4MQODC&quot;&gt;Logitech G602&lt;/a&gt; for a fairly speedy wireless mouse&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://smile.amazon.com/FlexiSpot-Motorized-Standing-Converter-Adjustable/dp/B08CC4DDGK/ref=sr_1_4?dchild=1&amp;amp;keywords=flexispot+motorized&amp;amp;qid=1620153688&amp;amp;s=office-products&amp;amp;sr=1-4&quot;&gt;Flexispot Motorized Standing Desk Converter&lt;/a&gt; for an effective standing desk that can fit in a dorm&lt;/li&gt; &lt;li&gt;A good USB-C hub for a desk setup where you can plug in and out with just one cable&lt;/li&gt; &lt;li&gt;A USB charging station with enough ports to top off every single device I own at a time&lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;environmental-augments&quot;&gt;Environmental Augments&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/DragonLight-Commercial-Fanless-1000Watt-Replacement/dp/B08DY1GCC6/ref=pd_lpo_1?pd_rd_i=B08DY1GCC6&amp;amp;psc=1&quot;&gt;DragonLight 240W Fanless LED Bulb&lt;/a&gt; to brighten up the room during the day, a la &lt;a href=&quot;https://www.lesswrong.com/posts/hC2NFsuf5anuGadFm/how-to-build-a-lumenator&quot;&gt;How to Build a Lumenator&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B07VVK39F7/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;Levoit Core 300 Air Purifier&lt;/a&gt; for dealing with wildfires in California&lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;transport&quot;&gt;Transport&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Xiaomi Mi Pro 2 Electric Scooter&lt;/strong&gt; for a lightweight, portable, zero-effort, and fun way to make short trips (&amp;lt;10 mi) without the overhead of owning a car &lt;ul&gt; &lt;li&gt;You may ask: why not a bike? Well, I’m lazy, and also bikes tend to get stolen fairly often on campus where I am (scooters avoid this since you can store them in your room when not in use).&lt;/li&gt; &lt;li&gt;You may also ask: why not a used car? Well, cars require a lot of maintenance, are expensive to buy and park, pollute the environment, and ultimately I don’t make enough long-distance trips that it’s worthwhile (I can go with someone else, or take the Caltrain to most anywhere). Plus, I don’t trust my driving skills &lt;em&gt;that&lt;/em&gt; much.&lt;/li&gt; &lt;li&gt;For more on why electric scooters are cool, see &lt;a href=&quot;https://blog.codinghorror.com/the-rise-of-the-electric-scooter/&quot;&gt;The Rise of the Electric Scooter&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Note: this scooter might not be the optimal one for you (it was for me due to needing light weight + high range + cheap). To compare scooters, check out &lt;a href=&quot;https://electric-scooter.guide/comparisons/compare-electric-scooters/&quot;&gt;ESG’s Electric Scooter Database&lt;/a&gt;. Another very good option is the &lt;a href=&quot;https://www.amazon.com/dp/B08BL4VPDR/ref=twister_B08C143ZDW?_encoding=UTF8&amp;amp;psc=1&quot;&gt;Segway Ninebot MAX G30LP&lt;/a&gt;. A cheaper option is the &lt;a href=&quot;https://www.amazon.com/Xiaomi-Electric-Long-range-Fold-n-Carry-Ultra-Lightweight/dp/B076KKX4BC&quot;&gt;Xiaomi M365&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;This scooter also isn’t officially sold in the US, so you’ll have to buy from a third-party seller and won’t be able to use the warranty (although in practice, most scooter issues can be solved by hand and don’t require warranty service).&lt;/li&gt; &lt;li&gt;Related: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://www.kryptonitelock.com/en/products/product-information/current-key/000990.html&quot;&gt;Kryptonite Mini-7 with Flex Lock&lt;/a&gt; (Wirecutter’s best bike lock, although &lt;a href=&quot;https://www.youtube.com/watch?v=jZtNEC1uGg4&quot;&gt;bike locks are sort of useless&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://cycl.bike/collections/best-sellers/products/winglights-360-fixed&quot;&gt;WingLights&lt;/a&gt; for turn signals&lt;/li&gt; &lt;li&gt;A cheapo $10 phone mount on Amazon, for Google Maps navigation&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.rei.com/product/169939/bontrager-solstice-bike-helmet&quot;&gt;Bontrager Solstice Bike Helmet&lt;/a&gt; (Wirecutter’s best bike helmet)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Tile-RE-25002-Sticker-2-Pack/dp/B07W63295C/ref=asc_df_B07W63295C/?tag=hyprod-20&amp;amp;linkCode=df0&amp;amp;hvadid=385248065177&amp;amp;hvpos=&amp;amp;hvnetw=g&amp;amp;hvrand=4584078952386084402&amp;amp;hvpone=&amp;amp;hvptwo=&amp;amp;hvqmt=&amp;amp;hvdev=c&amp;amp;hvdvcmdl=&amp;amp;hvlocint=&amp;amp;hvlocphy=9031970&amp;amp;hvtargid=pla-828315241351&amp;amp;psc=1&amp;amp;tag=&amp;amp;ref=&amp;amp;adgrpid=76690811497&amp;amp;hvpone=&amp;amp;hvptwo=&amp;amp;hvadid=385248065177&amp;amp;hvpos=&amp;amp;hvnetw=g&amp;amp;hvrand=4584078952386084402&amp;amp;hvqmt=&amp;amp;hvdev=c&amp;amp;hvdvcmdl=&amp;amp;hvlocint=&amp;amp;hvlocphy=9031970&amp;amp;hvtargid=pla-828315241351&quot;&gt;Tile Sticker&lt;/a&gt; as a tracker in case it gets lost (a better option for iPhone users is likely &lt;a href=&quot;https://www.apple.com/airtag/&quot;&gt;AirTags&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://pro2.cfw.sh&quot;&gt;Custom firmware&lt;/a&gt; to enable direct power control rather than the jumpy default speed-control throttle &lt;ul&gt; &lt;li&gt;Essentially, this makes the throttle control power like a car, rather than adjusting a target speed.&lt;/li&gt; &lt;li&gt;This also removes the speed limit, so be warned.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Silicone caulk + tape to seal all water ingress points for DIY waterproofing&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Obligatory safety information &lt;ul&gt; &lt;li&gt;&lt;strong&gt;ALWAYS&lt;/strong&gt; wear a helmet when riding! Scooters are far closer to a car than a bike due to the indirect control (via a throttle rather than your feet), and they are far more unstable than bikes as well. If you hit a curb at 15 MPH without a helmet, you will experience instant death (or at least a lot of pain).&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Consult your local regulations&lt;/strong&gt; before purchasing. Here in California, you need a &lt;strong&gt;driver’s license&lt;/strong&gt; to ride one, and you can’t ride on the sidewalk or on roads with a speed limit over 25 MPH (unless there’s a bike lane). As of 2021, they are banned on all public roads in the UK. Try not to violate the law!&lt;/li&gt; &lt;li&gt;And make sure to register your scooter with the local bike registration service! In case it gets stolen.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;the-digital&quot;&gt;The Digital&lt;/h2&gt; &lt;p&gt;A note: many of these apps are Apple-only. This is kind of unfortunate. I suspect there are alternatives that are about as good on Windows, though.&lt;/p&gt; &lt;h3 id=&quot;productivity&quot;&gt;Productivity&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://krisp.ai&quot;&gt;Krisp&lt;/a&gt; for never having to worry about noise in video calls again&lt;/li&gt; &lt;li&gt;macOS-only: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://culturedcode.com/things/&quot;&gt;Things&lt;/a&gt; for a low-effort and pretty way to capture tasks &lt;ul&gt; &lt;li&gt;Shout out to Emacs Org Mode, though, which I used for several years prior.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; for a slightly faster Spotlight&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://karabiner-elements.pqrs.org/&quot;&gt;Karabiner-Elements&lt;/a&gt; for fixing macOS’s insane keyboard problems&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://sensible-side-buttons.archagon.net/&quot;&gt;SensibleSideButtons&lt;/a&gt; to fix the forward/back buttons on my mouse&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://rectangleapp.com/&quot;&gt;Rectangle&lt;/a&gt; for window hotkeys&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://dropoverapp.com/&quot;&gt;Dropover&lt;/a&gt; for making drag and drop ridiculously easy&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://multitimer.net/&quot;&gt;MultiTimer&lt;/a&gt; for naming timers and counters&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://apps.apple.com/us/app/breaks-for-eyes-rest-on-time/id1439431081?mt=12&amp;amp;ign-itsct=apps_box&amp;amp;ign-itscg=30200&quot;&gt;Intermission&lt;/a&gt; for resting eyes every 20 minutes to avoid eye strain&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://github.com/davidwernhart/AlDente&quot;&gt;AlDente&lt;/a&gt; to limit the maximum charge percentage to 60% when plugged in, preserving battery life in the long term&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;Linux-only: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://i3wm.org/&quot;&gt;i3&lt;/a&gt; for an efficient tiling window manager. (&lt;a href=&quot;https://swaywm.org/&quot;&gt;Sway&lt;/a&gt; is another option, but Wayland still has a lot of rough edges wrt screen sharing and cursor lag, so I wouldn’t recommend unless it’s required, e.g. for a mixed DPI setup.) &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://flameshot.org/&quot;&gt;Flameshot&lt;/a&gt; for a powerful snipping tool&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://jonls.dk/redshift/&quot;&gt;Redshift&lt;/a&gt; for making screens nicer in the dark&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://github.com/LandingEllipse/kitti3&quot;&gt;kitti3&lt;/a&gt; for a quake-style dropdown terminal in i3&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://github.com/jD91mZM2/xidlehook&quot;&gt;xidlehook&lt;/a&gt; for a better idle locker daemon&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://github.com/wwmm/pulseeffects&quot;&gt;PulseEffects&lt;/a&gt; + &lt;a href=&quot;https://pipewire.org/&quot;&gt;Pipewire&lt;/a&gt; for noise suppression that’s only &lt;em&gt;slightly&lt;/em&gt; buggier and lower quality than Krisp&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;notetaking&quot;&gt;Notetaking&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://apps.ankiweb.net/&quot;&gt;Anki&lt;/a&gt; for learning a language (currently Chinese!)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://remnote.io&quot;&gt;RemNote&lt;/a&gt; for a powerful knowledge base and amazing flashcard system &lt;ul&gt; &lt;li&gt;I tried &lt;a href=&quot;https://roamresearch.com&quot;&gt;Roam&lt;/a&gt;. It was okay, but it felt kind of cobbled-together (markdown? paste random js into your editor to add plugins? no spaced repetition by default?). RemNote is definitely buggier, but I feel that it wins out just because it seems like it got the data structure &lt;em&gt;right&lt;/em&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://instapaper.com&quot;&gt;Instapaper&lt;/a&gt; for queuing things to be read later without getting distracted in the moment&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://mathpix.com/&quot;&gt;Mathpix Snip&lt;/a&gt;&lt;/strong&gt; for amazing screenshot-to-LaTeX abilities&lt;/li&gt; &lt;li&gt;macOS-only: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://www.goodnotes.com/&quot;&gt;GoodNotes&lt;/a&gt; for handwritten notetaking&lt;/li&gt; &lt;li&gt;Apple Books for a book syncing system that works well enough &lt;ul&gt; &lt;li&gt;I also used to use Calibre, but I realized that I don’t really need all of its complexity.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;development&quot;&gt;Development&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code (Insiders)&lt;/a&gt; for basically all coding (including remote servers, Jupyter, etc.)&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.postman.com/&quot;&gt;Postman&lt;/a&gt; for API development that’s actually kind of nice&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt; for connecting to local servers from anywhere&lt;/li&gt; &lt;li&gt;macOS-only: &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://iterm2.com/&quot;&gt;iTerm 2&lt;/a&gt; for a speedy terminal&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://homebrew.sh&quot;&gt;Homebrew&lt;/a&gt; for installing things quickly&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;chat&quot;&gt;Chat&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://element.io&quot;&gt;Element&lt;/a&gt; for an open-source, end-to-end encrypted chat application with nice UX&lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;fun&quot;&gt;Fun&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://spotify.com&quot;&gt;Spotify&lt;/a&gt; for nice music&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;for-more-information&quot;&gt;For More Information&lt;/h2&gt; &lt;p&gt;If you have any questions about stuff here, or just want to talk, feel free to &lt;a href=&quot;https://kliu.io/about/&quot;&gt;reach out&lt;/a&gt; any time.&lt;/p&gt; </description> <pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate> <link>https://kliu.io/post/objects/</link> <guid isPermaLink="true">https://kliu.io/post/objects/</guid> </item> <item> <title>projects</title> <description>&lt;h2 id=&quot;launched&quot;&gt;Launched&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/kliu128/zero&quot;&gt;Zero&lt;/a&gt;&lt;/strong&gt; – my homelab, running a Matrix server, GitLab, Asterisk, and the blog you’re currently reading, along with a constellation of other services that I use daily. I run a collection of Ubuntu VMs using &lt;a href=&quot;https://proxmox.com/en/&quot;&gt;Proxmox&lt;/a&gt;, and run &lt;a href=&quot;https://microk8s.io&quot;&gt;microk8s&lt;/a&gt; to deploy my services to Kubernetes.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://kliu.io/apps/circuit-breaker/&quot;&gt;Circuit Breaker&lt;/a&gt;&lt;/strong&gt; – A no-nonsense Pomodoro app that enables Focus mode to keep you in the zone. Built using SwiftUI for macOS.&lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;research&quot;&gt;Research&lt;/h3&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://seri-win21-circuits.github.io/clip-enrichment-circuits/&quot;&gt;CLIP Enrichment Circuits&lt;/a&gt;&lt;/strong&gt; Sidney Hough, Kevin Liu, Jack Ryan, Chelsea Voss &lt;em&gt;Stanford Existential Risks Initiative&lt;/em&gt;&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Stanford MLab at SemEval-2021 Task 1: Tree-Based Modelling of Lexical Complexity using Word Embeddings&lt;/strong&gt; Erik Rozi, Niveditha Iyer, Gordon Chi, Enok Choe, Kathy J. Lee, Kevin Liu, Patrick Liu, Zander Lack, Jillian Tang, Ethan A. Chi &lt;em&gt;15th International Workshop on Semantic Evaluation (SemEval-2021)&lt;/em&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;completed--past-projects&quot;&gt;Completed &amp;amp; Past Projects&lt;/h2&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://onefortheworld.su.domains&quot;&gt;Stanford One for the World (website)&lt;/a&gt;&lt;/strong&gt; – a website for the Stanford &lt;a href=&quot;https://1fortheworld.org/&quot;&gt;One for the World chapter&lt;/a&gt;, encouraging students to pledge to donate at least 1% of their income to effective charities. For context, research demonstrates that effective charities can save a life with funding on the order of ~$500-1000. It’s crazy how neglected this is.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://delph.us&quot;&gt;Delphus&lt;/a&gt;&lt;/strong&gt; – a trustable research management system. Built using TypeScript, React, and Web3. Commits encrypted data to the Ethereum blockchain to improve scientific transparency and provide data provenance. I worked on this with a &lt;a href=&quot;https://delph.us/team&quot;&gt;group of other co-founders&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://gasleaks.info&quot;&gt;gasleaks.info&lt;/a&gt;&lt;/strong&gt; – Open access to National Grid, HEET’s, and Gas Safety Inc.’s’ data on gas leaks in Acton, MA. Natural gas leaks are a major problem in New England’s aging infrastructure, and can contribute to ~10% of Massachusetts greenhouse gas emissions. I worked on this project at Resource Force, a club at Acton-Boxborough Regional High School.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/kliu128/netflix-party-reborn&quot;&gt;Netflix Party Reborn&lt;/a&gt;&lt;/strong&gt; – a lightly-updated fork of Netflix Party to get the extension working properly on modern versions of Firefox.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/kliu128/giffs&quot;&gt;giffs&lt;/a&gt;&lt;/strong&gt; – a FUSE filesystem that appends a GIF header to every file (in case you ever needed it). Effectively prefixes every file with a given prefix.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/kliu128/cubic20&quot;&gt;cubic20&lt;/a&gt;&lt;/strong&gt; – an Android app to give reminders every 20 minutes to maintain eye health. Dreadfully out-of-date now, thanks to Android’s strict power saving behaviors, but may still be useful.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/acton-robotics-team/ftc_app&quot;&gt;AB Robotics control code&lt;/a&gt;&lt;/strong&gt; for control of an FTC robot.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;hackathon-projects&quot;&gt;Hackathon Projects&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Cortex – ETHWaterloo 2019 – Torus, ENS, and NuCypher Sponsor Awards&lt;/li&gt; &lt;li&gt;reBlock – MIT Bitcoin Expo 2018 – 2nd Place&lt;/li&gt; &lt;li&gt;reBlock – MAHacks III - 1st Place&lt;/li&gt; &lt;li&gt;Delphus - DoraHacks GHS - 1st Place&lt;/li&gt; &lt;li&gt;Akira – LexHack – 2nd Place&lt;/li&gt; &lt;li&gt;Litcoin – HackNEHS – 3rd Place&lt;/li&gt; &lt;li&gt;Duck Feed – HackExeter 2017 – Developer’s Award&lt;/li&gt; &lt;li&gt;Production Focus – HackExeter 2018 – Production Focus&lt;/li&gt; &lt;li&gt;Hack3 2020 – Organizer&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;ideas&quot;&gt;Ideas&lt;/h2&gt; &lt;p&gt;Feel free to pick one up, and &lt;a href=&quot;https://kliu.io/about&quot;&gt;let me know&lt;/a&gt; how it goes!&lt;/p&gt; &lt;ul&gt; &lt;li&gt;[2020-07-27] A GPT-2/3 persuasion bot. Make GPT-X predict both its output &lt;em&gt;and the user’s response&lt;/em&gt; several times. Then, use sentiment analysis or another form of ranking to evaluate how convinced the user is of a certain claim from each possible GPT statement. Pick the most convincing one, and repeat.&lt;/li&gt; &lt;li&gt;[2020-07-08] A web extension to block spiders or other phobia-inducing images from the internet, using a machine learning model. I started working on &lt;a href=&quot;https://github.com/kliu128/image-begone&quot;&gt;Image Begone&lt;/a&gt; briefly.&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Sun, 03 Oct 2021 00:00:00 +0000</pubDate> <link>https://kliu.io/projects/</link> <guid isPermaLink="true">https://kliu.io/projects/</guid> </item> <item> <title>Staying Sane in ML: Fixing Your Terrible Data Science Tools to Improve the Research Experience</title> <description>&lt;p&gt;While machine learning research has made incredible theoretical advances, the day-to-day tools most researchers use are… poorly optimized, to say the least. And much knowledge is locked up in people’s private .bashrc files or wikis. This post aims to shed light on some very useful tools for beginning researchers.&lt;/p&gt; &lt;p&gt;Expected audience: people, likely undergraduates, who are starting to do CS research that is vaguely in the “AI/ML” space. You have joined a Slack and gotten authentication credentials for this thing called a “cluster,” and are probably using Python with Jupyter Notebook.&lt;/p&gt; &lt;h1 id=&quot;goals&quot;&gt;Goals&lt;/h1&gt; &lt;p&gt;When optimizing a development setup, I usually go for convenience and iteration speed. Long build times are &lt;a href=&quot;https://engineering.linkedin.com/blog/2018/07/how-we-improved-build-time-by-400-percent&quot;&gt;known&lt;/a&gt; to be a productivity issue in industry; waiting tens of minutes for Conda to install is similar.&lt;/p&gt; &lt;p&gt;Therefore, most of my recommendations will be geared toward changes that make you work &lt;em&gt;faster&lt;/em&gt; or &lt;em&gt;smarter&lt;/em&gt; (e.g. with more intellisense, or better keybinds).&lt;/p&gt; &lt;h1 id=&quot;hardware&quot;&gt;Hardware&lt;/h1&gt; &lt;h2 id=&quot;google-colab-not-even-once&quot;&gt;Google Colab: not even once&lt;/h2&gt; &lt;p&gt;Google Colab is &lt;em&gt;terrible&lt;/em&gt; for large-scale projects. It’s great for single-notebook prototyping, but the moment you have to edit an external Python file using the &lt;em&gt;Google Drive file interface&lt;/em&gt;, you’ve lost.&lt;/p&gt; &lt;p&gt;Also, Colab’s limits are terrible: constantly getting disconnected and resetting your runtime state are both irritating and a major context loss as you spend time re-running all your cells. A better setup is to run your own GPU computer – be it on &lt;a href=&quot;https://course.fast.ai/start_gcp&quot;&gt;Google Cloud&lt;/a&gt;, &lt;a href=&quot;https://course.fast.ai/start_aws&quot;&gt;AWS&lt;/a&gt;, a computer lying around in your basement, or on your local compute cluster.&lt;/p&gt; &lt;h2 id=&quot;be-aware-of-the-speed-of-your-storage&quot;&gt;Be aware of the speed of your storage&lt;/h2&gt; &lt;p&gt;If you’re using a cluster, it will likely have different &lt;em&gt;tiers of storage&lt;/em&gt; – some will be local on the specific server you’re working on, others will be network storage (NFS, often called something like “dfs”). Before getting started on a project, you should read up on your cluster’s storage and use &lt;strong&gt;the fastest one that can fit your data&lt;/strong&gt;. This sometimes can save many minutes waiting for Conda to install as it thrashes a hard drive on the other side of the computer room over the network.&lt;/p&gt; &lt;h2 id=&quot;make-sure-your-storage-is-backed-up&quot;&gt;Make sure your storage is backed up&lt;/h2&gt; &lt;p&gt;You &lt;em&gt;really&lt;/em&gt; don’t want to lose modified code or datasets. Ensure your cluster has a backup policy, or else upload your data to a second location periodically.&lt;/p&gt; &lt;h1 id=&quot;software&quot;&gt;Software&lt;/h1&gt; &lt;h2 id=&quot;stop-using-conda&quot;&gt;Stop using Conda&lt;/h2&gt; &lt;p&gt;We’ve all seen it.&lt;/p&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;base&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;conda &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; conda-forge boost Collecting package metadata &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;current_repodata.json&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: &lt;span class=&quot;k&quot;&gt;done &lt;/span&gt;Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;repodata.json&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: &lt;span class=&quot;k&quot;&gt;done &lt;/span&gt;Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt; Found conflicts! Looking &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;incompatible packages. This can take several minutes. Press CTRL-C to abort. &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;3 hours pass, your sanity declines by the minute&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Conda is &lt;em&gt;slow&lt;/em&gt;. In a large environment, every time you want to install a new package, it can take &lt;em&gt;multiple minutes&lt;/em&gt; just for it to give you a conflict screen. This kills flow states and is unacceptable for productivity.&lt;/p&gt; &lt;p&gt;It also fails in a few other key aspects:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt;. If you’re using Conda, you have to go to special lengths to save your environment and every package’s exact version, in case someone else wants to work on the same project later.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Top-level vs. transitive dependencies&lt;/strong&gt;: There’s this thing in package management called &lt;em&gt;not recording every transitive dependency as if it’s top level&lt;/em&gt;. That is, if you install &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pytorch&lt;/code&gt;, it should not list all of Pytorch’s dependencies as if you installed them personally. Unfortunately, Conda didn’t get the memo.&lt;/li&gt; &lt;/ul&gt; &lt;h3 id=&quot;use-pipenvpoetry-instead&quot;&gt;Use Pipenv/Poetry instead&lt;/h3&gt; &lt;p&gt;Thankfully, the regular Python ecosystem has mostly transcended such limitations. A popular modern package manager is &lt;a href=&quot;https://pipenv.pypa.io/en/latest/&quot;&gt;Pipenv&lt;/a&gt;, which satisfies both the issues above. A similar tool is &lt;a href=&quot;https://python-poetry.org/&quot;&gt;Poetry&lt;/a&gt;, which does the same but often has &lt;a href=&quot;https://johnfraney.ca/posts/2019/03/06/pipenv-poetry-benchmarks-ergonomics/&quot;&gt;slightly better performance&lt;/a&gt; for interactive use.&lt;/p&gt; &lt;p&gt;With this approach, instead of doing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;conda install numpy&lt;/code&gt;, you replace it with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pipenv install numpy&lt;/code&gt;.&lt;/p&gt; &lt;h3 id=&quot;or-if-you-must-use-mamba--conda-lock&quot;&gt;Or, if you must, use mamba + conda-lock&lt;/h3&gt; &lt;p&gt;Granted, you might not want to use a Python-specific package manager. One of Conda’s key benefits is that it can also install &lt;em&gt;system dependencies&lt;/em&gt; for the packages you want, e.g. installing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cudatoolkit&lt;/code&gt; along with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pytorch&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;If you find this functionality essential, you should really use &lt;strong&gt;&lt;a href=&quot;https://github.com/mamba-org/mamba&quot;&gt;Mamba&lt;/a&gt;&lt;/strong&gt;. Basically, it’s Conda, but with a 10x faster dependency solver written in C++.&lt;/p&gt; &lt;p&gt;Another useful tool is &lt;a href=&quot;https://github.com/conda-incubator/conda-lock&quot;&gt;conda-lock&lt;/a&gt;, which can generate fully reproducible lock files that work on all platforms. This is useful to ensure your Conda environments are reproducible (recommended workflow &lt;a href=&quot;https://pythonspeed.com/articles/conda-dependency-management/&quot;&gt;here&lt;/a&gt;).&lt;/p&gt; &lt;h2 id=&quot;stop-using-jupyter-notebook&quot;&gt;Stop using Jupyter Notebook&lt;/h2&gt; &lt;p&gt;If you use Jupyter Notebook (not Lab), you should feel bad. It’s simple to set up, but the UI is extremely barebones, making it difficult to jump around different files. Two options are:&lt;/p&gt; &lt;h3 id=&quot;use-jupyter-lab&quot;&gt;Use Jupyter Lab&lt;/h3&gt; &lt;p&gt;&lt;a href=&quot;https://jupyterlab.readthedocs.io/en/stable/&quot;&gt;Jupyter Lab&lt;/a&gt; is basically a slightly fancier Jupyter Notebook. It’s a traditional notebook interface, with tabs and a convenient file tree on the side.&lt;/p&gt; &lt;p&gt;Another thing you should do is to &lt;a href=&quot;https://jupyterlab.readthedocs.io/en/stable/user/interface.html&quot;&gt;read the docs&lt;/a&gt; – Jupyter Lab has a lot of features that I didn’t know about. Like &lt;a href=&quot;https://jupyterlab.readthedocs.io/en/stable/user/interface.html#keyboard-shortcuts&quot;&gt;Vim emulation&lt;/a&gt;. And &lt;a href=&quot;https://jupyterlab.readthedocs.io/en/stable/user/rtc.html&quot;&gt;real-time collaboration&lt;/a&gt;. It’s definitely worth your time.&lt;/p&gt; &lt;h3 id=&quot;use-visual-studio-code&quot;&gt;Use Visual Studio Code&lt;/h3&gt; &lt;p&gt;Visual Studio Code is a &lt;em&gt;surprisingly&lt;/em&gt; good replacement for the Jupyter stack. With the Remote Development Pack, Jupyter, and Pylance extensions, you get a native notebook experience on a remote server while also getting all the benefits of VSCode autocompletion and suggestions.&lt;/p&gt; &lt;p&gt;However, it’s not all sunshine and roses. The Remote-SSH extension is pretty finicky, often spamming reconnection popups whenever you lose network access, and it doesn’t support special cluster logins like SLURM. The Jupyter extension is also going through teething pains, so expect issues like annoying scrolling, cells hanging occasionally, and frozen interfaces.&lt;/p&gt; &lt;p&gt;Still, though, it might all be worth it for that sweet sweet intellisense.&lt;/p&gt; &lt;h2 id=&quot;use-einops-instead-of-explicit-tensor-operations&quot;&gt;Use einops instead of explicit tensor operations&lt;/h2&gt; &lt;p&gt;Look at this, from the readme:&lt;/p&gt; &lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;einops&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rearrange&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# equivalent expressions &lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;view&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;rearrange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;b c h w -&amp;gt; b (c h w)&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Never more shall you have to memorize what &lt;a href=&quot;https://pytorch.org/docs/stable/generated/torch.repeat_interleave.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;torch.repeat_interleave&lt;/code&gt;&lt;/a&gt; does. &lt;a href=&quot;https://github.com/arogozhnikov/einops&quot;&gt;Einops&lt;/a&gt; replaces dozens of PyTorch/numpy/TensorFlow/JAX/more tensor operations with &lt;em&gt;three functions&lt;/em&gt; that can handle everything. Use it – &lt;a href=&quot;https://github.com/arogozhnikov/einops#tweets&quot;&gt;all the cool kids do&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&quot;use-git-well&quot;&gt;Use git well&lt;/h2&gt; &lt;p&gt;&lt;a href=&quot;https://chris.beams.io/posts/git-commit/&quot;&gt;Enough said&lt;/a&gt;. As with any form of software engineering, you should follow the best practices of version control, committing legibly, and committing often.&lt;/p&gt; &lt;h2 id=&quot;use-static-types-as-much-as-you-can&quot;&gt;Use static types as much as you can&lt;/h2&gt; &lt;p&gt;Quick! What’s the shape of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src_frames&lt;/code&gt; in this function?&lt;/p&gt; &lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;convert_padding_direction&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_lengths&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;right_to_left&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;left_to_right&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;):&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;right_to_left&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;^&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;left_to_right&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_lengths&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_lengths&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;eq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# no padding, return early &lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;utils&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;buffered_arange&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;unsqueeze&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;expand_as&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_pads&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_lengths&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;type_as&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;unsqueeze&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;unsqueeze&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;right_to_left&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;remainder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_pads&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;remainder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;num_pads&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;max_len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src_frames&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;gather&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;p&gt;It’s pretty hard to say. Maybe go pass in some test inputs, or trace the rest of the program whenever it uses this function? This debugging process turns a two-minute modification into a twenty-minute one, as you struggle to reverse engineer what the code expects.&lt;/p&gt; &lt;p&gt;That’s why you need something like &lt;a href=&quot;https://github.com/patrick-kidger/torchtyping&quot;&gt;torchtyping&lt;/a&gt; or &lt;a href=&quot;https://github.com/deepmind/tensor_annotations&quot;&gt;TensorAnnotations&lt;/a&gt;. With it, you can write your code like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;def analyze_image(img: TensorType[&quot;batch&quot;, 3, 224, 224])&lt;/code&gt; and make it much easier for someone else to use the function later. It’ll take 2 seconds of effort upfront and save 2 hours of debugging later.&lt;/p&gt; &lt;h2 id=&quot;write-documentation&quot;&gt;Write documentation&lt;/h2&gt; &lt;p&gt;Similar to the above, when dealing with complex tensor functions or domain-specific operations, it’s very hard to tell what a function does from its name. &lt;em&gt;Write doc comments&lt;/em&gt; that describe the purpose of the function in laymen’s words, and describe all important inputs/outputs (with tensor shapes, if you aren’t using a typing library).&lt;/p&gt; &lt;h2 id=&quot;write-tests-for-crying-out-loud&quot;&gt;Write tests, for crying out loud&lt;/h2&gt; &lt;p&gt;There’s nothing worse than having a massive, amorphous blob of Python code and circular imports. Any touch is likely to break something deep within a long-forgotten notebook or manual script.&lt;/p&gt; &lt;p&gt;To have at least a modicum of confidence, you should write tests (at least smoke tests) to make sure your code works as expected and &lt;em&gt;keeps working as expected&lt;/em&gt;. One good testing library is &lt;a href=&quot;https://pytest.org/&quot;&gt;pytest&lt;/a&gt;; there are also ways to &lt;a href=&quot;https://stackoverflow.com/questions/40172281/unit-tests-for-functions-in-a-jupyter-notebook&quot;&gt;embed tests in Jupyter notebooks&lt;/a&gt;.&lt;/p&gt; &lt;h3 id=&quot;automate-as-much-as-you-can&quot;&gt;Automate as much as you can&lt;/h3&gt; &lt;p&gt;This one’s pretty short, but: ever notice you’re doing a manual task over and over, like smoke-testing a new data item or running the same analysis on a model over and over? Put it in a function! Automate it, so you can stop copy-pasting and waiting for cells to execute.&lt;/p&gt; &lt;p&gt;That’s all for now. Hopefully at least a few of those were helpful, and happy data-sciencing.&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;Sourced from https://github.com/freewym/espresso/blob/master/espresso/tools/utils.py and modified for pedagogical purposes. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Thu, 05 Aug 2021 17:09:00 +0000</pubDate> <link>https://kliu.io/post/stay-sane-data-science/</link> <guid isPermaLink="true">https://kliu.io/post/stay-sane-data-science/</guid> </item> <item> <title>Scenarios and Warning Signs for Ajeya&apos;s Aggressive, Conservative, and Best Guess AI Timelines</title> <description>&lt;p&gt;&lt;em&gt;This post is &lt;a href=&quot;https://www.lesswrong.com/posts/kQt3LsNAqxCh8qkaN/scenarios-and-warning-signs-for-ajeya-s-aggressive&quot;&gt;cross-posted&lt;/a&gt; to LessWrong, a rationality and AI safety community. May contain more jargon than usual.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Epistemic status: mild confidence that this provides interesting discussion and debate.&lt;/p&gt; &lt;p&gt;Credits to (in no particular order) Mark Xu, Sydney Von Arx, Jack Ryan, Sidney Hough, Kuhan Jeyapragasan, and Pranay Mittal for resources and feedback. Credits to Ajeya (obviously), Daniel Kokotajlo, Gwern, Robin Hanson, and many others for perspectives on timeline cruxes. This post was written as part of a 10-week AI Safety Fellowship run by Mark. All errors my own.&lt;/p&gt; &lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt; &lt;p&gt;Most of this post is unoriginal. It is intended primarily to summarize and rephrase the core distinctions between three plausible scenarios for AI development, which Ajeya lays out in her &lt;a href=&quot;https://docs.google.com/document/d/1IJ6Sr-gPeXdSJugFulwIpvavc0atjHGM82QjIfUSBGQ/edit#&quot;&gt;draft report on AI timelines&lt;/a&gt;. It also contains summaries and links to other related content.&lt;/p&gt; &lt;p&gt;As a secondary goal, it attempts to lay out concrete and hopefully plausible predictions for what would occur in each of these three worlds.&lt;/p&gt; &lt;h2 id=&quot;glossary-from-ajeyas-report&quot;&gt;Glossary (from Ajeya’s report)&lt;/h2&gt; &lt;p&gt;This post will assume familiarity with basic terminology regarding neural networks and supervised learning.&lt;/p&gt; &lt;p&gt;Before reading this post, it’s probably good to read at least a summary of Ajeya’s report (e.g. &lt;a href=&quot;https://www.lesswrong.com/posts/KrJfoZzpSDpnrv9va/draft-report-on-ai-timelines?commentId=7d4q79ntst6ryaxWD&quot;&gt;Rohin Shah’s&lt;/a&gt;). Some timeline-specific terminology that is helpful to know is also listed below:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Transformative AI (TAI)&lt;/strong&gt;: A computer program that is as transformative as the Industrial Revolution was to the world’s trajectory.&lt;sup id=&quot;fnref:tai-defn&quot;&gt;&lt;a href=&quot;#fn:tai-defn&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Effective horizon length (EHL)&lt;/strong&gt;: the “length of the task”; more precisely, Ajeya defines it as the amount of data measured in subjective seconds of experience (~how long a human would take to do it) to tell whether a model has performed a task better or worse than it did previously. For some things (e.g. predict next word in the sentence), the length is quite low; for others (e.g. run a corporation that maximizes profit), the length may be quite high.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Anchor&lt;/strong&gt;: A concept on which to base the estimated number of FLOPS (floating-point operations/second) required to &lt;strong&gt;train&lt;/strong&gt; a transformative AI. For example, you might use an Evolution Anchor, which is roughly the compute performed over all of evolution; or a Short Horizon Neural Network (NN) Anchor, which is the extrapolated compute expected for a neural network that is trained on a short horizon length. Key anchors are: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Lifetime anchor&lt;/strong&gt;: the amount of compute performed by “one human brain over one lifetime.”&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Short/medium/long-horizon NN&lt;/strong&gt;: the compute required to train a NN of a size anchored to the human brain on short, medium, or long-horizon tasks, respectively.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Evolution anchor&lt;/strong&gt;: the amount of compute performed over all of evolution.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;scenario-one&quot;&gt;Scenario One&lt;/h2&gt; &lt;p&gt;If you believe…&lt;/p&gt; &lt;h3 id=&quot;short-horizon-nn-has-a-fair-chance-of-succeeding-eg-40&quot;&gt;Short-horizon NN has a fair chance of succeeding (e.g. 40%)&lt;sup id=&quot;fnref:hypotheses-caveat&quot;&gt;&lt;a href=&quot;#fn:hypotheses-caveat&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt; &lt;p&gt;You might believe this if you think there’s a good chance it is sufficient to fine-tune a large language model like GPT-N for TAI, and there’s no need to train models directly on tasks that take a long time to judge (e.g. “writing a twist ending to a story”, as opposed to “predict next word”). Concrete things you might expect to happen soon would thus be:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;GPT-4+ can be fine-tuned to perform longer-horizon tasks, such as writing long and coherent stories, with less compute cost than the original pretraining.&lt;/li&gt; &lt;li&gt;This capability to generalize improves as the pre-training process improves (e.g. GPT-5 is much better at fine-tuning than GPT-4, which is much better than GPT-3). &lt;a href=&quot;https://www.alignmentforum.org/posts/pqkdsqd6s6w2HtT9g/intermittent-distillations-1#Scaling_Laws_for_Transfer__Danny_Hernandez_&quot;&gt;The scaling laws of model generalization&lt;/a&gt; perhaps hold up for much larger models.&lt;/li&gt; &lt;li&gt;By 2030, short-horizon models have achieved at least partial meta-learning. For example, an RL model can learn to play novel video games as well as a human can after a few hours of practice. (This criterion comes from a Q&amp;amp;A with Ajeya, although the timeline estimate is my own.)&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;For more reading, see &lt;a href=&quot;https://docs.google.com/document/d/1PaYOh_9BAYEm3RfpeX0G-cvs5JxGns98IsVK061jqRQ/edit#heading=h.f8rh9g7pqv91&quot;&gt;Ajeya on downstream skills&lt;/a&gt;.&lt;/p&gt; &lt;h3 id=&quot;algorithms-halve-compute-requirements-every-2-years-for-short-horizon-nns-or-every-1-year-for-a-mediumlong-horizon-nn&quot;&gt;Algorithms halve compute requirements every ~2 years for short-horizon NNs, or every ~1 year for a medium/long-horizon NN.&lt;/h3&gt; &lt;p&gt;You might expect this if you think there is a lot of “low-hanging fruit” in algorithms, such as if you think relatively little work has gone into optimizing training regimes or architectures for large NNs. (For context, OpenAI’s &lt;a href=&quot;https://openai.com/blog/ai-and-efficiency/&quot;&gt;AI &amp;amp; Efficiency&lt;/a&gt; suggests a halving time of ~16 months for ImageNet models.) Consequences you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;An increase in companies working to improve massive (&amp;gt;100bn parameter) language models. For example, you might expect at least 5 large tech companies working on algorithms by 2025, as opposed to “mostly only OpenAI &amp;amp; &lt;a href=&quot;https://arxiv.org/abs/2101.03961&quot;&gt;Google&lt;/a&gt; in 2020”.&lt;sup id=&quot;fnref:gwern-is-cool&quot;&gt;&lt;a href=&quot;#fn:gwern-is-cool&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; Some evidence possibly in favor of this is that Alibaba + Tsinghua University recently released (Feb 2021) &lt;a href=&quot;https://arxiv.org/pdf/2103.00823.pdf&quot;&gt;M6: A Chinese Multimodal Pretrainer&lt;/a&gt; with 100 billion parameters (although this uses a Mixture of Experts model whose efficacy I am unfamiliar with).&lt;/li&gt; &lt;li&gt;Multiple significant (e.g. 4x+) speedups targeted specifically toward training large language models by 2030. (This implies that there is significant low-hanging fruit being taken.)&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;moores-law-returns-resulting-in-15-year-doubling-times-for-flops-to-train-a-model&quot;&gt;Moore’s Law returns, resulting in ~1.5 year doubling times for FLOPs/$ to train a model.&lt;/h3&gt; &lt;p&gt;For context, Moore’s law described transistor progress well until the mid-2000s, when the regime shifted to a doubling time of ~3-4 years&lt;sup id=&quot;fnref:moore&quot;&gt;&lt;a href=&quot;#fn:moore&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;. One possible story for a return to ~1.5-year doubling times is that the number of chip producers increases, with players perhaps aided by AI-assisted chip manufacturing. Moore’s Law is rather hard to predict, but concrete things that &lt;em&gt;might&lt;/em&gt; allow this are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Arms race&lt;/strong&gt;: &lt;a href=&quot;https://www.bloomberg.com/news/articles/2021-02-11/europe-weighs-semiconductor-foundry-to-fix-supply-chain-risk&quot;&gt;The European Union makes a competitive semiconductor manufacturing factory&lt;/a&gt;. Semiconductor manufacturing becomes more politicized, encouraging an “arms race” of sorts. One reason this might happen is if &lt;a href=&quot;https://www.theguardian.com/world/2021/mar/10/china-could-invade-taiwan-in-next-six-years-top-us-admiral-warns&quot;&gt;China invades Taiwan&lt;/a&gt;, possibly taking over major semiconductor manufacturing company TSMC.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Competition&lt;/strong&gt;: &lt;a href=&quot;https://seekingalpha.com/article/4392173-tsmc-to-fall-behind-intel-samsung-2024&quot;&gt;Intel&lt;/a&gt; and &lt;a href=&quot;https://www.bloomberg.com/news/articles/2020-11-17/samsung-intensifies-chip-wars-with-bet-it-can-catch-tsmc-by-2022&quot;&gt;Samsung&lt;/a&gt; catch up with TSMC for chip manufacturing. There are several chip manufacturers in direct competition at the cutting edge by 2025.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;AI-assisted chip fabrication&lt;/strong&gt;: E.g. a 10x decrease in cost by 2030 due to ML systems that make various parts of production more efficient. Current examples include &lt;a href=&quot;https://arstechnica.com/information-technology/2019/06/manufacturing-memory-means-scribing-silicon-in-a-sea-of-sensors/?comments=1&quot;&gt;listening for defects in production&lt;/a&gt;, &lt;a href=&quot;https://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html&quot;&gt;chip placement with RL&lt;/a&gt;, &lt;a href=&quot;https://ai.googleblog.com/2021/02/machine-learning-for-computer.html&quot;&gt;optimizing chip architectures for a given model&lt;/a&gt;, or &lt;a href=&quot;https://www.edn.com/machine-learning-in-eda-accelerates-the-design-cycle/&quot;&gt;electronic design automation&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;ai-companies-are-rapidly-willing-to-spend-2-of-gdp-to-train-a-transformative-model&quot;&gt;AI companies are rapidly willing to spend 2% of GDP to train a transformative model.&lt;/h3&gt; &lt;p&gt;This looks like AI companies rapidly realizing the immense value of training bigger AI, so they rapidly scale up until they are limited by capital-on-hand in 2030. From that point on, they are willing to spend 2% of GDP on training a model. You might expect this if:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;AI shows concrete economic benefits in the short term. Commercialization of GPT models earns $&amp;gt;1bn in revenue by 2025&lt;sup id=&quot;fnref:hansonbet&quot;&gt;&lt;a href=&quot;#fn:hansonbet&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;, with customers willing to pay for the outputs of fine-tuned models or more polished AI-assisted GPT products.&lt;/li&gt; &lt;li&gt;Big tech companies like Google realize the profit opportunity and begin to quickly scale up models (and pricing models) of their own. One concrete example is “Google makes DeepMind build a GPT-N competitor, which it contracts to governments or other institutions.”&lt;/li&gt; &lt;li&gt;By 2025, the US or similar national government experiments with training a large language model. (This implies government involvement in AI, which could dramatically increase funding.)&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Given the above, you should expect a median timeline of 2036, shaded up by Ajeya to 2040.&lt;/strong&gt;&lt;/p&gt; &lt;h2 id=&quot;scenario-two&quot;&gt;Scenario Two&lt;/h2&gt; &lt;h3 id=&quot;nns-likely-require-some-medium--to-long-horizon-training&quot;&gt;NNs likely require some medium- to long-horizon training.&lt;/h3&gt; &lt;p&gt;You might believe this if you think scaling up GPT-3 doesn’t quite lead to TAI. It gets you a good bit of the way there, but turns out you need a more complex environment to learn &lt;em&gt;how to learn&lt;/em&gt; new tasks. This might look like:&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Fine-tuning hits a wall&lt;/strong&gt;: By 2025, it’s clear that massive fine-tuned language models &lt;em&gt;underperform&lt;/em&gt; in comparison to smaller models that use supervised learning directly on the question at hand (e.g. large-scale code generation). Concretely, a possible scenario is that GPT-5-CodeCompletionXL performs worse than a new TransformerCodeM model, which was trained directly on sets of code completion questions rather than unsupervised learning like GPT.&lt;/p&gt; &lt;p&gt;This implies that new advances will be required to reach scalable TAI.&lt;/p&gt; &lt;p&gt;(&lt;a href=&quot;https://docs.google.com/document/d/1PaYOh_9BAYEm3RfpeX0G-cvs5JxGns98IsVK061jqRQ/edit#heading=h.f8rh9g7pqv91&quot;&gt;Ajeya mentions&lt;/a&gt; some reasons why you might expect a from-scratch supervised model to outperform a fine-tuned language model, but whether it would do so in reality is an open question.)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Training on long horizons becomes popular&lt;/strong&gt;: By 2030, there exist 2+ models achieving state-of-the-art performance in a specific field that use training on long horizons (greater than few minutes). For example, a novel-writing AI that receives feedback only after finishing a novel, or an RL agent that plays long and complex games.&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;algorithmic-progress-is-a-bit-slower-than-it-was-in-the-past-halving-compute-every-3-years-for-short-horizon-nns-2-years-for-medium--long-horizon-nns&quot;&gt;Algorithmic progress is a bit slower than it was in the past, halving compute every 3 years for short-horizon NNs, 2 years for medium &amp;amp; long-horizon NNs.&lt;/h3&gt; &lt;p&gt;You might believe this if you think most of the low-hanging fruit has been picked. Architectural advancements slow down, with each one representing mostly incremental progress.&lt;/p&gt; &lt;p&gt;(For further reading and intuitions, AI Impacts has a page with &lt;a href=&quot;https://aiimpacts.org/trends-in-algorithmic-progress/&quot;&gt;many examples of past algorithmic progress&lt;/a&gt;. See also the posts mentioned in Ajeya’s paper: &lt;a href=&quot;https://arxiv.org/pdf/2005.04305.pdf&quot;&gt;Measuring the Algorithmic Efficacy of Neural Networks (2020)&lt;/a&gt; and &lt;a href=&quot;https://intelligence.org/files/AlgorithmicProgress.pdf&quot;&gt;Algorithmic Progress in Six Domains (2013)&lt;/a&gt;.)&lt;/p&gt; &lt;p&gt;Things you may expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;By 2025, the number of companies working on large language models has plateaued or even declined. E.g. &lt;a href=&quot;https://www.gwern.net/newsletter/2020/05#gpt-3&quot;&gt;Google Brain and DeepMind still refuse to buy into the scaling hypothesis&lt;/a&gt;; large language model startups (e.g. &lt;a href=&quot;https://cohere.ai/mlrs&quot;&gt;Cohere&lt;/a&gt;) have flopped.&lt;/li&gt; &lt;li&gt;By 2025, the large size and training time of models becomes a bottleneck to experimentation. For example, if it takes weeks and significant compute resources to run an experiment to improve efficiency, then testing out new improvements becomes much slower. We see some hints of this in the training of &lt;a href=&quot;https://arxiv.org/pdf/1912.06680.pdf&quot;&gt;OpenAI Five (“surgery”)&lt;/a&gt;, although it’s unclear to me how much of a time penalty this adds, or if this problem can be avoided by using smaller models to experiment with improvements rather than bigger ones.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;moores-law-slows-a-bit-flops-doubles-every-25-years&quot;&gt;Moore’s Law slows a bit. FLOPS/$ doubles every 2.5 years.&lt;/h3&gt; &lt;p&gt;By 2025, the general consensus is that Moore’s Law is dead. TSMC, Intel, and Samsung hit manufacturing delays in new nodes, and it is projected that doubling time will increase. There is a solid path for further growth, but the path forward is hard, and chip designers focus more on optimizing preexisting nodes much like Intel does today.&lt;/p&gt; &lt;p&gt;Things you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;By 2025, Intel, Samsung, and TSMC all &lt;a href=&quot;https://seekingalpha.com/article/4392173-tsmc-to-fall-behind-intel-samsung-2024&quot;&gt;fall behind on their cadences&lt;/a&gt;. Delays, like those that have &lt;a href=&quot;https://www.bbc.com/news/technology-53525710&quot;&gt;plagued Intel&lt;/a&gt;, spread to the entire industry.&lt;/li&gt; &lt;li&gt;Competition remains slim. For example, current export restrictions on semiconductors&lt;sup id=&quot;fnref:more-than-you-wanted-to-know-about-semiconductors&quot;&gt;&lt;a href=&quot;#fn:more-than-you-wanted-to-know-about-semiconductors&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;6&lt;/a&gt;&lt;/sup&gt; are successful at limiting China’s semiconductor fabrication &lt;em&gt;without triggering an arms race&lt;/em&gt;, preventing additional competition from arising.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;ai-companies-are-willing-to-spend-1bn-in-2025-with-that-figure-doubling-every-2-years&quot;&gt;AI companies are willing to spend $1bn in 2025, with that figure doubling every 2 years.&lt;/h3&gt; &lt;p&gt;Ajeya considers this a plausible level of spending on a “business as usual” trajectory, given the current market cap and cash on hand of major tech companies. See &lt;a href=&quot;https://docs.google.com/document/d/1qjgBkoHO_kDuUYqy_Vws0fpf-dG5pTU4b8Uej6ff2Fg/edit#&quot;&gt;here&lt;/a&gt; for more details.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Given the above, you should expect a median timeline of ~2052.&lt;/strong&gt;&lt;/p&gt; &lt;h2 id=&quot;scenario-three&quot;&gt;Scenario Three&lt;/h2&gt; &lt;h3 id=&quot;transformative-nns-likely-depend-highly-on-long-horizon-training-perhaps-requiring-flops-on-the-order-of-evolutionary-computation&quot;&gt;Transformative NNs likely depend highly on long-horizon training, perhaps requiring FLOPs on the order of evolutionary computation.&lt;/h3&gt; &lt;p&gt;This looks like GPT &amp;amp; supervised learning hitting a dead-end for meta-learning (learning new, complex tasks). No matter how hard we try, we can’t get neural networks to learn complex skills over short training timeframes. One of the options left to us is something like &lt;a href=&quot;https://www.lesswrong.com/posts/fRsjBseRuvRhMPPE5/an-overview-of-11-proposals-for-building-safe-advanced-ai#1__Reinforcement_learning___transparency_tools&quot;&gt;RL + transparency tools&lt;/a&gt; or supervised learning with feedback that is given only after long subjective time elapsed, which are both highly compute-intensive ways of training an agent.&lt;/p&gt; &lt;p&gt;Things you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;By 2030, spending on massive LMs plateaus such that there is &amp;lt;1 doubling in 3 years. The general consensus is that large language models are powerful, but yield diminishing returns, and are significantly limited at tasks that take a human more than 5 minutes to consider.&lt;/li&gt; &lt;li&gt;“AI winter;” qualitatively, advances comparable to significant advances of the past five years (e.g. AlphaGo, GPT-2, GPT-3) are much fewer and further between as low-hanging fruit is already picked. This period may last for 10+ years.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;algorithms-halve-compute-every-4-years-for-short-horizon-3-years-for-medium-and-long-horizon&quot;&gt;Algorithms halve compute every 4 years for short-horizon, 3 years for medium and long horizon.&lt;/h3&gt; &lt;p&gt;This looks a lot like Scenario Two, but is quantitatively a bit slower. Realistically, the biggest sign of this is probably just a slowing trend in 2025’s “algorithmic progress” chart, but other things you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;A decline in discoveries of new neural network architectures and techniques for efficiency. If you were to plot the major discoveries of a field such as NLP on a graph, you would see a flurry of discoveries in the 2010s, but by the end of the 2020s progress has significantly slowed.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;moores-law-slows-significantly-doubling-flops-every-35-years&quot;&gt;Moore’s law slows significantly, doubling FLOPS/$ every 3.5 years.&lt;/h3&gt; &lt;p&gt;This might occur if &lt;a href=&quot;https://www.extremetech.com/computing/272096-3nm-process-node&quot;&gt;silicon process costs keep rising&lt;/a&gt;, eventually becoming uneconomical even for large players. There are incremental further advancements (e.g. optimizing 3nm+++), but overall stagnation continues.&lt;/p&gt; &lt;p&gt;Things you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;By 2030, all major chip producers (e.g. Intel, AMD, Apple, NVIDIA) have significantly increased their timelines for moving to new nodes. For example, if on 3nm, they plan to move to 1nm in 3+ years.&lt;/li&gt; &lt;li&gt;More unlikely: a &lt;a href=&quot;https://www.gwern.net/Slowing-Moores-Law&quot;&gt;state-sponsored effort to slow down chip fabrication&lt;/a&gt;, perhaps due to global war and instability.&lt;/li&gt; &lt;/ol&gt; &lt;h3 id=&quot;ai-companies-will-have-to-wait-for-the-entire-economy-to-grow-sufficiently-to-finance-tai&quot;&gt;AI companies will have to wait for the entire economy to grow sufficiently to finance TAI.&lt;sup id=&quot;fnref:caveat-spending&quot;&gt;&lt;a href=&quot;#fn:caveat-spending&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt; &lt;p&gt;This follows from the slowing of Moore’s Law and the need for expensive, long-horizon training. This world seems like one where advanced AI is not terribly profitable and requires resources on the scale of a 2090s &lt;a href=&quot;https://en.wikipedia.org/wiki/Megaproject&quot;&gt;megaproject&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Things you might expect are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Efforts to commercialize large language models are not profitable. OpenAI shuts down the GPT-3 API by 2025, opting for a different business model. Further endeavors reach only limited profitability due to limited use cases.&lt;/li&gt; &lt;li&gt;“AI winter,” as discussed in the first section, causes a lack of investment in AI companies. One possible world is that spending in AI &lt;a href=&quot;https://docs.google.com/document/d/1cCJjzZaJ7ATbq8N2fvhmsDOUWdm7t3uSSXv6bD0E_GM/edit#heading=h.x0pkk2mc19ey&quot;&gt;plateaus for several decades&lt;/a&gt;, before experiencing another period of exponential growth as a new paradigm is discovered in the late 21st century.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Given the above, you should expect a median timeline of **2100&lt;/strong&gt;, shaded down to 2090 by Ajeya.**&lt;/p&gt; &lt;h1 id=&quot;epistemic-notes&quot;&gt;Epistemic Notes&lt;/h1&gt; &lt;p&gt;The above predictions are obviously rough. Even in a world that satisfies a particular timeline (e.g. AI by 2052), I expect the specifics of more than half of them to probably be wrong. However, the hope is that these predictions can be used as a sort of barometer, so that five years down the line, we can look back and ask, “how many of these came true?” The answer may help us figure out when we predict TAI to eventually arrive.&lt;/p&gt; &lt;p&gt;I also hope these predictions can be used today to clarify researchers’ own timelines. If you believe most of the predictions in Scenario 1 are plausible, for example, you may want to update toward shorter timelines, and likewise if you think Scenario 3 is plausible, you should probably update toward later timelines.&lt;/p&gt; &lt;h1 id=&quot;other-scenarios-and-open-questions&quot;&gt;Other Scenarios and Open Questions&lt;/h1&gt; &lt;p&gt;In the process of writing this and further understanding Ajeya’s assumptions, I had a few ideas for other scenarios that I would enjoy seeing fleshed out.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;What happens if government spending gets involved? What are reasonable estimates for spending?&lt;/li&gt; &lt;li&gt;How likely is it that tasks such as meta-learning can be solved via “secret sauce” waiting to be discovered, rather than pure algorithmic brute force?&lt;/li&gt; &lt;li&gt;How do you make better predictions about Moore’s Law?&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.gwern.net/newsletter/2020/05#fn19&quot;&gt;[via Gwern]&lt;/a&gt;: How will a 1T-parameter language model behave? 10T? 100T?&lt;/li&gt; &lt;li&gt;How will multimodal models with natural language supervision (e.g. &lt;a href=&quot;https://openai.com/blog/clip/&quot;&gt;CLIP&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/pdf/2103.00823.pdf&quot;&gt;M6&lt;/a&gt;) affect algorithmic progress? Could multimodal models open a “greenfield” of low-hanging algorithmic fruit?&lt;/li&gt; &lt;li&gt;What do “counterarguments to each scenario” look like? What compelling current or future evidence would cause you to reject a scenario?&lt;/li&gt; &lt;/ul&gt; &lt;h1 id=&quot;further-reading--related-work&quot;&gt;Further Reading &amp;amp; Related Work&lt;/h1&gt; &lt;p&gt;Here are some of the documents I found useful while writing this post.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://forum.effectivealtruism.org/posts/QAqghTmp7FSMcJ4ch/ama-ajeya-cotra-researcher-at-open-phil?commentId=KnidjKuibKyrDunbZ#KnidjKuibKyrDunbZ&quot;&gt;Ajeya’s comments on the types of disagreements with AI timelines&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://fas.org/sgp/crs/misc/R46581.pdf&quot;&gt;Semiconductors and Federal Policy&lt;/a&gt;&lt;/li&gt; &lt;li&gt;For context on how quickly we expect AI to gain economic value, I found &lt;a href=&quot;https://forum.effectivealtruism.org/posts/QAqghTmp7FSMcJ4ch/ama-ajeya-cotra-researcher-at-open-phil?commentId=HGu4qZx5E93JbuFDb#KnidjKuibKyrDunbZ&quot;&gt;Ajeya and Gwern’s discussion on the “neglectedness” of AI solutions&lt;/a&gt; insightful.&lt;/li&gt; &lt;li&gt;Daniel Kokotajlo’s &lt;a href=&quot;https://www.lesswrong.com/posts/rzqACeBGycZtqCfaX&quot;&gt;Fun with +12 OOMs of Compute&lt;/a&gt; describes a thought experiment explaining how you might envision using $10^{35}$ FLOPs of compute.&lt;/li&gt; &lt;/ul&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:tai-defn&quot;&gt; &lt;p&gt;See https://docs.google.com/document/d/1IJ6Sr-gPeXdSJugFulwIpvavc0atjHGM82QjIfUSBGQ/edit#heading=h.6t4rel10jbcj &lt;a href=&quot;#fnref:tai-defn&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:hypotheses-caveat&quot;&gt; &lt;p&gt;This crux simplifies Ajeya’s &lt;a href=&quot;https://docs.google.com/document/d/1cCJjzZaJ7ATbq8N2fvhmsDOUWdm7t3uSSXv6bD0E_GM/edit#&quot;&gt;range of estimates for hypothesis probabilities&lt;/a&gt; considerably. For each scenario, I’ve used the most probable anchor as the “central crux”, as it seems to me that if you believe short-horizon NN is 40% likely to work, then the other hypotheses are also fairly sensible. &lt;a href=&quot;#fnref:hypotheses-caveat&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:gwern-is-cool&quot;&gt; &lt;p&gt;This is reminiscent of Gwern’s &lt;a href=&quot;https://www.lesswrong.com/posts/N6vZEnCn6A95Xn39p/are-we-in-an-ai-overhang?commentId=jbD8siv7GMWxRro43&quot;&gt;earlier post&lt;/a&gt; from “Are we in an AI overhang?” &lt;a href=&quot;#fnref:gwern-is-cool&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:moore&quot;&gt; &lt;p&gt;Sourced from https://docs.google.com/document/d/1cCJjzZaJ7ATbq8N2fvhmsDOUWdm7t3uSSXv6bD0E_GM/edit#heading=h.96w8mskhfp5l &lt;a href=&quot;#fnref:moore&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:hansonbet&quot;&gt; &lt;p&gt;Credits to Robin Hanson’s bet here: https://twitter.com/robinhanson/status/1297325331158913025 &lt;a href=&quot;#fnref:hansonbet&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:more-than-you-wanted-to-know-about-semiconductors&quot;&gt; &lt;p&gt;The US has recently &lt;a href=&quot;https://www.tomshardware.com/news/smic-import-restrictions&quot;&gt;prevented Chinese companies such as SMIC&lt;/a&gt; from getting high-end manufacturing equipment. It also has &lt;a href=&quot;https://www.brookings.edu/techstream/the-chip-making-machine-at-the-center-of-chinese-dual-use-concerns/&quot;&gt;worked with the Dutch&lt;/a&gt; to deny ASML, a machine manufacturing company, from delivering high-quality EUV chip machines to China. Quick research seems to suggest that &lt;a href=&quot;https://semiwiki.com/semiconductor-services/semiconductor-advisors/281384-asml-euv-china-chip-equip-risk/&quot;&gt;building a manufacturing plant without US equipment&lt;/a&gt; is extremely hard, at least for now. &lt;a href=&quot;#fnref:more-than-you-wanted-to-know-about-semiconductors&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:caveat-spending&quot;&gt; &lt;p&gt;This is derived from Ajeya’s assumption that spending will start at 300 million dollars in 2025 and grow every 3 years, reaching a max of 100bn by 2055, at which point it is bounded at 0.5% of GDP. However, since TAI isn’t projected until 2100 in this scenario anyway, in practice this means that only the upper bound really matters. &lt;a href=&quot;#fnref:caveat-spending&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate> <link>https://kliu.io/post/scenarios-and-warning-signs/</link> <guid isPermaLink="true">https://kliu.io/post/scenarios-and-warning-signs/</guid> </item> <item> <title>My experience in a covid vaccine trial, and why you should join one</title> <description>&lt;p&gt;&lt;em&gt;Thanks to Aneesh Edara for reviewing this post.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Covid is probably going to get much worse before it gets better. Vaccine rollout is &lt;em&gt;extremely slow&lt;/em&gt;, for &lt;a href=&quot;https://www.scottaaronson.com/blog/?p=5240&quot;&gt;no good reason&lt;/a&gt;. In Massachusetts, where I currently reside, the government doesn’t expect to have vaccines &lt;a href=&quot;https://www.mass.gov/info-details/when-can-i-get-the-covid-19-vaccine&quot;&gt;open to the general public until April to June&lt;/a&gt;. On top of that, the UK and South African variants of the coronavirus are also &lt;a href=&quot;https://www.lesswrong.com/posts/i6doyTk6kHkGyKybq/covid-1-7-the-fire-of-a-thousand-suns#The_English_Strain__Are_We_F___ed__Is_it_Over_&quot;&gt;fairly likely to wreak havoc&lt;/a&gt;. Zvi Mowshowitz in the previous article predicts that things are likely to get &lt;em&gt;worse&lt;/em&gt;, not better, by ~May.&lt;/p&gt; &lt;p&gt;In the meantime, how do we protect ourselves and those around us?&lt;/p&gt; &lt;h2 id=&quot;why-you-should-join-a-vaccine-trial&quot;&gt;Why you should join a vaccine trial&lt;/h2&gt; &lt;p&gt;Joining a trial is a 50% shot of getting a vaccine now, which seems like a much better deal than a 100% shot of getting a vaccine several months down the line.&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; (In a trial, there’s a 50% chance you’re placed in the vaccine group and get the real vaccine, and a 50% chance you’re placed in the placebo and get nothing.)&lt;/p&gt; &lt;p&gt;It’s fast (takes &amp;lt;1 week from intent to shot), safe (Phase 3 vaccines have already passed safety checks), and &lt;em&gt;they literally pay you for it&lt;/em&gt;. The vaccine itself is also very likely to be effective; after all, the reason why it’s in Phase 3 trials is because it triggered good immune reactions in Phase 1/2.&lt;/p&gt; &lt;p&gt;If you’re interested in reducing the risk of you getting covid in the next few months, it thus seems like a good choice to make. It’s also a good altruistic choice, because your participation will probably speed up recruitment a tiny bit, making it possible that they finish the trial faster as a result.&lt;/p&gt; &lt;h2 id=&quot;how-to-join-a-trial&quot;&gt;How to join a trial&lt;/h2&gt; &lt;p&gt;You might think that with vaccines so far down the pipeline, and Moderna’s and Pfizer’s approved in the US, there would be no trials currently enrolling. &lt;strong&gt;This is not true&lt;/strong&gt;. Many trials (Johnson &amp;amp; Johnson, AstraZenenca, etc.) are still enrolling new participants. Here’s how to join one:&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt;Find a trial with an enrollment center near you. Good options include:&lt;/p&gt; &lt;p&gt;a. Search “covid vaccine trials near me” to see if there are any recent news articles on it.&lt;/p&gt; &lt;p&gt;b. Head to &lt;a href=&quot;https://coviddash.org/&quot;&gt;coviddash.org&lt;/a&gt; to find the trial sites closest to you.&lt;/p&gt; &lt;p&gt;c. I made a &lt;a href=&quot;https://docs.google.com/document/d/1ARJS1v7qOjUAF1H6BAR70U_crnEBAFHG5YAm2wG_x0Y/edit&quot;&gt;list of websites here&lt;/a&gt; if you aren’t able to find any local leads. This list is partially tailored towards Boston trials as of ~1 month ago.&lt;/p&gt; &lt;/li&gt; &lt;li&gt;Sign up on their website, and then &lt;em&gt;call the number they give you&lt;/em&gt;. At least for me, I put in my email, but never got a text response. Only after calling to follow up were they able to schedule me, and I got a shot ~4 days after that.&lt;/li&gt; &lt;li&gt;Go to the trial site, get screened, and hopefully get a vaccine!&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;my-experience&quot;&gt;My experience&lt;/h2&gt; &lt;p&gt;I joined the single-dose &lt;a href=&quot;https://www.ensemblestudy.com/#!/&quot;&gt;ENSEMBLE study&lt;/a&gt;, by Johnson &amp;amp; Johnson. On December 8, I received a shot (which was either a saline placebo or the real deal).&lt;/p&gt; &lt;p&gt;Some interesting things I learned through the process:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Time commitment&lt;/strong&gt;: For me, I had a one-hour Zoom informed consent session, then a three hour trip to the hospital to get screened and injected. The trial lasts for 2 years, with periodic in-person followups after 1 month, 3 months, and continuing at progressively longer intervals. For J&amp;amp;J, you also have to log twice weekly if you have had any symptoms of COVID-19, and if you do, you’ll have to come in again to receive a package of saliva tests and nasal swabs to take periodically.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Leaving the study&lt;/strong&gt;: You can leave the study at any time, &lt;strong&gt;even to receive another vaccine&lt;/strong&gt;. Moreover, if you leave the study, they will also tell you if you got the placebo or the real vaccine. This means that if you got the placebo, you can get an approved vaccine as normal. (If you got the trial vaccine, it might not be a good idea or even necessary to get another vaccine, though.)&lt;/li&gt; &lt;li&gt;&lt;strong&gt;What if the trial vaccine gets approved?&lt;/strong&gt; In the case that the trial vaccine is approved, people are debating whether or not they should immediately vaccinate the placebo group or keep studying them. Regardless of the ethicality, it’s not entirely clear right now which option they’ll pick, but there is a chance you might get a &lt;a href=&quot;https://www.sciencemag.org/news/2020/12/makers-successful-covid-19-vaccine-wrestle-options-many-thousands-who-received-placebos&quot;&gt;blind crossover&lt;/a&gt; or an accelerated dose.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Payment&lt;/strong&gt;: You do get paid to join a trial! Payment is ~$1000 for me, spread out across the various scheduled visits of the trial.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;other-cheap-personal-interventions&quot;&gt;Other cheap personal interventions&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;Purchase and use a P100 mask&lt;/strong&gt;. P100 masks are industrial masks that filter 99.97% of particles. (Compare with the “gold standard” N95, which filters 95% of particles.)&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://worldspiritsockpuppet.com/2020/10/22/P100-PSA.html&quot;&gt;A well-fitted P100 mask could reduce your risk of getting covid from an activity by 100x&lt;/a&gt;. This is like, maybe better than a vaccine?? They also only cost like $30 on eBay. Just do it, it’ll be the last mask you’ll ever need to buy.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Use &lt;a href=&quot;https://www.microcovid.org/&quot;&gt;microcovid.org&lt;/a&gt; to calculate the risk of your activities&lt;/strong&gt;. Know thy enemy. &lt;a href=&quot;https://www.microcovid.org/&quot;&gt;microCOVID&lt;/a&gt; is a project that allows you to calculate your expected covid risk of any social activity, and tells you how dangerous it is if you aim to keep your risk of getting covid at ~1%/year.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Install an Exposure Notification app on your phone&lt;/strong&gt;. Check availability in your state &lt;a href=&quot;https://www.androidpolice.com/2021/01/02/covid-tracing-apps-ens-android/&quot;&gt;here&lt;/a&gt;&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; and either download the app on Android, or enable it in Settings on iOS.&lt;/p&gt; &lt;p&gt;Oh, and &lt;strong&gt;yell at your representatives, health officials, etc.&lt;/strong&gt; to speed up the vaccine rollout. Seriously.&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;Thanks to Zvi as well for &lt;a href=&quot;https://www.lesswrong.com/posts/ReoTi64Mkud398JjD/covid-11-26-thanksgiving&quot;&gt;making this argument&lt;/a&gt; and motivating me to actually join a trial. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;The difference between the N and the P is that NXX masks don’t filter out oil-based substances, while PXX masks do. This isn’t relevant for covid, so both are equally good for their given filtration efficacies. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:3&quot;&gt; &lt;p&gt;Angry glares at Massachusetts for taking &lt;em&gt;eight months&lt;/em&gt; before &lt;em&gt;beginning to consider&lt;/em&gt; whether they &lt;a href=&quot;https://www.masslive.com/coronavirus/2020/11/massachusetts-department-of-health-seeks-bidders-to-test-digital-covid-19-contact-tracing-system-that-uses-bluetooth-signals.html&quot;&gt;&lt;em&gt;should maybe have&lt;/em&gt; an exposure notification app&lt;/a&gt;. &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Thu, 07 Jan 2021 20:38:01 +0000</pubDate> <link>https://kliu.io/post/covid-vaccine-trial/</link> <guid isPermaLink="true">https://kliu.io/post/covid-vaccine-trial/</guid> </item> <item> <title>What needs to work for your Zoom call to work?</title> <description>&lt;blockquote&gt; &lt;p&gt;“If I have seen further, it is by standing on the shoulders of &lt;del&gt;giants&lt;/del&gt; &lt;em&gt;terrible and demonic abstractions&lt;/em&gt;.”&lt;/p&gt; &lt;p&gt;-Isaac Newton, probably&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Zoom feels obscenely normal now. It’s become so day-to-day that &lt;a href=&quot;https://www.nationalgeographic.com/science/2020/04/coronavirus-zoom-fatigue-is-taxing-the-brain-here-is-why-that-happens/&quot;&gt;Zoom fatigue&lt;/a&gt; is now a known thing.&lt;/p&gt; &lt;p&gt;But honestly, it’s a miracle every time it works. In the spirit of those &lt;a href=&quot;https://github.com/alex/what-happens-when&quot;&gt;blog posts about what happens when you press enter in your browser&lt;/a&gt;, here’s a (clearly incomplete) list of everything that has to go right for you to have that &lt;em&gt;definitely&lt;/em&gt; pointless 10am Zoom call&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;A note before we begin: many of these will sound ridiculously obvious, and many of you may have always had them. However, across the world, across social classes, and across levels of technical understanding, what is normal for one person may seem like a pure luxury to another. That is part of why I wanted to write this list.&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;h2 id=&quot;hardwareother-services-outside-the-computer&quot;&gt;Hardware/Other Services (outside the computer)&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;You need stable power. If you’re on a laptop or phone, this probably comes from an integrated battery; if you’re on a desktop, it probably comes from mains electricity unless you’re lucky enough to have a UPS.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.iol.co.za/news/world/california-warns-of-possible-load-shedding-as-record-heat-wave-takes-hold-e7f039c8-02dc-443e-90bc-e3d469c65f8e&quot;&gt;Your local electricity system needs to have enough power to meet its customers’ demand&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;The power lines to your house must be intact and undamaged by &lt;a href=&quot;https://time.com/5889332/hurricane-sally-path/&quot;&gt;hurricanes&lt;/a&gt; or &lt;a href=&quot;https://www.nbcnews.com/business/business-news/power-outages-hamper-evacuation-warnings-distance-learning-wildfire-torn-california-n1239858&quot;&gt;fire/the threat of fire&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;More broadly, &lt;a href=&quot;https://www.nytimes.com/interactive/2020/us/fires-map-tracker.html&quot;&gt;your house must not be on fire&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://ourworldindata.org/internet&quot;&gt;You need access to the Internet&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Your Internet service provider must not be having a service outage.&lt;/li&gt; &lt;li&gt;Your Internet service provider must not be experiencing &lt;a href=&quot;https://www.nytimes.com/2020/03/26/business/coronavirus-internet-traffic-speed.html&quot;&gt;unprecedented loads due to COVID&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Your modem/optical network terminal that connects you to your Internet service provider needs to be working.&lt;/li&gt; &lt;li&gt;Most likely, &lt;a href=&quot;https://www.engadget.com/2019-06-18-google-calendar-is-down.html&quot;&gt;your calendar and email services need to be up&lt;/a&gt; to find your Zoom link.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://status.zoom.us/&quot;&gt;Zoom must be up&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Your router needs to be working and perhaps to be &lt;a href=&quot;https://community.verizonwireless.com/t5/My-Business-Account/Actiontec-MI424WR-NAT-Table-Issues/td-p/4686&quot;&gt;capable of handling a large amount of connections from multiple users at the same time&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Either your Ethernet cables have to be in good condition and plugged in properly, or there has to be an unobstructed path to your wifi router without &lt;a href=&quot;https://www.howtogeek.com/209450/how-you-and-your-neighbors-are-making-each-other%E2%80%99s-wi-fi-worse-and-what-you-can-do-about-it/&quot;&gt;too many people using the same channel&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;hardware-inside-the-computer&quot;&gt;Hardware (inside the computer)&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;&lt;a href=&quot;https://www.statista.com/statistics/748551/worldwide-households-with-computer/&quot;&gt;You need a computer&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You need a computer satisfying Zoom’s &lt;a href=&quot;https://support.zoom.us/hc/en-us/articles/201362023-System-requirements-for-Windows-macOS-and-Linux&quot;&gt;minimum hardware requirements&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You need speakers or a pair of headphones.&lt;/li&gt; &lt;li&gt;You need a microphone.&lt;/li&gt; &lt;li&gt;You probably want a webcam, too. &lt;a href=&quot;https://www.digitaltrends.com/computing/webcams-sold-out-where-to-buy/&quot;&gt;That might be a little challenging.&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Your network card needs to be working, without shorts or frayed wires to degrade its performance.&lt;/li&gt; &lt;li&gt;Your hard drive needs to hold Zoom’s application data (and presumably, enough of your operating system to open a Zoom link) without &lt;a href=&quot;https://en.wikipedia.org/wiki/Bit_rot&quot;&gt;bitrotting&lt;/a&gt; or &lt;a href=&quot;https://www.backblaze.com/blog/backblaze-hard-drive-stats-q1-2020/&quot;&gt;failing&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Your graphics card needs to correctly render content without any artifacting.&lt;/li&gt; &lt;li&gt;Your computer processor needs to stably run at its current voltage and clock speed.&lt;/li&gt; &lt;li&gt;If you’re using Bluetooth for your headphones, your headphones need to be charged and working correctly. Same for any wireless keyboard or mouse.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;software&quot;&gt;Software&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;If you’re running Windows, &lt;a href=&quot;https://www.shamusyoung.com/twentysidedtale/?p:50715&quot;&gt;let’s hope you don’t have any Windows updates pending&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/&quot;&gt;Your computer must not be infected with malware that prevents it from starting&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You need enough disk space to install Zoom.&lt;/li&gt; &lt;li&gt;You need to not be running Windows Vista or below, or macOS 10.8 or below.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://wireless.wiki.kernel.org/en/users/Drivers&quot;&gt;Your operating system needs to support your wifi card&lt;/a&gt;, and &lt;a href=&quot;https://itsfoss.com/fix-no-wireless-network-ubuntu/&quot;&gt;you need to have the correct drivers already installed&lt;/a&gt; (remember, you can’t download them just-in-time from the Internet!)&lt;/li&gt; &lt;li&gt;Your operating system needs to support your graphics card, and &lt;a href=&quot;https://wiki.debian.org/NvidiaGraphicsDrivers&quot;&gt;your graphics drivers must be installed&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Your graphics drivers must not be &lt;a href=&quot;https://gitlab.freedesktop.org/drm/amd/-/issues&quot;&gt;buggy or crash&lt;/a&gt; for you.&lt;/li&gt; &lt;li&gt;Your &lt;a href=&quot;https://www.google.com/search?q:explorer+crash+windows&quot;&gt;desktop environment must not crash on you&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You need a &lt;a href=&quot;https://duckduckgo.com/?t:ffab&amp;amp;q:pulseaudio+problems&amp;amp;ia:web&quot;&gt;working audio software stack&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;If you’re using Bluetooth audio, &lt;a href=&quot;https://fosspost.org/linux-bluetooth-problem/&quot;&gt;your operating system must support your Bluetooth chipset&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;If you’re using Bluetooth audio, &lt;a href=&quot;https://www.soundguys.com/understanding-bluetooth-codecs-15352/&quot;&gt;your operating system must support a codec that your headphones use&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Zoom must support your operating system.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://duckduckgo.com/?t:ffab&amp;amp;q:chrome+crashes+on+start&amp;amp;ia:web&quot;&gt;Your browser must be working and not crash&lt;/a&gt;, so you can open your Zoom link.&lt;/li&gt; &lt;li&gt;You must have properly configured Zoom to use the correct webcam, microphone, and speakers.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/Zoom/comments/hba4cq/problems_with_zoom_sso/&quot;&gt;You need to be properly logged into Zoom&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;politics&quot;&gt;Politics&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;&lt;a href=&quot;https://www.nbcnews.com/tech/tech-news/zoom-was-window-through-china-s-great-firewall-it-may-n1230511&quot;&gt;Your government must not have a state-sponsored firewall to block Zoom or any of its dependent services&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://support.zoom.us/hc/en-us/articles/203806119-Restricted-countries-or-regions&quot;&gt;Your government must not have been banned by Zoom for regulatory reasons&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://netblocks.org/&quot;&gt;Your government must not have shut down the Internet due to school exams, isolation, riots, or other events.&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;social&quot;&gt;Social&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;You must not be &lt;a href=&quot;https://www.worldometers.info/coronavirus/&quot;&gt;one of the 939,185 people who have died of the coronavirus as of September 16, 2020&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;Or the &lt;a href=&quot;https://ourworldindata.org/births-and-deaths&quot;&gt;~60 million people who will die each year&lt;/a&gt;. Yeah, uh, in summary &lt;a href=&quot;https://en.wikipedia.org/wiki/Transhumanism&quot;&gt;death is bad and we should try to stop it&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You must not have anything more pressing to do. Which, in today’s world, might not be true.&lt;/li&gt; &lt;li&gt;You must have an environment where it’s safe to do Zoom calls, and where those around you won’t stop you from doing so through harassment or any other means.&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://www.bbc.com/worklife/article/20200421-why-zoom-video-chats-are-so-exhausting&quot;&gt;You probably want a quiet space where you can focus and deal with the social tradeoffs of virtual meetings in comparison to physical interaction&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;And finally: &lt;a href=&quot;https://twitter.com/search?q:don%27t%20want%20to%20go%20to%20zoom&amp;amp;src:typed_query&quot;&gt;you have to want to go to that Zoom call&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;in-summary&quot;&gt;In summary&lt;/h2&gt; &lt;p&gt;There are a lot of external or otherwise uncontrollable factors that mean that someone can’t make it to a call these days. Maybe, we can be a little kinder when someone says they can’t make it?&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;To open-source enthusiasts, Google fanatics, or any other group that would prefer a different videocommunications system: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;s/Zoom/whateveryouwant&lt;/code&gt;. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;The other part is that you can use this as a &lt;em&gt;really&lt;/em&gt; long flowchart, if you want, for why your Zoom call isn’t working. Just kidding. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Wed, 16 Sep 2020 03:05:48 +0000</pubDate> <link>https://kliu.io/post/what-needs-to-work-zoom/</link> <guid isPermaLink="true">https://kliu.io/post/what-needs-to-work-zoom/</guid> </item> <item> <title>Using a Yubikey as a touchless, magic unlock key for Linux</title> <description>&lt;p&gt;Yubikeys are great for security, but their benefits decrease somewhat when you leave them in your computer unattended.&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; I unfortunately have a habit of forgetting my key when I walk away from the computer. I also have login passwords that are way too long and easy to typo.&lt;/p&gt; &lt;p&gt;Thankfully, there’s a way to solve both of these problems: use a Yubikey to unlock your computer when you put it in and lock your computer when you remove it!&lt;/p&gt; &lt;h2 id=&quot;prior-art&quot;&gt;Prior art&lt;/h2&gt; &lt;p&gt;The first example I remember seeing of this concept years ago was &lt;a href=&quot;https://www.predator-usb.com/predator/en/index.php&quot;&gt;Predator&lt;/a&gt;, Windows software (with a delightfully retro website) that locks your computer when you remove a special USB drive. Similar examples for Linux include &lt;a href=&quot;https://wiki.debian.org/pamusb&quot;&gt;pamusb&lt;/a&gt;, which allows you to login using Linux’s PAM by inserting a specially-formatted USB stick.&lt;/p&gt; &lt;p&gt;Of course, nowadays most people use Yubikeys to accomplish this, and Yubico has &lt;a href=&quot;https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html&quot;&gt;convenient guides&lt;/a&gt; on how to accomplish this very task. However, I wanted to make it &lt;em&gt;touchless&lt;/em&gt; – that is, I wanted to be able to plug in my Yubikey and instantly unlock my laptop, without clicking through logins or touching the Yubikey button. Upon removal, I wanted to instantly lock my computer.&lt;/p&gt; &lt;h2 id=&quot;making-it-contactless&quot;&gt;Making it contactless&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt; &lt;p&gt;There are some guides on how to do this online (unlock when you plug in, lock when you remove), but unfortunately most of them fall prey to the problem described in &lt;a href=&quot;https://medium.com/@d0znpp/how-to-sacrifice-security-using-a-public-yubikey-linux-guides-c823c4c6e2&quot;&gt;this article&lt;/a&gt;. A lot of them use udev to detect when the Yubikey is plugged in, but they don’t actually authenticate the key beyond checking its vendor ID, model ID, and sometimes serial number, which all can &lt;a href=&quot;https://forums.anandtech.com/threads/changing-creating-a-custom-serial-id-on-a-flash-drive-low-level-blocks.2099116/&quot;&gt;easily be faked&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;To provide actual security, most official guides use either &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pam_u2f&lt;/code&gt; (which authenticates a Yubikey through the &lt;a href=&quot;https://en.wikipedia.org/wiki/Universal_2nd_Factor&quot;&gt;U2F protocol&lt;/a&gt;) or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pam_yubico&lt;/code&gt; (which uses either online validation through YubiCloud or offline validation through a challenge-response protocol). The U2F method requires a tap on the Yubikey, while the challenge-response process can be done without user interaction, so I went with the latter. I set up traditional Yubikey authentication using &lt;a href=&quot;https://support.system76.com/articles/yubikey-login/&quot;&gt;this great guide from System76&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;However, I still needed some way to test the challenge-response for success when I plugged in the key. Usually, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pam_yubico&lt;/code&gt; is run when you login or unlock your computer (i.e. when pressing the enter key on the lockscreen). But I didn’t want &lt;em&gt;any&lt;/em&gt; clicks, so I needed a way to run it without interaction.&lt;/p&gt; &lt;p&gt;Enter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;udev&lt;/code&gt; (again) and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pamtester&lt;/code&gt;!&lt;/p&gt; &lt;p&gt;Here’s the udev rules I included:&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;kevin@you:~ » cat /etc/udev/rules.d/yubikey.rules ACTION::&quot;remove&quot;, ENV{DEVTYPE}::&quot;usb_device&quot;, ENV{PRODUCT}::&quot;1050/407*&quot;, RUN+:&quot;/usr/local/sbin/ykunlock.sh lock&quot; ACTION::&quot;add&quot;, ENV{DEVTYPE}::&quot;usb_device&quot;, ENV{ID_BUS}::&quot;usb&quot;, ENV{PRODUCT}::&quot;1050/407*&quot;, RUN+:&quot;/usr/local/sbin/ykunlock.sh unlock&quot; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;These rules effectively call a script when inserting and removing the key, so I can trigger any action from the script. Note that the script &lt;strong&gt;should not immediately unlock the computer&lt;/strong&gt;, to avoid the security issues mentioned earlier.&lt;/p&gt; &lt;p&gt;To actually test the challenge-response from the Yubikey on inserting, I decided to use &lt;a href=&quot;http://pamtester.sourceforge.net/&quot;&gt;pamtester&lt;/a&gt;, a simple utility that pretends to trigger a PAM authentication from the command line. Since &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pam_yubico&lt;/code&gt; is installed, this will naturally test the challenge-response if a Yubikey is plugged in.&lt;/p&gt; &lt;p&gt;Here’s the final script:&lt;/p&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;exec &lt;/span&gt;1&amp;gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;(&lt;/span&gt;logger &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;basename&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; 2&amp;gt;&amp;amp;1 &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;RUN&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; : &lt;span class=&quot;s2&quot;&gt;&quot;lock&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then &lt;/span&gt;pkill &lt;span class=&quot;nt&quot;&gt;-USR1&lt;/span&gt; swayidle &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# unlock&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt; | pamtester login kevin authenticate&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# PAM login successful&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# kill locker&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-KILL&lt;/span&gt; &lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;pgrep swaylock&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt; ps aux | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;swaylock &lt;span class=&quot;c&quot;&gt;# turn on displays&lt;/span&gt; SWAYSOCK:&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; /run/user/1000/sway-ipc.&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;.sock&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt; swaymsg &lt;span class=&quot;s2&quot;&gt;&quot;output * dpms on&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;fi fi &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;exit &lt;/span&gt;0 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;On lock, it immediately locks my desktop (by sending a SIGUSR1 to swayidle, the program that manages locking on the Sway window manager)&lt;/li&gt; &lt;li&gt;On unlock, it first sees if it can authenticate using pamtester without interaction (when no Yubikey is inserted or if the key is invalid, pamtester asks for a password). If it can, it kills the lockscreen and turns on all displays using Sway WM protocols.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The final result is amazingly convenient, and has successfully made me remember to pull out my Yubikey when leaving my computer unattended more than once&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;! Mission success.&lt;/p&gt; &lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt; &lt;ol&gt; &lt;li id=&quot;fn:3&quot;&gt; &lt;p&gt;I’ve significantly downgraded this statement in severity after some excellent comments on Hacker News have pointed out that (1) &lt;a href=&quot;https://news.ycombinator.com/item?id:24192390&quot;&gt;stealing a Yubikey is incredibly unlikely unless you’re a person of interest&lt;/a&gt;; (2) &lt;a href=&quot;https://news.ycombinator.com/item?id:24192138&quot;&gt;even if you have the Yubikey, you still can’t directly extract e.g. a private key&lt;/a&gt;; and (3) a &lt;a href=&quot;https://news.ycombinator.com/item?id:24190313&quot;&gt;Yubikey protects against SSH/GPG fraud because it can require a PIN and lock out over time&lt;/a&gt;. Case in point, Yubikeys are good. I’d argue that it’s still not good to have your key stolen (e.g. perhaps if you’re targeted by a government/&lt;a href=&quot;https://news.ycombinator.com/item?id:24194081&quot;&gt;industrial espionage&lt;/a&gt;, or the malicious significant other attack, where they know your password and can steal your key for 2FA if unattended), but I see that it’s not as much of a risk as I originally thought. &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:1&quot;&gt; &lt;p&gt;You might call it Yubikey: Coronavirus Edition. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&quot;fn:2&quot;&gt; &lt;p&gt;Yes, yes, I know there’s not too much of a danger because we’re all stuck at home right now. But who knows – maybe this will be helpful when we &lt;em&gt;eventually&lt;/em&gt; get back on campus. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; </description> <pubDate>Sun, 16 Aug 2020 15:29:28 +0000</pubDate> <link>https://kliu.io/post/yubico-magic-unlock/</link> <guid isPermaLink="true">https://kliu.io/post/yubico-magic-unlock/</guid> </item> <item> <title>How does &quot;Send all to voicemail&quot; actually work, anyway?</title> <description>&lt;p&gt;&lt;em&gt;(Disclaimer: I’m not a mobile network engineer. I made this post after some Googling, because it feels like there’s a lot of complexity in mobile networks that even most computer people don’t talk about!)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Recently, due to increased robocalls and other spam, I’ve decided to switch all of my calling to a Google Voice account I own, whose number appears to be on far fewer contact lists than the number given to me by Mint Mobile, my SIM provider. To do this, I wanted to send all calls on my old number to a voicemail box explaining to call me at the other number. At first, I tried to see if my phone could block calls itself, but failing to find anything, I looked for something on the carrier level.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/mintmobile/comments/behwyb/unconditional_call_forwarding/&quot;&gt;Google reveals&lt;/a&gt; that two magic phone numbers will accomplish this for me:&lt;/p&gt; &lt;blockquote&gt; &lt;ul&gt; &lt;li&gt;Send All To Voicemail - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;**21*18056377456#&lt;/code&gt;&lt;/li&gt; &lt;li&gt;Allow Calls - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;##21#&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/blockquote&gt; &lt;p&gt;I dialed the first number, and lo and behold, all my calls go to voicemail. But how does this work, anyway?&lt;/p&gt; &lt;h2 id=&quot;man-machine-interface-codess&quot;&gt;Man-Machine Interface codess&lt;/h2&gt; &lt;p&gt;The first thing I noticed is that when I called either of the two numbers above, Android gave me a toast saying “Running MMI code.” Eventually, a popup window would show up saying: “Call forwarding [enabled/disabled].”&lt;/p&gt; &lt;p&gt;Further research reveals that MMI codes, or Man-Machine Codes, have actually been established since the 2G mobile specification was created. Here’s a list from a &lt;a href=&quot;https://books.google.com/books?id=uR03kPNyx5UC&amp;amp;pg=PA263&amp;amp;lpg=PA263&amp;amp;dq=mmi+codes&amp;amp;source=bl&amp;amp;ots=5_Xq1--1ii&amp;amp;sig=ACfU3U3fSwls7kaxx5sDWZ3qFaGKNgqBow&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ved=2ahUKEwi17K3n7JHrAhVJmnIEHQciBkEQ6AEwFnoECBIQAQ#v=onepage&amp;amp;q=mmi%20codes&amp;amp;f=false&quot;&gt;delightfully-old scan by Google Books&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://kliu.io/images/call-forwarding-and-mmi/table.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; &lt;p&gt;Essentially, your phone will forward any code it doesn’t know about to your mobile provider, who has servers to handle specific numbered functions. It doesn’t send the actual number to the network though; instead, it &lt;a href=&quot;https://berlin.ccc.de/~tobias/mmi-ussd-ss-codes-explained.html&quot;&gt;gets parsed by the phone and sent out as ASN.1&lt;/a&gt;. (That link also explains the difference between USSD and MMI codes, which is a big rabbit hole that I don’t want to get into.)&lt;/p&gt; &lt;p&gt;“Unconditional call forwarding” is Service Code 21, as visible in the Send All to Voicemail number: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;**21*18056377456#&lt;/code&gt;. It looks like the second parameter after the asterisks is the number to forward to, and &lt;a href=&quot;https://800notes.com/Phone.aspx/1-805-637-7456?&quot;&gt;1-805-637-7456&lt;/a&gt; is T-Mobile’s voicemail box.&lt;/p&gt; &lt;p&gt;Mystery solved! “Send to voicemail” just instructs the network to forward all calls to a voicemail box’s number. It looks like the Allow Calls one just deletes the call forwarding rule.&lt;/p&gt; </description> <pubDate>Mon, 10 Aug 2020 23:56:54 +0000</pubDate> <link>https://kliu.io/post/call-forwarding-and-mmi/</link> <guid isPermaLink="true">https://kliu.io/post/call-forwarding-and-mmi/</guid> </item> </channel> </rss>