Summary of GPT-4 Technical Report

I fed the 100 page GPT-4 Technical Report to the Kagi Universal Summarizer and this is what it came up with:

The PDF document discusses the development, capabilities, limitations, and safety challenges of the GPT-4 language model. The main goal of developing such models is to improve their ability to understand and generate natural language text, particularly in complex and nuanced scenarios. GPT-4’s capabilities and limitations create significant safety challenges, and the document emphasizes the importance of studying these challenges due to their potential societal impact.

The document compares GPT-4 with the best state-of-the-art (SOTA) models and highlights the model’s safety improvements. The approach to safety consists of two main components: safety-relevant RLHF training prompts and rule-based reward models (RBRMs). These mitigations have significantly improved many of GPT-4’s safety properties. However, it is essential to complement these improvements with deployment-time safety techniques like monitoring for abuse and a pipeline for fast iterative model improvement.

The document also discusses the safety challenges presented by the model’s limitations (e.g., producing convincing but subtly false text) and capabilities (e.g., increased adeptness at providing illicit advice, performance in dual-use capabilities, and risky emergent behaviors). To understand these risks, over 50 experts were engaged to gain a more robust understanding of the GPT-4 model and potential deployment risks.

The document acknowledges the need for anticipatory planning and governance, as well as the importance of focusing on safety challenges to motivate further work in safety measurement, mitigation, and assurance. It also highlights the need for developers to adopt layers of mitigations throughout the model system, ensure safety assessments cover emergent risks, and engage in collaborative safety research.

In conclusion, the document emphasizes the importance of understanding and addressing the safety challenges posed by the GPT-4 language model, as both its improved capabilities and limitations can have significant implications for the responsible and safe societal adoption of these models.

Key Points:

– GPT-4 is designed to improve the understanding and generation of natural language text, especially in complex and nuanced scenarios.

– The development of GPT-4 presents significant safety challenges due to its capabilities and limitations, necessitating careful study and research to mitigate potential societal impact.

– OpenAI is committed to independent auditing of its technologies and plans to share technical details with third parties to ensure transparency and safety.

– GPT-4’s safety approach consists of two main components: safety-relevant RLHF training prompts and rule-based reward models (RBRMs).

– Mitigations have significantly improved many of GPT-4’s safety properties, but deployment-time safety techniques like monitoring for abuse and fast iterative model improvement are still necessary.

– Microsoft has been a key partner in the development of GPT-4, providing support for model training, infrastructure design, and management, as well as partnering on safe deployment.

– GPT-4’s reward model (RM) training involves collecting comparison data where labelers rank model outputs, and the reward is used to update the policy using the PPO algorithm.

– GPT-4 presents safety challenges due to its limitations (e.g., generating subtly false text) and capabilities (e.g., providing illicit advice, dual-use capabilities, and risky emergent behaviors).

– Anticipatory planning and governance are crucial to address the risks associated with GPT-4, and further work in safety measurement, mitigation, and assurance is needed.

– Developers using GPT-4 should adopt layers of mitigations throughout the model system, ensure safety assessments cover emergent risks, and provide end users with detailed documentation on the system’s capabilities and limitations.

Roll ’em

I needed images representing dice rolls for a side project I have been working on. While I thought I would find something reasonable, all the images I could turn up either didn’t look very good, or had a license I didn’t want to work with, or I couldn’t figure out the license. That left me in a bit of a pickle because I have no graphical talent at all.

It occurred to me to check whether ChatGPT knew how to make SVG graphics, and it turned out that it did! It took me quite a while to get the prompts right, there was a lot of back and forth where I would fix one problem, and ChatGPT would revert some other change. This experience probably deserves its own post, but suffice it to say that while I got what I needed, I might have been better off using Fiverr.

Here is the result:

They’re rendered at 400×400, so they look decently sharp when scaled down to smaller sizes. I’m pretty happy with them. I’ve rendered out a set for each of the CSS colours. Download the whole set here, released under a Creative Commons license.

Text of my letter to Counsillor Alvin Finch, Priestwood and Garth, Bracknell

Dear Alvin Finch,

I have just written to James Sunderland MP about the Conservative government, your governments, Health & Social care bill and what it will do to the NHS. The text of my letter is here:

