- vừa được xem lúc

vLLM – Giải pháp nhanh, gọn để triển khai mô hình ngôn ngữ lớn (LLM)

0 0 1

Người đăng: Lê Đức Minh

Theo Viblo Asia

| Thiết lập vLLM để triển khai nhanh chóng

image.png

Nếu bạn đang tìm một cách đơn giản, nhanh chóng để triển khai và phục vụ mô hình ngôn ngữ lớn (LLM) thì vLLM là một lựa chọn rất đáng thử. Mình sẽ chia sẻ với bạn cách vLLM hoạt động, tại sao nó được ưa chuộng, và làm thế nào để bạn có thể dùng thử chỉ trong vài phút.

Tại sao nên dùng vLLM?

Mình biết rằng việc phục vụ LLM thường đi kèm với nhiều rắc rối – tốc độ chậm, tốn tài nguyên và khó mở rộng. vLLM ra đời để giải quyết những vấn đề đó, giúp bạn phục vụ mô hình nhanh hơn, tiết kiệm hơn mà vẫn giữ chất lượng đầu ra tốt.

Điểm mạnh lớn nhất của vLLM là hiệu năng cực cao. Nhờ vào kỹ thuật gọi là PagedAttention, vLLM có thể tăng tốc độ suy luận lên gấp nhiều lần so với thư viện phổ biến như HuggingFace Transformers, mà bạn không cần chỉnh sửa gì về kiến trúc mô hình.

PagedAttention là gì?

Trong quá trình sử dụng các mô hình ngôn ngữ lớn (LLM), một trong những vấn đề lớn nhất là tốn quá nhiều bộ nhớ, đặc biệt khi mô hình phải nhớ lại mọi từ đã được nhập vào trước đó để tạo ra câu trả lời tiếp theo. Lượng dữ liệu này – gọi là KV cache – rất lớn và thay đổi liên tục tuỳ theo độ dài văn bản. Nhiều hệ thống hiện tại sử dụng bộ nhớ rất lãng phí, có thể lên tới 60–80% vì cách quản lý chưa hiệu quả.

image.png

Để khắc phục, nhóm phát triển vLLM đã tạo ra một kỹ thuật mới có tên là PagedAttention. Theo mình, có thể hiểu nó giống như cách máy tính chia nhỏ dữ liệu thành từng phần để dễ quản lý hơn.

Thay vì phải lưu tất cả dữ liệu một cách liền mạch, kỹ thuật này cho phép chia nhỏ và sắp xếp linh hoạt hơn, giúp tiết kiệm bộ nhớ và phục vụ nhiều yêu cầu cùng lúc. Nhờ đó, hệ thống chạy nhanh hơn, hiệu quả hơn và tốn ít tài nguyên hơn.

Một điểm hay nữa của PagedAttention là khả năng chia sẻ dữ liệu giữa các yêu cầu giống nhau. Ví dụ, nếu mình muốn tạo nhiều phiên bản câu trả lời từ cùng một câu hỏi, hệ thống có thể dùng chung phần dữ liệu ban đầu thay vì tạo lại từ đầu. Điều này giúp tiết kiệm thêm rất nhiều bộ nhớ và tăng tốc độ xử lý, đặc biệt hữu ích khi chạy các mô hình lớn trong thực tế. Đây chính là công nghệ cốt lõi đứng sau vLLM – một công cụ mạnh mẽ, đơn giản và hiệu quả để triển khai các mô hình AI hiện đại.

Hỗ trợ đa dạng phần cứng

Một điểm cộng nữa là vLLM không kén thiết bị. Bạn có thể dùng nó với:

  • GPU của NVIDIA, AMD
  • CPU của Intel hoặc AMD
  • Các bộ tăng tốc như AWS Inferentia, Trainium, và cả TPU
  • Hỗ trợ API theo chuẩn OpenAI, dễ dàng tích hợp vào ứng dụng hiện tại

Điều này có nghĩa là bạn không cần phần cứng khủng mới chạy được — chỉ cần một thiết bị đủ cơ bản là bạn đã có thể thử nghiệm rồi.

Cách cài đặt vLLM

Bạn chỉ cần vài bước đơn giản để bắt đầu. Dưới đây là cách mình thường làm:

Tạo môi trường ảo với Python 3.12

python3.12 -m venv vllm-env
source vllm-env/bin/activate

Mình thường dùng uv, cài đặt môi trường thng qua:

uv venv --python=3.12
source .venv/bin/activate uv init # Tạo dự án

Cài đặt vLLM

pip install vllm # hoặc uv add vllm

