vi ▾
Try with trial credit

API Ollama: Danh sách Kiểm tra Sản xuất cho Suy luận Không kiểm duyệt

Các API Ollama cung cấp giao diện tiêu chuẩn để chạy các mô hình LLM cục bộ không kiểm duyệt, mang lại cho nhà phát triển quyền kiểm soát trực tiếp đối với trọng số mô hình và các tham số suy luận mà không có hạn chế từ nhà cung cấp bên ngoài. Hướng dẫn này bao gồm các bước kỹ thuật cần thiết để tối ưu hóa xử lý ngữ cảnh, quản lý độ trễ streaming và tích hợp các endpoint này vào môi trường sản xuất một cách hiệu quả.

Cập nhật lần cuối

Tóm tắt

  1. Sử dụng điểm cuối /api/chat để stream phản hồi với khả năng hiển thị token theo thời gian thực và giảm độ trễ cảm nhận.

  2. Cấu hình Ollama với trọng lượng không kiểm duyệt đã lượng tử hóa như Llama 3.1 Uncensored để cân bằng giữa việc sử dụng VRAM và chất lượng đầu ra.

  3. Đặt các ngưỡng thời gian chờ rõ ràng trong SDK máy khách của bạn để ngăn chặn các kết nối treo trong các đợt tăng tải cao.

  4. Theo dõi thông lượng token mỗi giây để xác định các nút cổ chai trước khi chúng ảnh hưởng đến trải nghiệm người dùng trong các triển khai trực tiếp.

Tại sao API Ollama là tiêu chuẩn cho suy luận cục bộ

Các API Ollama chuẩn hóa suy luận cục bộ bằng cách đóng gói logic tải mô hình phức tạp thành một giao diện REST đơn giản mô phỏng theo các quy ước của OpenAI. Nhà phát triển thích cách tiếp cận này vì nó loại bỏ nhu cầu quản lý các quy trình Python hoặc phụ thuộc CUDA một cách thủ công. API cung cấp các endpoint cho hoàn thành trò chuyện và tạo nhúng, giúp tích hợp trở nên đơn giản cho các cơ sở mã hiện có.

Suy luận cục bộ trao quyền chủ quyền dữ liệu hoàn toàn. Các lời nhắc của bạn không bao giờ rời khỏi phần cứng của bạn, điều này rất quan trọng đối với các ứng dụng nhạy cảm hoặc yêu cầu quyền riêng tư nghiêm ngặt. Không giống như các nhà cung cấp đám mây, bạn kiểm soát chính xác phiên bản mô hình, mức lượng hóa và các tham số lấy mẫu. Sự minh bạch này đảm bảo hành vi nhất quán mà không có các bản cập nhật bất ngờ từ nhà cung cấp bên thứ ba.

Nhiều nhóm sử dụng Ollama vì nó hỗ trợ nhiều kiến trúc khác nhau ngay từ đầu. Bạn có thể chuyển đổi giữa các mô hình khác nhau mà không cần viết lại mã máy khách. API xử lý việc phân bổ tensor và quản lý cửa sổ ngữ cảnh.

Tuy nhiên, suy luận cục bộ đòi hỏi tài nguyên phần cứng đầy đủ. Bạn phải đảm bảo GPU của mình có đủ VRAM cho kích thước mô hình đã chọn. Mô hình 7B tham số với lượng tử hóa Q4_K_M yêu cầu khoảng 5-6 GB VRAM. Các mô hình lớn hơn đòi hỏi nhiều bộ nhớ hơn nhưng cung cấp khả năng suy luận tốt hơn đáng kể.

Chọn trọng số mô hình không kiểm duyệt phù hợp

Việc chọn trọng số mô hình không kiểm duyệt phù hợp liên quan đến việc cân bằng số lượng tham số, mức lượng tử hóa và dữ liệu huấn luyện cụ thể. Các mô hình không kiểm duyệt thường là các phiên bản tinh chỉnh của các mô hình cơ sở như Llama 3 hoặc Mistral, được huấn luyện để giảm tỷ lệ từ chối đối với các chủ đề người lớn hoặc gây tranh cãi.

