Populární témata
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Překlad: Proč velké jazykové modely nedokážou ve skutečnosti vytvářet software
Napsal(a) Conrad Irwin
Jednou z věcí, kterou trávím hodně času, jsou rozhovory se softwarovými inženýry. To je zřejmě obtížný úkol a neodvažuji se říci, že mám nějaké triky; Ale dalo mi to čas zamyslet se nad tím, co dělá efektivní softwarový inženýr.
Základní cyklus softwarového inženýrství
Když se podíváte na skutečného znalce, uvidíte, že v cyklu vždy provádí následující kroky:
* Vybudujte si mentální model potřeb.
* Pište (doufejme?!) ), který tyto požadavky implementuje.
* Vytvořte si mentální model toho, jak se váš kód skutečně chová.
* Najděte rozdíl mezi těmito dvěma a poté aktualizujte kód (nebo požadavek).
Existuje mnoho způsobů, jak těchto kroků dosáhnout, ale skvělá věc na efektivních inženýrech je jejich schopnost vytvářet a udržovat jasné mentální modely.
Jak fungují velké jazykové modely?
Abychom byli spravedliví, velké jazykové modely jsou docela dobré v psaní kódu. Odvádějí také dobrou práci při aktualizaci kódu, když na problém upozorníte. Mohou také dělat všechny věci, které by dělal skutečný inženýr: číst kód, psát a spouštět testy, přidávat protokoly a (pravděpodobně) používat ladicí program.
Co však nemohou dělat, je udržovat si jasný mentální model.
Velké jazykové modely upadnou do nekonečného zmatku: budou předpokládat, že kód, který píší, je skutečně použitelný; Když test selže, mohou pouze odhadovat, zda se jedná o opravný kód nebo o opravený test; Když jsou frustrovaní, jednoduše všechno vystřihnou a začnou znovu.
To je přesný opak toho, co bych očekával od inženýra.
Softwaroví inženýři testují během práce. Když test selže, mohou použít svůj mentální model k rozhodnutí, zda opravit kód nebo test, nebo shromáždit více informací, než se rozhodnou. Když se cítí frustrovaní, mohou si říct o pomoc tím, že komunikují s lidmi. I když někdy všechno smažou a začnou znovu, je to volba, která se dělá po jasnějším pochopení problému.
Ale bude to brzy, že?
Změní se to, až se modelky stanou schopnějšími? Možná?? Myslím si ale, že to vyžaduje zásadní změnu ve způsobu, jakým jsou modely vytvářeny a optimalizovány. Softwarové inženýrství vyžaduje modely, které jsou více než jen generování kódu.
Když se člověk setká s problémem, je schopen dočasně odložit celý kontext a soustředit se na řešení daného problému a poté se vrátit k danému velkému problému. Mohou také přepínat mezi celkovým obrazem a mikrodetaily, dočasně ignorovat detaily, aby se zaměřili na celek, a v případě potřeby se ponořit do jednotlivých částí. Nestaneme se produktivnějšími jen tím, že do našeho "kontextového okna" nacpeme více slov, to nás jen přivede k šílenství.
I když si poradíme s velkým množstvím souvislostí, víme, že tyto generativní modely mají v současné době několik vážných problémů, které přímo ovlivňují jejich schopnost udržovat jasné mentální modely:
* Kontextové opomenutí: Modelky nejsou dobré v rozpoznávání přehlížených kontextových informací.
* Zkreslení aktuálnosti: Při práci s kontextovými okny jsou vystaveni silnému zkreslení aktuálnosti.
Halucinace: Často "fantazírují" o detailech, které by neměly existovat.
Tyto problémy nemusí být nepřekonatelné a výzkumníci pracují na přidání paměti do modelů, aby mohly uplatňovat podobné myšlenkové schopnosti jako my. Ale bohužel prozatím (poté, co překročili určitou úroveň složitosti) nemohou skutečně pochopit, co se skutečně stalo.
Nemohou vytvářet software, protože nemohou udržovat dva podobné "mentální modely" současně, zjistit rozdíly a rozhodnout se, zda aktualizovat kód nebo aktualizovat požadavky.
Takže, co teď?
Je zřejmé, že velké jazykové modely jsou užitečné pro softwarové inženýry. Rychle generují kód a vynikají v integraci požadavků a dokumentace. U některých úkolů to stačí: požadavky jsou dostatečně jasné, problémy jsou dostatečně jednoduché, aby je bylo možné provést přes noc.
Jak již bylo řečeno, pro jakýkoli úkol určité složitosti nemohou udržet dostatečně přesný kontext, aby iterovali a nakonec vytvořili životaschopné řešení. Jako softwarový inženýr jste stále zodpovědní za to, aby požadavky byly jasné a aby kód skutečně poskytoval to, co tvrdí, že dělá.
Ve společnosti Zed věříme v budoucnost, ve které mohou lidé a agenti umělé inteligence společně vytvářet software. Pevně však věříme (alespoň prozatím), že za volantem sedíte vy a že velké jazykové modely jsou jen dalším nástrojem na dosah ruky.
62,8K
Top
Hodnocení
Oblíbené