Sekėjai

Ieškoti šiame dienoraštyje

2024 m. birželio 26 d., trečiadienis

ChatGPT ir programinės įrangos kūrimas

„Bandžiau naudoti ChatGPT, kad padėtų išspręsti įprastas kodavimo problemas dirbdamas su CRM programomis ir sujungdamas klientų duomenų šaltinius. Paprašiau ChatGPT: „Turėdami du pavadinimų sąrašus, parašykite Python kodą, kad rastumėte artimus pavadinimų atitikmenis ir apskaičiuotumėte panašumo reitingą. “ ChatGPT atsakė: „Galite naudoti FuzzyWuzzy biblioteką Python, kad surastumėte artimus atitikmenis ir apskaičiuotumėte vardų panašumo reitingus. Tada „ChatGPT“ parodė kodą, skirtą sąsajai su „FuzzyWuzzy“, ir įtraukė pavyzdžius, padedančius parodyti rezultatus.

 

 Dabar vyksta diskusijos apie tai, koks išmanus yra „ChatGPT“, ar jis gali rašyti saugų kodą ir kodėl turėtų priskirti prie atsakymų jo šaltinius. Tačiau „ChatGPT“ efektyvumas verčia daugelį žmonių susimąstyti, kaip generatyvus dirbtinis intelektas (AI) pakeis žmonių kūrybinį darbą rinkodaros, žurnalistikos, meno ir, taip, programinės įrangos kūrimo srityse.

 

 „Generatyvusis dirbtinis intelektas, pvz., ChatGPT ir AlphaCode, per ateinančius trejus metus neabejotinai turės didžiulį poveikį tam, kaip organizacijos kuria programas – nuo ​​greitesnių ir efektyvesnių kūrimo ciklų įgalinimo iki klientų patirties optimizavimo“, – sako Davidas Benas Shabatas, bendrovės viceprezidentas tyrimams ir plėtrai įmonėje Quali. „Tobulėjant dirbtiniam intelektui, įmonės galės naudoti šiuos modelius, siekdamos optimizuoti klientų patirtį, padidinti klientų įsitraukimą, sumažinti klientų aptarnavimo išlaidas ir bendras išlaidas.

 

 Arjunas Chandaras, „IndustrialML“ generalinis direktorius, priduria: „Generaciniai AI įrankiai leis bent šiek tiek lengviau naudoti mašininį mokymąsi platesniam programų skaičiui didesniame skaičiuje domenų.

 

 „ChatGPT“ jau pasiekė daugiau, nei 100 milijonų vartotojų, o „Microsoft“ įterpia jį į „Bing“ ir kitas „Office“ programas. 

 

