{"id":237,"date":"2025-08-25T10:25:06","date_gmt":"2025-08-25T08:25:06","guid":{"rendered":"https:\/\/sandrock.co.za\/carl\/?p=237"},"modified":"2025-08-25T10:25:06","modified_gmt":"2025-08-25T08:25:06","slug":"novelty-is-easy-quality-is-hard","status":"publish","type":"post","link":"https:\/\/sandrock.co.za\/carl\/2025\/08\/novelty-is-easy-quality-is-hard\/","title":{"rendered":"Novelty is easy, quality is hard"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I am often surprised when people claim that &#8220;AI can&#8217;t make anything truly new&#8221;. I think making new things is very easy<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s try generating some novel text:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">fHabBiCcABnqjSAIysqcyJAnCTWCIk<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s very novel. I used Python to produce random letters:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#839496;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import random\nimport string\n\nprint(''.join(random.choice(string.ascii_letters) for _ in range(20)))<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-dark\" style=\"background-color: #002B36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #859900\">import<\/span><span style=\"color: #839496\"> random<\/span><\/span>\n<span class=\"line\"><span style=\"color: #859900\">import<\/span><span style=\"color: #839496\"> string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #268BD2\">print<\/span><span style=\"color: #839496\">(<\/span><span style=\"color: #2AA198\">&#39;&#39;<\/span><span style=\"color: #839496\">.join(random.choice(string.ascii_letters) <\/span><span style=\"color: #859900\">for<\/span><span style=\"color: #839496\"> _ <\/span><span style=\"color: #859900\">in<\/span><span style=\"color: #839496\"> <\/span><span style=\"color: #268BD2\">range<\/span><span style=\"color: #839496\">(<\/span><span style=\"color: #D33682\">20<\/span><span style=\"color: #839496\">)))<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"> Oh, but those aren&#8217;t even words, you say? OK, let&#8217;s try again:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">anthocyan Delhi iliococcygian methodologically opah reapparel pretimely humoristic Jingbai specks<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This was made by randomly selecting words from my system dictionary.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#839496;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import random\nimport pathlib\n\nwords = pathlib.Path('\/usr\/share\/dict\/words').read_text().splitlines()\nprint(' '.join(random.choice(words) for _ in range(10)))<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-dark\" style=\"background-color: #002B36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #859900\">import<\/span><span style=\"color: #839496\"> random<\/span><\/span>\n<span class=\"line\"><span style=\"color: #859900\">import<\/span><span style=\"color: #839496\"> pathlib<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #839496\">words <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #839496\"> pathlib.Path(<\/span><span style=\"color: #2AA198\">&#39;\/usr\/share\/dict\/words&#39;<\/span><span style=\"color: #839496\">).read_text().splitlines()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #268BD2\">print<\/span><span style=\"color: #839496\">(<\/span><span style=\"color: #2AA198\">&#39; &#39;<\/span><span style=\"color: #839496\">.join(random.choice(words) <\/span><span style=\"color: #859900\">for<\/span><span style=\"color: #839496\"> _ <\/span><span style=\"color: #859900\">in<\/span><span style=\"color: #839496\"> <\/span><span style=\"color: #268BD2\">range<\/span><span style=\"color: #839496\">(<\/span><span style=\"color: #D33682\">10<\/span><span style=\"color: #839496\">)))<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Very novel. I now hear someone say that this is not a well-formed English sentence. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We now stand at a crossroads. We can enforce the structure of a sentence (something like &#8220;the &lt;noun> &lt;verb>ed the &lt;noun>&#8221;) or we could work statistically off some corpus with simple Markov chains. These simple Markov processes can generate some surprisingly readable text (without using any rules about the english language). Here&#8217;s a snippet that was on top of the <a href=\"https:\/\/www.tumblr.com\/kingjamesprogramming\">kingjamesprogramming<\/a> tumblr site when I went there. This was generated by a Markov process trained on the King James bible and &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Structure_and_Interpretation_of_Computer_Programs\">The structure and interpretation of computer programs<\/a>&#8220;.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">then shall they call upon me, but I will not cause any information to be accumulated on the stack.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m pretty sure that&#8217;s a novel thought. But we&#8217;re starting to get to what people would perhaps agree is a sentence but start objecting to more on semantic grounds. Does this sentence mean anything? Is it true?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If we go down the &#8220;The noun verbed the noun&#8221; route, we end up with a slightly different feeling. A feeling of &#8220;sameness&#8221;. I think often this is what people react to when they spend a bit of time conversing with ChatGPT. It&#8217;s not the novelty of the words or even ideas they&#8217;re responding to, it&#8217;s more the sameness of the vibe. Something that in people could be called their writing voice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a very deep concept, but can also be circumvented by leaning harder into randomness. In the GPT API, you can increase the parameter called &#8220;temperature&#8221; to get some more &#8220;out there&#8221; combinations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the end we&#8217;re back to the same thing: It&#8217;s not the novelty that&#8217;s the problem. It&#8217;s the quality.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am often surprised when people claim that &#8220;AI can&#8217;t make anything truly new&#8221;. I think making new things is very easy Let&#8217;s try generating some novel text: fHabBiCcABnqjSAIysqcyJAnCTWCIk That&#8217;s very novel. I used Python to produce random letters: Oh, but those aren&#8217;t even words, you say? OK, let&#8217;s try again: anthocyan Delhi iliococcygian methodologically [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-237","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/posts\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/comments?post=237"}],"version-history":[{"count":1,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/posts\/237\/revisions"}],"predecessor-version":[{"id":238,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/posts\/237\/revisions\/238"}],"wp:attachment":[{"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/media?parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/categories?post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sandrock.co.za\/carl\/wp-json\/wp\/v2\/tags?post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}