Ollama hay vLLM – Giải pháp nào phù hợp hơn với môi trường triển khai của bạn?

Ollama so với vLLM: Lựa chọn hệ thống quản lý học từ xa (LLM) phù hợp

Hiện nay, việc chạy các mô hình ngôn ngữ lớn tại chỗ không còn là một hoạt động hiếm hoi nữa. Các nhà nghiên cứu, kỹ sư và developer ngày càng sử dụng các mô hình này tại chỗ để duy trì quyền kiểm soát dữ liệu, giảm chi phí đám mây và hỗ trợ các quy trình làm việc AI dựa trên tác nhân thực hiện hàng chục lệnh suy luận cho mỗi tác vụ.

Ollama và vLLM là hai công cụ được sử dụng rộng rãi nhất cho mục đích này, nhưng chúng giải quyết các vấn đề khác nhau. Việc lựa chọn sai công cụ ở giai đoạn triển khai không phù hợp sẽ tạo ra những điểm nghẽn hiệu năng thực sự, và việc hiểu rõ những sự đánh đổi ngay từ đầu sẽ tiết kiệm thời gian và tránh được các vấn đề về hạ tầng không đáng có về sau.

Ad
Máy tính AI với siêu chip NVIDIA GB10 Grace Blackwell

Bài viết này sẽ phân tích cách thức hoạt động của từng công cụ, vị trí hợp lý của mỗi công cụ và cách lựa chọn công cụ phù hợp.

So sánh Ollama và vLLM

Ollama là một LLM server nhẹ (lightweight), chỉ cần một lệnh duy nhất để chạy, được xây dựng trên llama.cpp. Nó sử dụng định dạng mô hình GGUF, chạy trực tiếp trên phần cứng mà không cần container, và cung cấp REST API trên localhost với chế độ tương thích với OpenAI. Quá trình từ cài đặt đến suy luận chỉ mất vài phút, và không yêu cầu kiến ​​thức chuyên môn về DevOps.

  • Ollama đáp ứng nhu cầu truy cập mô hình cục bộ nhanh chóng và liền mạch cho người dùng cá nhân và các nhà phát triển.
  • Ollama tối ưu hóa khả năng phản hồi và tính dễ sử dụng cho người dùng đơn lẻ.

vLLM là một công cụ suy luận LLM ưu tiên GPU được xây dựng để đạt hiệu suất và khả năng mở rộng cao. Nó chạy thông qua Docker hoặc môi trường Python, hỗ trợ các mô hình định dạng HuggingFace với khả năng lượng tử hóa FP16, AWQ, GPTQ và NVFP4, và cung cấp cùng một API tương thích với OpenAI. Việc thiết lập yêu cầu cấu hình phức tạp hơn, nhưng sẽ mở khóa các khả năng mà Ollama không được thiết kế để cung cấp.

  • vLLM đáp ứng nhu cầu suy luận đồng thời, thông lượng cao trong môi trường dùng chung hoặc sản xuất.
  • vLLM tối ưu hóa hiệu quả bộ nhớ và xử lý yêu cầu đồng thời ở quy mô lớn.

Điểm khác biệt cốt lõi: Yêu cầu và khả năng xử lý đồng thời

Theo mặc định, Ollama xử lý các yêu cầu theo trình tự. Trong điều kiện chỉ có một người dùng, điều này không sao, nhưng khi số lượng người dùng đồng thời tăng lên, các yêu cầu sẽ xếp hàng chờ và độ trễ sẽ tăng lên. Việc tinh chỉnh Ollama để xử lý song song chỉ giúp cải thiện phần nào nhưng không giải quyết được kiến ​​trúc cơ bản.

  • Ollama dành một khối bộ nhớ cố định cho mỗi mô hình; một mô hình hoạt động duy nhất cho mỗi phiên bản với khả năng xử lý yêu cầu tuần tự.
  • Ollama xử lý một yêu cầu tại một thời điểm; các yêu cầu bổ sung sẽ chờ trong hàng đợi.