Kiti generatyvaus AI konkurentai paieškos platformose yra Google Bard, o kūrėjai gali išbandyti kodą generuojančius AI, tokius kaip AlphaCode ir GitHub Copilot.

 

 „SaaS“ produktų, technologijų platformų ir paslaugų teikėjų banga integruoja „ChatGPT“ galimybes. Pavyzdžiui, „Gigster“ pristatė „ChatGPT“ integracijos palaikymą, o „Equaly AI“ pristatė „Flowy“, „ChatGPT“ valdomą žiniatinklio prieinamumo platformą.

 

 Nebijokite AI; panaudoti savo galimybes

 

 Jei esate programinės įrangos kūrėjas arba devops inžinierius, galite eksperimentuoti su generuojančio dirbtinio intelekto įrankiais ir susimąstyti, ką tai reikš jūsų profesijai ir kaip tai pakeis jūsų darbą.

 

 „Generatyvūs AI įrankiai, tokie, kaip ChatGPT, sukėlė sumaištį kūrėjų bendruomenėje“, – sako Marko Anastasovas, „Semaphore CI/CD“ įkūrėjas. „Kai kurie baiminasi, kad tai atims jų darbą, o kiti nori to nepaisyti. Abu požiūriai yra klaidingi, nes, kaip matėme su GitHub Copilot, kūrėjas, integruojantis AI į savo darbo eigą, gali patirti neįtikėtiną produktyvumo padidėjimą.

 

 Paimkite mano CRM pavyzdį – sutaupiau laiko, nes atradau naudingą Python biblioteką ir gavau kodavimo pavyzdį. Procesas paspartino mano atradimą, bet vis tiek turėjau atlikti darbą, kad įvertinčiau rezultatus ir integruočiau kodą į mano programą.

 

 Generatyviniam AI trūksta konteksto

 

 Prisiminkite, kai jūsų namuose įdiegėte pirmąjį „Amazon Alexa“ arba „Google Assistant“ ir tikėjotės, kad jie bus tokie pat išmanūs ir jautrūs, kaip „Star Trek“ kompiuteris? Tai padeda atlikti paprastas užduotis, pvz., nustatyti žadintuvus, įtraukti elementus į pirkinių sąrašus, dalytis orų prognozėmis arba atnaujinti šiandienos naujienas, tačiau vargu, ar ji tiksliai atsakys į sudėtingesnius klausimus.

 

 Danas Connas, „Sonatype“ kūrėjų advokatas, mano, kad svarbu suprasti, kaip kuriami ir mokomi dirbtinio intelekto algoritmai. „Kadangi technologija yra pagrįsta duomenimis, o ne žmogaus intelektu, kartais programa gali skambėti nuosekliai, tačiau ji nepateikia jokių kritiškai informuotų atsakymų“, - sako jis.

 

 Kol kas generatyvusis AI gali padėti užpildyti spragas ir paspartinti sprendimų diegimą programinės įrangos kūrimo ciklo metu, tačiau mums vis tiek reikės kūrėjų, kad jie įgytų tinkamą patirtį. „ChatGPT neturi galimybės suprasti žmogiškojo kompiuterijos konteksto, kad galėtų gerai programuoti“, – sako Conn. „Programinės įrangos inžinieriai gali pridėti daugiau informacijos apie kuriamos programinės įrangos paskirtį ir žmones, kurie ją naudos. Tai ne tik daugybė programų, sukurtų kartu su atkurtu kodu."

 

 Shanea Leven, „CodeSee“ įkūrėja ir generalinė direktorė, sako: „Inžinerija reikalauja daug dalykų, kurių AI negali pakeisti, pavyzdžiui, konteksto, todėl AI beveik neįmanoma įkelti į vieną modelį, išmokyti tą modelį ir įtraukti žmonių nuspėjamąsias galimybes. kurie supranta, ko reikės po penkerių metų. Yra daug didelių sprendimų, būdingų skirtingoms įmonėms, kurių dirbtinis intelektas tiesiog niekada negalės priimti."

 

 Prieš penkerius metus parašiau įrašą, kuriame klausiau: Ar AI gali išmokti koduoti? Šiandien ji gali pateikti kodavimo pavyzdžių; rytoj AI modeliai gali padėti inžinieriams atsakyti į klausimus apie architektūrą ir dizaino modelius. Sunku suprasti, ar vienas AI gali pakeisti visas žinias, naujoves ir sprendimus, kuriuos programinės įrangos kūrimo komandos priima, kurdamos malonią  klientų patirtį ir produktyvias darbo eigas.

 

 Produktyvumo įrankis, pavyzdžiui, žemas kodas

 

 Programinės įrangos kūrimas turi daug kartų patobulintų kalbų ir platformų. Daugelis įrankių padidina kūrėjo produktyvumą, pagerina kodo kokybę arba automatizuoja pristatymo proceso aspektus. Pavyzdžiui, žemo kodo ir be kodo platformos gali padėti organizacijoms kurti ir modernizuoti daugiau programų, tačiau mes vis dar koduojame mikropaslaugas, kuriame, klientams skirtas, programas ir kuriame mašininio mokymosi galimybes.

 

 Suresh Sambandam, „Kissflow“ generalinis direktorius, pripažįsta: „Kaip mažas kodas ir jokio kodo nepakeis tradicinių kūrėjų ir programinės įrangos inžinierių, OpenAI suteiks naudingų įrankių, kurie pašalins pasikartojančias užduotis ir pagreitins programos kūrimo laiką."

 

 Vienas paradigmos pokytis yra nuo raktiniais žodžiais pagrįstų paieškos įrankių prie tų, kurie apdoroja natūralios kalbos užklausas ir į jas atsako naudingais atsakymais. Sambandam tęsia: „Įvesdama užklausas paprasta pokalbio kalba, „ChatGPT“ gali automatiškai generuoti sudėtingą arba siūlomą pavyzdinį kodą problemoms spręsti daug greičiau, nei bet kuris kūrėjas gali parašyti ir eksperimentuoti su kodu nuo nulio."

 

 „Matysime didžiulius pokyčius ne tik produktyvumo, bet ir to, kaip greičiau gausime informaciją“, – priduria Levenas. „AI leis kūrėjams sustiprinti pasikartojančius sprendimus, kuriuos turi priimti inžinieriai, pavyzdžiui, apibendrintus klausimus apie kalbą."

 

 Pokalbių programų tobulinimas

 

 Kūrėjai taip pat turi apsvarstyti, kaip „ChatGPT“ pakelia vartotojų lūkesčių kartelę. Reikės atnaujinti programos raktinių žodžių paieškos laukelį, kuris nėra suasmenintas ir pateikia nuviliančius rezultatus. Kadangi vis daugiau žmonių stebisi „ChatGPT“ galimybėmis, darbuotojai ir klientai tikisi dirbtinio intelekto paieškos patirties, naudodami natūralios kalbos užklausas ir programėles, kurios atsakys į klausimus.

 

 „Generatyvus AI teikia daug žada paieškos ir klientų aptarnavimo srityse“, – sako Joshas Perkinsas, „Ahead“ techninis vadovas. „Šie modeliai parodo sudėtingos natūralios kalbos paieškos ir kontekstinės atminties tikrovę, leidžiančią atsakyti į net niuansuotus raginimus pokalbio metu be klientų aptarnavimo atstovo, labai pagrįstai ir, greičiausiai, netrukus."

 

 Generatyvusis AI taip pat gali pagerinti darbo eigą ir palaikyti hiperautomatizaciją, žmonių sujungimą, automatizavimą ir AI galimybes. Galvoju apie išmaniąsias sveikatos programas, kur gydytojai gali užduoti AI klausimus apie paciento būklę, AI atsako su panašiais pacientų atvejais, o programėlė suteikia gydytojams galimybes, kurios automatizuoja užsakymo procedūras ar receptus.

 

 „Generatyviosios AI technologijos turi didžiulę galimybę jas naudoti, automatizuojant ir patobulinant įvairius programų kūrimo ir klientų patirties kūrimo aspektus“, – sako „Appen“ vyriausioji produktų pareigūnė Sujatha Sagiraju.

 

 Tačiau naudoti generatyvųjį dirbtinį intelektą, kad būtų galima sistemingai keisti darbo eigą, nėra lengva. Knygoje Power and Prediction: The Disruptive Economics of Artificial Intelligence autoriai supriešina taškinių sprendimų skirtumus (pvz., kodo pavyzdžių paieška) su AI sistemos sprendimais, kuriems reikės didesnių transformacijų.

 

 Sagiraju pažymi: „Generuojančiam dirbtiniam intelektui vis dar reikia realaus asmens atsiliepimų, kad būtų galima patikslinti, kad modelis veiktų tiksliai. Duomenys ir žmonės, esantys už šių modelių, nulems jų sėkmę ir nesėkmes."

 

 Pasirinkite optimalius domenus ir patikrinkite atsakymų kokybę

 

 Taigi, kur programinės įrangos kūrėjai šiandien gali panaudoti generatyvųjį AI? Nesunku pastebėti jo naudingumą, ieškant kodavimo pavyzdžių arba gerinant kodo kokybę. Tačiau produktų vadybininkai ir jų judrios kūrimo komandos turėtų patvirtinti ir išbandyti savo naudojimo atvejus, prieš įjungdami generatyvųjį AI prie jų programos.

 

 „Rizika, kad nevaldomas dirbtinis intelektas gamins netikslų ar neišsamų turinį, geriausiu atveju, gali šiek tiek erzinti, o kitais atvejais gali būti nepaprastai brangi, ypač kai naudojamas klientų aptarnavimui arba atstovaujant prekės ženklą“, – sako produkto vadovas Erikas Ashby. „Nors iš pradžių kils pagunda leisti dirbtiniam intelektui vienam kurti turinį, pvz., nekontroliuojamą pokalbių robotą, prekės ženklai greitai supras, kad norėdami valdyti šią riziką, jie turi taikyti bendrą strategiją, kurioje žmonės ir AI dirbtų kartu.

 

 „ChatGPT“ yra daugiau, nei blizgantis objektas, tačiau, kaip ir bet kuri nauja technologija, programinės įrangos kūrėjai ir architektai turės patvirtinti, kur, kada ir kaip naudoti generatyviąsias AI galimybes.“ [1]

 

