Jak AI ovlivní práci programátorů?
S příchodem umělé inteligence a konkrétně jazykových modelů, jako je GPT-4 od OpenAI, se postupně změní také pracovní náplň a role různých pozic. Jak tyto změny ovlivní práci programátorů?
Tento článek obsahuje shrnutí a také navazuje na mé YouTube video:
Dopad jazykových modelů na trh práce
Studie od OpenAI naznačuje, že jazykové modely mohou potenciálně ovlivnit až 80 % pracovní síly v USA tím, že by jim mohly pomoci s 10 % jejich pracovních úkolů.
Pokud zahrneme další nástroje vyvinuté na základě GPT-4 může se tento podíl zvýšit až na 50 % úkolů u 50 % pracovníků.
Odkaz na studii: https://arxiv.org/pdf/2303.10130.pdf
Které profese jsou nejvíce ovlivněny?
Studie OpenAI ukazuje, že lidé s vysokoškolským vzděláním jsou více vystaveni vlivu jazykových modelů než osoby bez formálního vzdělání. Navíc, povolání, která vyžadují na začátku nejvíce zaškolení a nepotřebují formální vzdělání, mají sice nižší odměnu, ale jsou nejméně vystaveny vlivu jazykových modelů.
Všeobecně platí, že vyšší mzdy jsou spojeny s vyšším potenciálním vlivem jazykových modelů. To ale neznamená, že AI sebere vaši práci, jak často vidíme v nadpisech videí a článků.
Co je povolání podle OpenAI?
OpenAI definuje povolání jako soubor úkolů. Například, učitel na základní škole může mít za úkol přizpůsobovat výukové materiály pro své studenty, stanovovat pravidla udržení pořádku, konzultovat s rodiči a další. Tuto definici čerpají z databáze Onet, která obsahuje podrobné popisy různých povolání a jejich úkolů. Zkuste vyhledat své povolání na této stránce.
Jak bylo hodnocení provedeno?
Studie OpenAI se zaměřila na 19 265 úkolů z různých pracovních pozic a hodnotila, do jaké míry by mohly být tyto úkoly provedeny jazykovými modely, jako je GPT-4. Hodnocení se opíralo o pojem "exposure" - míra, do jaké může jazykový model snížit čas potřebný pro provedení úkolu o polovinu.
Úkoly byly označeny jako E0, E1 a E2, podle toho, jak velkou roli může hrát jazykový model při jejich provádění. Úkoly označené jako E0 nejsou ovlivněny jazykovými modely. Úkoly označené jako E1 může GPT-4 významně usnadnit, zatímco úkoly označené jako E2 vyžadují pomoc nástrojů postavených nad GPT-4, jako například ChatGPT pluginy.
Stejně tak i vy si můžete pro vaše povolání najít úkoly v databázi Onet a poté použít příkaz pro ChatGPT, který vyhodnotí míru expozice.
Zde je příkaz ze studie:
# E Exposure Rubric Consider the most powerful OpenAI large language model (LLM). This model can complete many tasks that can be formulated as having text input and text output where the context for the input can be captured in 2000 words. The model also cannot draw up-to-date facts (those from <1 year ago) unless they are captured in the input. Assume you are a worker with an average level of expertise in your role trying to complete the given task. You have access to the LLM as well as any other existing software or computer hardware tools mentioned in the task. You also have access to any commonly available technical tools accessible via a laptop (e.g. a microphone, speakers, etc.). You do not have access to any other physical tools or materials. Please label the given task according to the rubric below. Equivalent quality means someone reviewing the work would not be able to tell whether a human completed it on their own or with assistance from the LLM. If you aren’t sure how to judge the amount of time a task takes, consider whether the tools described exposed the majority of subtasks associated with the task. ## E1 – Direct exposure Label tasks E1 if direct access to the LLM through an interface like ChatGPT or the OpenAI playground alone can reduce the time it takes to complete the task with equivalent quality by at least half. This includes tasks that can be reduced to: - Writing and transforming text and code according to complex instructions, - Providing edits to existing text or code following specifications, - Writing code that can help perform a task that used to be done by hand, - Translating text between languages, - Summarizing medium-length documents, WORKING PAPER - Providing feedback on documents, - Answering questions about a document, - Generating questions a user might want to ask about a document, - Writing questions for an interview or assessment, - Writing and responding to emails, including ones that involve refuting information or engaging in a negotiation (but only if the negotiation is via written correspondence), - Maintain records of written data, - Prepare training materials based on general knowledge, or - Inform anyone of any information via any written or spoken medium. ## E2 – Exposure by LLM-powered applications Label tasks E2 if having access to the LLM alone may not reduce the time it takes to complete the task by at least half, but it is easy to imagine additional software that could be developed on top of the LLM that would reduce the time it takes to complete the task by half. This software may include capabilities such as: - Summarizing documents longer than 2000 words and answering questions about those documents, - Retrieving up-to-date facts from the Internet and using those facts in combination with the LLM capabilities, - Searching over an organization’s existing knowledge, data, or documents and retreiving information, - Retrieving highly specialized domain knowledge, - Make recommendations given data or written input, - Analyze written information to inform decisions, - Prepare training materials based on highly specialized knowledge, - Provide counsel on issues, and - Maintain complex databases. ## E3 – Exposure given image capabilities Suppose you had access to both the LLM and a system that could view, caption, and create images as well as any systems powered by the LLM (those in E2 above). This system cannot take video as an input and it cannot produce video as an output. This system cannot accurately retrieve very detailed information from image inputs, such as measurements of dimensions within an image. Label tasks as E3 if there is a significant reduction in the time it takes to complete the task given access to a LLM and these image capabilities: - Reading text from PDFs, - Scanning images, or - Creating or editing digital images according to instructions. The images can be realistic but they should not be detailed. The model can identify objects in the image but not relationships between those options. - ## E0 – No exposure Label tasks E0 if none of the above clearly decrease the time it takes for an experienced worker to complete the task with high quality by at least half. Some examples: - If a task requires a high degree of human interaction (for example, in-person demonstrations) then it should be classified as E0. - If a task requires precise measurements then it should be classified as E0. - If a task requires reviewing visuals in detail then it should be classified as E0. - If a task requires any use of a hand or walking then it should be classified as E0. - Tools built on top of the LLM cannot make any decisions that might impact human livelihood (e.g. hiring, grading, etc.). If any part of the task involves collecting inputs to make a final decision (as opposed to analyzing data to inform a decision or make a recommendation) then it should be classified as E0. The LLM can make recommendations. - Even if tools built on top of the LLM can do a task, if using those tools would not save an experienced worker significant time completing the task, then it should be classified as E0. - The LLM and systems built on top of it cannot do anything that legally requires a human to perform the task. - If there is existing technology not powered by an LLM that is commonly used and can complete the task then you should mark the task E0 if using an LLM or LLM-powered tool will not further reduce the time to complete the task. When in doubt, you should default to E0. ## Annotation examples: 1. Occupation: Inspectors, Testers, Sorters, Samplers, and Weighers Task: Adjust, clean, or repair products or processing equipment to correct defects found during inspections. Label (E0/E1/E2/E3): E0 Explanation: The model does not have access to any kind of physicality, and more than half of the task (adjusting, cleaning and repairing equipment) described requires hands or other embodiment. 2. Occupation: Computer and Information Research Scientists Task: Apply theoretical expertise and innovation to create or apply new technology, such as adapting principles for applying computers to new uses. Label (E0/E1/E2/E3): E1 Explanation: The model can learn theoretical expertise during training as part of its WORKING PAPER general knowledge base, and the principles to adapt can be captured in the text input to the model. 3. Activity: Schedule dining reservations. Label (E0/E1/E2/E3): E2 Explanation: Automation technology already exists for this (e.g. Resy) and it’s unclear what an LLM offers on top of using that technology (no-diff). That said, you could build something that allows you to ask the LLM to make a reservation on Resy for you.
Přidej Label a Explanation (vše v češtině) pro pozici Software developer a to pro tyto úkoly:
- Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
V příkazu změňte pouze závěřečnou část a to tak, že vložíte vaše povolání a vaše pracovní úkoly.
Co to znamená pro budoucnost programování?
Jazykové modely, jako je GPT-4, mohou ovlivnit některé aspekty programování. Můžou například pomoci s generováním kódu či s dokumentací. Tato změna však neznamená, že programátoři ztratí svou práci. Spíše to znamená, že se jejich role může posunout směrem k využití těchto nástrojů pro zvýšení produktivity a efektivity.
Pokud chcete zjistit více o tom, jak AI ovlivnuje práci programátorů, můžete se podívat na tyto studie:
Data analyst: http://export.arxiv.org/pdf/2305.15038
Coding with GPT-4: https://arxiv.org/pdf/2304.13187.pdf
Github copilot: https://arxiv.org/pdf/2302.06590.pdf
Z výsledků studií vyplývá, že GPT-4 může být užitečným nástrojem při refaktorování kódu a při psaní dokumentace. Méně užitečný se ukázal být při psaní jednotkových testů.
Pokud se začínáte učit programovat, můžete požádat model o vylepšení vašeho kódu. Například tak zjistíte, že místo použití for cyklu, můžete použít list comprehensions. A pokud už máte program hotový, můžete si k němu nechat dopsat dokumentaci.
Jak bych mohla vylepšit tento program? Popiš své řešení:
original_list = [1, -2, 3, -4, 5] new_list = [] for i in original_list: if i > 0: new_list.append(i)
Dopiš dokumentaci funkce a to v angličtině:
def binary_search(arr, low, high, x): if high >= low: mid = (high + low) // 2 if arr[mid] == x: return mid elif arr[mid] > x: return binary_search(arr, low, mid - 1, x) else: return binary_search(arr, mid + 1, high, x) else: return -1
Praktické nástroje
Pro tyto úkoly můžete také využít nástroj Codeium, který je zcela zdarma. Codeium funguje jako našeptávač, podobně jako například GitHub Copilot, ale umí i spoustu dalších věcí. Můžete si jej zdarma přidat jako rozšíření do VS Code.
A jak takové našeptávání vypadá zjistíte v tomto videu:
Dalším podobným nástrojem, který našeptává a je zcela zdarma, je nedávno vydaný Amazon CodeWhisperer.
Nejlepší kombinace
A není lepší kombinace než spojení programování a prompt engineeringu. K tomu mám pro vás odkaz na jeden kurz, který je zcela zdarma a ke kterému stačí pouze základní znalost Pythonu.
Kurz najdete zde: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/
Tento krátký kurz vyučovaný Isou Fulfordovou (OpenAI) a Andrew Ngem (DeepLearning.AI) popisuje, jak fungují LLM, poskytuje nejlepší postupy pro prompt engineering:
- Shrnutí (například shrnutí recenzí uživatelů pro stručnost)
- Odvozování (například klasifikace sentimentu, extrakce témat)
- Transformace textu (například překlad, korekce pravopisu a gramatiky)
- Rozšiřování (například automatické psaní e-mailů)
Kromě toho se naučíte dva klíčové principy pro psaní efektivních výzev, jak systematicky vytvářet dobré výzvy a také se naučíte vytvořit vlastního chatbota.
Všechny koncepty jsou ilustrovány mnoha příklady.