Difference between revisions of "Development"

From
Jump to: navigation, search
m
m
Line 36: Line 36:
 
* [[Generative AI]] ... [[Conversational AI]] ... [[ChatGPT]] | [[OpenAI]] ... [[Bing]] | [[Microsoft]] ... [[Bard]] | [[Google]] ... [[Claude]] | [[Anthropic]] ... [[Perplexity]] ... [[You]] ... [[Ernie]] | [[Baidu]]
 
* [[Generative AI]] ... [[Conversational AI]] ... [[ChatGPT]] | [[OpenAI]] ... [[Bing]] | [[Microsoft]] ... [[Bard]] | [[Google]] ... [[Claude]] | [[Anthropic]] ... [[Perplexity]] ... [[You]] ... [[Ernie]] | [[Baidu]]
 
* [[Attention]] Mechanism  ...[[Transformer]] ...[[Generative Pre-trained Transformer (GPT)]] ... [[Generative Adversarial Network (GAN)|GAN]] ... [[Bidirectional Encoder Representations from Transformers (BERT)|BERT]]
 
* [[Attention]] Mechanism  ...[[Transformer]] ...[[Generative Pre-trained Transformer (GPT)]] ... [[Generative Adversarial Network (GAN)|GAN]] ... [[Bidirectional Encoder Representations from Transformers (BERT)|BERT]]
* [[Risk, Compliance and Regulation]]  ... [[Ethics]]  ... [[Privacy]]  ... [[Law]]  ... [[AI Governance]]  ... [[AI Verification and Validation]]
 
 
* [[Google Natural Language]]
 
* [[Google Natural Language]]
 
* [[World Models]]
 
* [[World Models]]

Revision as of 19:53, 12 July 2023

Youtube ... Quora ...Google search ...Google News ...Bing News



We had a deal, programmers are supposed to automate everyone else's jobs, not automate our jobs.



Machine Learning vs Traditional Modeling

Major differences:

  1. More emphasis on information pipeline management; data collection, preparation, feature determination, and pipeline configuration management.
  2. Developing a machine learning application is more iterative and explorative process than traditional software engineering. Learning / Testing / Validation of models is an upfront task

Developing a machine learning application is even more iterative and explorative process than software engineering. Machine learning is applied on problems that are too complicated for humans to figure out (that is why we ask a computer to find a solution for us!). Differences between machine learning and software engineering | Antti Ajanki - Futurice

AI Pair Programming Tools

These tools assist software developers by generating code snippet suggestions based on the context and intent of the code being written. Today, AI-powered software development tools are allowing people to build software solutions using the same language that they use when they talk to other people. These AI-powered tools translate natural language into the programming languages that computers understand. How AI makes developers’ lives easier, and helps everybody learn to develop software | John Roach - Microsoft


Image to Code

Text to Code

ChatGPT | OpenAI for Development

YouTube ... Quora ...Google search ...Google News ...Bing News


ChatGPT to create a Chatbot

Website Development with ChatGPT

Youtube ... Quora ...Google search ...Google News ...Bing News

Chatgpt4.ai Copilot

YouTube ... Quora ...Google search ...Google News ...Bing News



Codex | OpenAI

Youtube ... Quora ...Google search ...Google News ...Bing News

Codex, a Generative_Pre-trained_Transformer_(GPT) language model fine-tuned on publicly available code from Microsoft's GitHub. Codex requires that you access it via their API, or Playground. Create your own fine-tuned OpenAI model by feeding it training data from files; then would be able to generate much more accurate and detailed responses; understanding the context of a file and generate very accurate, but specific code completion based on the file. Codex powers Microsoft's GitHub Copilot.


Copilots | Microsoft

YouTube ... Quora ...Google search ...Google News ...Bing News