1. ChatGPT and software development. Sacolick, Isaac.  InfoWorld.com; San Mateo (Feb 27, 2023).

ChatGPT and software development

 

"I tried using ChatGPT to help with a common coding issue when working on CRM applications and merging customer data sources. I asked ChatGPT, “Given two lists of names, write Python code to find near matches of the names and compute a similarity ranking.” ChatGPT replied, “You can use the FuzzyWuzzy library in Python to find near matches and compute similarity rankings between names.” ChatGPT then displayed code to interface with FuzzyWuzzy and included examples to help demonstrate results.

Now, there are debates about how smart ChatGPT is, whether it can write secure code, and why it should attribute its sources. But ChatGPT’s effectiveness is causing many people to consider how generative AI will change people’s creative work in marketing, journalism, the arts, and, yes, software development.

“Generative AI, such as ChatGPT and AlphaCode, are sure to have an immense impact on how organizations develop applications—from enabling faster and more efficient development cycles to optimizing customer experiences—over the next three years, says David Ben Shabat, vice president of research and development at Quali. “As AI continues to develop, businesses will be able to use these models to optimize customer experiences, increase customer engagement, reduce customer service costs, as well as overall cost reduction.”

Arjun Chandar, CEO at IndustrialML, adds, “Generative AI tools will make it at least marginally more feasible to use machine learning for a broader array of applications across a larger number of domains.”