Đối với việc sử dụng trong sản xuất, hãy ưu tiên các mô hình có giấy phép rõ ràng và cộng đồng hỗ trợ tích cực. Các phiên bản lượng tử hóa như Q4_K_M mang lại tỷ lệ giá cả-hiệu suất tốt nhất. Chúng giảm 70% việc sử dụng bộ nhớ trong khi vẫn giữ được phần lớn trí tuệ của mô hình. Điều này cho phép bạn chạy các mô hình lớn hơn trên các GPU dành cho người tiêu dùng.

  • 7B Mô Hình Tham Số: Lý tưởng cho các thiết lập GPU đơn. Thời gian phản hồi nhanh và độ trễ thấp.
  • Các mô hình 13B-20B Tham số: Khả năng suy luận và làm theo hướng dẫn tốt hơn. Yêu cầu VRAM đáng kể hoặc triển khai cụm.

Luôn xác minh phương pháp lượng tử hóa. Định dạng GGUF là tiêu chuẩn cho suy luận cục bộ. Nó hỗ trợ nhiều mức lượng tử hóa khác nhau từ Q2_K đến Q8_0. Lượng tử hóa thấp hơn tiết kiệm bộ nhớ nhưng có thể gây ra các lỗi trong các nhiệm vụ suy luận phức tạp.

Tối ưu hóa cửa sổ ngữ cảnh cho việc tạo nội dung dài

Tối ưu hóa cửa sổ ngữ cảnh đòi hỏi quản lý cẩn thận các giới hạn token cho prompt và kết quả. Ollama hỗ trợ cửa sổ ngữ cảnh lên đến 128K token trong các phiên bản gần đây. Tuy nhiên, ngữ cảnh hiệu quả thường nhỏ hơn do hạn chế phần cứng và sự đánh đổi về độ trễ.

Đặt độ dài ngữ cảnh rõ ràng trong các yêu cầu API của bạn. Điều này ngăn mô hình cắt ngắn các hướng dẫn quan trọng hoặc mất dấu các lượt hội thoại trước đó. Cửa sổ ngữ cảnh lớn hơn làm tăng mức sử dụng bộ nhớ theo tuyến tính. Theo dõi mức sử dụng bộ nhớ GPU của bạn kỹ lưỡng khi mở rộng vượt quá 32K token.

Đối với việc tạo nội dung dài, hãy cân nhắc các chiến lược phân đoạn. Chia các tài liệu lớn thành các đoạn nhỏ hơn trước khi chuyển chúng cho mô hình. Điều này làm giảm nguy cơ quá tải ngữ cảnh và cải thiện chất lượng phản hồi. Sau đó, bạn có thể ghép các đầu ra lại với nhau ở phía máy khách.

Sử dụng num_ctx tham số để kiểm soát kích thước cửa sổ ngữ cảnh. Mặc định thường là 2048 token. Tăng giá trị này lên 8192 hoặc 32768 cho phép lưu trữ lịch sử hội thoại sâu hơn. Đảm bảo phần cứng của bạn có thể xử tải bộ nhớ tăng lên.

Xử lý độ trễ phát trực tiếp trong các môi trường sản xuất

Xử lý độ trễ phát trực tiếp liên quan đến việc cấu hình máy khách của bạn để nhận token khi chúng được tạo. Phát trực tiếp mang lại trải nghiệm người dùng tốt hơn bằng cách hiển thị tiến độ ngay lập tức. Nó cũng cho phép nhận thức thời gian đến token đầu tiên nhanh hơn.

Bật chế độ streaming trong các lệnh gọi API của bạn bằng cách đặt tham số stream thành true. API sẽ trả về một chuỗi các đối tượng JSON, mỗi đối tượng chứa một phản hồi một phần. Xử lý các chunk này không đồng bộ để duy trì thông lượng cao.

Theo dõi tốc độ tạo token. Một GPU cục bộ điển hình có thể tạo ra 50-100 token mỗi giây. Điều này chậm hơn các API đám mây nhưng mang lại độ trễ thấp hơn và quyền riêng tư. Điều chỉnh giao diện người dùng của bạn để phản ánh chính xác tốc độ này. Tránh hiển thị các hoạt ảnh xoay cho thấy đang chờ phản hồi đầy đủ.

