Triển khai Open LLMs với LLAMA-CPP Server: Hướng dẫn từng bước
Triển khai Open LLMs với LLAMA-CPP Server: Hướng dẫn từng bước. Tìm hiểu cách cài đặt và thiết lập máy chủ LLAMA-CPP để phục vụ các mô hình ngôn ngữ lớn nguồn mở, thực hiện yêu cầu thông qua cURL, OpenAI client và gói requests của Python. Tối ưu hóa cho triển khai cục bộ và từ xa.
14 tháng 2, 2025

Mở khóa sức mạnh của các mô hình ngôn ngữ lớn nguồn mở (LLMs) với hướng dẫn toàn diện này về việc triển khai LLAMA-CPP Server. Khám phá cách phục vụ nhiều người dùng với một LLM duy nhất, tối ưu hóa hiệu suất và khả năng truy cập cho các ứng dụng của bạn được hỗ trợ bởi trí tuệ nhân tạo.
Cài đặt LLAMA-CPP
Khởi động máy chủ LLAMA-CPP
Thực hiện yêu cầu với máy chủ LLAMA-CPP
Tùy chỉnh máy chủ LLAMA-CPP
Tương tác với máy chủ LLAMA-CPP bằng các phương thức khác nhau
Kết luận
Cài đặt LLAMA-CPP
Cài đặt LLAMA-CPP
Cách dễ nhất để bắt đầu với LLAMA-CPP là sử dụng trình quản lý gói Homebrew để cài đặt nó. Điều này sẽ hoạt động bản địa trên cả máy macOS và Linux. Để cài đặt LLAMA-CPP trên máy Windows, bạn sẽ cần sử dụng Windows Subsystem for Linux (WSL).
Để cài đặt LLAMA-CPP bằng Homebrew, chạy lệnh sau trong terminal của bạn:
brew install llama-cpp
Lệnh này sẽ tải xuống và cài đặt gói LLAMA-CPP trên hệ thống của bạn. Một khi cài đặt hoàn tất, bạn có thể bắt đầu sử dụng lệnh llama-server
để phục vụ các mô hình LLM của mình.
Khởi động máy chủ LLAMA-CPP
Khởi động máy chủ LLAMA-CPP
Để khởi chạy máy chủ LLAMA-CPP, hãy làm theo các bước sau:
-
Cài đặt LLAMA-CPP bằng trình quản lý gói Homebrew:
brew install llama.cpp
Lệnh này sẽ cài đặt LLAMA-CPP trên máy Mac hoặc Linux của bạn. Đối với người dùng Windows, bạn sẽ cần sử dụng WSL (Windows Subsystem for Linux) để cài đặt LLAMA-CPP.
-
Khởi chạy máy chủ LLAMA-CPP bằng cách chạy lệnh sau:
llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
Thay thế
<hugging-face-repo-id>
bằng ID kho lưu trữ Hugging Face của mô hình bạn muốn phục vụ, và<quantization-file>
bằng tệp định lượng cụ thể bạn muốn sử dụng (ví dụ: phiên bản định lượng 4-bit trong định dạng GGML). -
Máy chủ LLAMA-CPP sẽ bắt đầu lắng nghe các yêu cầu đến trên
localhost:8080
theo mặc định. Bạn có thể tùy chỉnh địa chỉ host và cổng bằng các tùy chọn có sẵn, chẳng hạn như--host
và--port
. -
Máy chủ hỗ trợ các tùy chọn cấu hình khác nhau, bao gồm cả việc đặt cửa sổ ngữ cảnh tối đa, kích thước batch và nhiều hơn nữa. Bạn có thể khám phá các tùy chọn này bằng cách chạy
llama-server --help
. -
Một khi máy chủ đang chạy, bạn có thể tương tác với nó bằng các phương pháp khác nhau, chẳng hạn như cURL, khách hàng OpenAI hoặc gói Python
requests
, như đã minh họa trong các phần trước.
Thực hiện yêu cầu với máy chủ LLAMA-CPP
Thực hiện yêu cầu với máy chủ LLAMA-CPP
Có nhiều cách để tương tác với máy chủ LLAMA-CPP và thực hiện các yêu cầu đến mô hình được phục vụ:
-
Sử dụng lệnh cURL:
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
Điều này sẽ thực hiện một yêu cầu POST đến điểm cuối hoàn thành trò chuyện đang chạy trên máy chủ cục bộ tại cổng 8080.
-
Sử dụng khách hàng OpenAI:
import openai openai.api_base = "http://localhost:8080/v1" openai.Model.list() response = openai.ChatCompletion.create( model="chat-gpt-3.5", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello, how are you?"} ] ) print(response.choices[0].message.content)
Điều này sử dụng khách hàng OpenAI để tương tác với máy chủ LLAMA-CPP, tương thích với API OpenAI.
-
Sử dụng gói Requests Python:
import requests url = "http://localhost:8080/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "prompt": "Hello, how are you?", "max_tokens": 50 } response = requests.post(url, headers=headers, json=data) print(response.json())
Điều này sử dụng gói Requests Python để thực hiện một yêu cầu POST đến điểm cuối hoàn thành trò chuyện.
Tùy chỉnh máy chủ LLAMA-CPP
Tùy chỉnh máy chủ LLAMA-CPP
LLAMA-CPP cung cấp một máy chủ có thể tùy chỉnh cao, cho phép bạn tinh chỉnh hành vi của việc triển khai LLM của mình. Dưới đây là một số tùy chọn cấu hình chính:
-
Cửa sổ Ngữ cảnh Tối đa: Bạn có thể định nghĩa kích thước cửa sổ ngữ cảnh tối đa cho LLM, điều này xác định độ dài tối đa của chuỗi đầu vào mà mô hình có thể xử lý.
-
Kích thước Batch: LLAMA-CPP hỗ trợ batch các lời nhắc, cho phép bạn xử lý nhiều đầu vào đồng thời để cải thiện hiệu suất.
-
Địa chỉ Host: Theo mặc định, máy chủ LLAMA-CPP lắng nghe trên
localhost
, nhưng bạn có thể thay đổi địa chỉ host để máy chủ có thể truy cập từ các máy khác trên mạng của bạn. -
Cổng: Máy chủ lắng nghe trên cổng
8080
theo mặc định, nhưng bạn có thể chỉ định một cổng khác nếu cần. -
Đường dẫn Mô hình: LLAMA-CPP cho phép bạn tùy chỉnh đường dẫn từ đó nó tải các tệp mô hình LLM, cho bạn linh hoạt trong cách tổ chức tài sản mô hình của mình.
-
Mô hình Nhúng: Ngoài các mô hình ngôn ngữ, LLAMA-CPP cũng có thể phục vụ các mô hình nhúng, cho phép bạn tích hợp cả khả năng tạo văn bản và mã hóa văn bản vào các ứng dụng của mình.
-
Theo dõi Chỉ số: Máy chủ LLAMA-CPP có thể theo dõi các chỉ số khác nhau, chẳng hạn như độ trễ và thông lượng yêu cầu, để giúp bạn theo dõi và tối ưu hóa hiệu suất của việc triển khai của mình.
Tương tác với máy chủ LLAMA-CPP bằng các phương thức khác nhau
Tương tác với máy chủ LLAMA-CPP bằng các phương thức khác nhau
Để tương tác với máy chủ LLAMA-CPP, chúng ta có thể sử dụng các phương pháp khác nhau:
-
Sử dụng Lệnh cURL:
- Thực hiện một yêu cầu POST đến điểm cuối
hoàn thành trò chuyện
đang chạy trênlocalhost
. - Cung cấp các tiêu đề cần thiết và đối tượng dữ liệu chứa lời nhắc và số lượng token mong muốn để tạo.
- Phản hồi sẽ bao gồm văn bản được tạo ra, cũng như thông tin về quá trình tạo, chẳng hạn như nhiệt độ, top-P, top-K và số token dự đoán mỗi giây.
- Thực hiện một yêu cầu POST đến điểm cuối
-
Sử dụng Khách hàng OpenAI:
- Tạo một khách hàng OpenAI với URL cơ sở được đặt thành URL của máy chủ LLAMA-CPP cục bộ.
- Sử dụng điểm cuối hoàn thành trò chuyện của khách hàng và cung cấp tên mô hình (ví dụ:
chat-gpt-3.5
). - Đặt lời nhắc hệ thống và lời nhắc người dùng, sau đó thực hiện yêu cầu đến máy chủ.
- Phản hồi sẽ được trả về cùng định dạng với API OpenAI.
-
Sử dụng Gói Requests (Python):
- Xác định URL và tiêu đề cho yêu cầu POST.
- Truyền nhiều tin nhắn khác nhau đến máy chủ và quan sát cách nó xử lý các yêu cầu đồng thời.
- Máy chủ sẽ xếp hàng đợi các yêu cầu và xử lý chúng lần lượt, mà không bị quá tải.
Kết luận
Kết luận
Trong video này, chúng tôi đã khám phá việc cài đặt và sử dụng LlamaCPP, một dự án nguồn mở mạnh mẽ để phục vụ các mô hình ngôn ngữ lớn nguồn mở. Chúng tôi đã học cách cài đặt LlamaCPP trên máy cục bộ của mình, khởi chạy máy chủ và tương tác với nó bằng các phương pháp khác nhau, bao gồm cURL, khách hàng OpenAI và gói Requests Python.
Chúng tôi cũng đã thảo luận về các tùy chọn cấu hình khác nhau có sẵn trong LlamaCPP, cho phép chúng tôi tùy chỉnh máy chủ theo nhu cầu cụ thể của mình, chẳng hạn như đặt cửa sổ ngữ cảnh tối đa, kích thước batch và địa chỉ host. Ngoài ra, chúng tôi đã thấy cách LlamaCPP có thể theo dõi các chỉ số, khiến nó trở thành một lựa chọn phù hợp cho các môi trường sản xuất.
Cuối cùng, chúng tôi đã đề cập đến các ứng dụng thực tế của LlamaCPP, đặc biệt là trong bối cảnh triển khai các mô hình ngôn ngữ lớn cho các trường hợp sử dụng khác nhau. Chúng tôi đã đề cập đến framework Rasa như một ứng dụng tiềm năng và cung cấp một liên kết đến một khóa học liên quan trong mô tả video.
Tổng thể, video này đã cung cấp một bài giới thiệu toàn diện về LlamaCPP và các khả năng của nó, trang bị cho bạn kiến thức để bắt đầu phục vụ các mô hình ngôn ngữ lớn nguồn mở trên máy cục bộ hoặc trong môi trường sản xuất.
Câu hỏi thường gặp
Câu hỏi thường gặp