vLLM được xây dựng dựa trên hai công nghệ giải quyết trực tiếp vấn đề tải đồng thời: PagedAttention và xử lý theo lô liên tục. Cả hai công nghệ này cho phép vLLM phục vụ nhiều yêu cầu đồng thời trên cùng một phần cứng mà không gây ra gánh nặng xếp hàng như Ollama.

  • vLLM sử dụng PagedAttention để phân bổ bộ nhớ cache KV của GPU thành các trang nhỏ theo yêu cầu, giải phóng bộ nhớ cho nhiều yêu cầu đồng thời hơn.
  • vLLM sử dụng phương pháp gom nhóm liên tục để đưa các yêu cầu mới vào quy trình thực thi ngay khi có tài nguyên tính toán sẵn sàng.

Kết quả thực tiễn rất đáng kể. Với 128 kết nối đồng thời, vLLM mang lại thông lượng cao hơn đáng kể và thời gian phản hồi token đầu tiên nhanh hơn so với Ollama, vốn bắt đầu từ chối hoàn toàn các yêu cầu dưới mức tải đó. Một trường hợp được ghi nhận cho thấy độ trễ P95 của trợ lý tri thức nội bộ tăng từ 3 giây lên hơn một phút khi số lượng người dùng tăng từ 3 lên 40 trên Ollama. Việc chuyển sang vLLM đã giúp giảm độ trễ P95 xuống dưới 2 giây trên cùng phần cứng.

Tăng tốc quá trình huấn luyện AI trên NVIDIA DGX Spark

Mang sức mạnh tính toán AI doanh nghiệp đi bất cứ đâu. NVIDIA DGX Spark cung cấp hiệu năng lên đến 1 petaFLOP trong một thiết kế nhỏ gọn 6″ x 6″ x 2″. Khai thác sức mạnh trung tâm dữ liệu trong ba lô của bạn. Hiện đang được NTC cung cấp qua các lựa chọn từ các thương hiệu OEM ASUS và MSI.

Nhận báo giá ngay hôm nay!

Tổng quan về hiệu năng (NVIDIA RTX Pro 4500)

Các số liệu bên dưới là kết quả đo được từ một card đồ họa NVIDIA RTX Pro 4500 (32GB GDDR7) chạy hệ điều hành Llama 3.1 8B. Chúng minh họa cách lựa chọn ngăn xếp máy chủ ảnh hưởng đến thông lượng, độ trễ và khả năng xử lý đồng thời trên phần cứng giống hệt nhau.

STACK Thông lượng TTFT Số người dùng đồng thời ở mức 30 tRANSACTIONS/giây
Ollama (người dùng đơn lẻ) 134 t/s ~500ms 1 (sequential)
vLLM BF16 2.031 t/s ~25ms ~67
vLLM NVFP4 4.870 t/s ~13ms ~160
vLLM NVFP4 (4x hạm đội) dự kiến 19.435 t/s ~13ms ~650

Một vài điều cần lưu ý về những con số này:

  • Tốc độ xử lý 134 t/s của Ollama là tốc độ xử lý cho một người dùng duy nhất, nó không tăng theo số lượng người dùng đồng thời bổ sung trên cùng một máy chủ.
  • Bốn instance Ollama độc lập trên bốn GPU, mỗi instance cung cấp 148 t/s cho mỗi người dùng với độ xung đột bằng không, đây là mô hình triển khai hợp lý cho các nhóm nhỏ, nơi mỗi nhà nghiên cứu cần một làn đường riêng.
  • Hỗ trợ NVFP4 trên Blackwell yêu cầu vLLM và không được hỗ trợ trên Ollama; kết quả BF16 áp dụng rộng rãi hơn.
  • Kết quả của nhóm 4x sử dụng bốn instance vLLM độc lập. Con số được cung cấp chỉ là dự đoán.
  • Định dạng mô hình khác nhau giữa các công cụ: Ollama sử dụng mô hình GGUF, trong khi vLLM cung cấp các mô hình định dạng HuggingFace ở định dạng FP16, AWQ, GPTQ hoặc NVFP4. Sự khác biệt về thông lượng phản ánh cả kiến ​​trúc và lựa chọn lượng tử hóa.

Ý nghĩa của các con số đối với các vòng lặp agent (agent loop)