ChatGPT already reached more than 100 million users, and Microsoft is embedding it in Bing and other Office applications. Other generative AI competitors in search platforms include Google’s Bard, and developers can test code-generating AIs such as AlphaCode and GitHub Copilot. A wave of SaaS products, tech platforms, and service providers are integrating ChatGPT capabilities. For example, Gigster introduced ChatGPT integration support, and Equally AI launched Flowy, a ChatGPT-powered web accessibility platform.

Don’t fear AI; leverage its capabilities

If you’re a software developer or a devops engineer, you might experiment with generative AI tools and wonder what it will mean for your profession and how it will change your work.

“Generative AI tools such as ChatGPT have caused a stir among the developer community,” says Marko Anastasov, cofounder of Semaphore CI/CD. “Some fear it will take their jobs, while others prefer to ignore it. Both attitudes are mistaken because, as we’ve seen with GitHub Copilot, a developer who integrates AI into their workflow can experience an incredible productivity boost.”

Take my CRM example—it saved me time by identifying a useful Python library and showing me a coding example. The process accelerated my discovery, but I would still have to do the work to evaluate the results and integrate the code into my application.

Generative AI lacks context

Remember when you installed your first Amazon Alexa or Google Assistant in your home, expecting it to be as smart and responsive as Star Trek’s computer? It helps you do simple tasks such as set alarms, add items to shopping lists, share the weather forecast, or update you on today’s news, but it’s unlikely to answer more complex questions accurately.

Dan Conn, developer advocate at Sonatype, believes it’s important to understand the context of how AI algorithms are developed and trained. “Since the technology is based on data and not human intelligence, sometimes the program can sound coherent, but it does not provide any critically informed responses,” he says.

For now, generative AI can help fill gaps and accelerate implementing solutions within the software development life cycle, but we will still need developers to drive appropriate experiences. “ChatGPT misses the ability to understand the human context of computing to do programming well, “says Conn. “Software engineers can add more details about the purpose of the software they’re creating and the people who will be using it. It’s not just a bunch of programs sprung together with regurgitated code.”

