Skip to content

Blog

Limity programování s asistencí AI

Nedávno jsem psal o tom, jak se díky nástupu jazykových modelů postupně mění role vývojáře. Jon Gjengset, autor knihy Rust for Rustaceans, nabízí pohled na jeden z limitů, na které umělá intelince, resp. algoritmy strojového učení, naráží (viz jeho lednové Q&A (zvýraznění níže je moje)):

I think in particular where [machine learning] works really well is when you have either pattern matching or pattern recognition, where you have a lot of data to source those patterns from. So I don’t generally think of machine learning as being smart. I think of it as being really good at spotting patterns that people have seen before, or replicating patterns that have been seen before. And that could include combining patterns in—let’s call them—novel ways, but at least combining them in some way that might appear novel.

I think there are a number of maybe surprising areas where this works really well. One of them is code generation. I don’t use it a lot for my coding, and there are a couple of reasons for that, but one that I’ve touched on in the past is that the code I tend to write now, and the code I was writing at AWS, and the code I was writing during my PhD, was not very standard, for lack of a better word. Like, most of the code—it is unclear if anyone had written quite that code before. That’s not the case for a lot of software development.

Upgrade blogu pomocí Material for MkDocs

Jak už jsem psal dříve, Simon Willison mě inspiroval začít psát blog. Jelikož jsem si nebyl jistý, jestli u toho dlouhodobě vydržím, snažil jsem se celou akci maximálně zjednodušit. Pro hosting jsem využil GitHub Pages, protože jsou zdarma, a dokáží pěkně vyrendrovat obyčejný Markdown. Není tedy třeba psát žádný HTML kód, řešit šablony apod. Člověk se může hned soustředit na psaní a na celý blog ve finále stačí README.md.

Zároveň jsem v té době řešil problém se svým CVčkem: měl jsem ho sice pěkně vysázené pomocí Scribusu (open-source obdoba Adobe InDesign), ale upravovat ten dokument byla docela pruda. Hodil by se mi nějaký formát - obyčejný texťák, který by šel snadno verzovat, a zároveň by vypadal slušně při tisku. Zde se opět osvědčil Markdown, který je navíc v souladu s filozofií, že soubor je víc než aplikace. Do hlavičky blogu mi tedy přibyl odkaz na cv.md, které jde pomocí webového prohlížeče snadno převést do PDF i vytisknout. Skvělé.

Jak se ale blog začal rozrůstat, bylo na čase začít řešit jednotný vzhled stránek, prolinkování, tvorbu náhledů, tagování apod. Při hraní si s knihovnou Textual (tvorba sofistikovaných TUI) jsem narazil na jejich blog, který využívá Material for MkDocs.

Měnící se role vývojáře

V diskusích z vývojáři občas zaznívá, že se místo psaní kódu stávají spíše 'prompt operátory'. Níže přidávám několik souvisejících postřehů z blogu Simona Willisona. Případná zvýraznění jsou ode mě.

Nejprve komentář k odporu zaměstanců Amazonu více využívat generativní AI:

“It’s more fun to write code than to read code,” said Simon Willison, an A.I. fan who is a longtime programmer and blogger, channeling the objections of other programmers. “If you’re told you have to do a code review, it’s never a fun part of the job. When you’re working with these tools, it’s most of the job.” [...]

It took me about 15 years of my career before I got over my dislike of reading code written by other people. It's a difficult skill to develop! I'm not surprised that a lot of people dislike AI-assisted programming paradigm when the end result is less time writing, more time reading!

“If you’re a prototyper, this is a gift from heaven,” Mr. Willison said. “You can knock something out that illustrates the idea.”

Rapid prototyping has been a key skill of mine for a long time. I love being able to bring half-baked illustrative prototypes of ideas to a meeting - my experience is that the quality of conversation goes up by an order of magnitude as a result of having something concrete for people to talk about.

These days I can vibe code a prototype in single digit minutes.
-- Simon Willison

Využít vibe coding k prototypování mi přijde jako skvělý nápad. Myslím, že jedním z důvodů, proč lidé tuto možnost nevidí, a automaticky jej zavrhují, je jakási nejasnost nebo zmatení pojmů. Dokonce jsem se setkal s názorem (na konferenci o generativní AI ve vzdělávání), že vibe coding je nebezpečný, protože vede k nasazování software s potenciálními bezpečnostními chybami, klidně i na produkci. Když jsem se snažil vysvětlit, že jej přece můžu využít jen na rychlou tvorbu prototypů, kde jsou rizika minimální, bylo mi odpovězeno, že to není vibe coding. Myslím, že jakékoliv diskusi týkající se umělé inteligence by hodně pomohlo nejprve si ujasnit pojmy, abychom si rozuměli.