Các agent loop biến hành vi phục vụ thành một vấn đề phức hợp. Khi một quy trình công việc cần từ 20 đến 100 lệnh gọi mô hình tuần tự, độ trễ trên mỗi bước và giới hạn đồng thời sẽ nhanh chóng cộng dồn lại. Đó là lúc hiệu quả của việc xử lý theo lô và bộ nhớ đệm KV của vLLM phát huy tác dụng, mang lại khoản tiết kiệm thời gian thiết thực.

Các số liệu về thông lượng thô tự chúng không truyền tải nhiều thông tin. Bảng dưới đây chuyển đổi chúng thành thời gian hoàn thành của tác nhân 20 bước, đây là đơn vị thực tế hơn cho các nhóm đang vận hành quy trình làm việc dựa trên tác nhân.

Stack Suy luận từng bước Tác nhân 20 bước, chỉ suy luận
Ollama (người dùng đơn lẻ) ~2-4s cho mỗi phản hồi 256 token ~60-80s
vLLM BF16 ~0,13s cho mỗi phản hồi 256 token ~3-5s
vLLM NVFP4 ~0,05s cho mỗi phản hồi 256 token ~1-3s

Khi đọc phản hồi được truyền trực tiếp, sự khác biệt giữa TTFT 25ms và 500ms hầu như không thể nhận biết được. Đối với một tác nhân thực hiện 20 cuộc gọi suy luận liên tiếp, khoảng cách đó tích lũy lại thành sự khác biệt đáng kể về thời gian hoàn thành nhiệm vụ.

Kích thước mô hình lớn hơn trên cùng một phần cứng?

Các bài kiểm tra hiệu năng ở trên sử dụng mô hình 8B, nhưng cùng một phần cứng có thể chạy các mô hình lớn hơn mà không cần chuyển sang điện toán đám mây. Mô hình 32B ở mức lượng tử hóa Q4 có thể nằm gọn trên một thẻ 32GB và cho hiệu năng khoảng 36 giao dịch/giây trên Ollama, hoàn toàn cục bộ và không phụ thuộc vào điện toán đám mây. Đối với hầu hết các tác vụ tuân theo chỉ dẫn và sử dụng công cụ của tác nhân, mô hình 8B đến 14B là đủ; mô hình 32B có sẵn khi độ phức tạp của suy luận yêu cầu.

Những con số này không bao gồm những gì?

Thời gian suy luận không giống với tổng thời gian hoàn thành tác vụ. Quy trình làm việc thực tế của tác nhân bao gồm thực thi công cụ, tìm kiếm trên web, nhập/xuất tệp và xem xét của con người, do đó thời gian chạy từ đầu đến cuối vẫn có thể kéo dài vài phút. Mục tiêu là để ngăn chặn quá trình suy luận trở thành nút thắt cổ chai, và ở mức thông lượng này, điều đó thường không xảy ra.

Lựa chọn giữa Ollama và vLLM

Việc lựa chọn giữa Ollama và vLLM chủ yếu phụ thuộc vào số lượng người dùng chia sẻ phần cứng và giai đoạn triển khai hiện tại của bạn. Bảng dưới đây thể hiện các trường hợp phổ biến nhất.

Tình huống Ollama vLLM
Nhà nghiên cứu độc lập, trạm làm việc cá nhân Yes Tùy chọn
2-4 nhà nghiên cứu, mỗi người có một GPU riêng. Yes, 1 instance/GPU Hoặc cả 2
Lab hoặc máy chủ dùng chung, tối đa 5 người dùng đồng thời. No  Yes
Agentic framework (LangChain, CrewAI, AutoGen)  Yes  Yes
Cần NVFP4 hoặc lượng tử hóa nâng cao. No  Yes
Không có IT support hoặc DevOps.  Yes Kèm nỗ lực
Dữ liệu nhạy cảm, yêu cầu tại chỗ  Yes  Yes

Một cách tiếp cận thực tế cho hầu hết các nhóm là bắt đầu với Ollama trong quá trình phát triển và tạo mẫu cục bộ, sau đó chuyển sang vLLM khi nhu cầu đồng thời hoặc yêu cầu về thông lượng vượt quá khả năng xử lý của Ollama. Quá trình chuyển đổi chỉ là thay đổi URL và chuyển đổi định dạng mô hình, chứ không phải viết lại toàn bộ mã. Bất kỳ mã tác nhân nào chạy trên Ollama đều hoạt động trên vLLM mà không cần sửa đổi sau khi điểm cuối được cập nhật.

