What I learn from Google Cloud Study Jam: GenAI
Tags: googlecloud, google
Published: 2024-01-13 06:03:33

**Material of Study Jam**

1. Introduction to AI and Machine Learning on Google Cloud
2. Generative AI Fundamentals
3. Introduction to Generative AI Studio
4. Generative AI Explorer - Vertex AI
5. Google Cloud Computing Foundations: Cloud Computing Fundamentals
6. Google Cloud Computing Foundations: Infrastructure in Google Cloud
7. Google Cloud Computing Foundations: Networking & Security in Google Cloud
8. Google Cloud Computing Foundations: Data, ML, and AI in Google Cloud
9. Create and Manage Cloud Resources
10. Perform Foundational Infrastructure Tasks in Google Cloud
11. Build and Secure Networks in Google Cloud
12. Perform Foundational Data, ML, and AI Tasks in Google Cloud


<br />
**Basic Knowledge of machine learning**

<br />
<u>What is machine learning?</u>
- ML algorithms learn from data, identifying patterns, and making predictions or taking actions based on that learned knowledge.
- ML models can be trained on structured or unstructured data, such as images, text, or numerical data, to perform tasks like classification, regression, clustering, or recommendation.
- ML models require training data to learn patterns and parameters, and they improve their performance over time through iterative training and testing.

<br />
<u>What is the step of doing machine learning?</u>

1. Data Collection: Gather relevant data for the problem you want to solve or the task you want the machine learning model to perform.
2. Data Preprocessing: Clean, preprocess, and transform the data to make it suitable for training. This involves handling missing values, normalizing data, encoding categorical variables, and splitting the dataset into training and testing sets.
3. Feature Engineering: Select or create appropriate features from the data that will help the machine learning model learn patterns and make accurate predictions. This step may involve feature scaling, dimensionality reduction, or creating new features.
4. Model Selection: Choose the appropriate machine learning algorithm or model that is suitable for your problem and data. Consider factors such as the type of problem (classification, regression, clustering), the size of the dataset, and the complexity of the task.
5. Model Training: Train the selected model using the training dataset. The model learns from the input data and adjusts its internal parameters to minimize errors or maximize performance on the training data.
6. Model Evaluation: Assess the performance of the trained model using evaluation metrics and techniques such as accuracy, precision, recall, F1 score, or mean squared error, depending on the problem type. Use the testing dataset that was set aside earlier.
7. Model Optimization: Fine-tune the model to improve its performance. This step may involve hyperparameter tuning, regularization techniques, or ensemble methods to boost accuracy or generalization.
8. Model Deployment: Deploy the trained model into a production environment or integrate it into an application for real-world use. This can involve creating APIs, building web or mobile interfaces, or embedding the model into existing systems.
9. Model Monitoring and Maintenance: Continuously monitor the model's performance and retrain or update it as needed to adapt to changing data patterns or improve accuracy. This step ensures the model remains effective over time.

<br />
<u>What is the key phase of a machine learning project?</u>
1. Problem Definition: Clearly define the problem or task you want to solve using machine learning. Understand the objectives, requirements, and constraints of the project.
2. Data Gathering and Preparation: Collect relevant data for training and testing the machine learning model. Clean, preprocess, and transform the data to make it suitable for analysis and model training.
3. Exploratory Data Analysis (EDA): Analyze and visualize the data to gain insights, understand the data's characteristics, and identify patterns or relationships that may be relevant for the problem at hand.
4. Feature Engineering: Select or create appropriate features from the data that will help the machine learning model learn patterns and make accurate predictions. This step may involve feature scaling, dimensionality reduction, or creating new features.
5. Model Selection and Training: Choose the appropriate machine learning algorithm or model that is suitable for your problem and data. Train the selected model using the prepared data.
6. Model Evaluation and Validation: Assess the performance of the trained model using evaluation metrics and techniques. Validate the model's performance on unseen data to ensure its generalization capabilities.
7. Model Deployment and Integration: Deploy the trained model into a production environment or integrate it into an application for real-world use. This may involve creating APIs, building web or mobile interfaces, or embedding the model into existing systems.
8. Monitoring and Maintenance: Continuously monitor the model's performance and retrain or update it as needed to adapt to changing data patterns or improve accuracy. This step ensures the model remains effective over time.

<br />
<u>What is a probability distribution?</u>

- A probability distribution describes the likelihood of different outcomes or events occurring in a given set of circumstances.
- It assigns probabilities to each possible outcome, indicating the relative likelihood of each outcome.
- Common probability distributions include the normal distribution, binomial distribution, Poisson distribution, and many others.
- Probability distributions are essential in statistics and machine learning for modeling and analyzing data.

<br />
<u>What is unsupervised learning?</u>
- Unsupervised learning is a type of machine learning where the algorithm learns patterns and structures in the data without explicit target labels or outcomes.
- Unlike supervised learning, the training data in unsupervised learning is unlabeled, meaning there are no predefined target values.

<br />
<u>What is Clustering?</u>

- Clustering is a common task in unsupervised learning where the algorithm groups similar data points together based on their inherent patterns or similarities.
- The goal is to discover hidden structures or clusters within the data without prior knowledge of the class labels.
- Examples include customer segmentation, image segmentation, or grouping news articles based on topics.

