Ollama là gì?

Ollama là một công cụ mã nguồn mở được tạo ra để giúp việc chạy các mô hình ngôn ngữ lớn (LLM) trở nên đơn giản và dễ dàng hơn trên máy tính cá nhân. Trong bối cảnh AI phát triển mạnh mẽ những năm gần đây, nhu cầu sử dụng các mô hình ngôn ngữ tiên tiến ngày càng tăng.

Ollama được phát triển để giải quyết một số khó khăn chính khi triển khai và sử dụng các mô hình ngôn ngữ lớn (LLM), bao gồm:

  1. Quyền riêng tư và bảo mật dữ liệu: Với việc chạy LLM trên máy local, toàn bộ dữ liệu và tương tác không cần phải gửi đến máy chủ bên thứ ba, giúp đảm bảo thông tin nhạy cảm không bị rò rỉ.
  2. Chi phí: Việc sử dụng các API LLM thương mại thường tốn kém, đặc biệt với các ứng dụng có lượng tương tác lớn như chatbot. Ollama loại bỏ hoàn toàn những chi phí này bằng cách cho phép bạn chạy các mô hình cục bộ, tiết kiệm đáng kể chi phí dài hạn.
  3. Độc lập với Internet: Có khả năng làm việc hoàn toàn ngoại tuyến, không phụ thuộc vào kết nối internet.
  4. Đơn giản hóa triển khai: Trước đây, việc triển khai các LLM cục bộ đòi hỏi người dùng phải có kiến thức chuyên sâu về Machine Learning và các bước cài đặt phức tạp. Ollama đã loại bỏ những rào cản này bằng cách cung cấp một giải pháp dễ sử dụng, giúp các developer nhanh chóng bắt đầu mà không cần tốn nhiều thời gian tìm hiểu kỹ thuật.
  5. Môi trường phát triển linh hoạt: Cung cấp cho các nhà phát triển một nền tảng để thử nghiệm và tích hợp các mô hình LLM vào ứng dụng của họ mà không cần phụ thuộc vào dịch vụ bên ngoài.

Cài đặt Ollama

Truy cập trang Download của Ollama và tải xuống phiên bản phù hợp với hệ điều hành của bạn.

Cài đặt với Docker:

# Chạy container Ollama
docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ~/ollama-data:/root/.ollama \
  --gpus all \  # Bỏ dòng này nếu không có GPU
  ollama/ollama

Cài đặt mô hình LLM

Bạn truy cập vào https://ollama.com/library hoặc https://ollama.com/search để tìm kiếm tên model (có thể gửi cấu hình máy cho ChatGPT để chọn model phù hợp).

Tải một mô hình

Tải mô hình từ kho lưu trữ của Ollama (ví dụ: llama3.2):

ollama pull llama3.2

Liệt kê các mô hình đã cài

Xem tất cả các mô hình hiện có trên máy:

ollama list

Xem thông tin mô hình

Kiểm tra chi tiết về một mô hình cụ thể:

ollama show llama3.2

Chạy mô hình LLM

Chạy mô hình trực tiếp:

ollama run llama3.2 "Viết một đoạn code Python đơn giản để tính giai thừa"

Hoặc chạy với chế độ tương tác

ollama run llama3.2
>>> Viết một đoạn code Python đơn giản để tính giai thừa

Xem các mô hình đang chạy

Kiểm tra mô hình nào đang hoạt động:

ollama ps

Quản lý các mô hình LLM

Dừng mô hình đang chạy

Tắt một mô hình cụ thể:

ollama stop llama3.2

Xóa một mô hình

Xóa mô hình khỏi máy tính khi không cần nữa:

ollama rm llama3.2

Mô Hình Đa Phương Thức (Multimodal Models)

Ollama hỗ trợ các mô hình có khả năng xử lý cả văn bản và hình ảnh.

Ví dụ: Chạy mô hình llava và yêu cầu phân tích và mô tả nội dung hình ảnh:

ollama run llava "What's in this image? /Users/jmorgan/Desktop/smile.png"

Kết quả:

The image features a yellow smiley face, which is likely the central focus of the p

Cài đặt giao diện Web với Open WebUI

Open WebUI cung cấp giao diện web thân thiện để tương tác với Ollama. Cách cài đặt:

pip install open-webui

Cài đặt với Docker:

# Chạy container open-webui
docker run -d \
  --name open-webui \
  -p 8080:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main
# có GPU
docker run -d \
  --name open-webui \
  -p 8080:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:cuda

Tham khảo: Open WebUI GitHub

Sử dụng REST API

Ollama cung cấp REST API để điều khiển mô hình từ xa hoặc tích hợp vào ứng dụng.

Tạo phản hồi theo luồng (Generate Response)

Gửi yêu cầu và nhận phản hồi từng từ (streaming):

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?"
}'

Nhận kết quả đầy đủ (không stream)

Thêm "stream": false để lấy toàn bộ phản hồi:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Tell me a fun fact about Portugal",
  "stream": false
}'

Trò chuyện với mô hình (Chat)

Gửi tin nhắn và nhận phản hồi:

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    { "role": "user", "content": "Tell me a fun fact about Mozambique" }
  ],
  "stream": false
}'

Yêu cầu phản hồi dạng JSON

Nhận kết quả định dạng JSON:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "What color is the sky at different times of the day? Respond using JSON",
  "format": "json",
  "stream": false
}'

Tài liệu API: Ollama API Docs

Leave a Reply

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.