Shanea Leven, cofounder and CEO of CodeSee, says, “Engineering requires a lot that AI can’t replace, like context, making it near impossible for AI to load into a single model, train that model, and incorporate the predictive capability of humans who understand what’s going to be necessary in five years. There are a lot of big picture decisions unique to different businesses that AI will simply never be able to handle.”

Five years ago, I wrote a post asking, Can AI learn to code? Today, it can provide coding examples; tomorrow AI models might help engineers answer questions about architectures and design patterns. It is hard to see whether one AI can replace all the knowledge, innovation, and decisions that software development teams make when crafting delightful customer experiences and productive workflows.

A productivity tool like low code

Software development has many generational improvements in languages and platforms. Many tools increase a developer’s productivity, improve code quality, or automate aspects of the delivery pipeline. For example, low-code and no-code platforms can help organizations build and modernize more applications, but we’re still coding microservices, developing customer-facing applications, and building machine learning capabilities.

Suresh Sambandam, CEO of Kissflow, acknowledges, “Just as low code and no code will not outright replace traditional developers and software engineers, OpenAI will provide useful tools that eliminate repetitive tasks and accelerate time to market for app development.”

One paradigm shift is from keyword-based search tools to ones that process natural language queries and respond with useful answers. Sambandam continues, “By entering queries in plain conversational language, ChatGPT can automatically generate boilerplate or suggested sample code for problems much faster than any developer can write and experiment with code from scratch.”

“We’re going to see tremendous change, not only in productivity but in how we get our information faster,” adds Leven. “AI will enable developers to supercharge the repetitive decisions that engineers must make, such as generalized questions about a language.”

Improving conversational applications

Developers must also consider how ChatGPT raises the bar on user expectations. The keyword search box in your app that isn’t personalized and responds with disappointing results will need an upgrade. As more people are amazed by ChatGPT’s capabilities, employees and customers will expect AI search experiences with natural language queries and apps that answer questions.

“Generative AIs hold a ton of promise in search and customer service areas,” says Josh Perkins, field CTO at Ahead. “These models demonstrate the reality of complex natural language search and contextual memory, enabling answers to even nuanced prompts conversationally without a customer service representative, very reasonably and likely soon.”

Generative AI can also improve workflow and support hyperautomation, connecting people, automation, and AI capabilities. I think about smart health applications, where doctors can ask AI questions about a patient’s condition, the AI responds with similar patients, and the app provides options for doctors that automate ordering procedures or prescriptions.

“Generative AI technologies have a huge opportunity to be used to automate and enhance various aspects of application development and customer experience design,” says Sujatha Sagiraju, chief product officer at Appen.

But using generative AI to drive systematic changes to workflows isn’t easy. In the book Power and Prediction: The Disruptive Economics of Artificial Intelligence, the authors contrast the difference between point solutions (like finding code examples) with AI system solutions that will require more substantial transformations.

Sagiraju notes, “Generative AI still requires real-person feedback for fine-tuning to ensure the model is working accurately. The data and humans behind these models will define their successes and failures.”

Select optimal domains and test for quality responses

So, where can software developers leverage generative AI today? It’s easy to see its usefulness in finding coding examples or improving code quality. But product managers and their agile development teams should validate and test their use cases before plugging a generative AI into their application.

“The risk of an unmanaged AI producing inaccurate or incomplete content can, at best, be somewhat annoying, and in other cases can be incredibly costly, especially when used for customer service or when representing a brand,” says Erik Ashby, head of product at Helpshift. “Although initially there will be a temptation to let AI stand alone in generating content, such as an unmonitored chatbot, brands will quickly realize that to manage this risk, they need to employ a combined strategy where humans and AI work together.”

ChatGPT is more than a shiny object, but like any new technology, software developers and architects will need to validate where, when, and how to use generative AI capabilities." [1]

1. ChatGPT and software development. Sacolick, Isaac.  InfoWorld.com; San Mateo (Feb 27, 2023).