<br />
<u>What is an Association?</u>

- Association analysis is another task in unsupervised learning that aims to discover interesting relationships or associations between different items or features in a dataset.
- It identifies patterns such as frequently co-occurring items in a transactional dataset or items commonly purchased together.
- Association rules are used to express these relationships, such as "if A, then B."

<br />
<u>What is a Dimension Reduction?</u>

- Dimension reduction techniques are used in unsupervised learning to reduce the number of input features while retaining the most important information.
- The goal is to simplify the data representation, remove irrelevant or redundant features, and improve computational efficiency.
- Techniques like Principal Component Analysis (PCA) and t-SNE (t-Distributed Stochastic Neighbor Embedding) are commonly used for dimension reduction.

<br />
<u>What is supervised learning?</u>
- A machine learning approach where the model learns from labeled training data.
- Binary classification: Predicts between two classes or categories.
- Multi-class classification: Predicts among multiple classes or categories.
- Regression: Predicts continuous numerical values.
- The model learns the mapping between input features and corresponding target labels.
- The goal is to generalize the learned patterns to make predictions on new, unseen data.

<br />
<u>What is Binary Classification?</u>
- Binary classification is a type of supervised learning where the goal is to classify input examples into one of two possible classes or categories.
- The algorithm learns from labeled data and predicts whether a new input belongs to one class or the other.
- Examples include spam email detection (spam or not spam) or predicting whether a customer will churn (churn or not churn).

<br />
<u>What is Multi-Class Classification?</u>

- Multi-class classification is a type of supervised learning where the algorithm learns to classify input examples into more than two classes or categories.
- Each input belongs to one and only one class.
- Examples include image recognition tasks, where an algorithm identifies objects or digits in images from a predefined set of classes

<br />
<u>What is Regression?</u>

- Regression is a type of supervised learning where the algorithm learns to predict a continuous numerical value or a quantity based on input features.
- The goal is to find a functional relationship between the input variables and the continuous target variable.
- Examples include predicting housing prices based on features like location, size, and number of rooms or forecasting stock prices based on historical data and market indicators.

<br />
<u>What is the cost function?</u>

- In machine learning, a cost function, also known as a loss function or objective function, measures the discrepancy between predicted values and the true values of the target variable.
- The cost function quantifies the error or deviation of the model's predictions from the actual values.
- The purpose of a cost function is to provide a single scalar value that represents the overall performance or quality of the model.
- The goal is to minimize the cost function during model training to find the optimal set of parameters or weights that result in the best predictions.

Mean Squared Error (MSE):

- Mean Squared Error is a commonly used cost function for regression problems.
- It measures the average squared difference between the predicted values and the true values of the target variable.
- The squared difference is used to penalize larger errors more heavily, giving more importance to outliers.
- The MSE is calculated by taking the average of the squared differences between the predicted and true values.
- Minimizing the MSE during training leads to finding the optimal parameters that provide the best fit to the data in terms of minimizing the squared errors.


<br />
<u>What is the learning rate?</u>

- The learning rate is a scalar value typically set before training begins and remains constant throughout the training process.
- A high learning rate allows the model to learn quickly, but it may also cause the model to overshoot the optimal solution and lead to instability or divergence.
- A low learning rate makes the model converge slowly but can result in better stability and accuracy.
- Selecting an appropriate learning rate is crucial for effective training. It requires finding a balance between fast convergence and avoiding overshooting or getting stuck in suboptimal solutions.
- The learning rate is often tuned along with other hyperparameters during model development to find the best combination that yields optimal performance.
- Learning rate schedules or adaptive learning rate algorithms, such as learning rate decay or Adam optimizer, dynamically adjust the learning rate during training to improve convergence and performance.

<br />
<u>What is a confusion matrix?</u>

Confusion Matrix:

- A confusion matrix is a performance evaluation tool used in classification tasks to summarize the performance of a machine learning model.
- It is a square matrix that compares the predicted labels with the actual labels of a dataset.
- The matrix provides a breakdown of the true positives (TP), true negatives (TN), false positives (FP), and false negatives (FN) generated by the model.

False Negative Rate:

- The false negative rate measures the proportion of actual positive instances that are incorrectly predicted as negative by the model.
- It represents the rate of missed positive predictions or the model's failure to identify positive instances.
- It is calculated as FN / (FN + TP).

False Positive Rate:

- The false positive rate measures the proportion of actual negative instances that are incorrectly predicted as positive by the model.
- It represents the rate of false alarms or the model's tendency to incorrectly classify negative instances as positive.
- It is calculated as FP / (FP + TN).

Recall:

- Recall, also known as sensitivity or true positive rate, measures the proportion of actual positive instances correctly predicted by the model.
- It quantifies the model's ability to identify positive instances.
- It is calculated as TP / (TP + FN).

Precision:

- Precision measures the proportion of positive predictions that are actually true positive instances.
- It quantifies the model's accuracy in predicting positive instances.
- Precision is calculated as TP / (TP + FP).

<br />
<u>What is the precision-recall curve?</u>

Precision-Recall Curve:

- The precision-recall curve is a graphical representation of the trade-off between precision and recall for different classification thresholds.
- It is commonly used to evaluate the performance of a binary classification model, particularly when dealing with imbalanced datasets.
- Precision measures the proportion of true positive predictions among all positive predictions, while recall measures the proportion of true positive predictions among all actual positive instances.
- The precision-recall curve plots precision on the y-axis and recall on the x-axis, typically showing how the model's performance changes as the classification threshold varies.
- A higher precision-recall curve indicates a better model performance, with the ideal scenario being a curve that hugs the top-right corner of the graph.
- The area under the precision-recall curve (AUC-PR) is often used as a summary metric to quantify the overall performance of the model.

Confidence Threshold:

- In binary classification, a confidence threshold is a value used to determine the positive or negative classification of an instance.
- It represents the level of confidence or probability required for an instance to be classified as positive or belong to a specific class.
- Instances with predicted probabilities (or confidence scores) above the threshold are classified as positive, while those below the threshold are classified as negative.
- Adjusting the confidence threshold allows for controlling the balance between precision and recall.
- A higher threshold tends to increase precision but may decrease recall, while a lower threshold does the opposite.

<br />
<u>What is the activation function?</u>

- An activation function is a mathematical function applied to the output of a neuron or a layer in a neural network.
- It introduces non-linearity into the network, enabling it to learn complex patterns and make nonlinear transformations.
- Activation functions determine the output or activation level of a neuron based on its input.
- Common activation functions include sigmoid, tanh, ReLU (Rectified Linear Unit), and softmax.
- Use cases of activation functions include image recognition, natural language processing, and time series analysis.

Benefits of activation functions:

- Non-linearity: Activation functions allow neural networks to model and learn complex relationships in data.
- Gradient propagation: They help in efficient backpropagation of errors and gradients during the training process.
- Avoiding vanishing gradients: Activation functions like ReLU mitigate the vanishing gradient problem, preventing the network from getting stuck during training.
- Output range limitation: Activation functions can limit the output range of neurons, ensuring activation values within desired bounds.
- Interpretability: Certain activation functions, like sigmoid and softmax, provide probabilistic interpretations and are useful in classification tasks.

<br />
<u>What is the loss function?</u>

- A loss function, also known as a cost function or objective function, measures the discrepancy between predicted and actual values in a machine learning model.
- It quantifies the model's performance and guides the learning process during training.
- Use cases of loss functions include regression, classification, and generative modeling tasks.

Benefits of loss functions:

- Optimization: Loss functions provide a measure of error that can be minimized during the training process, enabling the model to learn optimal parameters.
- Model evaluation: Loss functions serve as evaluation metrics, allowing comparison and selection of different models or hyperparameters.
- Task-specific customization: Different loss functions can be designed to suit specific requirements of the task, such as mean squared error (MSE) for regression or cross-entropy loss for classification.
- Gradient computation: Loss functions enable the computation of gradients, which is crucial for updating model parameters through backpropagation.
- Regularization: Certain loss functions, like L1 or L2 regularization, can be used to impose penalty terms on the model's parameters, promoting simplicity and preventing overfitting.

<br />
<u>What is a Cross-Entropy?</u>
- Cross entropy is a measure of the dissimilarity between two probability distributions.
- It is commonly used as a loss function in machine learning algorithms, particularly in classification tasks.
- Cross entropy measures the average number of bits needed to represent the true distribution compared to an estimated or predicted distribution.
- It quantifies the difference between predicted probabilities and the actual outcomes, penalizing incorrect predictions more heavily.
- Minimizing cross entropy during model training helps improve the accuracy and alignment of predicted probabilities with the true distribution.

<br />
<u>What is the use case of discriminative?</u>

- Discriminative models are used to classify input data into different classes or categories.
- They learn the decision boundary that separates different classes.
- These models focus on modeling the conditional probability of the target class given the input features.
- Common discriminative models include logistic regression, support vector machines (SVMs), and neural networks.
- Discriminative models are effective for tasks such as image recognition, sentiment analysis, and text classification.

<br />
<u>What is the use case of generative?</u>

- Generative models are used to generate new samples that resemble the training data distribution.
- They learn the underlying probability distribution of the data.
- These models can generate new instances or samples that are similar to the training data.
- Generative models are useful for tasks such as image generation, text generation, and data augmentation.
- Examples of generative models include generative adversarial networks (GANs) and variational autoencoders (VAEs).

<br />
**The type of machine learning**

<br />
<u>What is a foundation model?</u>

- A foundation model is a pre-trained language model that serves as a starting point for various natural language processing (NLP) tasks.
- It is trained on a large corpus of text data to learn language patterns and representations.
- Foundation models, such as GPT-3, serve as a basis for fine-tuning or transfer learning on specific downstream tasks.
- They provide a strong foundation of language understanding and can be adapted to perform tasks like text classification, summarization, or question answering.
- Foundation models enable faster and more efficient development of NLP applications by leveraging their pre-trained knowledge and capabilities.

<br />
<u>What is ANN?</u>

- ANN stands for Artificial Neural Network, a computational model inspired by the structure and functioning of biological neural networks.
- ANN consists of interconnected artificial neurons (nodes) organized in layers, including an input layer, one or more hidden layers, and an output layer.
- Use cases of ANN include image and speech recognition, natural language processing, time series analysis, and pattern recognition.