An AI Copilot is an artificial intelligence-powered assistant designed to help users with various tasks, often providing guidance, support, and automation in different contexts. These copilots can assist with tasks like writing a sales pitch or generating images for a presentation. Microsoft has launched Azure AI Studio, a new capability within Azure that allows developers to build their own AI-powered “copilots” using tools on Azure and machine learning models from its close partner OpenAI.

  • Copilot in Power BI (in preview): is an AI-powered assistant that harnesses the capabilities of advanced language models to help users uncover and share insights rapidly. Users can now create and customize reports in seconds, generate and modify DAX calculations, summarize data narratives in conversational language, and even inquire about their data. Copilot in Power BI is currently available for preview.
  • Copilot in Power Pages (in preview): is an AI-powered tool that is revolutionizing how to build and launch data-centric business websites. As a maker, your tasks are simplified using Copilot. These enhancements enable you to construct forms, incorporate text, and embed chatbots into your Power Pages sites, all through a user-friendly, dialogue-like interface, bypassing the need for complex coding proficiency. Copilot in Power Pages is currently available for preview.
  • Copilot in Microsoft Fabric (available in preview soon): is an AI-powered tool that will be available for preview soon. It combines advanced generative AI with your data to help everyone uncover and share insights faster. Simply describe the insights you need or ask a question about your data, and Copilot will analyze and pull the right data into a stunning report—turning data into actionable insights instantly.
  • Windows Copilot: is an AI-powered personal assistant that makes using your PC easier and more intuitive. It provides centralized AI assistance to help people easily take action and get things done. Windows Copilot will be available in preview to beta testers in June and will be available to the general public later this year.
  • Microsoft’s 365 Copilot (will get plug-ins): is an AI-powered tool that brings the power of next-generation AI to Microsoft 365 products like Microsoft Teams, Outlook, and more. Organizations that have joined the Microsoft 365 Copilot Early Access program will soon get access to over 50 plugins from companies like Atlassian and Adobe. In the coming months, the Microsoft 365 Copilot will add support for two new types of plugins, Teams message extensions and Power Platform connectors.



GitHub CoPilot


GitHub Copilot is an AI-powered code completion extension for Visual Studio that leverages a vast dataset of publicly available code to provide context-aware code suggestions, snippets, and even entire functions. It works with many programming languages and offers more advanced assistance compared to IntelliCode and IntelliSense. GitHub Copilot is trained on billions of lines of code and turns natural language prompts into coding suggestions across dozens of languages. It draws context from comments and code to suggest individual lines and whole functions instantly. GitHub Copilot is powered by OpenAI Codex, a generative pretrained language model created by OpenAI. Copilot writes code alongside you in your text editor. The extensions for Copilot are available for Noevim, JetBrains, Visual Studio Code, and in the cloud on GitHub Codespaces. GitHub Copilot is really only usable in Visual Studio Code, Microsoft’s IDE, or GitHub Codespaces if you’re into the whole Cloud IDE. Model trained on the GPT-3 language prediction model created by OpenAI. GitHub Copilot supports several programming languages and frameworks, including but not limited to: C#, C++, Python, Java, JavaScript, TypeScript, Ruby, and Go. It also supports multiline code completions in languages such as Java, C, C++, and C#.


Word, PowerPoint and Excel

YouTube ... Quora ...Google search ...Google News ...Bing News

Amazon

CodeWhisperer

YouTube ... Quora ...Google search ...Google News ...Bing News

Amazon CodeWhisperer, a machine learning (ML)–powered service that helps improve developer productivity by generating code recommendations based on developers’ comments in natural language and their code in the IDE. Imagine being a software developer with an AI-powered coding companion, making your coding faster and easier. Amazon CodeWhisperer does just that. It uses generative AI under the hood to provide code suggestions in real time, based on a user’s comments and their prior code. It’s now available in preview as part of the AWS IDE Toolkit, which means developers can immediately use it right inside their preferred IDEs, including Visual Studio Code, IntelliJ IDEA, PyCharm, WebStorm and Amazon’s own AWS Cloud 9. Support for the AWS Lambda Console is also coming soon. Tool can autocomplete entire functions based on only a comment or a few keystrokes. Amazon trained the system, which currently supports Java, Javascript and Python, on billions of lines of publicly available open source code and its own codebase, as well as publicly available documentation and code on public forums.

Captain Stack

Youtube search... ...Google search

This feature is somewhat similar to GitHub Copilot's code suggestion. But instead of using AI, it sends your search query to Google, then retrieves StackOverflow answers and autocompletes them for you.