Triển khai cơ chế thời gian chờ. Nếu kết nối streaming bị treo, hãy đóng kết nối đó và thử lại. Điều này ngăn ngừa rò rỉ tài nguyên trong ứng dụng của bạn. Sử dụng cơ chế backoff theo cấp số nhân cho các lần thử lại để tránh làm quá tải máy chủ trong các giai đoạn tải cao.

Quản lý hiệu quả độ đồng thời và giới hạn tốc độ

Quản lý độ đồng thời đòi hỏi sự cân bằng giữa các yêu song song song song với bộ nhớ GPU khả dụng. Ollama xử lý các yêu cầu theo trình tự theo mặc định. Các yêu cầu đồng thời có thể dẫn đến tăng độ trễ hoặc lỗi hết bộ nhớ nếu không được cấu hình đúng.

Sử dụng bể kết nối để quản lý nhiều yêu cầu hiệu quả. Giới hạn số lượng kết nối đồng thời để phù hợp với khả năng của GPU. Một GPU thường có thể xử lý 2-4 yêu cầu đồng thời cho mô hình 7B. Các mô hình lớn hơn có thể yêu cầu ít yêu cầu đồng thời hơn.

Triển khai giới hạn tốc độ ở phía máy khách. Điều này ngăn chặn các đỉnh lưu lượng đột ngột làm quá tải máy chủ cục bộ. Đặt giới hạn tối đa số yêu cầu mỗi giây (RPS) dựa trên thông số phần cứng của bạn. Theo dõi mức sử dụng GPU và điều chỉnh giới hạn động nếu có thể.

Hãy xem xét việc sử dụng hệ thống hàng đợi cho các kịch bản có độ đồng thời cao. Các yêu cầu được xử lý theo thứ tự, đảm bảo quyền truy cập công bằng vào tài nguyên. Điều này ngăn ngừa tình trạng đói của các yêu cầu chậm hơn và duy trì hiệu suất nhất quán.

Giám sát sử dụng token và hiệu quả chi phí

Giám sát sử dụng token giúp bạn tối ưu hóa phân bổ tài nguyên và dự đoán chi phí phần cứng. Theo dõi riêng biệt token đầu vào và token đầu ra. Dữ liệu này cho biết prompt nào tốn kém và mô hình nào hiệu quả nhất.

Tính chi phí cho mỗi yêu cầu bằng cách nhân số lượng token với tỷ lệ khấu hao phần cứng của bạn. Điều này cho bạn một con số chính xác cho chi phí vận hành. So sánh điều này với chi phí API đám mây để biện minh cho việc triển khai cục bộ.

  • Số token đầu vào: Đếm số ký tự trong prompt và hướng dẫn hệ thống của bạn.
  • Token Đầu ra: Theo dõi độ dài phần tạo ra. Các phản hồi ngắn hơn sẽ rẻ hơn và nhanh hơn.
  • Tổng số Token: Tổng của đầu vào và đầu ra. Sử dụng điều này để lập ngân sách.

Tối ưu hóa việc sử dụng token bằng cách tinh chỉnh prompt. Loại bỏ sự dài dòng không cần thiết. Sử dụng hướng dẫn ngắn gọn để giảm token đầu vào. Giới hạn độ dài đầu ra với tham số max_tokens để kiểm soát chi phí và cải thiện tốc độ.

Tích hợp với các máy khách tương thích OpenAI

Việc tích hợp với các máy khách tương thích OpenAI cho phép bạn sử dụng các thư viện hiện có như openai-python hoặc langchain. API của Ollama được thiết kế để mô phỏng điểm cuối hoàn thành trò chuyện của OpenAI. Sự tương thích này giúp giảm đáng kể thời gian phát triển.

Đặt URL cơ sở thành phiên bản Ollama cục bộ của bạn. Thông thường, đây là http://localhost:11434/v1. Cấu hình khóa API thành ollama hoặc để trống tùy thuộc vào thiết lập của bạn. Thư viện client sẽ xử lý phần còn lại.