Benefits of ANN:

- Non-linear modeling: ANN can capture complex non-linear relationships in data, enabling more accurate predictions and classifications.
- Parallel processing: ANN can perform computations in parallel, leading to faster training and inference times.
- Adaptability: ANN can learn from data and adapt to changing patterns, making them suitable for dynamic environments.
- Feature extraction: ANN can automatically learn relevant features from raw data, reducing the need for manual feature engineering.
- Generalization: ANN can generalize from training data to make predictions on unseen data, allowing for robust performance.
- Scalability: ANN can handle large and high-dimensional datasets, making them applicable to big data scenarios.

<br />
<u>What is DNN?</u>

- DNN stands for Deep Neural Network, which refers to a neural network with multiple layers between the input and output layers.
- DNNs are composed of multiple hidden layers, allowing them to learn complex patterns and hierarchies of features.
- Use cases of DNN include computer vision, natural language processing, speech recognition, and recommendation systems.

Benefits of DNN:

- Representation learning: DNNs can automatically learn meaningful representations and features from raw data, reducing the need for manual feature engineering.
- Hierarchical abstraction: DNNs can capture hierarchical representations of data, enabling them to learn and exploit complex patterns and relationships.
- Improved performance: DNNs have demonstrated state-of-the-art performance in various domains, surpassing traditional machine learning models.
- Scalability: DNNs can handle large-scale datasets and high-dimensional inputs, making them suitable for big data scenarios.
- Transfer learning: Pretrained DNN models can be used as a starting point for new tasks, leveraging learned features and accelerating training.
- Parallelizability: DNN computations can be efficiently parallelized across multiple processors or GPUs, resulting in faster training and inference times.

<br />
<u>What is CNN?</u>

- CNN stands for Convolutional Neural Network, which is a specialized type of neural network commonly used for analyzing visual data.
- CNNs are designed to automatically learn and extract relevant features from images or other grid-like data.
- Use cases of CNN include image classification, object detection, image segmentation, and facial recognition.

Benefits of CNN:

- Local feature extraction: CNNs utilize convolutional layers to extract local patterns and features from different regions of an image.
- Translation invariance: CNNs are capable of recognizing patterns irrespective of their location in an image, making them robust to translations.
- Parameter sharing: CNNs use shared weights in convolutional layers, reducing the number of parameters and enabling efficient training on large datasets.
- Hierarchical representation: CNNs learn hierarchical representations of visual data, capturing low-level features and progressively combining them.
- Spatial hierarchies: CNNs preserve the spatial relationships between features, allowing them to capture spatial structures and patterns in images.
- Dimensionality reduction: CNNs employ pooling layers to reduce the spatial dimensions of feature maps, aiding in computational efficiency and preventing overfitting.

<br />
<u>What is RNN?</u>

- RNN stands for Recurrent Neural Network, which is a type of neural network commonly used for processing sequential data.
- RNNs have connections between neurons that form directed cycles, allowing them to process and remember information from previous time steps.
- Use cases of RNN include natural language processing, speech recognition, machine translation, and time series analysis.
Benefits of RNN:

- Sequential modeling: RNNs can model and process sequences of data, capturing temporal dependencies and patterns.
- Variable-length inputs: RNNs can handle inputs of variable lengths, making them suitable for tasks with varying sequence lengths.
- Contextual understanding: RNNs maintain an internal state or memory, enabling them to incorporate context and make informed predictions based on past information.
- Time series forecasting: RNNs are well-suited for analyzing and predicting time-dependent data, such as stock prices or weather patterns.
- Language modeling: RNNs can generate new text based on the learned patterns and structure of the training data, enabling applications like text generation and dialogue systems.

<br />
**Machine learning on Google Cloud**

<br />
<u>What is Google's pre-trained ML model?</u>

- Inception-v3: A CNN model for image classification and object recognition.
- BERT: A transformer-based model for natural language processing tasks like sentiment analysis and question answering.
- GPT (Generative Pre-trained Transformer): A transformer-based model for natural language generation and text completion.
- EfficientNet: A family of CNN models with optimized architectures for image classification tasks.

Benefits of Google's pre-trained models:

- Time and resource-saving: Pre-trained models eliminate the need to train models from scratch, saving time and computational resources.
- Performance: Google's pre-trained models often achieve state-of-the-art results in their respective domains.
- Transfer learning: Pre-trained models can be fine-tuned on specific tasks with smaller datasets, leveraging the learned representations and accelerating training.
- Accessibility: Google provides open-source implementations and APIs for many of their pre-trained models, making them easily accessible to developers and researchers.

<br />
<u>What is Google autoML?</u>

- Google AutoML is a suite of machine learning tools and services provided by Google Cloud.
- It allows users to build and deploy custom machine learning models without extensive coding or data science expertise.
- AutoML provides various services, including AutoML Tables, AutoML Vision, AutoML Natural Language, and more.
- These services offer automated model training, hyperparameter tuning, and model evaluation.
- Google AutoML aims to democratize machine learning by making it accessible to a wider range of users and industries.