GPT-Code-Clippy (GPT-CC)

Youtube search... ...Google search

an open source version of GitHub Copilot, a language model -- based on GPT-3, called GPT-Codex -- that is fine-tuned on publicly available code from GitHub.

Second Mate

Youtube search... ...Google search

An open-source, mini imitation of GitHub Copilot using EleutherAI GPT-Neo-2.7B (via Huggingface Model Hub) for Emacs.

Clara-Copilot VSCode

Youtube search... ...Google search

This feature is somewhat similar to GitHub Copilot's code suggestion. But instead of using AI, it sends your search query to Google, then retrieves StackOverflow answers and autocompletes them for you.


DeepCode

TerpreT Framework

Automating Web Applications

Full-cycle Deep Learning Projects

Software Development Life Cycle (SDLC)

Youtube search... ...Google search

Reduce Bugs

Agile

Youtube search... ...Google search


AI has changed software development by exposing human perception, definition, and execution of programming. ...Future programmers won’t maintain complex repositories, analyze running times or create intricate programs. They’ll collect, sanitize, label, analyze, and visualize data feeding neural networks. 9 Ways To Implement Artificial Intelligence and Agile-Powered Management in Software Development | Chandresh Patel - DZone

...Introduce machine Learning (ML) techniques into your Software Development Life Cycle (SLDC) as follows:

1. Coding Assistants: Most of a developer’s time is spent debugging code and reading the documentation. With smart coding assistant implemented using ML, developers can get quick feedback and recommendations based on the codebase, saving a lot of time. Great examples include Java’s Codota and Python’s Kite.

2. Automatic Coding Refactoring: It is important to have clean code because it makes collaboration a lot easier. Maintenance of clean code is also orders of magnitude easier than unclean code. Here's the deal; whenever an organization scales, refactoring becomes a painful necessity. With ML, it is easy to analyze code and optimize for performance by identifying potential areas for refactoring.

3. Making Strategic Decisions: A large chunk of a developer’s time is spent debating the features and products to prioritize. An AI model trained with data from past development projects can assess how applications perform, helping business leaders and engineering teams to identify methods of minimizing risk and maximizing impact.

4. Providing Precise Estimates: The profession of software development is known for exceeding budgets and timelines. To make a good estimate, it’s important to have a deep understanding of both the context and the development team. You can train an ML model using data from past projects like user stories, cost estimates, and feature definitions. This can prove very helpful in predicting effort and budget.

5. Analytics and Error Handling: Coding assistants based on ML can identify patterns in historical data and identify common errors. If the engineer makes such an error during development, the coding assistant will flag this. And that’s not all…after deployment, ML can be used to analyze logs and flag errors that can then be fixed. This makes the software developer proactive in solving errors. Who knows? Maybe in the future ML will correct software based on errors without the need for human intervention.

6. Rapid Prototyping: Converting business requirements into technology takes months at best or years to turn into technology. Today, however, ML is reducing development time by helping individuals with less technical knowledge to develop technologies.

7. Using AI for Project Planning: The human brain is an astonishingly great knowledge powerhouse. And what’s even more surprising is that we all have different cognitive abilities from one another. No two project managers will have the exact same thoughts on the same project. Enter ML. By replicating human intelligence, ML can create various permutations of a situation similar to the human brain.

8. Risk Estimation: Making informed decisions on risk estimation in software development is complex and factors in budgeting and scheduling constraints. In the beginning, healthy completion levels appear likely for every project. But here’s the kicker, when you start the project, the external environment and project interdependencies alter the probabilistic scenarios. Our limitation as humans is limited by the capacity to store and reproduce information. ML allows you to retrieve parameterized information on demand. You can train the AI model with past data of project start and end dates. This way, it will give you a realistic timeline for the current development project.

9. Project Resource Management: Delivering a software product depends on having the right people working on the project. Again, AI goes deep into the data on the history of past projects. It can give you information in real time on which developers are engaged in other projects. This makes it easy for you to know which developers are ready for deployment. Based on the ML prediction, you can either increase or reduce the number of developers.