As a Conservative counsillor I wonder if you are happy with your MP supporting the destruction of the NHS in all but name & clap, and ushering in an era of US style private medical services & insurance?

You may think constituents “don’t mind NHS privatisation” but they haven’t seen the bills yet. Or what it would cost them to insure themselves and their families.

You may think it’s right for private companies to have a role in the NHS, I don’t feel strongly either way, but I do feel strongly that if you remove the duty of the government to provide hospital services that can only be interpreted one way.

Do all you counsillors, your friends & family, have amazing private medical insurance? If not, you might want to worry about what this will do to people you care about.

Perhaps you could have a word with Mr Sunderland and your party colleagues about this and about the possible blowback of enabling profit & corruption off the backs of the sick?

Yours sincerely,

Matthew Mower

Text of my letter to James Sunderland MP about the Health & Social Care Bill

Dear James Sunderland,

I am writing in regard to the governments Health & Social Care bill and in particular some key concerns that have been raised:

1) Removal of statutory duty to arrange provision of secondary (e.g. hospital) medical services.

The only possible reason to want to remove a duty to arrange provision is because you don’t want to arrange provision, i.e. you want to reduce the provision of free healthcare and allow private medical companies & private insurance companies to grow. The Conservative government want to turn people being sick into a profit centre for their mates in private medical. How do we know this?

2) Removal of the obligation for public tendering for NHS services allowing ministers to circumvent normal procurement rules.

So, the VIP lane writ into law. Mates of the Health Secretary, or the Cabinet Secretary, or the Home Secretary or heaven only knows maybe your mates will be able to lobby that they should get a contract. We’ve seen with the PPE scandal how that works out. Billions of tax payer money “spaffed up the wall” by friends of the party regardless of whether they provide a service or whether it’s a shoddy service that they provide.

3) Provision to enable private companies to sit on ICS boards with no maximum representation while local authorities representation is strictly limited. So local people have no voice in how local services are run while the people profiting from them get unlimited say. Great to ensure there are no dissenting voices getting in the way of making a buck.

I could go on.

This bill ends the NHS in all but name & clap. It ushers in US style private health care and bungs to mates of the party.

You said you were happy with your stance on Owen Patterson and letting Tory MP’s police their own standards. Is this okay with you too?

Would you be happy explaining to your constituents your support for ending the NHS.

If not, what will you do? What will you do to safeguard the NHS for your constituents in Bracknell?

Yours sincerely,

Matthew Mower

Text of my letter to James Sunderland MP regarding Owen Patterson / Corruption

Dear James Sunderland,

I am writing to you to express my disgust at your voting to whitewash Owen Patterson’s corrupt record and destroy independent oversight of MPs.

Own Patterson received payments from companies that he lobbied for to get government contracts without bidding. The commissioner has demonstrated that this is corrupt. Perhaps you think that is okay? If so, that says something damning about your moral compass. You and the rest of your ilk have also voted to make it okay for other MP’s to be corrupt. Perhaps you think that is okay too?

And we know why you did this. Boris Johnson. Who runs afraid of his own record being scrutinized. Remember Jennifer Accuri? Because we do. Remember expensive holidays and flat renovations? Because we do. You’re old enough to remember sleaze bringing down a past government. Perhaps you and your fellow MP’s should reflect on that and your chosen “leader”.

I look forward to the next election. You may think of yourself in a safe seat but I am determined to do my bit to remind the people of Bracknell of your record here and the shameful thing you have done to besmirch your good office.

And I am not alone.

I shall also be writing in the same terms to all of the Conservative councillors in Bracknell to ensure they also know what I think of their MP.

Please do me the courtesy of not sending me some pat PR release from Conservative HQ. Either do me the courtesy of replying yourself or wait for the judgement of the ballot box.

Yours sincerely,

Matthew Mower
A disgusted constituent.

What we lost (a paean, perhaps, to RSS)

Recently Dave Winer has been posting thoughts about using tags (some of us old-timers used to call them ‘topics’) in his blog. This is more than a little bit poignant because I have a history here, and Dave started it with Radio Userland and RSS.

Back in 2003, Paolo Valdemarin and I built a product called k-Collector which was an offshoot of a tool, liveTopics, that I had built for my Radio based blog “Curiouser and Curiouser” (the v1.0 of this one).

