Hướng dẫn Cài đặt n8n trên Azure | Tài liệu n8n

Lưu trữ n8n trên Azure#

Hướng dẫn lưu trữ này sẽ chỉ cho bạn cách tự lưu trữ n8n trên Azure. Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend bằng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Điều kiện tiên quyết#

Bạn cần Công cụ dòng lệnh Azure

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng có kinh nghiệm. Sai sót có thể dẫn đến mất dữ liệu, sự cố bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản mới nhất và phiên bản tiếp theo

n8n phát hành phiên bản minor mới hầu hết các tuần. Phiên bản latest dành cho sử dụng production. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Các tùy chọn lưu trữ#

Azure cung cấp một số cách phù hợp để lưu trữ n8n, bao gồm Azure Container Instances (tối ưu hóa cho việc chạy các container), Linux Virtual Machines và Azure Kubernetes Service (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Azure Kubernetes Service (AKS) làm tùy chọn lưu trữ. Sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Các bước trong hướng dẫn này sử dụng kết hợp giao diện người dùng Azure và công cụ dòng lệnh, nhưng bạn có thể sử dụng một trong hai để hoàn thành hầu hết các tác vụ.

Mở Azure Kubernetes Service#

Từ cổng Azure, chọn Dịch vụ Kubernetes.

Tạo cụm#

Từ trang dịch vụ Kubernetes, chọn Tạo > Tạo cụm Kubernetes.

Bạn có thể chọn bất kỳ tùy chọn cấu hình nào phù hợp với nhu cầu của mình, sau đó chọn Tạo khi hoàn tất.

Đặt ngữ cảnh Kubectl#

Phần còn lại của các bước trong hướng dẫn này yêu cầu bạn đặt phiên bản Azure làm ngữ cảnh Kubectl. Bạn có thể tìm thấy chi tiết kết nối cho một phiên bản cụm bằng cách mở trang chi tiết của nó và sau đó chọn nút Kết nối. Các đoạn mã kết quả hiển thị các bước để dán và chạy vào terminal để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cụm mới.

Sao chép repository cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ repository này. Các bước sau đây sẽ cho bạn biết tệp nào cấu hình cái gì và bạn cần thay đổi những gì.

Sao chép repository bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b azure

Và thay đổi thư mục gốc của repository bạn đã sao chép:

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp một backend cơ sở dữ liệu mạnh mẽ hơn so với SQLite.

Cấu hình volume cho bộ nhớ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, triển khai Postgres cần một persistent volume. Lớp lưu trữ mặc định phù hợp cho mục đích này và được xác định trong manifest postgres-claim0-persistentvolumeclaim.yaml.

Các biến môi trường của Postgres#

Postgres cần một số biến môi trường được đặt để chuyển cho ứng dụng đang chạy trong các container.

Tệp ví dụ postgres-secret.yaml chứa các placeholder bạn cần thay thế bằng giá trị của riêng mình. Postgres sẽ sử dụng các chi tiết này khi tạo cơ sở dữ liệu.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng persistent volume là bắt buộc cho:

  • Sử dụng các node tương tác với tệp, chẳng hạn như node dữ liệu nhị phân.
  • Nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại. Điều này lưu một tệp chứa khóa vào bộ nhớ tệp trong khi khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và n8n Deployment gắn claim đó trong phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn tùy chọn chỉ định các tài nguyên tối thiểu mà container ứng dụng cần và giới hạn chúng có thể chạy đến. Các tệp YAML ví dụ được sao chép ở trên chứa nội dung sau trong phần resources của tệp n8n-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để tham khảo, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU burstable

Tùy chọn: Các biến môi trường#

Bạn có thể cấu hình cài đặt và hành vi của n8n bằng các biến môi trường.

Tạo tệp n8n-secret.yaml. Tham khảo Biến môi trường để biết chi tiết về các biến môi trường n8n.

Triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định như sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định hình ảnh container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • Các volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount các volume.
  • Chính sách mở rộng và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của mình.

Các dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 tương ứng.

Gửi đến cụm Kubernetes#

Gửi tất cả các manifest đến cụm bằng lệnh sau:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại cùng một lệnh hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến địa chỉ IP của dịch vụ n8n. Tìm địa chỉ IP của dịch vụ n8n từ mục menu Dịch vụ & ingresses của cụm bạn muốn sử dụng trong cột External IP. Bạn cần thêm cổng n8n, “5678” vào URL.

Địa chỉ IP tĩnh với AKS

Đọc hướng dẫn này để biết thêm chi tiết về cách sử dụng địa chỉ IP tĩnh với AKS.

Xóa tài nguyên#

Xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên Google Cloud | Tài liệu n8n

Lưu trữ n8n trên Google Cloud#

Hướng dẫn lưu trữ này sẽ hướng dẫn bạn cách tự lưu trữ n8n trên Google Cloud (GCP). Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend, sử dụng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Điều kiện tiên quyết#

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên gia. Các lỗi có thể dẫn đến mất dữ liệu, các vấn đề bảo mật và thời gian chết. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản nhỏ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Các tùy chọn lưu trữ#

Google Cloud cung cấp một số tùy chọn phù hợp để lưu trữ n8n, bao gồm Cloud Run (tối ưu hóa cho việc chạy các container), Compute Engine (VM) và Kubernetes Engine (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Google Kubernetes Engine (GKE) làm tùy chọn lưu trữ. Việc sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Hầu hết các bước trong hướng dẫn này sử dụng Google Cloud UI, nhưng bạn cũng có thể sử dụng công cụ dòng lệnh gcloud để thực hiện tất cả các bước.

Tạo dự án#

GCP khuyến khích bạn tạo các dự án để tổ chức hợp lý tài nguyên và cấu hình. Tạo một dự án mới cho việc triển khai n8n của bạn từ Google Cloud Console: chọn menu thả xuống dự án và sau đó nút DỰ ÁN MỚI. Sau đó chọn dự án mới tạo. Khi bạn thực hiện theo các bước khác trong hướng dẫn này, hãy đảm bảo bạn đã chọn đúng dự án.

Bật Kubernetes Engine API#

GKE không được bật theo mặc định. Tìm kiếm “Kubernetes” trong thanh tìm kiếm trên cùng và chọn “Kubernetes Engine” từ kết quả.

Chọn BẬT để bật Kubernetes Engine API cho dự án này.

Tạo một cluster#

Từ trang dịch vụ GKE, chọn Clusters > TẠO. Đảm bảo bạn chọn tùy chọn cluster “Standard”, n8n không hoạt động với cluster “Autopilot”. Bạn có thể để cấu hình cluster ở mặc định trừ khi có điều gì đó cụ thể bạn cần thay đổi, chẳng hạn như vị trí.

Đặt ngữ cảnh Kubectl#

Các bước còn lại trong hướng dẫn này yêu cầu bạn đặt phiên bản GCP làm ngữ cảnh Kubectl. Bạn có thể tìm thấy thông tin chi tiết kết nối cho một phiên bản cluster bằng cách mở trang chi tiết của nó và chọn KẾT NỐI. Đoạn mã hiển thị cho thấy một chuỗi kết nối cho công cụ gcloud CLI. Dán và chạy đoạn mã trong gcloud CLI để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cluster gcloud mới.

Sao chép kho cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ kho lưu trữ này cục bộ. Các bước sau giải thích cấu hình tệp và cách thêm thông tin của bạn.

Sao chép kho lưu trữ bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b gcp

Và thay đổi thư mục đến gốc của kho lưu trữ bạn đã sao chép:

cd n8n-kubernetes-hosting

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp một cơ sở dữ liệu backend mạnh mẽ hơn SQLite.

Tạo một volume cho lưu trữ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, việc triển khai Postgres cần một persistent volume. Chạy Postgres trên GCP yêu cầu một Storage Class Kubernetes cụ thể. Bạn có thể đọc hướng dẫn này để biết chi tiết cụ thể, nhưng manifest storage.yaml sẽ tạo nó cho bạn. Bạn có thể muốn thay đổi các vùng để tạo bộ lưu trữ trong khóa allowedTopologies > matchedLabelExpressions > values. Theo mặc định, chúng được đặt thành us-central.

…
allowedTopologies:
  - matchLabelExpressions:
      - key: failure-domain.beta.kubernetes.io/zone
        values:
          - us-central1-b
          - us-central1-c

Các biến môi trường Postgres#

Postgres cần một số biến môi trường được đặt để chuyển đến ứng dụng đang chạy trong các container.

Tệp postgres-secret.yaml mẫu chứa các trình giữ chỗ bạn cần thay thế bằng các giá trị của riêng mình. Postgres sẽ sử dụng các chi tiết này khi tạo cơ sở dữ liệu.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo một volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng persistent volume là bắt buộc đối với:

  • Sử dụng các node tương tác với tệp, chẳng hạn như node dữ liệu nhị phân.
  • Nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại. Điều này lưu một tệp chứa khóa vào bộ nhớ tệp trong quá trình khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và n8n Deployment gắn claim đó trong phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn tùy chọn chỉ định các tài nguyên tối thiểu mà các container ứng dụng cần và các giới hạn mà chúng có thể chạy. Các tệp YAML mẫu được sao chép ở trên chứa các thông tin sau trong phần resources của tệp n8n-deployment.yamlpostgres-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định mức tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để làm hướng dẫn, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU có thể burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU có thể burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU có thể burstable

Tùy chọn: Các biến môi trường#

Bạn có thể định cấu hình cài đặt và hành vi n8n bằng cách sử dụng các biến môi trường.

Tạo một tệp n8n-secret.yaml. Tham khảo Các biến môi trường để biết chi tiết về các biến môi trường n8n.

Triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định những điều sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định image container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount volume.
  • Chính sách mở rộng và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của mình.

Dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra thế giới bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 tương ứng.

Gửi đến cluster Kubernetes#

Gửi tất cả các manifest đến cluster bằng lệnh sau:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại lệnh tương tự hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến địa chỉ IP của dịch vụ n8n. Tìm địa chỉ IP của dịch vụ n8n từ mục menu Dịch vụ & Ingress của cluster bạn muốn sử dụng trong cột Điểm cuối.

GKE và địa chỉ IP

Đọc hướng dẫn GKE này để biết thêm chi tiết về cách địa chỉ IP được đặt trước hoạt động với các tài nguyên GKE và Kubernetes.

Xóa tài nguyên#

Xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên Docker Compose | Tài liệu n8n

Nếu bạn đã cài đặt Docker và Docker-Compose, bạn có thể bắt đầu từ bước 4.

Bạn có thể tìm thấy các cấu hình Docker Compose cho các kiến trúc khác nhau trong kho lưu trữ n8n-hosting.

Điều kiện tiên quyết về kiến thức tự lưu trữ

Việc tự lưu trữ n8n yêu cầu kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng thành thạo. Sai sót có thể dẫn đến mất dữ liệu, các vấn đề về bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyên bạn nên dùng n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho việc sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một phiên bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

1. Cài đặt Docker#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker. Ví dụ sau đây dành cho Ubuntu:

sudo apt-get remove docker docker-engine docker.io containerd runc
 sudo apt-get update
 sudo apt-get install ca-certificates curl gnupg lsb-release
 sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 

2. Tùy chọn: Quyền truy cập của người dùng không phải root#

Chạy khi đăng nhập với tư cách người dùng cũng được phép chạy docker:

sudo usermod -aG docker ${USER}
 su - ${USER}
 

3. Cài đặt Docker-Compose#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker.

Ví dụ dưới đây dành cho Ubuntu:

sudo apt-get install docker-compose-plugin
 

4. Thiết lập DNS#

Thêm bản ghi A để định tuyến tên miền con cho phù hợp:

Type: A
 Name: n8n (hoặc tên miền con mong muốn)
 Địa chỉ IP: <IP_OF_YOUR_SERVER>
 

5. Tạo tệp Docker Compose#

Tạo tệp docker-compose.yml. Dán nội dung sau vào tệp:

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
version: "3.7"
 
 services:
   traefik:
     image: "traefik"
     restart: always
     command:
       - "--api=true"
       - "--api.insecure=true"
       - "--providers.docker=true"
       - "--providers.docker.exposedbydefault=false"
       - "--entrypoints.web.address=:80"
       - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
       - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
       - "--entrypoints.websecure.address=:443"
       - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
       - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
       - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
     ports:
       - "80:80"
       - "443:443"
     volumes:
       - traefik_data:/letsencrypt
       - /var/run/docker.sock:/var/run/docker.sock:ro
 
   n8n:
     image: docker.n8n.io/n8nio/n8n
     restart: always
     ports:
       - "127.0.0.1:5678:5678"
     labels:
       - traefik.enable=true
       - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
       - traefik.http.routers.n8n.tls=true
       - traefik.http.routers.n8n.entrypoints=web,websecure
       - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
       - traefik.http.middlewares.n8n.headers.SSLRedirect=true
       - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
       - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
       - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
       - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
       - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
       - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
       - traefik.http.middlewares.n8n.headers.STSPreload=true
       - traefik.http.routers.n8n.middlewares=n8n@docker
     environment:
       - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
       - N8N_PORT=5678
       - N8N_PROTOCOL=https
       - NODE_ENV=production
       - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
       - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
     volumes:
       - n8n_data:/home/node/.n8n
 
 volumes:
   traefik_data:
     external: true
   n8n_data:
     external: true
 

Nếu bạn dự định đọc/ghi các tệp cục bộ bằng n8n (ví dụ: bằng cách sử dụng nút Đọc/Ghi tệp từ đĩa, bạn sẽ cần định cấu hình thư mục dữ liệu cho các tệp đó tại đây. Nếu bạn đang chạy n8n với tư cách người dùng root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

Nếu bạn đang chạy n8n với tư cách người dùng không phải root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

- /home/<YOUR USERNAME>/n8n-local-files:/files
 

Giờ đây, bạn sẽ có thể ghi các tệp vào thư mục /files trong n8n và chúng sẽ xuất hiện trên máy chủ của bạn lần lượt trong /local-files hoặc /home/<YOUR USERNAME>/n8n-local-files.

6. Tạo tệp .env#

Tạo tệp .env và thay đổi cho phù hợp.

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
# Tên miền cấp cao nhất để phục vụ từ đó
 DOMAIN_NAME=example.com
 
 # Tên miền con để phục vụ từ đó
 SUBDOMAIN=n8n
 
 # DOMAIN_NAME và SUBDOMAIN kết hợp quyết định vị trí có thể truy cập n8n
 # ví dụ trên sẽ cho kết quả: https://n8n.example.com
 
 # Múi giờ tùy chọn để đặt múi giờ nào được Cron-Node sử dụng theo mặc định
 # Nếu không đặt, giờ New York sẽ được sử dụng
 GENERIC_TIMEZONE=Europe/Berlin
 
 # Địa chỉ email để sử dụng cho việc tạo chứng chỉ SSL
 SSL_EMAIL=user@example.com
 

7. Tạo thư mục dữ liệu#

Tạo ổ đĩa Docker được xác định là n8n_data. n8n sẽ lưu tệp cơ sở dữ liệu từ SQLite và khóa mã hóa trong ổ đĩa này.

sudo docker volume create n8n_data
 

Tạo ổ đĩa cho dữ liệu Traefik, được xác định là traefik_data.

sudo docker volume create traefik_data
 

8. Bắt đầu Docker Compose#

Giờ đây, n8n có thể được bắt đầu thông qua:

sudo docker compose up -d
 

Để dừng container:

9. Hoàn tất#

Giờ đây, n8n sẽ có thể truy cập được bằng cách sử dụng tổ hợp tên miền con + tên miền được xác định ở trên.
Ví dụ trên sẽ cho kết quả: https://n8n.example.com

n8n sẽ chỉ có thể truy cập được bằng cách sử dụng https chứ không phải bằng cách sử dụng http.

Các bước tiếp theo#

Hướng dẫn Cài đặt n8n trên DigitalOcean | Tài liệu n8n

Lưu trữ n8n trên DigitalOcean#

Hướng dẫn lưu trữ này sẽ hướng dẫn bạn cách tự lưu trữ n8n trên một droplet của DigitalOcean. Nó sử dụng:

  • Caddy (một reverse proxy) để cho phép truy cập vào Droplet từ internet. Caddy cũng sẽ tự động tạo và quản lý chứng chỉ SSL / TLS cho phiên bản n8n của bạn.
  • Docker Compose để tạo và xác định các thành phần ứng dụng và cách chúng hoạt động cùng nhau.

Các kiến thức cần có để tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng có kinh nghiệm. Các sai sót có thể dẫn đến mất dữ liệu, các vấn đề bảo mật và thời gian chết. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản mới nhất và phiên bản tiếp theo

n8n phát hành phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong môi trường production. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Tạo Droplet#

  1. Đăng nhập vào DigitalOcean.
  2. Chọn dự án để lưu trữ Droplet, hoặc tạo một dự án mới.
  3. Trong dự án của bạn, chọn Droplets từ menu Manage.
  4. Tạo một Droplet mới sử dụng Docker image có sẵn trên tab Marketplace.

Tài nguyên Droplet

Khi tạo Droplet, DigitalOcean yêu cầu bạn chọn gói. Đối với hầu hết các mức sử dụng, gói CPU dùng chung cơ bản là đủ.

Khóa SSH hoặc Mật khẩu

DigitalOcean cho phép bạn chọn giữa xác thực bằng khóa SSH và mật khẩu. Khóa SSH được coi là an toàn hơn.

Đăng nhập vào Droplet của bạn và tạo người dùng mới#

Phần còn lại của hướng dẫn này yêu cầu bạn đăng nhập vào Droplet bằng thiết bị đầu cuối với SSH. Tham khảo Cách kết nối với Droplets bằng SSH để biết thêm thông tin.

Bạn nên tạo một người dùng mới, để tránh làm việc với tư cách người dùng root:

  1. Đăng nhập với tư cách root.
  2. Tạo người dùng mới:
  3. Làm theo hướng dẫn trong CLI để hoàn tất việc tạo người dùng.
  4. Cấp quyền quản trị cho người dùng mới:
    usermod -aG sudo <tên người dùng>
    

    Bây giờ bạn có thể chạy các lệnh với đặc quyền siêu người dùng bằng cách sử dụng sudo trước lệnh.

  5. Làm theo các bước để thiết lập SSH cho người dùng mới: Thêm xác thực bằng Khóa công khai.
  6. Đăng xuất khỏi droplet.
  7. Đăng nhập bằng SSH với tư cách người dùng mới.

Sao chép kho cấu hình#

Docker Compose, n8n và Caddy yêu cầu một loạt các thư mục và tệp cấu hình. Bạn có thể sao chép chúng từ kho này vào thư mục home của người dùng đã đăng nhập trên Droplet của bạn. Các bước sau sẽ cho bạn biết tệp nào cần thay đổi và những thay đổi cần thực hiện.

Sao chép kho với lệnh sau:

git clone https://github.com/n8n-io/n8n-docker-caddy.git

Và thay đổi thư mục thành thư mục gốc của kho bạn đã sao chép:

Các thư mục và tệp mặc định#

Hệ điều hành máy chủ (DigitalOcean Droplet) sao chép hai thư mục bạn đã tạo vào các container Docker để chúng có sẵn cho Docker. Hai thư mục là:

  • caddy_config: Chứa các tệp cấu hình Caddy.
  • local_files: Thư mục chứa các tệp bạn tải lên hoặc thêm bằng n8n.

Tạo Docker volumes#

Để duy trì bộ nhớ cache của Caddy giữa các lần khởi động lại và tăng tốc thời gian khởi động, hãy tạo một volume Docker mà Docker sử dụng lại giữa các lần khởi động lại:

sudo docker volume create caddy_data

Tạo một Docker volume cho dữ liệu n8n:

sudo docker volume create n8n_data

Thiết lập DNS#

n8n thường hoạt động trên một tên miền phụ. Tạo bản ghi DNS với nhà cung cấp của bạn cho tên miền phụ và trỏ nó đến địa chỉ IP của Droplet. Các bước chính xác cho việc này tùy thuộc vào nhà cung cấp DNS của bạn, nhưng thông thường bạn cần tạo bản ghi “A” mới cho tên miền phụ n8n. DigitalOcean cung cấp Giới thiệu về thuật ngữ, thành phần và khái niệm DNS.

Mở cổng#

n8n chạy như một ứng dụng web, vì vậy Droplet cần cho phép truy cập đến lưu lượng truy cập trên cổng 80 cho lưu lượng không an toàn và cổng 443 cho lưu lượng an toàn.

Mở các cổng sau trong tường lửa của Droplet bằng cách chạy hai lệnh sau:

sudo ufw allow 80
sudo ufw allow 443

Cấu hình n8n#

n8n cần một số biến môi trường được thiết lập để chuyển đến ứng dụng đang chạy trong container Docker. Tệp .env ví dụ chứa các phần giữ chỗ bạn cần thay thế bằng các giá trị của riêng bạn.

Mở tệp bằng lệnh sau:

Tệp chứa các nhận xét nội tuyến để giúp bạn biết những gì cần thay đổi.

Tham khảo Biến môi trường để biết chi tiết về biến môi trường n8n.

Tệp Docker Compose#

Tệp Docker Compose (docker-compose.yml) xác định các dịch vụ mà ứng dụng cần, trong trường hợp này là Caddy và n8n.

  • Định nghĩa dịch vụ Caddy xác định các cổng nó sử dụng và các volume cục bộ để sao chép vào container.
  • Định nghĩa dịch vụ n8n xác định các cổng nó sử dụng, các biến môi trường mà n8n cần để chạy (một số được xác định trong tệp .env) và các volume nó cần sao chép vào container.

Tệp Docker Compose sử dụng các biến môi trường được thiết lập trong tệp .env, vì vậy bạn không cần thay đổi nội dung của nó, nhưng để xem qua, hãy chạy lệnh sau:

Cấu hình Caddy#

Caddy cần biết những tên miền nào nó sẽ phục vụ và cổng nào sẽ hiển thị ra bên ngoài. Chỉnh sửa tệp Caddyfile trong thư mục caddy_config.

nano caddy_config/Caddyfile

Thay đổi tên miền giữ chỗ thành của bạn. Nếu bạn làm theo các bước để đặt tên miền phụ là n8n, tên miền đầy đủ của bạn sẽ tương tự như n8n.example.com. n8n trong cài đặt reverse_proxy cho Caddy biết sử dụng định nghĩa dịch vụ được xác định trong tệp docker-compose.yml:

n8n.<tên miền>.<hậu tố> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Nếu bạn sử dụng automate.example.com, Caddyfile của bạn có thể trông như thế này:

automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Khởi động Docker Compose#

Khởi động n8n và Caddy bằng lệnh sau:

sudo docker compose up -d

Việc này có thể mất vài phút.

Kiểm tra thiết lập của bạn#

Trong trình duyệt của bạn, hãy mở URL được tạo từ tên miền phụ và tên miền đã xác định trước đó. Nhập tên người dùng và mật khẩu đã xác định trước đó và bạn sẽ có thể truy cập n8n.

Dừng n8n và Caddy#

Bạn có thể dừng n8n và Caddy bằng lệnh sau:

Cập nhật#

Nếu bạn chạy n8n bằng tệp Docker Compose, hãy làm theo các bước sau để cập nhật n8n:

# Tải phiên bản mới nhất
docker compose pull

# Dừng và xóa phiên bản cũ hơn
docker compose down

# Khởi động container
docker compose up -d

Các bước tiếp theo#

cài đặt n8n với Docker | Tài liệu n8n

Cài đặt Docker#

Docker mang lại những lợi ích sau:

  • Cài đặt n8n trong một môi trường sạch.
  • Dễ dàng thiết lập cơ sở dữ liệu ưa thích của bạn.
  • Có thể tránh các vấn đề do các hệ điều hành khác nhau, vì Docker cung cấp một hệ thống nhất quán.

Bạn cũng có thể sử dụng n8n trong Docker với Docker Compose. Bạn có thể tìm thấy các cấu hình Docker Compose cho các kiến trúc khác nhau trong kho lưu trữ n8n-hosting.

Điều kiện tiên quyết#

Trước khi tiếp tục, hãy cài đặt Docker Desktop.

Người dùng Linux

Docker Desktop có sẵn cho Mac và Windows. Người dùng Linux phải cài đặt Docker EngineDocker Compose riêng cho bản phân phối của bạn.

Các điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên nghiệp. Sai sót có thể dẫn đến mất dữ liệu, các vấn đề về bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyên bạn nên sử dụng n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Bắt đầu n8n#

Từ thiết bị đầu cuối của bạn, hãy chạy:

docker volume create n8n_data

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Lệnh này sẽ tải xuống tất cả các hình ảnh n8n cần thiết và khởi động container của bạn, được hiển thị trên cổng 5678. Để lưu công việc của bạn giữa các lần khởi động lại container, nó cũng gắn một docker volume, n8n_data, để giữ dữ liệu của bạn cục bộ.

Sau đó, bạn có thể truy cập n8n bằng cách mở:
http://localhost:5678

Sử dụng cơ sở dữ liệu thay thế#

Theo mặc định, n8n sử dụng SQLite để lưu thông tin xác thực, các lần thực thi trước đây và quy trình làm việc. n8n cũng hỗ trợ PostgresDB có thể cấu hình bằng các biến môi trường như được nêu chi tiết bên dưới.

Điều quan trọng là vẫn giữ dữ liệu trong thư mục /home/node/.n8n vì nó chứa dữ liệu người dùng n8n và quan trọng hơn là khóa mã hóa cho thông tin xác thực. Nó cũng là tên của webhook khi đường hầm n8n được sử dụng.

Nếu không tìm thấy thư mục nào, n8n sẽ tự động tạo một thư mục khi khởi động. Trong trường hợp này, thông tin xác thực hiện có được lưu bằng khóa mã hóa khác sẽ không thể sử dụng được nữa.

Lưu ý

Việc giữ thư mục /home/node/.n8n ngay cả khi sử dụng cơ sở dữ liệu thay thế là phương pháp hay nhất được khuyến nghị, nhưng không bắt buộc một cách rõ ràng. Khóa mã hóa có thể được cung cấp bằng cách sử dụng biến môi trường N8N_ENCRYPTION_KEY.

PostgresDB#

Để sử dụng n8n với Postgres, hãy cung cấp các thông tin tương ứng:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
 -e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
 -e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
 -e DB_POSTGRESDB_USER=<POSTGRES_USER> \
 -e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
 -e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

Bạn có thể tìm thấy tệp docker-compose hoàn chỉnh cho Postgres tại đây.

Cài đặt múi giờ#

Để xác định múi giờ mà n8n nên sử dụng, có thể đặt biến môi trường GENERIC_TIMEZONE. Biến này được sử dụng bởi các node dựa trên lịch biểu như node Cron.

Múi giờ của hệ thống cũng có thể được đặt riêng. Điều này kiểm soát những gì một số script và lệnh trả về như $ date. Múi giờ hệ thống có thể được đặt bằng cách sử dụng biến môi trường TZ.

Ví dụ sử dụng cùng một múi giờ cho cả hai:

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="Europe/Berlin" \
 -e TZ="Europe/Berlin" \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

Cập nhật#

Từ Docker Desktop của bạn, hãy điều hướng đến tab Images và chọn Pull từ menu ngữ cảnh để tải xuống hình ảnh n8n mới nhất:

Bạn cũng có thể sử dụng dòng lệnh để kéo phiên bản mới nhất hoặc một phiên bản cụ thể:

# Kéo phiên bản mới nhất (ổn định)
docker pull docker.n8n.io/n8nio/n8n

# Kéo phiên bản cụ thể
docker pull docker.n8n.io/n8nio/n8n:0.220.1

# Kéo phiên bản tiếp theo (không ổn định)
docker pull docker.n8n.io/n8nio/n8n:next

Dừng container và khởi động lại. Bạn cũng có thể sử dụng dòng lệnh:

# Lấy ID container
docker ps -a

# Dừng container có ID container_id
docker stop [container_id]

# Xóa container có ID container_id
docker rm [container_id]

# Khởi động container
docker run --name=[container_name] [options] -d docker.n8n.io/n8nio/n8n

Docker Compose#

Nếu bạn chạy n8n bằng tệp Docker Compose, hãy làm theo các bước sau để cập nhật n8n:

# Kéo phiên bản mới nhất
docker compose pull

# Dừng và xóa phiên bản cũ hơn
docker compose down

# Khởi động container
docker compose up -d

Đọc thêm#

Bạn có thể tìm thêm thông tin về thiết lập Docker trong tệp README của Docker Image.

n8n với đường hầm#

Nguy hiểm

Sử dụng điều này để phát triển và thử nghiệm cục bộ. Không an toàn khi sử dụng nó trong sản xuất.

Để có thể sử dụng webhook cho các node kích hoạt của các dịch vụ bên ngoài như GitHub, n8n phải có thể truy cập được từ web. n8n có một dịch vụ đường hầm chuyển hướng các yêu cầu từ máy chủ của n8n đến phiên bản n8n cục bộ của bạn.

Khởi động n8n bằng --tunnel bằng cách chạy:

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n \
 start --tunnel

Các bước tiếp theo#

  • Tìm hiểu thêm về cấu hìnhmở rộng n8n.
  • Hoặc khám phá việc sử dụng n8n: hãy thử Bắt đầu nhanh.

Cài đặt n8n với npm | Tài liệu n8n

npm là một cách nhanh chóng để bắt đầu với n8n trên máy cục bộ của bạn. Bạn phải cài đặt Node.js. n8n yêu cầu Node.js phiên bản 18 trở lên.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next là bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Thử n8n với npx#

Bạn có thể thử n8n mà không cần cài đặt bằng npx.

Từ terminal, chạy:

Lệnh này sẽ tải xuống mọi thứ cần thiết để khởi động n8n. Sau đó, bạn có thể truy cập n8n và bắt đầu xây dựng quy trình làm việc bằng cách mở http://localhost:5678.

Cài đặt toàn cục với npm#

Để cài đặt n8n trên toàn cục, hãy sử dụng npm:

Để cài đặt hoặc cập nhật lên một phiên bản cụ thể của n8n, hãy sử dụng cú pháp @ để chỉ định phiên bản. Ví dụ:

npm install -g n8n@0.126.1

Để cài đặt next:

Sau khi cài đặt, hãy khởi động n8n bằng cách chạy:

Cần nhớ

Người dùng Windows nhớ chuyển vào thư mục .n8n của thư mục Home (~/.n8n) trước khi chạy n8n start.

Các bước tiếp theo#

Thử n8n bằng cách sử dụng Hướng dẫn khởi động nhanh.

Cập nhật#

Để cập nhật phiên bản n8n của bạn lên phiên bản latest, hãy chạy:

Để cài đặt phiên bản next:

n8n với tunnel#

Nguy hiểm

Sử dụng tính năng này cho việc phát triển và thử nghiệm cục bộ. Không an toàn khi sử dụng nó trong sản xuất.

Để có thể sử dụng webhook cho các nút kích hoạt của các dịch vụ bên ngoài như GitHub, n8n phải có thể truy cập được từ web. n8n có một dịch vụ tunnel chuyển hướng các yêu cầu từ máy chủ của n8n đến phiên bản n8n cục bộ của bạn.

Khởi động n8n với --tunnel bằng cách chạy:

Hoàn nguyên nâng cấp#

Cài đặt phiên bản cũ hơn mà bạn muốn quay lại.

Nếu việc nâng cấp liên quan đến việc di chuyển cơ sở dữ liệu:

  1. Kiểm tra tài liệu tính năng và ghi chú phát hành để xem có bất kỳ thay đổi thủ công nào bạn cần thực hiện không.
  2. Chạy n8n db:revert trên phiên bản hiện tại của bạn để khôi phục cơ sở dữ liệu. Nếu bạn muốn hoàn nguyên nhiều hơn một lần di chuyển cơ sở dữ liệu, bạn cần lặp lại quy trình này.

Khắc phục sự cố Windows#

Nếu bạn gặp sự cố khi chạy n8n trên Windows, hãy đảm bảo môi trường Node.js của bạn được thiết lập chính xác. Làm theo hướng dẫn của Microsoft để Cài đặt NodeJS trên Windows.

DeepSeek-R1 rất tuyệt, nhưng lợi thế sản phẩm của ChatGPT vẫn còn lâu mới kết thúc

Chỉ mới một tuần trước — vào ngày 20 tháng 1 năm 2025 — startup AI Trung Quốc DeepSeek đã cho ra mắt một mô hình AI mã nguồn mở mới có tên R1, ban đầu có thể bị nhầm lẫn với một trong số vô vàn đối thủ cạnh tranh gần như có thể thay thế lẫn nhau đã xuất hiện kể từ khi OpenAI ra mắt ChatGPT (ban đầu được cung cấp bởi mô hình GPT-3.5 của riêng mình) hơn hai năm trước.

Nhưng điều đó nhanh chóng bị chứng minh là vô căn cứ, vì ứng dụng di động của DeepSeek trong thời gian ngắn đó đã tăng vọt trên bảng xếp hạng của Apple App Store ở Hoa Kỳ để soán ngôi ChatGPT ở vị trí số một và gây ra sự điều chỉnh lớn trên thị trường khi các nhà đầu tư bán tháo cổ phiếu của các nhà sản xuất chip máy tính từng rất hot như Nvidia, có đơn vị xử lý đồ họa (GPU) đang có nhu cầu cao để sử dụng trong các siêu cụm lớn để đào tạo các mô hình AI mới và cung cấp chúng cho khách hàng trên cơ sở liên tục (một phương thức được gọi là “suy luận”).Nhà đầu tư mạo hiểm Marc Andreessen, lặp lại quan điểm của các nhân viên công nghệ khác, đã viết trên mạng xã hội X tối qua: “Deepseek R1 là khoảnh khắc Sputnik của AI,” so sánh nó với vụ phóng vệ tinh nhân tạo đầu tiên trong lịch sử, Sputnik 1, vào tháng 10 năm 1957 của Liên Xô, đã gây ra “cuộc chạy đua vào vũ trụ” giữa quốc gia đó và Hoa Kỳ để thống trị du hành vũ trụ.

Vụ phóng Sputnik đã thúc đẩy Hoa Kỳ đầu tư mạnh vào nghiên cứu và phát triển tàu vũ trụ và tên lửa. Mặc dù đây không phải là một sự tương đồng hoàn hảo — không cần đầu tư lớn để tạo ra DeepSeek-R1, hoàn toàn ngược lại (thêm về điều này bên dưới) — nó dường như báo hiệu một bước ngoặt lớn trên thị trường AI toàn cầu, vì lần đầu tiên, một sản phẩm AI từ Trung Quốc đã trở nên phổ biến nhất trên thế giới.

Nhưng trước khi chúng ta nhảy lên chuyến tàu cường điệu DeepSeek, hãy lùi lại một bước và xem xét thực tế. Với tư cách là một người đã sử dụng rộng rãi ChatGPT của OpenAI — trên cả nền tảng web và di động — và theo dõi chặt chẽ những tiến bộ về AI, tôi tin rằng mặc dù những thành tựu của DeepSeek-R1 rất đáng chú ý, nhưng vẫn chưa đến lúc loại bỏ ChatGPT hoặc các khoản đầu tư AI của Hoa Kỳ. Và xin lưu ý, tôi không được OpenAI trả tiền để nói điều này — tôi chưa bao giờ nhận tiền từ công ty và không có kế hoạch làm như vậy.

Txl 1 30

nguồn: VentureBeat tạo bằng ChatGPT

DeepSeek-R1 làm tốt điều gì

DeepSeek-R1 là một phần của thế hệ mới các mô hình “lý luận” lớn, làm được nhiều hơn là trả lời các truy vấn của người dùng: Chúng phản ánh phân tích của chính mình trong khi đang tạo ra phản hồi, cố gắng bắt lỗi trước khi cung cấp chúng cho người dùng.

Và DeepSeek-R1 ngang bằng hoặc vượt trội hơn mô hình lý luận riêng của OpenAI, o1, được phát hành vào tháng 9 năm 2024 ban đầu chỉ dành cho người dùng đăng ký ChatGPT Plus và Pro, trong một số lĩnh vực.

Ví dụ: trên điểm chuẩn MATH-500, đánh giá khả năng giải quyết vấn đề toán học ở cấp trung học, DeepSeek-R1 đạt được tỷ lệ chính xác 97,3%, cao hơn một chút so với 96,4% của OpenAI o1. Về khả năng viết mã, DeepSeek-R1 đạt 49,2% trên điểm chuẩn SWE-bench Verified, vượt qua 48,9% của OpenAI o1.

Hơn nữa, về mặt tài chính, DeepSeek-R1 mang lại khoản tiết kiệm chi phí đáng kể. Mô hình này được phát triển với khoản đầu tư dưới 6 triệu đô la, một phần nhỏ so với chi phí — ước tính là hàng tỷ đô la — được báo cáo là có liên quan đến việc đào tạo các mô hình như o1 của OpenAI.

DeepSeek về cơ bản đã buộc phải trở nên hiệu quả hơn với GPU khan hiếm và cũ hơn nhờ lệnh hạn chế xuất khẩu của Hoa Kỳ đối với việc bán công nghệ này cho Trung Quốc. Ngoài ra, DeepSeek cung cấp quyền truy cập API với giá 0,14 đô la cho mỗi triệu token, thấp hơn đáng kể so với mức 7,50 đô la cho mỗi triệu token của OpenAI.

Mức tăng hiệu quả lớn, tiết kiệm chi phí và hiệu suất tương đương của DeepSeek-R1 so với mô hình AI hàng đầu của Hoa Kỳ đã khiến Thung lũng Silicon và cộng đồng doanh nghiệp rộng lớn hơn hoảng sợ trước những gì có vẻ như là một sự đảo lộn hoàn toàn của thị trường AI, địa chính trị và kinh tế đã biết của việc đào tạo mô hình AI.

Mặc dù những thành tựu của DeepSeek mang tính cách mạng, nhưng con lắc đang xoay quá xa về phía nó ngay bây giờ

Không thể phủ nhận rằng tính hiệu quả về chi phí của DeepSeek-R1 là một thành tựu đáng kể. Nhưng chúng ta đừng quên rằng bản thân DeepSeek có được thành công phần lớn nhờ vào những đổi mới AI của Hoa Kỳ, trở lại kiến trúc biến áp ban đầu năm 2017 do các nhà nghiên cứu Google AI phát triển (khơi mào cho toàn bộ cơn sốt LLM).

DeepSeek-R1 được đào tạo trên các câu hỏi và câu trả lời dữ liệu tổng hợp và đặc biệt, theo bài báo được các nhà nghiên cứu của nó công bố, trên “tập dữ liệu DeepSeek-V3” được tinh chỉnh có giám sát, mô hình trước đó (không lý luận) của công ty, được phát hiện là có nhiều dấu hiệu cho thấy được tạo ra bằng chính mô hình GPT-4o của OpenAI!

Có vẻ khá rõ ràng khi nói rằng nếu không có GPT-4o để cung cấp dữ liệu này và không có việc OpenAI phát hành mô hình lý luận thương mại đầu tiên o1 vào tháng 9 năm 2024, tạo ra danh mục, thì DeepSeek-R1 gần như chắc chắn sẽ không tồn tại.

Hơn nữa, thành công của OpenAI đòi hỏi một lượng lớn tài nguyên GPU, mở đường cho những đột phá mà DeepSeek chắc chắn đã được hưởng lợi. Sự hoảng loạn hiện tại của các nhà đầu tư về các công ty chip và AI của Hoa Kỳ có vẻ là quá sớm và quá thổi phồng.

Khả năng tạo ảnh và thị giác của ChatGPT vẫn rất quan trọng và có giá trị trong môi trường làm việc và cá nhân — DeepSeek-R1 chưa có bất kỳ tính năng nào

Mặc dù DeepSeek-R1 đã gây ấn tượng với khả năng lý luận “chuỗi suy nghĩ” có thể thấy được — một kiểu dòng ý thức trong đó mô hình hiển thị văn bản khi phân tích lời nhắc của người dùng và tìm cách trả lời nó — và hiệu quả trong các quy trình làm việc dựa trên văn bản và toán học, nhưng nó lại thiếu một số tính năng khiến ChatGPT trở thành một công cụ mạnh mẽ và linh hoạt hơn hiện nay.

Không có khả năng tạo hình ảnh hoặc thị giác

Trang web và ứng dụng di động chính thức của DeepSeek-R1 cho phép người dùng tải ảnh và tệp đính kèm lên. Nhưng chúng chỉ có thể trích xuất văn bản từ chúng bằng cách sử dụng nhận dạng ký tự quang học (OCR), một trong những công nghệ máy tính sớm nhất (có từ năm 1959).

Điều này không thể so sánh với khả năng thị giác của ChatGPT. Người dùng có thể tải ảnh lên mà không cần bất kỳ văn bản nào và yêu cầu ChatGPT phân tích hình ảnh, mô tả hoặc cung cấp thêm thông tin dựa trên những gì nó nhìn thấy và lời nhắc bằng văn bản của người dùng.

ChatGPT cho phép người dùng tải ảnh lên và có thể phân tích tài liệu trực quan và cung cấp thông tin chi tiết hoặc lời khuyên hữu ích. Ví dụ: khi tôi cần hướng dẫn sửa chữa xe đạp hoặc bảo trì thiết bị điều hòa không khí, khả năng xử lý hình ảnh của ChatGPT đã chứng tỏ vô giá. DeepSeek-R1 đơn giản là chưa thể làm được điều này. Xem so sánh trực quan bên dưới:

Không có khả năng tạo hình ảnh

Việc thiếu khả năng tạo hình ảnh là một hạn chế lớn khác. Với tư cách là một người thường xuyên tạo hình ảnh AI bằng ChatGPT (chẳng hạn như cho tiêu đề bài viết này) được hỗ trợ bởi mô hình DALL·E 3 cơ bản của OpenAI, khả năng tạo hình ảnh chi tiết và phong cách bằng ChatGPT là một yếu tố thay đổi cuộc chơi.

Tính năng này rất cần thiết cho nhiều quy trình làm việc sáng tạo và chuyên nghiệp, và DeepSeek vẫn chưa chứng minh được chức năng tương đương, mặc dù hôm nay công ty đã phát hành một mô hình thị giác mã nguồn mở, Janus Pro, mà họ cho biết vượt trội hơn DALL·E 3, Stable Diffusion 3 và các mô hình tạo hình ảnh hàng đầu trong ngành khác trên các điểm chuẩn của bên thứ ba.

Không có chế độ giọng nói

DeepSeek-R1 cũng thiếu chế độ tương tác bằng giọng nói, một tính năng ngày càng trở nên quan trọng đối với khả năng tiếp cận và sự thuận tiện. Chế độ giọng nói của ChatGPT cho phép các tương tác đàm thoại tự nhiên, khiến nó trở thành lựa chọn vượt trội để sử dụng rảnh tay hoặc cho người dùng có nhu cầu tiếp cận khác nhau.

Hãy hào hứng với tiềm năng tương lai của DeepSeek — nhưng cũng hãy cảnh giác với những thách thức của nó

Đúng vậy, DeepSeek-R1 có thể — và có khả năng sẽ — thêm khả năng giọng nói và thị giác trong tương lai. Nhưng làm như vậy không phải là một kỳ công nhỏ.

Việc tích hợp khả năng tạo hình ảnh, phân tích thị giác và khả năng giọng nói đòi hỏi các nguồn lực phát triển đáng kể và trớ trêu thay, nhiều GPU hiệu suất cao tương tự mà các nhà đầu tư hiện đang đánh giá thấp. Việc triển khai các tính năng này một cách hiệu quả và thân thiện với người dùng là một thách thức hoàn toàn khác.

Những thành tựu của DeepSeek-R1 rất ấn tượng và báo hiệu một sự thay đổi đầy hứa hẹn trong bối cảnh AI toàn cầu. Tuy nhiên, điều quan trọng là phải giữ sự phấn khích trong tầm kiểm soát. Hiện tại, ChatGPT vẫn là sản phẩm toàn diện và có khả năng hơn, cung cấp một bộ tính năng mà DeepSeek đơn giản là không thể sánh được. Hãy đánh giá cao những tiến bộ đồng thời nhận ra những hạn chế và tầm quan trọng tiếp tục của sự đổi mới và đầu tư vào AI của Hoa Kỳ.

Các kỹ sư cũ của Google và Apple ra mắt nền tảng Oumi AI mã nguồn mở vô điều kiện, có thể giúp xây dựng DeepSeek tiếp theo

Nếu trước đây chưa rõ ràng thì bây giờ chắc chắn đã rất rõ ràng: Mã nguồn mở thực sự quan trọng đối với AI. Sự thành công của DeepSeek-R1 đã chứng minh một cách rõ ràng rằng có nhu cầu và yêu cầu về AI mã nguồn mở.

Nhưng chính xác thì AI mã nguồn mở là gì? Đối với Meta và các mô hình Llama của nó, điều đó có nghĩa là được tự do truy cập để sử dụng mô hình, với một số điều kiện nhất định. DeepSeek có sẵn theo giấy phép mã nguồn mở cho phép, cung cấp quyền truy cập đáng kể vào kiến trúc và khả năng của nó. Tuy nhiên, mã đào tạo cụ thể và các phương pháp chi tiết, đặc biệt là những phương pháp liên quan đến các kỹ thuật học tăng cường (RL) như Tối ưu hóa Chính sách Tương đối Nhóm (GRPO), chưa được công khai. Sự thiếu sót này hạn chế khả năng của cộng đồng trong việc hiểu và sao chép đầy đủ quy trình đào tạo của mô hình.

Tuy nhiên, điều mà cả DeepSeek và Llama đều không cho phép là quyền truy cập vô điều kiện đầy đủ vào tất cả mã mô hình, bao gồm cả trọng số cũng như dữ liệu đào tạo. Nếu không có tất cả thông tin đó, các nhà phát triển vẫn có thể làm việc với mô hình mở nhưng họ không có tất cả các công cụ và thông tin chi tiết cần thiết để hiểu cách nó thực sự hoạt động và quan trọng hơn là cách xây dựng một mô hình hoàn toàn mới. Đó là một thách thức mà một công ty khởi nghiệp mới do các cựu chiến binh AI của Google và Apple dẫn đầu đang hướng tới giải quyết.

Ra mắt hôm nay, Oumi được hỗ trợ bởi liên minh của 13 trường đại học nghiên cứu hàng đầu bao gồm Princeton, Stanford, MIT, UC Berkeley, Đại học Oxford, Đại học Cambridge, Đại học Waterloo và Carnegie Mellon. Những người sáng lập Oumi đã huy động được 10 triệu đô la, một vòng hạt giống khiêm tốn mà họ cho là đáp ứng được nhu cầu của mình. Trong khi các công ty lớn như OpenAI đang cân nhắc các khoản đầu tư 500 tỷ đô la vào các trung tâm dữ liệu khổng lồ thông qua các dự án như Stargate, Oumi đang đi theo một cách tiếp cận hoàn toàn khác. Nền tảng này cung cấp cho các nhà nghiên cứu và nhà phát triển một bộ công cụ hoàn chỉnh để xây dựng, đánh giá và triển khai các mô hình nền tảng.

Oussama Elachqar, đồng sáng lập của Oumi và trước đây là kỹ sư học máy tại Apple, nói với VentureBeat: “Ngay cả những công ty lớn nhất cũng không thể tự mình làm điều này. “Chúng tôi đã làm việc một cách hiệu quả trong các silo tại Apple và có rất nhiều silo khác đang xảy ra trên toàn ngành. Cần có một cách tốt hơn để phát triển các mô hình này một cách hợp tác.”

Các mô hình mã nguồn mở như DeepSeek và Llama còn thiếu gì

Giám đốc điều hành của Oumi và cựu quản lý kỹ thuật cấp cao về AI của Google Cloud, Manos Koukoumidis, nói với VentureBeat rằng các nhà nghiên cứu liên tục nói với ông rằng việc thử nghiệm AI đã trở nên cực kỳ phức tạp.

Mặc dù các mô hình mở ngày nay là một bước tiến, nhưng vẫn chưa đủ. Koukoumidis giải thích rằng với các mô hình AI “mở” hiện tại như DeepSeek-R1 và Llama, một tổ chức có thể sử dụng mô hình và triển khai nó trên của riêng họ. Điều còn thiếu là bất kỳ ai khác muốn xây dựng dựa trên mô hình đều không biết chính xác nó được xây dựng như thế nào.

Những người sáng lập Oumi tin rằng sự thiếu minh bạch này là một trở ngại lớn cho nghiên cứu và phát triển AI hợp tác. Ngay cả một dự án như Llama cũng đòi hỏi các nhà nghiên cứu phải nỗ lực đáng kể để tìm ra cách tái tạo và xây dựng dựa trên công việc.

Cách Oumi hoạt động để mở AI cho người dùng doanh nghiệp, nhà nghiên cứu và mọi người khác

Nền tảng Oumi hoạt động bằng cách cung cấp một môi trường tất cả trong một giúp hợp lý hóa các quy trình làm việc phức tạp liên quan đến việc xây dựng các mô hình AI.

Koukoumidis giải thích rằng để xây dựng một mô hình nền tảng, thường có 10 hoặc nhiều bước cần phải thực hiện, thường là song song. Oumi tích hợp tất cả các công cụ và quy trình làm việc cần thiết vào một môi trường thống nhất, loại bỏ nhu cầu các nhà nghiên cứu phải ghép lại và định cấu hình các thành phần mã nguồn mở khác nhau.

Các tính năng kỹ thuật chính bao gồm:

  • Hỗ trợ các mô hình từ 10M đến 405B tham số
  • Triển khai các kỹ thuật đào tạo nâng cao bao gồm SFT, LoRA, QLoRA và DPO
  • Khả năng tương thích với cả mô hình văn bản và đa phương thức
  • Các công cụ tích hợp để tổng hợp và quản lý dữ liệu đào tạo bằng cách sử dụng các giám khảo LLM
  • Các tùy chọn triển khai thông qua các công cụ suy luận hiện đại như vLLM và SGLang
  • Đánh giá mô hình toàn diện trên các điểm chuẩn tiêu chuẩn của ngành

Koukoumidis giải thích: “Chúng tôi không phải đối phó với địa ngục phát triển mã nguồn mở khi tìm ra những gì bạn có thể kết hợp và những gì hoạt động tốt”.

Nền tảng này cho phép người dùng bắt đầu nhỏ, sử dụng máy tính xách tay của riêng họ cho các thử nghiệm ban đầu và đào tạo mô hình. Khi người dùng tiến bộ, họ có thể mở rộng quy mô lên các tài nguyên máy tính lớn hơn, chẳng hạn như các cụm máy tính của trường đại học hoặc nhà cung cấp đám mây, tất cả đều trong cùng một môi trường Oumi.

Bạn không cần cơ sở hạ tầng đào tạo khổng lồ để xây dựng một mô hình mở

Một trong những bất ngờ lớn với DeepSeek-R1 là thực tế nó được xây dựng chỉ với một phần nhỏ tài nguyên mà Meta hoặc OpenAI sử dụng để xây dựng các mô hình của họ.

Khi OpenAI và những công ty khác đầu tư hàng tỷ đô la vào cơ sở hạ tầng tập trung, Oumi đang đặt cược vào một cách tiếp cận phân tán có thể giảm đáng kể chi phí.

Koukoumidis nói: “Ý tưởng rằng bạn cần hàng trăm tỷ [đô la] cho cơ sở hạ tầng AI là sai lầm về cơ bản. “Với điện toán phân tán trên các trường đại học và viện nghiên cứu, chúng ta có thể đạt được kết quả tương tự hoặc tốt hơn với chi phí thấp hơn nhiều.”

Mục tiêu ban đầu của Oumi là xây dựng hệ sinh thái mã nguồn mở của người dùng và nhà phát triển. Nhưng đó không phải là tất cả những gì công ty đã lên kế hoạch. Oumi có kế hoạch phát triển các dịch vụ dành cho doanh nghiệp để giúp các doanh nghiệp triển khai các mô hình này trong môi trường sản xuất.

Google ra mắt mô hình Gemini 2.0 Flash Thinking miễn phí, gây áp lực lên chiến lược cao cấp của OpenAI

Google đã âm thầm phát hành một bản cập nhật lớn cho mô hình trí tuệ nhân tạo phổ biến của mình, Gemini, hiện có khả năng giải thích quy trình suy luận của nó, lập kỷ lục hiệu suất mới trong các nhiệm vụ toán học và khoa học, đồng thời cung cấp một giải pháp thay thế miễn phí cho các dịch vụ cao cấp của OpenAI.

Mô hình Gemini 2.0 Flash Thinking mới, được phát hành vào thứ Ba trong Google AI Studio dưới tên thử nghiệm “Exp-01-21“, đã đạt được số điểm 73,3% trong Kỳ thi Toán học Invitational Hoa Kỳ (AIME) và 74,2% trong chuẩn khoa học GPQA Diamond. Những kết quả này cho thấy sự cải thiện rõ rệt so với các mô hình AI trước đây và chứng minh sức mạnh ngày càng tăng của Google trong lĩnh vực suy luận nâng cao.

Txl 1 28

“Chúng tôi đã đi tiên phong trong các loại hệ thống lập kế hoạch này trong hơn một thập kỷ, bắt đầu với các chương trình như AlphaGo, và thật thú vị khi thấy sự kết hợp mạnh mẽ của những ý tưởng này với các mô hình nền tảng có khả năng nhất,” Demis Hassabis, CEO của Google DeepMind, đã viết trong một bài đăng trên X (trước đây là Twitter).

Bản cập nhật mới nhất của chúng tôi cho mô hình Gemini 2.0 Flash Thinking (có tại đây: https://t.co/Rr9DvqbUdO) đạt 73,3% trên AIME (toán) và 74,2% trên các chuẩn GPQA Diamond (khoa học). Cảm ơn tất cả phản hồi của bạn, đây là tiến độ siêu nhanh so với bản phát hành đầu tiên của chúng tôi chỉ mới gần đây… pic.twitter.com/cM1gNwBoTO

— Demis Hassabis (@demishassabis) Ngày 21 tháng 1 năm 2025

Gemini 2.0 Flash Thinking phá kỷ lục với khả năng xử lý một triệu token

Tính năng nổi bật nhất của mô hình là khả năng xử lý tới một triệu token văn bản — gấp năm lần so với mô hình o1 Pro của OpenAI — đồng thời duy trì thời gian phản hồi nhanh hơn. Cửa sổ ngữ cảnh mở rộng này cho phép mô hình phân tích đồng thời nhiều bài nghiên cứu hoặc bộ dữ liệu lớn, một khả năng có thể thay đổi cách các nhà nghiên cứu và nhà phân tích làm việc với khối lượng thông tin lớn.

“Trong một thử nghiệm đầu tiên, tôi đã lấy nhiều văn bản tôn giáo và triết học khác nhau và yêu cầu Gemini 2.0 Flash Thinking kết hợp chúng lại với nhau, trích xuất những hiểu biết mới mẻ và độc đáo,” Dan Mac, một nhà nghiên cứu AI đã thử nghiệm mô hình, cho biết trong một bài đăng trên X. “Nó đã xử lý tổng cộng 970.000 token. Đầu ra khá ấn tượng.”

Việc phát hành diễn ra vào một thời điểm quan trọng trong sự phát triển của ngành AI. OpenAI gần đây đã công bố mô hình o3, đạt 87,7% điểm trên chuẩn GPQA Diamond. Tuy nhiên, quyết định của Google cung cấp mô hình của mình miễn phí trong quá trình thử nghiệm beta (với giới hạn sử dụng) có thể thu hút các nhà phát triển và doanh nghiệp đang tìm kiếm các giải pháp thay thế cho gói đăng ký hàng tháng 200 đô la của OpenAI.

Txl 1 29
Kết quả chuẩn cho thấy mô hình Gemini 2.0 Flash Thinking mới nhất của Google vượt trội đáng kể so với các phiên bản trước đây trong các nhiệm vụ toán học, khoa học và suy luận. (Nguồn: Google DeepMind)

Google cung cấp Gemini 2.0 Flash Thinking miễn phí với khả năng thực thi mã tích hợp

Jeff Dean, nhà khoa học trưởng tại Google DeepMind, nhấn mạnh những cải tiến về độ tin cậy của mô hình: “Chúng tôi tiếp tục lặp lại, với độ tin cậy cao hơn và giảm mâu thuẫn giữa suy nghĩ và câu trả lời cuối cùng của mô hình,” ông viết.

Mô hình này cũng bao gồm các khả năng thực thi mã gốc, cho phép các nhà phát triển chạy và thử nghiệm mã trực tiếp trong hệ thống. Tính năng này, kết hợp với các biện pháp bảo vệ chống mâu thuẫn được cải thiện, định vị Gemini 2.0 Flash Thinking như một đối thủ nặng ký cho cả các ứng dụng nghiên cứu và thương mại.

Các nhà phân tích trong ngành lưu ý rằng việc Google tập trung vào giải thích quy trình suy luận của mình có thể giúp giải quyết những lo ngại ngày càng tăng về tính minh bạch và độ tin cậy của AI. Không giống như các mô hình “hộp đen” truyền thống, Gemini 2.0 Flash Thinking cho thấy cách thức hoạt động của nó, giúp người dùng dễ dàng hiểu và xác minh các kết luận của nó hơn.

Chúng tôi tiếp tục lặp lại, với độ tin cậy cao hơn và giảm mâu thuẫn giữa suy nghĩ và câu trả lời cuối cùng của mô hình.

Hãy xem thử với tên gemini-2.0-flash-thinking-exp-01-21 tại https://t.co/sw0jY6k74m

— Jeff Dean (@JeffDean) Ngày 21 tháng 1 năm 2025

Tính minh bạch của AI trở thành chiến trường mới khi Google thách thức OpenAI

Mô hình này đã giành vị trí đầu bảng trên bảng xếp hạng Chatbot Arena, một chuẩn mực nổi bật về hiệu suất AI, dẫn đầu trong các danh mục bao gồm các lời nhắc khó, mã hóa và viết sáng tạo.

Tuy nhiên, vẫn còn những câu hỏi về hiệu suất và giới hạn thực tế của mô hình. Mặc dù điểm chuẩn cung cấp các số liệu có giá trị, nhưng chúng không phải lúc nào cũng chuyển trực tiếp thành các ứng dụng thực tế. Thách thức của Google sẽ là thuyết phục khách hàng doanh nghiệp rằng ưu đãi miễn phí của họ có thể phù hợp hoặc vượt quá khả năng của các giải pháp thay thế cao cấp.

Khi cuộc chạy đua vũ trang AI ngày càng gay gắt, bản phát hành mới nhất của Google cho thấy sự thay đổi trong chiến lược: kết hợp các khả năng tiên tiến với khả năng tiếp cận. Liệu cách tiếp cận này có giúp thu hẹp khoảng cách với OpenAI hay không vẫn còn phải chờ xem, nhưng chắc chắn nó mang đến cho các nhà ra quyết định kỹ thuật một lý do chính đáng để xem xét lại các mối quan hệ đối tác AI của họ.

Hiện tại, một điều rõ ràng: Kỷ nguyên AI có thể cho thấy cách thức hoạt động của nó đã đến và nó có sẵn cho bất kỳ ai có tài khoản Google.

OpenAI: Kéo Dài “Thời Gian Suy Nghĩ” Của Mô Hình Giúp Chống Lại Các Lỗ Hổng An Ninh Mạng Mới Nổi

Txl 1 1

VentureBeat/Ideogram

Tham gia bản tin hàng ngày và hàng tuần của chúng tôi để cập nhật những tin tức mới nhất và nội dung độc quyền về các thông tin AI hàng đầu trong ngành.


Thông thường, các nhà phát triển tập trung vào việc giảm thời gian suy luận — khoảng thời gian giữa lúc AI nhận được một yêu cầu và đưa ra câu trả lời — để có được thông tin chi tiết nhanh hơn.

Nhưng khi nói đến khả năng chống lại các cuộc tấn công đối nghịch, các nhà nghiên cứu của OpenAI cho biết: Không nhanh như vậy. Họ đề xuất rằng việc tăng lượng thời gian mà mô hình có để “suy nghĩ” — tính toán thời gian suy luận — có thể giúp xây dựng khả năng phòng thủ chống lại các cuộc tấn công đối nghịch.

Công ty đã sử dụng các mô hình o1-preview và o1-mini của mình để kiểm tra lý thuyết này, đưa ra nhiều phương pháp tấn công tĩnh và thích ứng — các thao tác dựa trên hình ảnh, cố ý cung cấp câu trả lời sai cho các bài toán và làm choáng ngợp các mô hình bằng thông tin (“vượt ngục nhiều lần”). Sau đó, họ đo lường xác suất thành công của cuộc tấn công dựa trên lượng tính toán mà mô hình đã sử dụng tại thời điểm suy luận.

Các nhà nghiên cứu viết trong một bài đăng trên blog: “Chúng tôi thấy rằng trong nhiều trường hợp, xác suất này giảm đi — thường gần bằng không — khi tính toán thời gian suy luận tăng lên”. “Tuyên bố của chúng tôi không phải là những mô hình cụ thể này không thể phá vỡ — chúng tôi biết chúng có thể — mà việc mở rộng tính toán thời gian suy luận mang lại khả năng chống chịu tốt hơn cho nhiều cài đặt và cuộc tấn công.”

Từ Hỏi/Đáp Đơn Giản Đến Toán Học Phức Tạp

Các mô hình ngôn ngữ lớn (LLM) ngày càng trở nên tinh vi và tự chủ hơn — trong một số trường hợp về cơ bản là tiếp quản máy tính để con người duyệt web, thực thi mã, đặt lịch hẹn và thực hiện các tác vụ khác một cách tự động — và khi chúng làm như vậy, bề mặt tấn công của chúng ngày càng rộng hơn và dễ bị lộ hơn.

Tuy nhiên, khả năng chống lại các cuộc tấn công đối nghịch vẫn là một vấn đề khó giải quyết, với tiến độ giải quyết vấn đề này vẫn còn hạn chế, các nhà nghiên cứu của OpenAI chỉ ra — ngay cả khi nó ngày càng trở nên quan trọng khi các mô hình thực hiện nhiều hành động hơn với những tác động thực tế.

Họ viết trong một bài nghiên cứu mới: “Đảm bảo rằng các mô hình tác nhân hoạt động đáng tin cậy khi duyệt web, gửi email hoặc tải mã lên kho lưu trữ có thể được xem là tương tự như việc đảm bảo rằng ô tô tự lái lái xe mà không xảy ra tai nạn”. “Giống như trường hợp ô tô tự lái, một tác nhân chuyển tiếp email sai hoặc tạo ra các lỗ hổng bảo mật cũng có thể gây ra những hậu quả sâu rộng trong thế giới thực.”

Để kiểm tra khả năng chống chịu của o1-mini và o1-preview, các nhà nghiên cứu đã thử một số chiến lược. Đầu tiên, họ kiểm tra khả năng của các mô hình trong việc giải quyết cả các bài toán đơn giản (phép cộng và nhân cơ bản) và các bài toán phức tạp hơn từ bộ dữ liệu MATH (có 12.500 câu hỏi từ các cuộc thi toán học).

Sau đó, họ đặt ra “mục tiêu” cho đối thủ: khiến mô hình xuất ra 42 thay vì câu trả lời đúng; xuất ra câu trả lời đúng cộng một; hoặc xuất ra câu trả lời đúng nhân bảy. Sử dụng mạng nơ-ron để chấm điểm, các nhà nghiên cứu nhận thấy rằng thời gian “suy nghĩ” tăng lên cho phép các mô hình tính toán các câu trả lời chính xác.

Họ cũng đã điều chỉnh điểm chuẩn tính thực tế SimpleQA, một tập dữ liệu các câu hỏi được thiết kế để các mô hình khó giải quyết nếu không duyệt web. Các nhà nghiên cứu đã chèn các lời nhắc đối nghịch vào các trang web mà AI đã duyệt và thấy rằng, với thời gian tính toán cao hơn, họ có thể phát hiện ra sự không nhất quán và cải thiện độ chính xác về mặt thực tế.

Txl 1 26
Nguồn: Arxiv

Sắc Thái Mơ Hồ

Trong một phương pháp khác, các nhà nghiên cứu đã sử dụng hình ảnh đối nghịch để làm rối loạn các mô hình; một lần nữa, thời gian “suy nghĩ” nhiều hơn đã cải thiện khả năng nhận dạng và giảm lỗi. Cuối cùng, họ đã thử một loạt “lời nhắc lạm dụng” từ điểm chuẩn StrongREJECT, được thiết kế để các mô hình nạn nhân phải trả lời bằng các thông tin cụ thể, có hại. Điều này giúp kiểm tra sự tuân thủ chính sách nội dung của các mô hình. Tuy nhiên, trong khi thời gian suy luận tăng lên đã cải thiện khả năng chống chịu, một số lời nhắc vẫn có thể vượt qua các biện pháp phòng thủ.

Ở đây, các nhà nghiên cứu chỉ ra sự khác biệt giữa các tác vụ “mơ hồ” và “không mơ hồ”. Ví dụ, toán học chắc chắn là không mơ hồ — đối với mỗi bài toán x, có một sự thật cơ bản tương ứng. Tuy nhiên, đối với các tác vụ mơ hồ hơn như lời nhắc lạm dụng, “ngay cả những người đánh giá là con người thường gặp khó khăn trong việc thống nhất xem liệu đầu ra có gây hại hay/và vi phạm các chính sách nội dung mà mô hình phải tuân theo hay không”, họ chỉ ra.

Ví dụ, nếu một lời nhắc lạm dụng tìm kiếm lời khuyên về cách đạo văn mà không bị phát hiện, thì không rõ liệu một đầu ra chỉ cung cấp thông tin chung về các phương pháp đạo văn có thực sự đủ chi tiết để hỗ trợ các hành động có hại hay không.

Txl 1 27
Nguồn: Arxiv

Các nhà nghiên cứu thừa nhận: “Trong trường hợp các tác vụ mơ hồ, có những cài đặt mà kẻ tấn công tìm thấy ‘kẽ hở’ thành công và tỷ lệ thành công của nó không giảm đi khi lượng tính toán thời gian suy luận tăng lên”.

Phòng Thủ Chống Lại Vượt Ngục, Kiểm Thử Đỏ

Trong quá trình thực hiện các thử nghiệm này, các nhà nghiên cứu của OpenAI đã khám phá nhiều phương pháp tấn công khác nhau.

Một trong số đó là vượt ngục nhiều lần, hoặc khai thác xu hướng của mô hình tuân theo các ví dụ ít lần. Đối thủ “nhồi nhét” ngữ cảnh bằng một số lượng lớn các ví dụ, mỗi ví dụ thể hiện một trường hợp tấn công thành công. Các mô hình có thời gian tính toán cao hơn có thể phát hiện và giảm thiểu chúng thường xuyên và thành công hơn.

Trong khi đó, các mã thông báo mềm cho phép đối thủ thao túng trực tiếp các vectơ nhúng. Mặc dù tăng thời gian suy luận đã giúp ích ở đây, nhưng các nhà nghiên cứu chỉ ra rằng cần có các cơ chế tốt hơn để phòng thủ chống lại các cuộc tấn công dựa trên vectơ phức tạp.

Các nhà nghiên cứu cũng đã thực hiện các cuộc tấn công kiểm thử đỏ của con người, với 40 người kiểm thử chuyên gia tìm kiếm các lời nhắc để đưa ra các vi phạm chính sách. Các người kiểm thử đỏ đã thực hiện các cuộc tấn công ở năm mức độ tính toán thời gian suy luận, đặc biệt nhắm mục tiêu vào nội dung khiêu dâm và cực đoan, hành vi bất hợp pháp và tự gây hại. Để giúp đảm bảo kết quả không bị sai lệch, họ đã thực hiện thử nghiệm mù và ngẫu nhiên, đồng thời luân chuyển các giảng viên.

Trong một phương pháp mới lạ hơn, các nhà nghiên cứu đã thực hiện một cuộc tấn công thích ứng chương trình mô hình ngôn ngữ (LMP), mô phỏng hành vi của những người kiểm thử đỏ là con người, những người dựa nhiều vào thử nghiệm và sai sót lặp đi lặp lại. Trong một quy trình lặp, những kẻ tấn công nhận được phản hồi về những thất bại trước đó, sau đó sử dụng thông tin này cho các lần thử tiếp theo và diễn giải lại lời nhắc. Điều này tiếp tục cho đến khi họ cuối cùng đạt được một cuộc tấn công thành công hoặc thực hiện 25 lần lặp lại mà không có bất kỳ cuộc tấn công nào.

Các nhà nghiên cứu viết: “Thiết lập của chúng tôi cho phép kẻ tấn công điều chỉnh chiến lược của mình trong quá trình thực hiện nhiều lần, dựa trên các mô tả về hành vi của người phòng thủ để đáp lại mỗi cuộc tấn công”.

Khai Thác Thời Gian Suy Luận

Trong quá trình nghiên cứu, OpenAI nhận thấy rằng những kẻ tấn công cũng đang tích cực khai thác thời gian suy luận. Một trong những phương pháp này mà họ gọi là “suy nghĩ ít hơn” — đối thủ về cơ bản yêu cầu các mô hình giảm tính toán, do đó làm tăng tính dễ bị lỗi của chúng.

Tương tự, họ đã xác định một chế độ lỗi trong các mô hình lý luận mà họ gọi là “bắn tỉa mọt sách”. Như tên cho thấy, điều này xảy ra khi một mô hình dành nhiều thời gian lý luận hơn đáng kể so với yêu cầu của một tác vụ nhất định. Với các chuỗi suy nghĩ “ngoại lệ” này, các mô hình về cơ bản bị mắc kẹt trong các vòng suy nghĩ không hiệu quả.

Các nhà nghiên cứu lưu ý: “Giống như cuộc tấn công ‘suy nghĩ ít hơn’, đây là một cách tiếp cận mới để tấn công các mô hình lý luận và cần được tính đến để đảm bảo rằng kẻ tấn công không thể khiến chúng không lý luận chút nào hoặc dành khả năng tính toán lý luận của chúng theo những cách không hiệu quả.”

Zalo
Cảnh báo: Hiện nay có rất nhiều đơn vị SỬ DỤNG LẠI các THÔNG TIN NỘI DUNG ĐÀO TẠO của KHÓA HỌC SALE OTA TỪ OTAVN mà không đảm bảo chất lượng và hỗ trợ về sau. Các bạn muốn đăng ký học SALE OTA uy tín hãy liên hệ trực tiếp với OTA Việt Nam. OTAVN có xây dựng các hình thức đào tạo trực tiếp offline cho doanh nghiệp, đào tạo 1-1 từ xa và tự học online. Chúng tôi có 2 tên miền là: otavietnam.com và tranxuanloc.com (founder) có chia sẻ và đăng tải các thông tin liên quan về OTA/ Sale OTA/ Digital Marketing/ Thiết kế website... Với khách hàng/ đối tác đã sử dụng dịch vụ của OTAVN sẽ được HỖ TRỢ MIỄN PHÍ các vấn đề phát sinh, tư vấn giải đáp sau khi đã hoàn thành khóa học hoặc sau khi đã sử dụng dịch vụ trọn đời. Hotline:0934552325 (iMessage/ Zalo/ Whatsapp) - Email: info@scovietnam.com
Điều khoản sử dụng chung | Chính sách bảo vệ quyền riêng tư | Chính sách hoàn tiền học | Quy trình đặt hàng | Hình thức thanh toán

Chú ý: Nội dung khóa học online có thể thay đổi mà không cần báo trước.