<br />
<u>What is a Google BigQuery ML?</u>

- Google BigQuery ML is a machine learning service provided by Google Cloud Platform.
- It integrates machine learning directly into Google BigQuery, a fully managed data warehouse.
- Allows you to build and deploy machine learning models using SQL queries, without the need to move data out of BigQuery.
- Supports popular machine learning algorithms such as linear regression, logistic regression, and k-means clustering.
- Provides automatic feature engineering and model training, simplifying the machine learning workflow.
- Enables seamless integration with other Google Cloud services for data preprocessing, model evaluation, and deployment.
- Offers scalability and high-performance computing capabilities for handling large-scale datasets in BigQuery.
- Allows users to leverage their existing SQL and data analysis skills for machine learning tasks.

<br />
<u>What is a Google model garden?</u>

- Google Model Garden is an open-source repository of machine learning models and tools provided by Google.
- It offers a collection of state-of-the-art machine learning models implemented using TensorFlow.
- Provides pre-trained models, model architectures, and various utilities for building and deploying machine learning projects.
- Covers a wide range of domains and tasks, including computer vision, natural language processing, and recommendation systems.
- Includes models such as EfficientNet, MobileNet, BERT, and many others.
- Offers code examples, tutorials, and documentation to assist developers in using the models effectively.
- Allows researchers and developers to leverage Google's expertise and best practices in machine learning.
- Enables collaboration and contributions from the open-source community to enhance and expand the available models and tools.

<br />
<u>What is Google's custom ML model?</u>

- Google's custom ML model refers to the ability to build and train your own machine learning models tailored to specific tasks and requirements.
- It allows users to define their own model architectures, select algorithms, and customize hyperparameters.
- Users have control over the training process, including data preparation, feature engineering, and model evaluation.
- Custom ML models can be built using frameworks like TensorFlow and deployed on Google Cloud Platform.
- Offers flexibility to address unique use cases and domain-specific challenges.
- Requires more expertise in machine learning and coding compared to using pre-trained models or automated services.
- Provides the freedom to experiment and iterate on model designs and optimizations.
- Allows integration with other Google Cloud services for data storage, preprocessing, and deployment.

<br />
<u>What is Google vertex AI?</u>

- Google Vertex AI is a machine learning platform provided by Google Cloud.
- It offers a unified and fully managed environment for building, training, and deploying machine learning models.
- Provides tools and services for data preparation, model development, training, and deployment.
- Supports various machine learning frameworks like TensorFlow and PyTorch.
- Offers AutoML capabilities for automated model development and deployment.
- Enables efficient collaboration and versioning of machine learning projects.
- Integrates with other Google Cloud services for data storage, preprocessing, and deployment.
- Provides scalable, reliable, and high-performance computing resources for training and inference.
- Offers monitoring, logging, and visualization features to track and analyze model performance.
- Simplifies the end-to-end machine learning workflow and accelerates model development and deployment.

<br />
<u>What is Google vertex AI feature store?</u>

- Google Vertex AI Feature Store is a service provided by Google Cloud as part of the Vertex AI platform.
- It is a centralized repository for managing and serving machine learning features or attributes.
- Helps organize and store data features used for training and serving machine learning models.
- Offers features for data ingestion, feature versioning, and feature serving.
- Provides a scalable and reliable infrastructure for storing and accessing feature data.
- Facilitates feature sharing and reuse across different projects and teams.
- Integrates with other Google Cloud services for data preprocessing, transformation, and model training.
- Enables efficient feature retrieval and serving during model training and prediction.
- Helps maintain consistency and data integrity across different stages of the machine learning lifecycle.
- Improves collaboration and productivity for feature engineering and model development tasks.

<br />
<u>What are Google vertex AI pipelines?</u>

- Google Vertex AI Pipelines is a feature of the Vertex AI platform for building, deploying, and managing machine learning pipelines.
- It supports various pipeline orchestration frameworks, including KubeFlow Pipelines (KFP) and TensorFlow Extended (TFX).
- KubeFlow Pipelines (KFP) is an open-source framework for building and deploying portable and scalable machine learning workflows using Kubernetes.
- TensorFlow Extended (TFX) is a Google-developed framework that provides a set of tools for building production machine learning pipelines using TensorFlow.
- These frameworks enable the creation of end-to-end machine learning pipelines that encompass data ingestion, preprocessing, model training, evaluation, and deployment.
- Google Vertex AI Pipelines offers features for versioning, monitoring, and managing the execution of pipelines.
- It provides a visual interface for designing and tracking pipeline workflows.
- Vertex AI Pipelines integrate with other Google Cloud services, allowing seamless access to data storage, preprocessing capabilities, and model serving infrastructure.
- These pipelines simplify the deployment and management of complex machine learning workflows, enhancing collaboration and automation in the machine learning development process.

<br />
<u>What is Google vertex AI workbench notebook?</u>