While the notion of categories was already a feature of blogs & RSS, liveTopics was I think a first in that it allowed a user to add topics to posts, to publish per-topic RSS feeds, and even to create a tagged index of posts. Thanks to the magic of the Wayback Machine you can still see this stuff, even though that blog is long gone.

Then k-Collector took this notion to the next level by connecting together the topic-based feeds of a community of blogs and creating a collective view, based on shared tags. We published a service W4 for a while. Again the magic of the Wayback Machine means you can still see it (the related topics still work and even the topic filters!)

To feed k-Collector we needed a way to transport tags through RSS. So Paolo and I invited Easy News Topics (ENT) as an RSS2.0 module to do the work. Whereas liveTopics only worked with Radio Userland, now anyone could play by simply putting their tags in their RSS feed.

k-Collector was too revolutionary for 2004. Companies did not routinely blog at that time, let alone see the value of their employee’s blogging about their experiences and challenges, didn’t see the value of connecting the dots. Sad that.

Today k-Collector would not be possible. That alternative future where everyone started blogging and putting their content in RSS2.0 feeds that we could analyse to connect those conversations did not happen.

Instead Facebook Workplace, Slack, and a host of other silo’s took hold of the future and, no matter what good they may have done, we’ve all lost out.

Applications as Platforms

I had an interesting exchange with David Buchan over the weekend regarding Mentat.

I’ve done a very bad job articulating, even to myself, what Mentat is supposed to be. This monograph attempts to lay out the foundations of that.

Applications have become a very common part of our life. I spend a big chunk of every day in my web browser or email applications as I guess you do. Unless you are a developer you probably don’t think too much about them except for the odd gripe or chafing when they don’t work the way you would like.

Every application is a function of a series of choices, made by the developers, about how they should work. Those choices are themselves a function of a series of beliefs about what their application should be.

To the extent that your beliefs about what any given application is for, and your preferences about how to do the work, mirror those of the developers you are likely to be more or less happy with your experience.

This leads to a situation in which some applications are arbitrarily limited by their developers. The developers simplify what is possible into a set of (they hope) good choices that will suit the most users. For those users, the lack of available choices can be a blessing as the application feels like it fits them.

However, if you’ve had the experience of working in such an application when it doesn’t match your preferences — it can feel painful, cramped, unintuitive. It is, I’ve always suspected, how left-handed people feel when given right-handed scissors.

At the other extreme are applications that can be extensively customised. That is to say that if you don’t like the default behaviour of the application, that behaviour can be changed to better suit your preferences.

The downside of this approach is complexity. Every choice must be customised and that can lead to a mess of configuration choices that are hard to understand or predict. We can see the difference if we consider the configurability of two popular text editors (and not counting those options relating to fonts, style, or programming language syntax):

TextEdit — 26 preference choices

Sublime Text — 113 preferences

Sublime Text can be extensively customised but at the cost of a much steeper learning curve compared to TextEdit since you have to understand what those options do and how they interact with each other and with the tasks you are trying to perform.

If you are spending a lot of time in your editor (as developers, a prime target for Sublime Text, often do) then it can be worth it as you may, ultimately, become far more productive at editing tasks than someone who sticks with TextEdit.

While there is a huge difference in the kind of text editor they are, both TextEdit and Sublime Text are definitely text editors. You wouldn’t suddenly find yourself reading your email or doing your taxes in either of them.

Doing your taxes is maybe a stretch but reading & writing emails. Why wouldn’t you use your favourite editor for handling what are, for the most part, text editing tasks?

Well probably because the developers decided that being an email client was not an important part of being a text editor. This is about the choice of what an application should be. It’s purpose.

Emacs is another text editor that, like Sublime Text, offers a huge amount of possibilities to customise its behaviour. But there is something else about Emacs that sets it apart even from editors like Sublime Text: Emacs is also a platform.

In the computing world, a platform is something that you can build applications upon. For example, macOS is a platform. It an environment (which is a kind of Application we experience as a widow) that offers a rich set of APIs on which other applications, like TextEdit, can be constructed. But TextEdit is not a platform. You can’t build anything new on top of TextEdit. It will always be a text editor.