Kiểm tra tích hợp với một yêu cầu trò chuyện đơn giản. Xác minh rằng streaming hoạt động chính xác. Kiểm tra xem tên mô hình có khớp với những mô hình có sẵn trong phiên bản Ollama của bạn hay không. Bạn có thể liệt kê các mô hình có sẵn bằng cách sử dụng /api/tags endpoint.

Xử lý lỗi một cách khéo léo. Ollama trả về các mã lỗi HTTP tiêu chuẩn. Phân tích các lỗi này để cung cấp phản hồi có ý nghĩa cho người dùng. Ghi lại các thông báo lỗi chi tiết để phục vụ việc gỡ lỗi.

Khắc phục các lỗi API Ollama phổ biến

Việc khắc phục các lỗi API Ollama phổ biến liên quan đến việc kiểm tra kết nối mạng, khả dụng của mô hình và tính hợp lệ của tham số. Các lỗi phổ biến bao gồm 404 Not Found cho mô hình bị thiếu và 500 Internal Server Error cho các vấn đề về GPU.

Xác minh rằng tên mô hình là chính xác. Ollama phân biệt chữ hoa chữ thường. Sử dụng ollama list để xem các mô hình có sẵn. Đảm bảo mô hình đã được kéo và sẵn sàng cho suy luận.

Kiểm tra việc sử dụng bộ nhớ GPU. Lỗi hết bộ nhớ thường xảy ra khi cửa sổ ngữ cảnh quá lớn. Giảm num_ctx hoặc chuyển sang mô hình nhỏ hơn. Theo dõi việc sử dụng bộ nhớ với các công cụ như nvtop hoặc nvidia-smi.

Kiểm tra các tải trọng yêu cầu API. JSON không hợp lệ hoặc thiếu các trường bắt buộc sẽ gây ra lỗi 400 Bad Request. Hãy xác minh cấu trúc tải trọng của bạn trước khi gửi. Sử dụng bộ kiểm tra cú pháp JSON để bắt lỗi cú pháp sớm.

FAQ

Cách rẻ nhất để chạy một LLM không kiểm duyệt cục bộ là gì?

Cách rẻ nhất là sử dụng các mô hình GGUF lượng tử hóa như Q4_K_M. Những mô hình này giảm 70% yêu cầu bộ nhớ trong khi vẫn duy trì chất lượng cao. Bạn có thể chạy chúng trên các GPU tiêu dùng với ít nhất 6GB VRAM. Điều này giúp giảm thiểu chi phí phần cứng và điện năng so với các API đám mây.

Ollama có hỗ trợ phản hồi dạng stream không?

Đúng, Ollama hỗ trợ phát trực tiếp qua điểm cuối /api/chat. Đặt tham số stream thành true để nhận các mã thông báo khi chúng được tạo. Điều này cải thiện trải nghiệm người dùng bằng cách hiển thị văn bản theo thời gian thực. Nó cũng cho phép nhận thức thời gian đến mã thông báo đầu tiên nhanh hơn.

Làm thế nào để xử lý giới hạn tốc độ với suy luận cục bộ?

Suy luận cục bộ không có giới hạn tốc độ cứng như các API đám mây. Tuy nhiên, bạn bị giới hạn bởi khả năng tính toán của GPU's của bạn. Theo dõi việc sử dụng GPU và điều chỉnh độ đồng thời tương ứng. Sử dụng một bể kết nối để quản lý nhiều yêu cầu một cách hiệu quả mà không làm quá tải phần cứng của bạn.

Tôi có thể sử dụng SDK OpenAI với Ollama không?

Đúng, Ollama tương thích với OpenAI. Bạn có thể sử dụng SDK Python chính thức của OpenAI bằng cách đặt URL cơ sở thành phiên bản cục bộ của bạn. Cấu hình khóa API thành 'ollama' hoặc để trống. Điều này cho phép bạn sử dụng các thư viện hiện có như LangChain hoặc LlamaIndex mà không cần thay đổi mã đáng kể.

Lấy khóa API của bạn ngay bây giờ

Đăng ký, sao chép khóa, và trỏ nó vào endpoint. Đó là tất cả những gì bạn cần.

Try with trial creditXem tài liệu