Systém je důležitější než model

The first observation is really that language models are awesome, but often they're only 20% of a much bigger system. If you have an Enterprise AI deployment, usually that means it's a RAG system. [...] RAG is really kind of the standard way that you get generative AI to work on your data.

What happens very often these days is a new language model comes out, and everybody goes, "Whoa, new language model, it's great!" Everybody starts to think just about the language model, but very few people actually think about the system around the language model. That system needs to solve the problem. You can have a relatively mediocre language model but an amazing RAG pipeline around it, and that's going to be much better than an amazing language model with a terrible RAG pipeline around it.

The basic observation here or the lesson is that you should be thinking about systems, not about models. The model is only a small part of the system, and the system is the thing that solves the problem.
-- Douwe Kiela: "RAG Agents in Prod: 10 Lessons We Learned"

Chatbot jako partner při čtení

How I use LLMs: Andrej Karpathy mě inspiroval využít chatbota jako partnera/pomocníka při čtení nějakého složitějšího textu. Důležité je nespoléhat na znalosti daného modelu, ale poskytnout mu kontext, např. uvést, co čtu a rovnou poskytnout text konkrétní kapitoly. V tomto případě jsem se pustil do knihy The Intelligent Investor od Benjamina Grahama, která mi dlouhodobě odolávala. (Text knihy není volně k dispozici. Na druhou stranu, knihu jsem si koupil a společnost Anthropic tvrdí, že v rámci předplatného Claude Pro své modely na vstupech netrénuje, takže, pragmaticky, v tom až takový nevidím problém.)

Některá místa 50 let starého textu nejsou snadná na porozumění. Chatbot může dodat dobový kontext nebo varianty vysvětlení. Hodně mi pomáhá možnost se na různé věci doptávat, nebo se na obsah podívat z jiného úhlu. Např. jsem Clauda (3.7, extended thinking) požádal, aby zkusil aplikovat principy inteligentního investování (v protikladu k emočnímu, impulzivnímu spekulování) na oblast vzdělání a osobního rozvoje:

Prompt (v rámci delší konverzace):

Let's consider [the concept of] tangible-asset value and margin of safety when investing into non-financial stuff, like education. For example, I'm considering an investment of my time and effort into the area of artificial intelligence. Can you find any paralels?

Nespoléhejme na "AI detektory"

Stále se setkávám se snahou vypořádat se s nástupem generativní AI nasazením tzv. AI detektorů:

This software aims to flag AI-generated content in student work. However, AI detection software is far from foolproof—in fact, it has high error rates and can lead instructors to falsely accuse students of misconduct (Edwards, 2023; Fowler, 2023). OpenAI, the company behind ChatGPT, even shut down their own AI detection software because of its poor accuracy (Nelson, 2023).
-- AI Detectors Don’t Work. Here’s What to Do Instead

Open Weights vs Open Source AI

Deep Dive audio overview (vygenerováno z článku odkazovaného níže pomocí NotebookLM):


Open Weights: not quite what you’ve been told: Článek ukazuje, že "open-source" a Open Weights modely nejsou jedno a totéž. Open Weights znamená přístup k finálním parametrům daného modelu, nikoliv však ke kódu použitému k vytvoření tréninkového datasetu, ani k datasetu samotnému, nebo alespoň k jeho detailnímu popisu pokud není možné z právních důvodů dataset zveřejnit. Open Weights modely je tak velmi těžné, né-li nemožné replikovat, auditovat, porozumět procesu jejich tréninku a tím pádem i všem aspektům jejich chování (např. skrytý bias).

Mark Zuckerberg o Chatbot Aréně

Už dříve jsem psal o ohýbání LM Arena (Chatbot Arena) Leaderboardu. Zuckerberg otevřeně přiznává, že upravili model tak, aby v žebříčku uspěl:

You also mentioned the whole Chatbot Arena thing, which I think is interesting and points to the challenge around how you do benchmarking. How do you know what models are good for which things?