Các framework tác nhân phổ biến như LangChain, LangGraph, CrewAI và AutoGen đều kết nối với cả hai công cụ thông qua cùng một API tương thích với OpenAI. Không cần thay đổi ở cấp độ framework khi chuyển đổi giữa các hệ thống phục vụ.

Câu hỏi thường gặp: So sánh Ollama và vLLM

Khi nào thì Ollama là lựa chọn tốt hơn?

Hãy chọn Ollama để tạo mẫu nhanh tại chỗ hoặc làm trạm làm việc cho một người dùng duy nhất, nơi sự đơn giản được ưu tiên hơn khả năng xử lý đồng thời. Các mô hình có thể được tải nhanh chóng, ngay cả đối với người dùng không chuyên về kỹ thuật.

Khi nào thì vLLM là lựa chọn tốt hơn?

Hãy sử dụng vLLM khi cần nhiều người dùng hoặc tác nhân chạy đồng thời, hoặc khi bạn cần độ trễ có thể dự đoán được và thông lượng cao hơn. vLLM cũng hỗ trợ NVFP4 nguyên bản trên GPU NVIDIA Blackwell. Quá trình thiết lập có phần phức tạp hơn một chút nhưng không khó để học.

Tôi có cần thay đổi code của agent framework để chuyển đổi không?

Thông thường là không. Hầu hết các framework đều có thể tham chiếu đến cả hai công cụ thông qua cùng một API tương thích với OpenAI. Thay đổi chính nằm ở endpoint và định dạng mô hình.

Cả hai công cụ này có đáp ứng được yêu cầu về quản lý dữ liệu tại chỗ và dữ liệu nhạy cảm không?

Có, cả hai đều có thể phục vụ các mô hình trên phần cứng của riêng bạn, do đó các prompt, ngữ cảnh và đầu ra vẫn nằm trong phạm vi hệ thống của bạn.

Kết luận

Ollama và vLLM là hai công cụ bổ trợ chứ không phải cạnh tranh với nhau. Ollama loại bỏ mọi trở ngại khi chạy mô hình cục bộ, điều này giúp nó trở thành điểm khởi đầu phù hợp cho hầu hết người dùng. vLLM loại bỏ thông lượng và khả năng xử lý đồng thời như những yếu tố hạn chế, việc đó giúp nó trở thành một lựa chọn cơ sở hạ tầng phù hợp khi triển khai quy mô vượt quá một người dùng duy nhất.

Quyết định rất đơn giản. Nếu bạn là người dùng cá nhân chạy các mô hình trên phần cứng riêng, Ollama là đủ và dễ sử dụng hơn đáng kể. Khi bạn chia sẻ phần cứng với nhóm, chạy các phiên tác nhân đồng thời hoặc cần độ trễ có thể dự đoán được khi tải nặng, vLLM là lựa chọn đúng đắn. Hầu hết các nhóm sẽ sử dụng cả hai ở các thời điểm khác nhau, và quá trình chuyển đổi giữa chúng được thiết kế để giảm thiểu ma sát.

Nếu bạn có thắc mắc về các loại mô hình có thể chạy trên bất kỳ hệ thống nào, hãy liên hệ với các kỹ sư của NTC ngay hôm nay để được hỗ trợ xây dựng hệ thống GPU phù hợp. Cho dù đó là NVIDIA DGX Spark hay một cụm máy chủ NVIDIA DGX B300.

Tăng tốc quá trình huấn luyện AI trên hệ thống NVIDIA DGX dành cho Data Center

Việc huấn luyện các mô hình AI trên các tập dữ liệu khổng lồ có thể được tăng tốc theo cấp số nhân với một hệ thống phù hợp. Đó không chỉ là một máy tính hiệu năng cao, mà còn là một công cụ để thúc đẩy và tăng tốc nghiên cứu của bạn. Triển khai nhiều node NVIDIA DGX để tăng khả năng mở rộng. DGX B200 và DGX B300 hiện có thể đặt hàng tại NTC.

Nhận báo giá ngay hôm nay!

____
Bài viết liên quan

TAG: ,