- Google Vertex AI Workbench Notebook is a collaborative environment for data exploration, analysis, and machine learning development.
- It is part of the Vertex AI platform provided by Google Cloud.
- Workbench Notebooks offer JupyterLab-based notebooks with pre-installed tools and libraries for data science and machine learning.
- Provides a user-friendly interface for writing and executing code, visualizing data, and creating interactive data visualizations.
- Offers integration with Google Cloud services for seamless access to data storage, preprocessing, and model training.
- Supports collaboration and versioning features for teams working on data science projects.
- Enables the use of GPUs and TPUs for accelerated model training and inference.
- Provides a secure and scalable environment for data scientists and machine learning engineers.
- Simplifies the setup and configuration of the development environment, reducing the time spent on infrastructure management.
- Enhances productivity and collaboration for data-driven projects and machine learning workflows.

<br />
<u>What is vertex AI TensorBoard?</u>

- Vertex AI TensorBoard is a visualization tool provided by Google Cloud as part of the Vertex AI platform.
- It is based on the open-source TensorBoard framework and is integrated into the Vertex AI environment.
- TensorBoard allows users to visually monitor and analyze machine learning experiments and model performance.
- Provides interactive visualizations of scalar metrics, histograms, distributions, and other data.
- Supports tracking and comparison of multiple experiments and models.
- Offers features like model graph visualization, profiling, and debugging capabilities.
- Enables the exploration of training and evaluation metrics over time.
- Facilitates the identification of performance bottlenecks and optimization opportunities.
- Integrates with other Vertex AI services, such as Vertex Training, for seamless access to training logs and metrics.
- Helps improve understanding, interpretation, and optimization of machine learning models.

<br />
<u>What is a Google generative AI studio?</u>

- Google Generative AI Studio is an initiative by Google that focuses on advancing research and applications in the field of generative artificial intelligence.
- It encompasses various projects, research papers, and tools related to generative models and creative AI.
- Offers resources, tutorials, and code examples to help researchers and developers explore and experiment with generative AI techniques.
- Provides access to pre-trained models and datasets for tasks like image generation, text generation, and music generation.
- Facilitates collaboration and knowledge sharing within the generative AI community.
- Showcases innovative applications of generative models in art, design, and other creative domains.
- Promotes research and development of state-of-the-art generative AI algorithms and architectures.
- Supports open-source initiatives and encourages contributions from the community.
- Aims to push the boundaries of generative AI and inspire new creative possibilities.

<br />
**How to Machine Learning**

<br />
<u>Why need to evaluate ML models?</u>

- Evaluation of ML models is necessary to assess their performance and effectiveness.
- Helps determine how well the model generalizes to new, unseen data.
- Allows comparison of different models or variations of the same model to identify the most suitable one.
- Provides insights into the model's strengths, weaknesses, and areas for improvement.
- Validates the model against predefined criteria and objectives.
- Ensures the model meets the desired quality standards and requirements.
- Helps identify and mitigate issues such as overfitting, underfitting, or bias.
- Assists in making informed decisions about model deployment and usage.
- Facilitates iterative model refinement and optimization.
- Increases confidence in the model's reliability and trustworthiness.

<br />
<u>What is the model for evaluating ML models?</u>

- Evaluation of ML models involves various metrics and techniques to assess their performance.
- Common evaluation metrics include accuracy, precision, recall, F1 score, and area under the ROC curve.
- Cross-validation is a technique that helps assess model performance by splitting the data into multiple train-test sets.
- Confusion matrix provides a detailed view of model predictions and actual outcomes.
- Learning curves show the relationship between model performance and training data size.
- Techniques like holdout validation, k-fold cross-validation, and stratified sampling are used to ensure unbiased evaluation.
- Hyperparameter tuning helps optimize model performance by systematically adjusting model parameters.
- Evaluation also involves assessing the model's robustness to different datasets and scenarios.
- Model evaluation is an iterative process that involves comparing and refining models based on performance feedback.
- Evaluation results guide decision-making regarding model deployment, further training, or model selection.

<br />
<u>What is machine learning architecture?</u>

- Machine learning architecture refers to the structure and design of a machine learning system.
- It includes various components such as input data, feature engineering, model selection, training algorithms, and output predictions.
- Architectures can be categorized as supervised learning, unsupervised learning, or reinforcement learning.
- Supervised learning architectures typically consist of input data, a model, loss function, and optimization algorithm.
- Unsupervised learning architectures focus on discovering patterns and structures in data without labeled examples.
- Reinforcement learning architectures involve an agent interacting with an environment, learning through trial and error.
- Deep learning architectures, such as neural networks, are commonly used in machine learning.
- Architectures can be customized based on the specific problem domain and requirements.
- Architectural choices impact model performance, scalability, interpretability, and computational requirements.
- Model architecture design involves considering factors like input dimensionality, complexity, and available data.
- Effective architecture design plays a crucial role in the success of machine learning projects.

<br />
<u>What is the hyperparameter?</u>

- Hyperparameters are configuration settings of a machine learning model that are set before training.
- They are not learned from the data but are chosen by the developer or researcher.
- Examples of hyperparameters include learning rate, batch size, number of hidden layers, and regularization strength.
- Hyperparameters control the behavior and performance of the model during training.
- Optimizing hyperparameters can improve model accuracy and generalization.
- Hyperparameter tuning involves selecting the best combination of hyperparameters for optimal model performance.
- Techniques like grid search, random search, and Bayesian optimization are used for hyperparameter tuning.
- The choice of hyperparameters can vary depending on the dataset, problem domain, and model architecture.
- Hyperparameter tuning is an iterative process that involves training and evaluating models with different hyperparameter values.
- Finding the right hyperparameter values requires experimentation and balancing trade-offs in model performance.