So when I say that Emacs is a platform what I mean is that it provides the infrastructure on which other things can be built. In this example, Emacs is really two things sharing one name: Emacs the platform & Emacs the text editing application that runs on Emacs the platform.

The macOS platform provides the Objective-C (and Swift) languages and the Cocoa API to create applications that run within it. The Emacs platform provides the Emacs Lisp language and APIs for displaying & managing text to create applications that run within it.

Much of the behaviour of Emacs the editor is written in Emacs Lisp. If you don’t like how the editor works it is possible to change the source code and alter its behaviour at a fundamental level. Or if you want to do something completely different you can write new source code to create new functionality and new applications that live within it. Indeed people have written email clients, outliners, and even web browsers inside Emacs!

Another example, that is less well known but closer to my heart, is Radio Userland written by Dave Winer. Radio was an application for reading RSS feeds and publishing a blog. But, under the hood, both of these were implemented atop the Frontier platform with its Usertalk language.

This meant that Radio could be extensively customised, re-written, and extended to handle new needs. And lots of us did that. In my case, we built a tagging framework on top of Radio that allowed us to create an online service for the semantic aggregation of blogs.

All of which brings me back to Mentat (If you got this far I guess you are wondering where I am going with this).

There are lot of applications for managing structured and semi-structured knowledge of different kinds. But, like TextEdit, they are applications. Their purpose and their behaviour, while customisable to a greater or lesser degree, is fixed.

For example we could see a ‘To Do’ list as a form of semi-structured information. What I mean by ‘semi-structured’ is that there is an overall shape to a ‘To Do’ list but within that there may be a lot of flexibility about an item in the list.

It seems like every week someone launches a new To Do list management app which has a slightly different twist on the purpose and bundles a different set of features to fit a different kind of audience. Some are simple like the iOS Reminders app, good for remembering what to buy at the supermarket, some are complex like Asana, good for coordinating large projects involving dozens or hundreds of people.

Email too is semi-structured. You have an inbox that contains a list of messages and each message has metadata fields (e.g. ‘From’, ‘Subject’, ‘Sent’) and a body that could contain anything. There are dozens and dozens of different email clients again ranging from the simple to the complex.

Semi-structuredness is not, I think, binary but a spectrum. A novel or a poem could be considered unstructured as it is a flowing series of words and punctuation and authors often play with the format. On the other hand, a novel could be considered to be structured in that it’s words under chapter headings and those chapters create a structure. File formats like SGML & XML are attempts to map structure onto essentially unstructured text.

In my own realm, I have discovered an explosion of semi-structured information that I try to grapple with and make use of. Things like facts (though I might not formally label them as such), notes, to do’s, links, bookmarks, books, and especially questions. I do like a good question.

Over the years I have been through many different applications that attempt to help me wrangle such things. They have been successful or unsuccessful to some degree as they have fit my needs or not. But none has ever truly stuck.

Right now I am making a lot of use of Roam Research which describes itself as ‘A note-taking tool for networked thought.’ In practice Roam is a browser-based outliner, editor, and cross-referencing tool. It is very good at what it does and, indeed, it caused me a big problem for Mentat because it did some of the core things I wanted to so well that I signed up for 3 years and more or less abandoned Mentat.

However I can already see the cracks. The developers of Roam have a vision in mind and… it’s not my vision. They have a set of priorities for what they work on and… it is not my set of priorities. Decisions made in how Roam is implemented have serious consequences for how it can be used.

As much as I use Roam now and think it’s a great app, I can’t see myself using it 5 years time and certainly not in 10. But do I think that semi-structured information will still be important to me then?

There’s one other thing about Emacs that I think is worth mentioning. It was first released in 1976 and has been in constant development to this day. In 1986 GNU Emacs was released that included the Emacs Lisp language making Emacs truly a platform. While there have been many changes a user of Emacs today would recognise the same application from 30+ years ago. If you learned Emacs in 1986 you could still be using it today.

My conjecture is that this is because Emacs is a platform that exposes much of its funtionality via Emacs Lisp. This means that the applications built on the platform can be customised to fit the needs of the user of the platform and that they can evolve as those needs shift.

