AI Integration Strategy
Over the last months/year, we have seen a global shift with the constant improvements made in the field of large AI models, enabling them to provide capabilities for multiple use cases. There is a vast amount of competition both in the AI as a Service (OpenAI, cloud services, etc.) and the open source model side, which should give us multiple options to choose from for integration.
The proposal is to focus on "prompt engineering" rather than "model engineering". By having a strong and competitive global base system (external or self-run) in place that **all development teams/groups** can use and incorporate to extend capabilities, we can stay timely and strategically competitive in this field. In a classic GitLab iteration fashion, the focus should be on searching for small iterations to begin with and extending further in larger use cases, rather than starting with the most complex. We can externalize feasibility and usefulness checkd with small experiments before incorporating them into the actual product. Again, the value proposition of one DevSecOps platform should come as an advantage, as we would be able to provide any AI system with a 360-degree view of data.
## Increase productivity and time to results for our users
AI is the new super shiny topic and there is a trend to inject AI to everything. We should focus on creating especially value by increasing productivity and time to results for our users so they can focus on the most important topics. Any AI enhance proposal should be checked on this is really useful and could be used something on a daily basis saving a lot of time vs. "looks shiny and great for marketing".
With tools nowadays it should be easy to validate ideas in days before fully integrating into the product.
## Current Projects
* [Code Suggestions](https://about.gitlab.com/direction/modelops/ai_assisted/code_suggestions/)
* [ModelOps Topics](https://about.gitlab.com/direction/modelops/ai_assisted/)
* Added Support for GitLab to [codereview.gpt](https://github.com/sturdy-dev/codereview.gpt)
## Done Experiments
* [Tanuki Stan](https://gitlab.com/gitlab-org/ml-ops/tanuki-stan)
* [Natural language Queries for Analytics](gitlab-org/gitlab#393881)
* [AI Assist Experiment](https://www.youtube.com/watch?v=URi0teihIGE) + [Repo](https://gitlab.com/a_akgun/gitlab-rapid-machine-learning-prototypes/-/tree/main)
* [Ask the Tanuki about documentation and handbook content](https://gitlab.com/gitlab-org/gitlab/-/issues/402255)
* [Spamcheck Product Spam Detection](https://gitlab.com/gitlab-org/gl-security/security-engineering/security-automation/spam/spamcheck)
## Information Gathering
### Dev + Analytics
* [Implementation Map](https://gitlab.com/gitlab-org/gitlab/-/issues/402649)
* [Possible Use Cases](gitlab-org/gitlab#393884)
* [Examples/Infos/Competition Use Cases](gitlab-org/gitlab#393883)
## Effort classification
To help with prioritzation and decision making for "low hanging" fruits, trying to classify potential integrations into 3 different buckets. By this we are able to classify early ideas, for a next experimentation level and then a potential go-to-production.
### 1. Ad-hoc Task
A task that is given to an API and an immediate result is returned. E.g. Summarize text content, explain specific part of code, etc. Especially if existing API's can be used and no further model only a good prompt is needed which can be formed in experimentation phase.
Examples:
* Summarize content, write content, explain, translate, improve code, etc. by OpenAI API (https://platform.openai.com/examples)
* Use [Prophet](https://facebook.github.io/prophet/) for forecasting data in charts
### 2. Pre-Analysing + Knowledge Base
If pre-transformation needs to be done and results need to be stored implementation becomes more complex. E.g. Indexing of all issues, code files to be able to answer questions.
Examples
* Vector Index of Content (Issues, MR, Code?) for different tasks like answering questions, classification, clustering, etc.
### 3. Custom ML
Very specific tasks and workflows that even need implementation of own models and continous improvement.
----
Both 1 and 2 types are classic work items in product development and should be handled like that. Experimentation can be done in work spikes. We need to define a sign off procedure regarding production go live.
epic