<br />
<u>What is the step of training with a custom container on Vertex training?</u>

1. Build a custom container that encapsulates the training code and dependencies.
2. Push the container image to a container registry accessible to Google Cloud.
3. Create a training job on Vertex AI and specify the custom container image.
4. Configure the training job with the required machine type, resources, and hyperparameters.
5. Provide the training data and any necessary pre-processing steps.
6. Start the training job and monitor its progress and logs.
7. Optionally, use distributed training for large-scale models or accelerated hardware like GPUs or TPUs.
8. Evaluate the trained model's performance using evaluation metrics and validation data.
9. Save the trained model artifacts for future use or deployment.
10. Iterate on the training process by adjusting hyperparameters, model architecture, or data preprocessing steps.
11. Fine-tune the model if necessary and repeat the training process until satisfactory results are achieved.

<br />
<u>What is the step of training pre-built containers on vertex training?</u>

1. Select a pre-built container provided by Vertex AI for the desired training task (e.g., image classification, text classification).
2. Configure the training job by specifying the pre-built container and its associated settings.
3. Provide the training data and any necessary pre-processing steps.
4. Customize the training job by adjusting hyperparameters, model architecture, or other settings.
5. Optionally, use distributed training for large-scale models or accelerated hardware like GPUs or TPUs.
6. Start the training job and monitor its progress and logs.
7. Evaluate the trained model's performance using evaluation metrics and validation data.
8. Save the trained model artifacts for future use or deployment.
9. Iterate on the training process by adjusting hyperparameters, model architecture, or data preprocessing steps.
10. Fine-tune the model if necessary and repeat the training process until satisfactory results are achieved.

<br />
<u>What is the difference between notebook instance and vertex training service?</u>

Notebook Instance:
- Notebook Instance is a cloud-based environment for interactive data analysis, experimentation, and development.
- It provides a JupyterLab-based interface with pre-installed libraries and tools for data science and machine learning.
- Suitable for exploring and manipulating data, prototyping models, and conducting experiments.
- Offers flexibility and interactivity for data scientists and researchers to iterate on their work.
- Primarily used for smaller-scale tasks and individual exploration.

Vertex Training Service:
- Vertex Training Service is a managed service specifically designed for large-scale training and model development.
- It provides a scalable and distributed infrastructure for training complex machine learning models.
- Offers features like distributed training, hyperparameter tuning, and automated resource management.
- Supports training on powerful hardware accelerators like GPUs and TPUs.
- Enables efficient management of training jobs, monitoring, and tracking of model performance.
- Suitable for training models on large datasets, with the ability to scale resources as needed.
- Designed for collaborative environments and production-level machine learning workflows.

<br />
<u>What is the workflow of vertex AI?</u>

1 Data Preparation:

- Gather and preprocess the data required for model training and evaluation.
- Perform data cleaning, transformation, and feature engineering.

2 Feature Readiness:

- Prepare the features to be used by the model during training.
- Encode categorical variables, normalize numerical features, handle missing values, etc.

3 Model Development:
- Select an appropriate machine learning model or framework for the task.
- Define the model architecture and its hyperparameters.

4 Hyperparameter Tuning:

- Conduct hyperparameter tuning to optimize the model's performance.
- Use techniques like grid search, random search, or Bayesian optimization.
- Evaluate different combinations of hyperparameters to find the best configuration.

5 Model Training:

- Train the model using the prepared data and selected hyperparameters.
- Use a training algorithm to iteratively update the model's parameters.
- Monitor the training process, track performance metrics, and adjust as necessary.

6 Model Evaluation:

- Evaluate the trained model's performance using evaluation metrics and validation data.
- Measure metrics like accuracy, precision, recall, F1 score, or others relevant to the task.

7 Model Deployment:

- Deploy the trained model to a production environment for inference.
- Create an endpoint or API to serve predictions based on the deployed model.
- Monitor and maintain the deployed model's performance over time.

<br />
<u>What is the workflow of AutoML?</u>

1 Data Preprocessing:

- Perform data preprocessing steps like cleaning, normalization, and handling missing values.
- Utilize tools like TensorFlow Transform to preprocess and transform the data.

2 Loss Function, Auto Feature Selecting, Embedding:

- Define an appropriate loss function based on the problem type (e.g., regression, classification).
- Automatically select relevant features from the data using techniques like feature selection.
- Utilize embedding techniques to represent categorical variables as continuous vectors.

3 Bagging Ensemble:

- Apply bagging ensemble methods to create multiple models with different subsets of the data.
- Each model is trained independently, and their predictions are aggregated to improve overall performance.
- Techniques like random forests or gradient boosting can be used for ensemble modeling.

4 Prediction:

- Use the trained ensemble of models to make predictions on new, unseen data.
- Combine the predictions from multiple models to obtain a final prediction or probability estimation.
- Evaluate the predictive performance using metrics appropriate for the problem domain.

<br />
<u>What AutoML can be automated?</u>

Feature Engineering:

- AutoML can automate feature engineering by automatically selecting relevant features from the data.
- It can handle tasks like feature extraction, transformation, and encoding, reducing the manual effort required.

Model Architecture:

- AutoML can automate the selection and configuration of the model architecture.
- It can automatically search and select the most suitable model architecture based on the given problem and data.

Hyperparameter Tuning:

- AutoML can automate the process of hyperparameter tuning.
- It can automatically search and optimize hyperparameters to improve model performance without extensive manual tuning.

<br />
<u>What is the workflow of building an ML model on TensorFlow?</u>
1 Define the Data:

- Gather and preprocess the data required for training and evaluation.
- Split the data into training, validation, and test sets.

2 Design the Model Architecture:

- Determine the type of model architecture suitable for the task (e.g., feedforward neural network, convolutional neural network).
- Define the structure and connectivity of the model layers.
- Specify the activation functions, regularization techniques, and other architectural choices.

3 Configure the Training Process:

- Choose an optimizer (e.g., Adam, SGD) and a loss function appropriate for the problem.
- Define the metrics to evaluate the model's performance during training.
- Set the batch size, number of epochs, and other training hyperparameters.

4 Train the Model:

- Feed the training data into the model and adjust the model's parameters iteratively.
- Monitor the training process, track loss and metrics, and adjust hyperparameters if necessary.
- Validate the model's performance on the validation set during training.

5 Evaluate the Model:

- Assess the trained model's performance using evaluation metrics on the test set.
- Calculate metrics such as accuracy, precision, recall, or others relevant to the problem.

6 Fine-tune and Optimize:

- Analyze the model's performance and identify areas for improvement.
- Fine-tune the model by adjusting hyperparameters, modifying the architecture, or using regularization techniques.
- Iterate on steps 3-5 until a satisfactory model performance is achieved.

7 Deploy and Use the Model:

- Save the trained model's parameters and architecture for future use or deployment.
- Utilize the trained model to make predictions on new, unseen data in a production environment.

<br />
**The practical knowledge of using AI**

<br />
<u>What is the best practice of prompt design?</u>

Be clear and specific:

- Clearly define the desired output or action the model should generate.
- Provide specific instructions or constraints to guide the model's response.

Provide context and constraints:

- Include relevant context information to help the model understand the desired task.
- Specify any constraints or limitations that the model should consider.

Use explicit examples:

- Include explicit examples of the desired input-output pairs.
- Clearly demonstrate the expected behavior or response from the model.

Control output length:

- Set explicit length limits or provide guidance on desired response length.
- Use tokens like "STOP" or "END" to indicate the desired end of the response.

Experiment and iterate:

- Iteratively refine and experiment with different prompt designs.
- Evaluate the model's responses and adjust prompts based on the desired outcomes.

Consider bias and fairness:

- Be mindful of potential biases in the prompts that could influence the model's responses.
- Review and address any biases to ensure fair and unbiased outputs.

Test and validate:

- Test the prompt with the model to validate the desired behavior.
- Verify that the model's responses align with the intended task and expectations.

<br />
<u>What is an example of prompt design?</u>
Be concise
- prompt = "What do you think could be a good name for a flower shop that specializes in selling bouquets of dried flowers more than fresh flowers? Thank you!"
- prompt = "Suggest a name for a flower shop that sells bouquets of dried flowers"

Be specific, and well-defined
- prompt = "Tell me about Earth"
- prompt = "Generate a list of ways that makes Earth unique compared to other planets"

Ask one task at a time
- prompt = "What's the best method of boiling water and why is the sky blue?"
- prompt = "What's the best method of boiling water?"

<br />
<u>What is the best practice of prompt design?</u>

- Be clear and specific about the desired output or action.
- Provide context and constraints relevant to the task.
- Use explicit examples to demonstrate the desired behavior.
- Control the output length by setting limits or using tokens.
- Experiment and iterate to refine prompt design.
- Consider bias and fairness in prompt formulation.
- Test and validate prompts with the model for desired behavior.

<br />
<u>What is top k? (Number)</u>

- Refers to selecting the k most likely candidates from a set of options.
- Used in language models to limit the selection to the k most probable words.
- Helps control the output by narrowing down the choices to a specific number.
- Enables more focused and deterministic responses from the model.

<br />
<u>What is top p? (Probability)</u>

- Controls the diversity of generated text based on probability.
- Involves selecting tokens until the cumulative probability exceeds a specified threshold (p).
- Allows for more diverse outputs by considering a wider range of lower probability options.
- Offers flexible sampling based on probability, rather than a fixed number of candidates.

<br />
<u>What is temperature?</u>

- Controls the randomness and creativity of generated text.
- Low temperature values (e.g., 0.1) make the output more predictable and focused.
- High temperature values (e.g., 1.0 or higher) increase the randomness and creativity of the generated text.
- Adjusting the temperature parameter allows for fine-tuning the balance between predictability and creativity in the model's responses.

<br />
<u>What are max output tokens?</u>

- Specifies the maximum number of tokens allowed in the generated output.
- Used to limit the length of the model's response.
- Helps control the output size and prevents excessively long or verbose responses.
- Useful for ensuring output fits within specific constraints or system limitations.