One of the things we've generally tried to do over the last year is anchor more of our models in our Meta AI product north star use cases. The issue with open source benchmarks, and any given thing like the LM Arena stuff, is that they’re often skewed toward a very specific set of uses cases, which are often not actually  what any normal person does in your product. [...]

So we're trying to anchor our north star on the product value that people report to us, what they say that they want, and what their revealed preferences are, and using the experiences that we have. Sometimes these benchmarks just don't quite line up. I think a lot of them are quite easily gameable.

On the Arena you'll see stuff like Sonnet 3.7, which is a great model, and it's not near the top. It was relatively easy for our team to tune a version of Llama 4 Maverick that could be way at the top. But the version we released, the pure model, actually has no tuning for that at all, so it's further down. So you just need to be careful with some of these benchmarks. We're going to index primarily on the products.
-- Mark Zuckerberg: Meta's AGI Plan (via)

Open WebUI jako rozšíření pro Rancher Desktop

V článku o AI Sandboxu jsem zmínil Open WebUI jakožto flexibilní rozhraní (chatbota) pro komunikaci s různými modely generativní AI. Nyní jsem zjistil, že je k dispozici i formou rozšírení pro Rancher Desktop (a dokonce je součástí platformy SUSE AI).

Musím říct, že instalace rozšíření nebyla úplně přímočará. Nainstaloval jsem Rancher Desktop a kliknul na instalaci rozšíření. Ta ale nedoběhla a zůstala tzv. viset, což je trochu nešťastná první zkušenost. Po restartu celé aplikace už ale instalace doběhla v pořádku. Líbí se mi, že Open WebUI běží přímo v okně Rancher Desktopu, takže se není potřeba nikam přepínat. Není ani potřeba vytvářet nového uživatele, vytvoří se defaultní uživatel User. Propojení s existující instancí Ollama proběhlo automaticky, což je taky fajn. Nevýhodou může být starší verze Open WebUI (0.5.20) oproti upstreamu (0.6.5).

Update: Vypnout autentizaci pro lokálního uživatele lze pomocí proměnné prostředí WEBUI_AUTH, nicméně to lze pouze v případě, že ještě nebyl vytvořen žádný uživatel. Více viz dokumentace.

OpenAI GPT-4.1

OpenAI vydala novou sérii modelů GPT-4.1 (via) (číslování je trochu matoucí vzhledem k nedávno vydanému GPT-4.5 research preview). Z příspěvku je zřejmé, že modely jsou cílené primárně na oblast programování a programovacích asistentů/agentů, kde dlouho vládl Claude 3.5 (resp. 3.7) Sonnet, a nově vstoupila Gemini 2.5 Pro. OpenAI inzeruje také zlepšené výsledky v následování instrukcí (oproti GPT-4o), a výrazně větší kontext - až 1 milion tokenů (což by mělo např. pojmout - 8x - celý zdrojový kód Reactu).

AI jako spolupracovník

Can AI take over some of [my] tasks? The answer is yes, and frankly, there are tasks that I wouldn't mind offloading to AI, like administrative paperwork. But does that mean my job will vanish? Not really. Getting rid of some tasks doesn't mean the job disappears. In the same way, power tools didn't eliminate carpenters but made them more efficient, and spreadsheets let accountants work faster but did not eliminate accountants. AI has the potential to automate mundane tasks, freeing us for work that requires uniquely human traits such as creativity and critical thinking–or, possibly, managing and curating the AI's creative output[.]

However, this isn't the end of the story. The systems within which we operate play a crucial role in shaping our jobs as well. [...] Let's say an AI can deliver a lecture better than I can. Would students be willing to outsource their learning to AI? [...] Would the deans of the university feel comfortable using AI in this way? Would the magazines and sites that rank schools punish us for doing so? My job is connected to many other jobs, customers and stakeholders. Even if AI automates my job, the systems in which it works are less obvious.
-- Ethan Mollick: "Co-Intelligence: Living and Working with AI", p. 125-126

Ohýbání LM Arena Leaderboardu

Andrej Karpathy vyjádřil jistou nedůvěru k výsledkům na LM Arena Leaderboard v posledních měsících. Příkladem je třeba oblíbený Claude 3.7 Sonnet, v žebříčku až okolo 15. místa. A hle, Meta nám tak trochu podvádí, resp. jejich model (na 2. místě) je jiný než modely, které reálně vydali:

