Thủ thuật
Tự xây dựng trung tâm dữ liệu AI tại gia từ linh kiện cũ
(giờ Việt Nam)
Tóm tắt AI
Tác giả tận dụng các card đồ họa AMD V620 giá rẻ từ thị trường đồ cũ để xây dựng hệ thống AI cá nhân, giải quyết các thách thức về tản nhiệt và cấu hình phần cứng để tối ưu hóa hiệu năng.
Bản dịch AI

Không, chúng ta có AI tại nhà đây rồi
Chương 1: Một thùng linh kiện vụn
Đây là một thời điểm thú vị để làm lập trình viên; theo quan điểm của tôi, mô hình ngôn ngữ lớn transformer là bước phát triển công nghệ thực sự mới mẻ và thú vị đầu tiên trong lĩnh vực này sau một thời gian dài. Các tác nhân lập trình (coding agents) dựa trên AI đã nhanh chóng trở thành cốt lõi trong công việc của nghề này, và cảm giác mang lại giống như việc chuyển từ làm mộc bằng dụng cụ cầm tay sang sử dụng máy móc điện, dù tốt hay xấu thì cũng đã thay đổi hoàn toàn.
Cá nhân tôi, tôi chỉ có thể tin tưởng một thiết bị công nghệ nếu tôi có thể tháo rời và lắp ráp lại nó trong gara của mình. Việc kết nối với một dịch vụ và sử dụng tác nhân lập trình dưới sự kiểm soát của người khác khiến tôi khó chịu; có quá nhiều rủi ro có thể xảy ra. Bạn sẽ bắt đầu phụ thuộc vào nó và rồi một ngày nó sẽ bị lấy mất khỏi tay bạn. Toàn bộ công nghệ này rất thú vị, nhưng tôi không muốn kết nối với một trung tâm dữ liệu AI khổng lồ nào đó ở đâu đó; tôi muốn có một trung tâm dữ liệu AI nhỏ trong mỗi ngôi nhà! Và hiện tại chúng ta đang trong tình trạng thiếu hụt linh kiện máy tính (hoặc có lẽ cuối những năm 2010 là thời kỳ dư thừa linh kiện?), nên để giữ chi phí ở mức phải chăng, tôi sẽ phải xây dựng nó từ những món đồ bỏ đi.
Thứ chính yếu tôi cần ở đây là một loạt GPU. Tôi cần bộ nhớ tốc độ cao để xử lý các phép toán ma trận song song, và đó chính là công dụng của GPU. Tuy nhiên, như tôi đã nói trước đó: mọi thứ được thiết kế để chạy khối lượng công việc AI, hoặc thậm chí bất cứ thứ gì được biết là giỏi về việc đó, hiện đang đắt đỏ một cách điên rồ.
Quay lại năm 2022, một loạt công ty đã cố gắng thúc đẩy xu hướng "cloud gaming". Bạn biết đấy, nơi bạn chạy trò chơi điện tử trên một trung tâm dữ liệu ở đâu đó để không cần phải mua một chiếc PC chơi game hay console đắt tiền. AMD đã lấy một trong những chiếc GPU máy trạm của họ, thêm vào một chút RAM và loại bỏ tất cả các cổng xuất hình ảnh. Họ gọi chiếc card đó là "V620". Nó chưa bao giờ được bán ra thị trường, nên có thể bạn chưa từng nghe đến nó. AMD đã sản xuất quá mức những chiếc card này, và rồi xu hướng cloud gaming không thành công do các vấn đề về độ trễ (điều mà nhìn lại thì thấy rõ ràng là không thể tránh khỏi).
Những chiếc card này không thực sự được thiết kế cho khối lượng công việc AI và sự hỗ trợ phần mềm của AMD thì nổi tiếng là tệ, vì vậy chúng khá rẻ khi mua từ các nhà bán lại rác thải điện tử "phần cứng máy chủ cũ" trên eBay. Tôi không nghĩ những chiếc tôi mua đã từng được sử dụng, chúng trông gần như mới. Mỗi chiếc có 32GB VRAM khá nhanh. Chắc chắn, chúng có tiếng là tệ trong việc tôi muốn sử dụng, nhưng liệu để làm cho nó thực sự hoạt động thì khó đến mức nào chứ?
Ồ, nhân tiện thì chúng không có quạt đâu. Chúng là card máy chủ, chúng mong đợi máy chủ sẽ làm mát chúng bằng một chiếc quạt thổi cực kỳ ồn ào. Chúng ta sẽ nói đến việc đó sau một phút nữa.
Chúng ta đang trong tình trạng thiếu hụt linh kiện nên tôi đã mua một số rác thải điện tử khác để kết nối mảng GPU lại với nhau. Bo mạch chủ thuộc nền tảng X299 từ năm 2017, nó lấy từ một bộ máy chơi game cũ của ai đó và đã đủ cũ để có giá rẻ trên eBay. Nó có bốn khe cắm PCIe x16 với khoảng cách chính xác để tôi cắm bốn GPU cạnh nhau, đó là điều duy nhất tôi quan tâm ở đây. CPU đi kèm là Intel Core i9 10900X, chiếc CPU tệ nhất mà Intel sản xuất trong hai mươi năm qua; khi ra mắt vào năm 2019, nó là phiên bản làm mới của làm mới của làm mới các chip Skylake, bị định giá quá cao và ngốn điện vì Intel không thể bắt kịp các chip Ryzen của AMD vào thời điểm đó, cả về thiết kế bộ xử lý lẫn kích thước nút thạch bản. Với tôi thì ổn, điều đó có nghĩa là nó rẻ bây giờ, và nó sẽ hoàn thành công việc!
RAM và SSD được tận dụng từ các máy tính khác trong nhà. Tất nhiên đây là gian lận; nếu tôi phải mua chúng bây giờ thì chúng sẽ đắt đến mức khó chịu. Nhưng các yêu cầu ở đây ít khắt khe hơn bạn nghĩ; tất cả công việc sẽ được thực hiện trên VRAM của GPU; sau khi mô hình tải từ ổ đĩa, chúng hầu như ở trạng thái nhàn rỗi. Nếu tôi không có sẵn linh kiện tận dụng, tôi vẫn có thể mua với giá khá rẻ.
Tôi đang cấp nguồn cho bốn GPU và bộ xử lý kém hiệu quả nhất của Intel nên tôi đã mua một bộ nguồn lớn. Vì lý do nào đó, mua loại 1600W trên eBay lại rẻ hơn loại 1200W. Tôi không mong đợi sẽ tiêu thụ nhiều điện năng như vậy liên tục, nhưng tôi cần nó để xử lý mọi thứ khởi động cùng lúc.
Tôi đã chi mạnh tay cho một vỏ máy và quạt mới. Ồ đúng rồi, quạt! Những chiếc GPU trung tâm dữ liệu đó không có quạt làm mát, chúng mong đợi luồng không khí từ một bức tường quạt máy chủ. Có rất nhiều mẫu khung quạt có thể in 3D trực tuyến nếu bạn muốn làm mát một trong những chiếc card này, nhưng nếu bạn xếp bốn chiếc cạnh nhau thì tất cả dường như không tối ưu; chúng hoặc sử dụng một chiếc quạt 40mm nhỏ xíu cực ồn ngay ở cuối, hoặc chúng nhô ra quá xa sang một bên khiến bạn không thể đặt nhiều card cạnh nhau. Bốn chiếc card hai khe cắm đặt cạnh nhau có chiều rộng khoảng 160mm, vì vậy điều tôi thực sự muốn là hai chiếc quạt máy chủ 80mm đặt ngay đó, thổi qua các bộ tản nhiệt của card.
Vì vậy, tôi đã mô hình hóa và in một chiếc khung gắn quạt 80mm cho hai chiếc card. Các chiếc card có một loại vây dẫn cáp kim loại ở phía sau, được giữ bằng các ốc vít nhỏ; tôi đã sử dụng các lỗ vít đó để gắn khung. Có một lỗ khoét ở đó cho các đầu nối điện và bốn lỗ để gắn quạt vào phía sau. Tôi đã in cái này bằng nhựa ASA sợi carbon, nhưng có lẽ nhựa PLA thông thường cũng hoạt động tốt.
Tôi mua những chiếc quạt 10.000 vòng/phút này vì muốn đảm bảo luồng không khí đủ mạnh, và giá của chúng cũng bằng những chiếc quạt chậm hơn. Chúng thực sự rất ồn! Tôi muốn bo mạch chủ kiểm soát tốc độ của chúng dựa trên nhiệt độ GPU, và điều này ban đầu không hoạt động, nên tôi chỉ đeo thiết bị bảo vệ tai trong quá trình thiết lập ban đầu.
Chiếc máy ban đầu không chịu khởi động. Tôi có lẽ đã dành một giờ ở đó, đeo thiết bị bảo vệ tai, đứng trong gara mày mò các cài đặt BIOS cho đến khi tìm ra cài đặt PCIe nào cần thiết lập để bo mạch chủ thực sự khởi động với cả bốn card được kết nối. (bạn phải bật Resizable BAR và MMIO High Size, trong hai menu riêng biệt nằm sâu trong các cài đặt tùy chọn nâng cao, vì không ai vào năm 2017 nghĩ rằng bạn sẽ cắm nhiều VRAM như thế này vào bo mạch này). Khoảng thời gian này tôi cũng nhận ra mình không có Ethernet trong gara, nên tôi bắt đầu đục lỗ trên tường thạch cao lúc 11 giờ đêm.
Dù sao thì! Sau vài lần khởi động hụt, tôi đã làm cho nó chạy được và bắt đầu cài đặt Ubuntu 24.04. Với nút bịt tai và vẫn chưa có kiểm soát quạt, tôi đã biên dịch phiên bản máy chủ suy luận yêu thích của mình, llama.cpp tuyệt vời, và thử nghiệm mô hình Gemma4, mô hình này vừa vặn thoải mái trong một chiếc card. Đây là mô hình cục bộ yêu thích của tôi khi tôi mày mò trên một máy trạm GPU đơn và nó thử nghiệm khá tốt; không nhanh bằng chiếc RTX 3090 mà tôi từng có, nhưng không tệ chút nào. Sau đó, tôi chạy Deepseek V4 Flash, mục tiêu thực sự cho bản dựng này. Nó chậm! Tại thời điểm này, tôi không biết làm thế nào để làm cho nó nhanh hơn (sẽ nói thêm ở chương sau), tôi chỉ muốn xem liệu nó có vừa không, và nó đã vừa.
Quay lại với quạt! Một lần nữa, tôi không thể nhấn mạnh đủ mức độ ồn ào của chúng. Ở mức tối đa, bạn có thể nghe thấy tiếng chúng qua các bức tường trong nhà, và chiếc máy này không cần phải chạy ở mức tối đa. Kế hoạch ban đầu là kiểm soát quạt bằng bộ điều khiển tích hợp trên bo mạch chủ, nhưng bo mạch này từ chối kiểm soát các quạt khác nhau ở các tốc độ khác nhau. Có vẻ như đây là điều phổ biến đối với các bo mạch chủ từ Supermicro. Vì vậy, tôi đã tự chế tạo một bộ điều khiển quạt; tôi có cả một hộp các bản sao Arduino Nano không thương hiệu mà tôi mua từ Aliexpress từ thời trước khi áp thuế; tôi đã đào lại một đoạn mã tôi viết cho lớp vi điều khiển ở đại học hơn một thập kỷ trước để chạy động cơ PWM và làm sạch nó.
Bộ điều khiển quạt chỉ nhận một tỷ lệ phần trăm từ máy chủ; tôi cần một tập lệnh trên máy chủ để đọc nhiệt độ và điều chỉnh tốc độ quạt cho phù hợp. Và vì đây là máy chủ AI, tôi đã để nó tự viết tập lệnh điều khiển quạt của riêng mình; điều đó có vẻ phù hợp. Deepseek V4 Flash hoàn toàn có khả năng này, với lượng hướng dẫn và tương tác của con người như thường lệ để có được phần mềm tử tế từ một mô hình AI nhẹ. Chúng tôi đã có một khoảnh khắc hài hước khi tôi bảo nó nghĩ ra thứ gì đó để làm nóng GPU để tôi có thể kiểm tra tập lệnh, và nó bắt đầu viết một tập lệnh PyTorch để thực hiện phép nhân ma trận, và tôi bảo nó "không, bạn đang chạy trên những chiếc card này, bạn tồn tại trong một phiên bản llama.cpp trên máy tính này, chỉ cần nói bất cứ điều gì là sẽ tải đầy các card" và nó đã có một cuộc khủng hoảng hiện sinh ngắn ngủi. Đáng yêu thật!
Bản thân bộ điều khiển nằm trên một bảng mạch thử nghiệm (breadboard) mà tôi chỉ cần nhét vào vỏ máy chủ. Tôi dán một ít băng dính điện lên đó để nó không bị chập mạch vào vỏ máy.
Tại thời điểm này, chiếc máy khá ổn định, tôi đã kiểm tra các GPU và tôi đã sẵn sàng để thực sự đi sâu vào cách làm cho nó chạy nhanh, điều mà tôi sẽ nói trong chương tiếp theo.
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.