วันพฤหัสบดีที่ 18 กันยายน พ.ศ. 2568

Evaluate RAG

https://towardsdatascience.com/evaluating-your-rag-solution/

Notebooklm is RAG as we can add files to let users ask anything about the files.

วันเสาร์ที่ 13 กันยายน พ.ศ. 2568

PR-AUC

You can use this plot to make an educated decision when it comes to the classic precision/recall dilemma. Obviously, the higher the recall, the lower the precision. Knowing at which recall your precision starts to fall fast can help you choose the threshold and deliver a better model.









https://neptune.ai/blog/f1-score-accuracy-roc-auc-pr-auc

The precision recall curve is a handy plot to showcase the relationship and tradeoff between precision recall values as we adjust the decision threshold of the classifier. What is the decision threshold? The decision threshold, also called the classification threshold, is a cutoff point used in binary classification to convert the probability score output by a machine learning model into a final class prediction (positive or negative). Most binary classification models (like logistic regression) output a probability between 0 and 1 that an instance belongs to the positive class. The decision threshold determines which probability values map to which class: If the predicted probability is greater than or equal to the threshold, the instance is classified as the positive class. If the predicted probability is less than the threshold, the instance is classified as the negative class. How it Works By default, the threshold is often set to 0.5. A probability of \ge 0.5 \rightarrow Positive Class A probability of < 0.5 \rightarrow Negative Class However, this default isn't always optimal. The threshold is a hyperparameter that can be tuned to balance the trade-off between precision and recall, which is what the precision-recall curve helps to visualize. Threshold and Precision/Recall Trade-off Adjusting the decision threshold directly impacts the number of false positives (FP) and false negatives (FN), which in turn changes the precision and recall values.

A higher AUC-PR value signifies better performance, with a maximum value of 1 indicating perfect precision and recall trade-off. https://www.superannotate.com/blog/mean-average-precision-and-its-uses-in-object-detection


วันอังคารที่ 9 กันยายน พ.ศ. 2568

Agentic AI vs AI Agent

The primary difference is that AI Agents are individual tools that execute pre-defined tasks with limited autonomy, while Agentic AI is a broader concept representing the use of autonomous systems that can independently set goals, make real-time decisions, adapt, and collaborate to solve complex, dynamic problems. Think of AI agents as specific tools or employees, and agentic AI as the system or project manager coordinating them to achieve a larger, more complex goal.  

Stochastic Gradient Descent

  • Gradient Descent (Batch): You take a step in the steepest downhill direction. To find the steepest direction, you have to survey the slope of the entire landscape (the entire dataset) before taking each single step. This is accurate but very slow if the landscape is vast (a huge dataset).Stochastic 
  • Gradient Descent (SGD): Instead of surveying the entire landscape, you just pick one random spot on the landscape and measure the slope there. You then take a small step in that single spot's steepest downhill direction. You repeat this process many times, picking a new random spot for each step.

วันอาทิตย์ที่ 7 กันยายน พ.ศ. 2568

Docker getting started for Windows Desktop (not Windows Server)

Terminology (https://www.docker.com/blog/docker-for-web-developers/)

  • Docker Hub: The world’s largest repository of container images, which helps developers and open source contributors find, use, and share their Docker-inspired container images.
  • Docker Compose: A tool for defining and running multi-container applications.
  • Docker Engine: An open source containerization technology for building and containerizing applications.
  • Docker Desktop: Includes the Docker Engine and other open source components; proprietary components; and features such as an intuitive GUI, synchronized file shares, access to cloud resources, debugging features, native host integration, governance, and security features that support Enhanced Container Isolation (ECI), air-gapped containers, and administrative settings management.
  • Docker Build Cloud: A Docker service that lets developers build their container images on a cloud infrastructure that ensures fast builds anywhere for all team members. 

My successful experiment.

1.Download Docker desktop for Windows

https://www.docker.com/products/docker-desktop/

2.Install it

3.You may sign up or skip

4.Run docker.desktop. It shows in the icon tray. 

5.You may be asked to run command wsl --update in cmd to update Windows subsystem for Linux (WSL) then click restart to restart docker engine

6.Create a folder namely "getting-started-docker" anywhere.

7.Within the created folder, create 2 files to get an HTTP server based on Nginx run on your Windows.

Dockerfile

# Use the official Nginx image from Docker Hub

FROM nginx:latest

# Copy the custom index.html file into the Nginx directory

COPY index.html /usr/share/nginx/html/index.html

#If there are multiple files of a web app you want to deploy, use one of these commands instead:

#COPY . /usr/share/nginx/html/ to copy entire current directory

#COPY *.js /usr/share/nginx/html/ to copy all js files

#COPY index.html styles.css scripts/app.js /usr/share/nginx/html/ to copy specified files

index.html

<!DOCTYPE html>

<html>

<head>

<title>Hello, World!</title>

</head>

<body>

<h1>Hello, World!</h1>

<p>This page is served by Nginx in a Docker container.</p>

</body>

</html>

8.Open cmd window. Change directory into getting-started-docker

9.Run the following command to build your container image, which extends nginx image from Docker hub by adding my index.html. The -t specifies the container's name. The . specifies the current directory as a build context.

docker build -t my-nginx-webserver .

10.Start my container by running my docker image.

docker run -d -p 8080:80 --name my-nginx-container my-nginx-webserver

The -d flag runs the container in "detached" mode (in the background).

The -p flag maps port 8080 on your local machine to port 80 inside the container, which is the default port Nginx listens on.

The --name my-nginx-container gives your container a memorable name.

Finally, you specify the name of the image you want to use (my-nginx-webserver).

If you want your container to auto start upon Windows restart, do 2 more steps:

1) Docker desktop>Setting>tick Start Docker Desktop when you sign in to your computer

2) Run docker from within getting-started-docker folder by using this command instead: 

docker run --restart unless-stopped -d -p 8080:80 --name my-nginx-container my-nginx-webserver

11.Open http://localhost:8080 in your web browser to verify if it works.

12.Stop the container with this command:

docker stop my-nginx-container

13.Or you may start it again with this command:

docker start my-nginx-container

14.Remove your container after stopping it:

docker rm my-nginx-container

15.You may remove the image:

docker rmi my-nginx-webserver