Evolution is perhaps the missing aspect of applications vs. platforms. When something is delivered as a platform it allows the user a great latitude to customise applications to fit their needs and to evolve those applications as their needs change.

What I have not found to this date is a credible platform for working with (both individually and in a group) semi-structured information on which I can build the kinds of application that I want to use, working the way I want to use them, and evolving with my own agenda (which has also changed drastically over the years).

I want a platform that, like Emacs, could still be relevant and useful thirty years from now!

Mentat then is an attempt to create such a platform. To create a platform that can store, manipulate, receive/transmit, and visualise semi-structured information and an environment for building applications that depend upon the information stored.

My problem with browsers

In this post I am going to outline the challenge that I face in using browser to do my work. In a future post I will draw together some ideas about what I can do about it.

I am one of those people who routinely has 200 or more open tabs in my browser, spread across several windows. I realise I am a degenerate case but there we are, I don’t seem likely to change.

But browsers like Chrome, Safari, and Brave even though they are mostly capable of handling this aren’t designed for you to work with hundreds of tabs. You end up with things like this. Not, I would argue, very useful.

Tabs don’t work past a certain limit.

Then again bookmarks, either in the browser or using services like, are not a very effective approach to dealing with the problem. I can use them to “hide” tabs … but I find that I either forget about them entirely and lose track of what I was looking in to, or I feel uncomfortable because something is hidden from me. History isn’t a great tool here either; it’s like bookmarks but worse, especially since Chrome only holds on to history for 3 months!

The problem is one of doing research, across a range of threads, and multiple open loops.

For example, I am:

  • Researching business models for a guide I am writing for work (2 weeks+)
  • Exploring a range of topics related to the Elixir programming language, Ecto database layer, and Phoenix web stack (3 months+)
  • Carrying on a long-term research project about business strategy (2 years+)
  • Keeping up on current news (day-to-day)
  • Looking into how to do customer success in a SaaS context (4 weeks+)
  • Researching and building parser combinators (2 months+)
  • Sketching the outline and business model of a new application (5 months+)
  • Working on a pitch deck (3 months+)
  • Looking at some Minecraft resources (12 months+)
  • Exploring pricing & pricing support services (6 months+)
  • Learning Postgresql (2 weeks+)
  • Exploring how teams think about strategy together (6 months+)

I mean there are more threads than this, but I’d have to spelunk a lot more tabs to cover it fully. Some of my tabs will be over a year old (about when Chrome last lost everything). A tab in this context represents the current, dangling, end of a train of thought.

Some of these trains of thought have been going on for years. Browser sessions are pretty ephemeral and they don’t very well respect my approach. Sometimes the browser dies and takes a hundred or more tabs with it. Sometimes I get them back, sometimes I don’t. Sometimes I end up with a duplicate window and have to weed.

You could say “don’t do this” and maybe you’d be right for you but this is how I am. I’m not going to fight it. That means I need to find a way to adapt the tools to work better for me.

See also: Browser tabs are probably the wrong metaphor


After 30+ years I am playing Dungeons & Dragons again. I got invited to join a 5e campaign and am having a lot of fun learning to role-play again and enjoying being in the (virtual-)company of a bunch of nice, enthusiastic, people again.

I’m playing an Elven Assassin to round a party that’s a bit magic-user heavy (even the front-line tank is Paladin with spells). I’ve chosen to be chaotic neutral rather than evil, so assassination is mostly a kind of moral flexibility and my assisting the party is a whim.

Thank you Martin for inviting me to play.


I cut my blogging teeth in Radio Userland, an application created by Dave Winer. One of the key ideas was “user radio” that any fool could broadcast their thoughts.

Something key to enabling this was Radio’s “upstreaming” feature. In 2000 this was a pretty freaky idea. You put a file in a folder on your local machine and… poof!… a few seconds later it was on the web with a permalink (well, as permanent as your site was anyway). It just worked.

Later Dropbox would implement the same idea with it’s “Public” folder. In a pretty hostile move, they would then yank that feature out of the product and force you to share things one by one which isn’t remotely as useful.

When I think about Mentat I imagine making sharing things as easy as Radio’s upstreaming feature. In my context, I am not dealing with files, but the same idea applies. Make it super easy to share things you want to share.

Radio remains an inspiration so many years later.