Chạy suy luận thử với mô hình

Khi đã cài xong, bạn có thể viết đoạn mã Python đơn giản như sau để thử sinh văn bản:

from vllm import LLM, SamplingParams prompts = [ "Hello, my name is", "The capital of France is", "The future of AI is",
] sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(model="facebook/opt-125m") outputs = llm.generate(prompts, sampling_params) for output in outputs: print("Prompt:", output.prompt) print("Generated:", output.outputs[0].text) print()

Chỉ với vài dòng, bạn đã có thể thấy mô hình hoạt động như thế nào với từng câu gợi ý.

Phục vụ mô hình như một API

Nếu bạn muốn biến mô hình thành một dịch vụ chạy dưới dạng API, vLLM cũng hỗ trợ sẵn. Bây giờ, mình sẽ thử với mô hình có hỗ trợ tiếng Việt. Mình sử dụng mô hình của TheBloke: TheBloke/vietnamese-llama2-7B-40GB-GPTQ :

vllm serve TheBloke/vietnamese-llama2-7B-40GB-GPTQ

Note: Nếu các bạn biết các hub trên huggingface có hỗ trợ các mô hình mới nhất với bộ ngữ liệu tiếng Việt, cho mình xin tên và địa chỉ. Mình mong có thể thử nghiệm và đánh giá nhiều các mô hình và chia sẻ góc nhìn đó với mọi người.

Sau đó, bạn chỉ cần truy cập trình duyệt vào http://<ip-address>:8000/docs để thử nghiệm qua giao diện web trực quan.

image.png

Mình sẽ làm một thử nghiệm bằng cách dùng một câu khuyết và đợi vLLM phản hồi. Kết quả là:

image.png

Kết luận

vLLM là một công cụ tuyệt vời nếu bạn muốn triển khai mô hình ngôn ngữ lớn mà không cần tốn nhiều công sức hay chi phí. Dù bạn đang học, làm thử dự án cá nhân, hay chuẩn bị cho một hệ thống sản phẩm thực tế, thì vLLM đều hỗ trợ tốt.

Nếu bạn chưa thử, hãy cài vLLM và khám phá sức mạnh của nó. Mình tin rằng bạn sẽ thấy bất ngờ về hiệu suất và sự tiện lợi mà nó mang lại.

Tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lightweight Fine-Tuning: Một hướng đi cho những người làm AI trong kỉ nguyên của các Super Large Models (Phần 1)

Note: Tiêu đề và nội dung của bài viết này được lấy cảm hứng từ bài viết của sếp mình: "Hướng đi nào cho những người làm AI trong kỉ nguyên của các Super Large Models?". Recommend các bạn nên đọc để t

0 0 35

- vừa được xem lúc

[Từ Transformer Đến Language Model] Bài 2: Kiến trúc và phương pháp Generative-Pretraining của GPT model

Tiếp nối series kiến thức nền tảng của large language model. Ở Bài 1: Bắt đầu với kiến trúc mô hình - Transformer, mình đã giới thiệu với các bạn về kiến trúc khởi nguồn của large language model - tra

0 0 30

- vừa được xem lúc

Hướng dẫn xây dựng một trang web InterviewGPT ứng dụng chatgpt cho các bạn sinh viên thực hành phỏng vấn

Giới thiệu về InterviewGPT. InterviewGPT là một ứng dụng web được phát triển nhằm cung cấp một trải nghiệm tương tác và trợ giúp trong quá trình phỏng vấn việc làm.

0 0 28

- vừa được xem lúc

Lightweight Fine-Tuning: Một hướng đi cho những người làm AI trong kỉ nguyên của các Super Large Models (Phần 2)

Note: Tiêu đề và nội dung của bài viết này được lấy cảm hứng từ bài viết của sếp mình: "Hướng đi nào cho những người làm AI trong kỉ nguyên của các Super Large Models?". Recommend các bạn nên đọc để t

0 0 32

- vừa được xem lúc

Fine-tuning một cách hiệu quả và thân thiện với phần cứng: Adapters và LoRA

Fine-tuning là gì. Parameter-efficient Fine-tuning (PEFT) với Adapters.

0 0 38

- vừa được xem lúc

Tất tần tật về LLaMA-2 - liệu có đủ làm nên một cuộc cách mạng mới

Lời giới thiệu. Xin chào tất cả các bạn, đã lâu lắm rồi kể từ sau bài viết về Trải lòng sau khi đọc GPT-4 Technical Report của OpenAI - các bác nên đổi tên công ty đi mình không có viết bài về LLM nữa

0 0 30