Meta’s interpretation of our policy did not match what we expect from model providers. Meta should have made it clearer that “Llama-4-Maverick-03-26-Experimental” was a customized model to optimize for human preference. As a result of that we are updating our leaderboard policies to reinforce our commitment to fair, reproducible evaluations so this confusion doesn’t occur in the future.
-- lmarena.ai (via)

Pokud se jedná o upravený model, který není normálně k dispozici, říkám si proč nebyl z žebříčku odebrán.

Update: Zdá se, že Llama-4-Maverick-03-26-Experimental už byla z žebříčku odebrána, a Llama-4-Maverick-17B-128E-Instruct si nevede nijak oslnivě. Dnes okolo 32. místa.

Různí chatboti v jedné aplikaci

Už pár let používám open-source aplikaci Ferdium. Díky ní můžu mít různé služby, např. Gmail, Google Kalendář nebo Discord v jednom rozhraní bez nutnosti používat běžný prohlížeč. Zároveň můžu být přihlášený k pracovnímu i soukromému účtu zároveň aniž bych se musel odhlašovat a přepínat. Jednu službu lze přidat vícekrát, pokaždé s jiným účtem, protože každá běží izolovaně. Díky Ferdiu se mi tak nemýchají dohromady věci jako čtení emailů, chatování a prohlížení internetu. Mohu se i lépe soustředit - notifikace zůstávají ve Ferdiu a dají se případně vypnout.

Stejný princip jde uplatnit i pro různé chatboty a další AI nástroje. Namísto lovení záložek v prohlížeči mohou být přehledně ve Ferdiu, viz níže. (Ferdium je postavené na technologii Electron - jedná se tedy v principu o webové stránky běžící v Chromiu. Služby tudíž nejsou plnohodnotné desktopové aplikace.)

Ferdium screenshot

Screenshot aplikace Ferdium. Vytvořeno s pomocí Screely a GIMP.

Jak je vidět v levém panelu, ikona Anthropic (Claude) je tam 2x - jednou jako soukromý a jednou jako pracovní účet.

Zhruba před rokem jsem zkoušel přidat službu ChatGPT, ale nešlo se mi přihlásit. Nyní to vypadá, že problém byl odstraněn. Některé služby (ChatGPT, Claude, Perplexity) jsou dostupné v katalogu služeb, jiné (Google AI Studio, NotebookLM, Open WebUI) je potřeba přidat manuálně, resp. doplnit URL. Co se týče Open WebUI, měl jsem trochu obavu, jestli se Ferdium dokáže připojit i na lokálně běžící server, konkrétně http://0.0.0.0:8080/, a ano, zvládne to.

Užitečnou funkcionalitou jsou 'workspaces', díky které mám AI nástroje v samostatném pracovním prostoru (viz obrázek výše), ve kterém mě nerozptylují ikony Gmalu nebo Discordu.

O smyslu psaní blogů

Blogging is small-p political again, today. It’s come back round. It’s a statement to put your words in a place where they are not subject to someone else’s algorithm telling you what success looks like; when you blog, your words are not a vote for the values of someone else’s platform.

[...]

I don’t make any money out of [my blog], not directly. But it’s so, so worth it. I don’t how how to put a figure on the value of friends, work, ideas, opportunities and enjoyment I’ve got out of simply “thinking out loud” over the years.
-- Matt Webb: People and Blogs (via)

Nové jazykové modely a panika (nejen) na trzích

25.3.2025

Google vydal Gemini 2.5 Pro Experimental. Nyní #1 na LM Arena Leaderboard.

31.3.2025

TL;DR: we are excited to release a powerful new open-weight language model with reasoning in the coming months, and we want to talk to devs about how to make it maximally useful: https://openai.com/open-model-feedback/

we are excited to make this a very, very good model!
-- Sam Altman (via)

4.4.2025

TradingView screenshot (SPX 500)

Screenshot z aplikace TradingView zachycují propad indexu S&P 500 (denní graf za poslední rok; propad za poslední 2 dny o -10,5%).

5.4.2025

Dnes (v sobotu!) vydala Meta dvojici open-weight modelů Llama 4. Nyní #2 na LM Arena Leaderboard.

OpenAI:

change of plans: we are going to release o3 and o4-mini after all, probably in a couple of weeks, and then do GPT-5 in a few months.
-- Sam Altman (via)