Ollama là gì? Cách sử dụng Ollama

Minh Triết

Minh Triết

28 tháng 4 2025

Ollama là gì? Cách sử dụng Ollama

Bối cảnh của trí tuệ nhân tạo (AI) đang phát triển với tốc độ chóng mặt, và các Mô hình Ngôn ngữ Lớn (LLM) ngày càng trở nên mạnh mẽ và dễ tiếp cận hơn. Mặc dù nhiều người tương tác với các mô hình này thông qua các dịch vụ dựa trên đám mây, ngày càng có nhiều người tập trung vào việc chạy chúng trực tiếp trên máy tính cá nhân của họ. Đây là lúc Ollama xuất hiện. Ollama là một công cụ mạnh mẽ nhưng thân thiện với người dùng, được thiết kế để đơn giản hóa đáng kể quy trình phức tạp của việc tải xuống, cấu hình và chạy các LLM tiên tiến như Llama 3, Mistral, Gemma, Phi và nhiều mô hình khác ngay tại máy tính của bạn.

Hướng dẫn toàn diện này đóng vai trò là điểm khởi đầu để bạn làm chủ Ollama. Chúng ta sẽ đi từ các bước cài đặt ban đầu và tương tác cơ bản với mô hình đến các kỹ thuật tùy chỉnh nâng cao hơn, sử dụng API và khắc phục sự cố cần thiết. Cho dù bạn là nhà phát triển đang tìm cách tích hợp AI cục bộ vào ứng dụng của mình, một nhà nghiên cứu muốn thử nghiệm với các kiến trúc mô hình đa dạng, hay đơn giản là một người đam mê AI mong muốn khám phá tiềm năng chạy các mô hình mạnh mẽ ngoại tuyến, Ollama cung cấp một cổng vào được tối ưu hóa và hiệu quả đặc biệt.

💡
Bạn muốn một công cụ Kiểm tra API tuyệt vời tạo ra tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, Một cho Tất cả để nhóm Phát triển của bạn có thể làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn, và thay thế Postman với mức giá hợp lý hơn nhiều!
button

Tại sao chọn Ollama để Chạy LLM Cục bộ?

Trước khi đi sâu vào các chi tiết kỹ thuật, điều quan trọng là phải hiểu những lợi thế hấp dẫn của việc sử dụng Ollama để vận hành LLM cục bộ. Tại sao lại chọn phương pháp này thay vì chỉ dựa vào các API đám mây sẵn có?

  1. Quyền riêng tư và Bảo mật Vượt trội với Ollama: Khi bạn thực thi một LLM bằng Ollama trên máy của mình, mọi mẩu dữ liệu – lời nhắc của bạn, tài liệu bạn cung cấp và văn bản do mô hình tạo ra – đều hoàn toàn nằm trong hệ thống cục bộ của bạn. Nó không bao giờ rời khỏi phần cứng của bạn. Điều này đảm bảo mức độ riêng tư và kiểm soát dữ liệu cao nhất, một yếu tố quan trọng khi xử lý thông tin cá nhân nhạy cảm, dữ liệu kinh doanh bí mật hoặc nghiên cứu độc quyền.
  2. Tiết kiệm Chi phí Đáng kể thông qua Ollama: Các API LLM dựa trên đám mây thường hoạt động theo mô hình trả tiền theo mức sử dụng hoặc yêu cầu phí đăng ký liên tục. Những chi phí này có thể tích lũy nhanh chóng, đặc biệt là với việc sử dụng nhiều. Ollama loại bỏ các chi phí định kỳ này. Ngoài khoản đầu tư ban đầu vào phần cứng phù hợp (mà bạn có thể đã sở hữu), việc chạy các mô hình cục bộ về cơ bản là miễn phí, cho phép thử nghiệm và tạo ra không giới hạn mà không cần lo lắng về hóa đơn API.
  3. Khả năng Ngoại tuyến Thực sự với Ollama: Sau khi một mô hình Ollama được tải xuống bộ nhớ cục bộ của bạn, bạn có thể sử dụng nó mọi lúc, mọi nơi, hoàn toàn độc lập với kết nối internet. Quyền truy cập ngoại tuyến này là vô giá đối với các nhà phát triển làm việc trong môi trường có kết nối hạn chế, các nhà nghiên cứu tại hiện trường hoặc bất kỳ ai cần truy cập AI đáng tin cậy khi di chuyển.
  4. Tùy chỉnh Sâu và Thử nghiệm qua Modelfiles của Ollama: Ollama nổi bật với hệ thống Modelfile mạnh mẽ. Điều này cho phép người dùng dễ dàng sửa đổi hành vi của mô hình bằng cách điều chỉnh các tham số (như mức độ sáng tạo hoặc độ dài đầu ra), xác định lời nhắc hệ thống tùy chỉnh để định hình tính cách của AI, hoặc thậm chí tích hợp các bộ điều hợp (adapter) chuyên biệt đã được tinh chỉnh (LoRA). Bạn cũng có thể nhập trọng số mô hình trực tiếp từ các định dạng tiêu chuẩn như GGUF hoặc Safetensors. Mức độ kiểm soát và linh hoạt chi tiết này hiếm khi được cung cấp bởi các nhà cung cấp API đám mây mã nguồn đóng.
  5. Ưu điểm Tiềm năng về Hiệu suất với Ollama: Tùy thuộc vào cấu hình phần cứng cục bộ của bạn, đặc biệt là sự hiện diện của một Bộ xử lý Đồ họa (GPU) có khả năng, Ollama có thể cung cấp thời gian phản hồi (tốc độ suy luận) nhanh hơn đáng kể so với các dịch vụ đám mây, vốn có thể bị ảnh hưởng bởi độ trễ mạng, giới hạn tốc độ hoặc tải thay đổi trên các tài nguyên dùng chung. Việc tận dụng phần cứng chuyên dụng của bạn có thể dẫn đến trải nghiệm mượt mà và tương tác hơn nhiều.
  6. Tham gia vào Hệ sinh thái Mã nguồn mở Sôi động của Ollama: Bản thân Ollama là một dự án mã nguồn mở, thúc đẩy tính minh bạch và đóng góp của cộng đồng. Hơn nữa, nó chủ yếu đóng vai trò là cổng vào một thư viện rộng lớn và đang mở rộng nhanh chóng gồm các LLM có thể truy cập công khai. Bằng cách sử dụng Ollama, bạn trở thành một phần của hệ sinh thái năng động này, hưởng lợi từ kiến thức được chia sẻ, sự hỗ trợ của cộng đồng và sự đổi mới liên tục được thúc đẩy bởi sự hợp tác mở.

Thành tựu chính của Ollama là che giấu sự phức tạp vốn có liên quan đến việc thiết lập môi trường phần mềm cần thiết, quản lý các phụ thuộc và cấu hình các cài đặt phức tạp cần thiết để chạy các mô hình AI tinh vi này. Nó khéo léo sử dụng các công cụ suy luận backend được tối ưu hóa cao, đáng chú ý là thư viện llama.cpp nổi tiếng, để đảm bảo thực thi hiệu quả trên phần cứng tiêu dùng tiêu chuẩn, hỗ trợ cả tăng tốc CPU và GPU.

Hiểu về Ollama so với Llama.cpp

Việc làm rõ mối quan hệ giữa Ollama và llama.cpp là hữu ích, vì chúng có liên quan chặt chẽ nhưng phục vụ các mục đích khác nhau.

Về bản chất, mặc dù về mặt kỹ thuật bạn có thể sử dụng llama.cpp trực tiếp bằng cách biên dịch nó và chạy các công cụ dòng lệnh của nó, nhưng điều này đòi hỏi nỗ lực kỹ thuật đáng kể hơn nhiều về thiết lập, chuyển đổi mô hình và quản lý tham số. Ollama đóng gói sức mạnh này vào một ứng dụng dễ tiếp cận, dễ sử dụng, làm cho LLM cục bộ trở nên thiết thực cho một lượng lớn người dùng hơn nhiều, đặc biệt là người mới bắt đầu. Hãy nghĩ về llama.cpp như các thành phần động cơ hiệu suất cao, và Ollama như chiếc xe được lắp ráp hoàn chỉnh, thân thiện với người dùng, sẵn sàng để lái.

Cài đặt Ollama trên Hệ thống của bạn

Ollama được thiết kế để dễ tiếp cận, cung cấp các quy trình cài đặt đơn giản cho macOS, Windows, Linux và môi trường Docker.

Yêu cầu Hệ thống Chung cho Ollama:

Cài đặt Ollama trên macOS

  1. Tải xuống: Lấy tệp DMG ứng dụng Ollama macOS trực tiếp từ trang web chính thức của Ollama.
  2. Gắn kết: Nhấp đúp vào tệp .dmg đã tải xuống để mở nó.
  3. Cài đặt: Kéo biểu tượng Ollama.app vào thư mục Ứng dụng của bạn.
  4. Chạy: Mở ứng dụng Ollama từ thư mục Ứng dụng của bạn. Bạn có thể cần cấp quyền chạy lần đầu tiên.
  5. Dịch vụ Nền: Ollama sẽ bắt đầu chạy dưới dạng dịch vụ nền, được biểu thị bằng một biểu tượng trên thanh menu của bạn. Nhấp vào biểu tượng này sẽ cung cấp các tùy chọn để thoát ứng dụng hoặc xem nhật ký.

Khởi chạy ứng dụng sẽ tự động bắt đầu quy trình máy chủ Ollama và thêm công cụ dòng lệnh ollama vào PATH hệ thống của bạn, làm cho nó có sẵn ngay lập tức trong ứng dụng Terminal (Terminal.app, iTerm2, v.v.). Trên máy Mac được trang bị Apple Silicon (chip M1, M2, M3, M4), Ollama sử dụng liền mạch GPU tích hợp để tăng tốc thông qua API đồ họa Metal của Apple mà không cần bất kỳ cấu hình thủ công nào.

Cài đặt Ollama trên Windows

  1. Tải xuống: Lấy tệp cài đặt OllamaSetup.exe từ trang web Ollama.
  2. Chạy Trình cài đặt: Nhấp đúp vào tệp .exe đã tải xuống để khởi chạy trình hướng dẫn cài đặt. Đảm bảo bạn đáp ứng yêu cầu phiên bản Windows tối thiểu (10 22H2+ hoặc 11).
  3. Làm theo Lời nhắc: Tiến hành qua các bước cài đặt, chấp nhận thỏa thuận cấp phép và chọn vị trí cài đặt nếu muốn (mặc dù mặc định thường ổn).

Trình cài đặt cấu hình Ollama để chạy tự động dưới dạng dịch vụ nền khi hệ thống của bạn khởi động. Nó cũng thêm tệp thực thi ollama.exe vào PATH hệ thống của bạn, cho phép bạn sử dụng lệnh ollama trong các terminal Windows tiêu chuẩn như Command Prompt (cmd.exe), PowerShell hoặc Windows Terminal mới hơn. Máy chủ API Ollama khởi động tự động và lắng nghe trên http://localhost:11434.

Tăng tốc GPU Ollama cho Windows:

Cài đặt Ollama trên Linux

Phương pháp thuận tiện nhất cho hầu hết các bản phân phối Linux là sử dụng tập lệnh cài đặt chính thức:

curl -fsSL https://ollama.com/install.sh | sh

Lệnh này tải xuống tập lệnh và thực thi nó bằng sh. Tập lệnh thực hiện các hành động sau:

Cài đặt Thủ công Ollama trên Linux & Cấu hình Systemd:
Nếu tập lệnh không thành công hoặc nếu bạn thích kiểm soát thủ công (ví dụ: cài đặt vào một vị trí khác, quản lý người dùng khác nhau, đảm bảo các phiên bản ROCm cụ thể), hãy tham khảo hướng dẫn cài đặt Linux chi tiết trên kho lưu trữ GitHub của Ollama. Các bước chung bao gồm:

  1. Tải xuống tệp nhị phân chính xác cho kiến trúc của bạn.
  2. Làm cho tệp nhị phân có thể thực thi (chmod +x ollama) và di chuyển nó đến một vị trí trong PATH của bạn (ví dụ: /usr/local/bin).
  3. (Khuyến nghị) Tạo người dùng/nhóm hệ thống: sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollamasudo groupadd ollama, sau đó sudo usermod -a -G ollama ollama. Thêm người dùng của riêng bạn vào nhóm: sudo usermod -a -G ollama $USER.
  4. Tạo tệp dịch vụ systemd (/etc/systemd/system/ollama.service) với các cài đặt thích hợp (người dùng, nhóm, đường dẫn thực thi, biến môi trường nếu cần). Các đoạn mã ví dụ thường được cung cấp trong tài liệu.
  5. Tải lại daemon systemd: sudo systemctl daemon-reload.
  6. Kích hoạt dịch vụ để khởi động khi khởi động: sudo systemctl enable ollama.
  7. Khởi động dịch vụ ngay lập tức: sudo systemctl start ollama. Bạn có thể kiểm tra trạng thái của nó bằng sudo systemctl status ollama.

Trình điều khiển GPU Linux cần thiết cho Ollama:
Để có hiệu suất tối ưu, rất nên cài đặt trình điều khiển GPU:

Sử dụng Hình ảnh Docker Chính thức của Ollama

Docker cung cấp một cách độc lập với nền tảng để chạy Ollama trong một bộ chứa biệt lập, đơn giản hóa việc quản lý phụ thuộc, đặc biệt là đối với các thiết lập GPU phức tạp.

Bộ chứa Ollama Chỉ CPU:

docker run -d \
  -v ollama_data:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  --name my_ollama \
  ollama/ollama

Bộ chứa Ollama với GPU NVIDIA:

docker run -d \
  --gpus=all \
  -v ollama_data:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  --name my_ollama_gpu \
  ollama/ollama

Cờ này cấp cho bộ chứa quyền truy cập vào tất cả các GPU NVIDIA tương thích được phát hiện bởi toolkit. Bạn có thể chỉ định các GPU cụ thể nếu cần (ví dụ: --gpus '"device=0,1"').

Bộ chứa Ollama với GPU AMD (ROCm):

docker run -d \
  --device /dev/kfd \
  --device /dev/dri \
  -v ollama_data:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  --name my_ollama_rocm \
  ollama/ollama:rocm

Sau khi bộ chứa Ollama đang chạy, bạn có thể tương tác với nó bằng lệnh docker exec để chạy các lệnh CLI ollama bên trong bộ chứa:

docker exec -it my_ollama ollama list
docker exec -it my_ollama ollama pull llama3.2
docker exec -it my_ollama ollama run llama3.2

Ngoài ra, nếu bạn đã ánh xạ cổng (-p), bạn có thể tương tác với API Ollama trực tiếp từ máy chủ của mình hoặc các ứng dụng khác trỏ đến http://localhost:11434 (hoặc IP/cổng bạn đã ánh xạ).

Ollama lưu trữ mô hình ở đâu? Hiểu về Vị trí Lưu trữ Ollama

Biết nơi Ollama lưu giữ các mô hình đã tải xuống là điều cần thiết để quản lý dung lượng đĩa và sao lưu. Vị trí mặc định thay đổi tùy theo hệ điều hành và phương pháp cài đặt:

Bạn có thể chuyển hướng vị trí lưu trữ mô hình bằng cách sử dụng biến môi trường OLLAMA_MODELS, chúng ta sẽ đề cập trong phần Cấu hình. Điều này hữu ích nếu ổ đĩa chính của bạn sắp hết dung lượng và bạn muốn lưu trữ các mô hình lớn trên ổ đĩa phụ hoặc ổ đĩa lớn hơn.

Các bước Đầu tiên với Ollama: Chạy một LLM

Bây giờ Ollama đã được cài đặt và máy chủ đang hoạt động (chạy qua ứng dụng máy tính để bàn, dịch vụ systemd hoặc bộ chứa Docker), bạn có thể bắt đầu tương tác với LLM bằng lệnh ollama đơn giản trong terminal của mình.

Tải xuống Mô hình Ollama: Lệnh pull

Trước khi bạn có thể chạy bất kỳ LLM cụ thể nào, trước tiên bạn phải tải xuống trọng số và tệp cấu hình của nó. Ollama cung cấp một thư viện tuyển chọn các mô hình mở phổ biến, dễ dàng truy cập thông qua lệnh ollama pull. Bạn có thể duyệt các mô hình có sẵn trên trang thư viện của trang web Ollama.

# Ví dụ 1: Lấy mô hình Llama 3.2 8B Instruct mới nhất
# Thường được gắn thẻ là 'latest' hoặc đơn giản bằng tên cơ sở.
ollama pull llama3.2

# Ví dụ 2: Lấy một phiên bản cụ thể của Mistral (7 tỷ tham số, mô hình cơ sở)
ollama pull mistral:7b

# Ví dụ 3: Lấy mô hình Gemma 3 4B của Google
ollama pull gemma3

# Ví dụ 4: Lấy mô hình Phi-4 Mini nhỏ hơn của Microsoft (hiệu quả)
ollama pull phi4-mini

# Ví dụ 5: Lấy một mô hình thị giác (có thể xử lý hình ảnh)
ollama pull llava

Hiểu về Thẻ Mô hình Ollama:
Các mô hình trong thư viện Ollama sử dụng quy ước đặt tên tên_họ_mô_hình:thẻ. Thẻ chỉ định các biến thể như:

Lệnh pull tải xuống các tệp cần thiết (có thể lên tới vài gigabyte) vào thư mục mô hình Ollama được chỉ định của bạn. Bạn chỉ cần lấy một tổ hợp mô_hình:thẻ cụ thể một lần. Ollama cũng có thể cập nhật các mô hình; chạy lại pull trên một mô hình hiện có sẽ chỉ tải xuống các lớp đã thay đổi (khác biệt), giúp cập nhật hiệu quả.

Trò chuyện Tương tác với Mô hình Ollama: Lệnh run

Cách trực tiếp nhất để trò chuyện với một mô hình đã tải xuống là sử dụng lệnh ollama run:

ollama run llama3.2

Nếu mô hình được chỉ định (llama3.2:latest trong trường hợp này) chưa được lấy về, ollama run sẽ thuận tiện kích hoạt ollama pull trước. Khi mô hình sẵn sàng và được tải vào bộ nhớ (có thể mất vài giây, đặc biệt đối với các mô hình lớn hơn), bạn sẽ thấy một lời nhắc tương tác:

>>> Gửi tin nhắn (/? để được trợ giúp)

Bây giờ, bạn chỉ cần nhập câu hỏi hoặc hướng dẫn của mình, nhấn Enter và đợi AI tạo phản hồi. Đầu ra thường được truyền trực tuyến theo từng token, mang lại cảm giác phản hồi nhanh.

>>> Giải thích khái niệm vướng víu lượng tử bằng thuật ngữ đơn giản.
Được rồi, hãy tưởng tượng bạn có hai đồng xu đặc biệt được liên kết với nhau một cách kỳ diệu. Hãy gọi chúng là Đồng xu A và Đồng xu B. Trước khi bạn nhìn vào chúng, không có đồng xu nào là mặt ngửa hay mặt sấp – chúng ở trong một hỗn hợp mờ ảo của cả hai khả năng.

Bây giờ, bạn đưa Đồng xu A cho một người bạn và đi xa hàng năm ánh sáng với Đồng xu B. Ngay khi bạn nhìn vào Đồng xu B của mình và thấy nó, chẳng hạn, là mặt ngửa, bạn ngay lập tức biết *chắc chắn* rằng Đồng xu A của bạn bè bạn là mặt sấp. Và nếu bạn thấy mặt sấp, bạn sẽ biết của họ là mặt ngửa.

Điều đó hơi giống như vướng víu lượng tử! Hai hạt (như đồng xu của chúng ta) trở nên liên kết, và các thuộc tính của chúng (như mặt ngửa/mặt sấp) vẫn tương quan cho dù chúng cách xa nhau bao nhiêu. Việc đo một hạt ngay lập tức ảnh hưởng đến thuộc tính của hạt kia, nhanh hơn tốc độ ánh sáng có thể di chuyển giữa chúng. Đó là một trong những phần kỳ lạ và thú vị nhất của vật lý lượng tử!

>>> Gửi tin nhắn (/? để được trợ giúp)

Các Lệnh Hữu ích trong Chế độ Tương tác của Ollama:
Trong khi tương tác với một mô hình qua ollama run, bạn có thể sử dụng các lệnh đặc biệt có tiền tố /:

Quản lý Mô hình Ollama Cục bộ của bạn

Khi bạn tải xuống và tạo các mô hình, bạn sẽ cần các cách để quản lý chúng:

Liệt kê Mô hình Ollama Đã tải xuống: Để xem tất cả các mô hình hiện đang được lưu trữ cục bộ, hãy sử dụng:

ollama list

Lệnh này xuất ra một bảng hiển thị tên mô hình (NAME), ID duy nhất, kích thước trên đĩa (SIZE) và thời gian sửa đổi (MODIFIED).

Hiển thị Thông tin Chi tiết về Mô hình Ollama: Để kiểm tra chi tiết của một mô hình cụ thể (các tham số, lời nhắc hệ thống, template, giấy phép, v.v.), hãy sử dụng:

ollama show llama3.2:8b-instruct-q5_K_M

Thao tác này sẽ in nội dung Modelfile, cài đặt tham số, chi tiết template và siêu dữ liệu khác được liên kết với thẻ mô hình cụ thể đó.

Xóa Mô hình Ollama: Nếu bạn không còn cần một mô hình và muốn giải phóng dung lượng đĩa, hãy sử dụng:

ollama rm mistral:7b

Thao tác này sẽ xóa vĩnh viễn tổ hợp mô_hình:thẻ được chỉ định khỏi bộ nhớ của bạn. Sử dụng cẩn thận!

Sao chép/Đổi tên Mô hình Ollama: Để tạo bản sao của một mô hình hiện có, có lẽ là điểm khởi đầu để tùy chỉnh hoặc đơn giản là đặt cho nó một tên khác, hãy sử dụng:

ollama cp llama3.2 thiết_lập_llama3.2_tùy_chỉnh_của_tôi

Thao tác này tạo một mục nhập mô hình mới có tên thiết_lập_llama3.2_tùy_chỉnh_của_tôi dựa trên llama3.2 gốc.

Kiểm tra Mô hình Ollama Hiện đang được tải: Để xem những mô hình nào hiện đang được tải vào RAM hoặc VRAM của bạn và sẵn sàng cho suy luận ngay lập tức, hãy sử dụng:

ollama ps

Lệnh này hiển thị tên mô hình, ID, kích thước, bộ xử lý được sử dụng (CPU/GPU) và thời gian truy cập lần cuối. Các mô hình thường vẫn được tải trong một khoảng thời gian ngắn sau khi sử dụng (ví dụ: 5 phút) để tăng tốc các yêu cầu tiếp theo, sau đó tự động dỡ bỏ để giải phóng tài nguyên.

Mô hình Ollama tốt nhất là gì? Chọn LLM phù hợp

Đây là một câu hỏi thường gặp và quan trọng, nhưng câu trả lời rất tinh tế. Không có một mô hình Ollama "tốt nhất" duy nhất cho mọi người hoặc mọi tác vụ. Lựa chọn tối ưu phụ thuộc vào một số yếu tố:

Khuyến nghị cho Người mới bắt đầu (Cuối năm 2024):

Cách tiếp cận tốt nhất là thực nghiệm: Đọc mô tả mô hình trên thư viện Ollama, xem xét phần cứng của bạn, tải xuống một vài ứng cử viên có khả năng bằng cách sử dụng ollama pull, kiểm tra chúng với các lời nhắc điển hình của bạn bằng cách sử dụng ollama run và xem cái nào hoạt động tốt nhất cho bạn. Đừng ngần ngại sử dụng ollama rm đối với các mô hình không đáp ứng nhu cầu của bạn để tiết kiệm dung lượng.

Làm sáng tỏ các Khái niệm Mô hình Ollama

Để sử dụng và tùy chỉnh Ollama một cách hiệu quả, việc hiểu một số khái niệm LLM cốt lõi sẽ hữu ích.

Giải thích các Tham số Mô hình Ollama

LLM có các cài đặt nội bộ hoặc tham số mà bạn có thể điều chỉnh để ảnh hưởng đến cách chúng tạo ra văn bản. Ollama cho phép bạn kiểm soát nhiều tham số trong số này:

Bạn có thể đặt các tham số này tạm thời bằng cách sử dụng /set parameter trong ollama run, vĩnh viễn trong Modelfile bằng cách sử dụng lệnh PARAMETER, hoặc theo yêu cầu thông qua đối tượng options trong API Ollama.

Độ dài Ngữ cảnh Ollama: Tham số num_ctx

Độ dài ngữ cảnh, thường được gọi là cửa sổ ngữ cảnh hoặc num_ctx trong cài đặt Ollama và llama.cpp, là một trong những hạn chế kiến trúc quan trọng nhất của một LLM.

Chọn giá trị num_ctx phù hợp với các tác vụ điển hình của bạn. Đối với Q&A đơn giản, một cửa sổ nhỏ hơn (ví dụ: 4096) có thể đủ. Đối với các cuộc trò chuyện dài hoặc tóm tắt tài liệu lớn, bạn sẽ được hưởng lợi từ cửa sổ ngữ cảnh lớn nhất mà phần cứng của bạn và mô hình có thể hỗ trợ một cách hợp lý (ví dụ: 8192, 16384 hoặc nhiều hơn nếu có).

Ollama Nâng cao: Khai thác API và Tùy chỉnh

Trong khi CLI ollama cung cấp tương tác trực tiếp dễ dàng, tiềm năng thực sự để tích hợp Ollama vào quy trình làm việc và ứng dụng nằm ở API REST tích hợp và hệ thống tùy chỉnh Modelfile.

Tương tác theo Chương trình với API Ollama

Theo mặc định, quy trình máy chủ Ollama (cho dù chạy qua ứng dụng máy tính để bàn, systemd hay Docker) lắng nghe các yêu cầu HTTP đến trên cổng 11434 của máy cục bộ của bạn (http://localhost:11434 hoặc http://127.0.0.1:11434). API này cho phép các chương trình, tập lệnh hoặc giao diện web khác chạy trên cùng một máy (hoặc các máy khác trên mạng, nếu được cấu hình) tương tác với các mô hình Ollama theo chương trình.

Các điểm cuối API Ollama chính:

Định dạng Yêu cầu/Phản hồi API:
Hầu hết các yêu cầu POSTDELETE đều mong đợi một tải trọng JSON trong phần thân yêu cầu. Phản hồi thường được trả về dưới dạng đối tượng JSON. Đối với các điểm cuối generatechat, bạn có thể kiểm soát định dạng phản hồi:

Ví dụ về Tương tác API bằng curl:

1. Yêu cầu Tạo Sinh Đơn giản (Không Truyền trực tuyến):

curl http://localhost:11434/api/generate -d '{
  "model": "phi4-mini",
  "prompt": "Viết một hàm Python ngắn để tính giai thừa:",
  "stream": false,
  "options": {
    "temperature": 0.3,
    "num_predict": 80
  }
}'

2. Yêu cầu Trò chuyện Hội thoại (Truyền trực tuyến):

# Lưu ý: Đầu ra truyền trực tuyến sẽ xuất hiện dưới dạng nhiều dòng JSON
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2:8b-instruct-q5_K_M",
  "messages": [
    { "role": "system", "content": "Bạn là một nhà sử học hiểu biết." },
    { "role": "user", "content": "Nguyên nhân chính của Thế chiến I là gì?" }
  ],
  "stream": true,
  "options": {
    "num_ctx": 4096
  }
}'

3. Yêu cầu Tạo Sinh Embedding:

curl http://localhost:11434/api/embeddings -d '{
  "model": "mxbai-embed-large",  # Hoặc một mô hình embedding phù hợp khác
  "prompt": "Ollama giúp chạy LLM cục bộ dễ dàng."
}'

API linh hoạt này tạo thành xương sống cho vô số tích hợp cộng đồng, bao gồm giao diện người dùng web, công cụ phát triển, dịch vụ backend, tập lệnh tự động hóa và hơn thế nữa, tất cả đều được cung cấp bởi phiên bản Ollama cục bộ của bạn.

Tận dụng API Tương thích OpenAI của Ollama

Nhận thấy sự chấp nhận rộng rãi của các tiêu chuẩn API của OpenAI, Ollama đã cẩn thận đưa vào một lớp tương thích thử nghiệm. Điều này cho phép nhiều công cụ, thư viện và ứng dụng được thiết kế cho các dịch vụ của OpenAI hoạt động với phiên bản Ollama cục bộ của bạn với các sửa đổi tối thiểu, thường là không đáng kể.

Cách hoạt động:
Máy chủ Ollama hiển thị các điểm cuối dưới đường dẫn /v1/ (ví dụ: http://localhost:11434/v1/) phản ánh cấu trúc và định dạng yêu cầu/phản hồi dự kiến của các điểm cuối API OpenAI chính.

Các điểm cuối Tương thích Chính:

Sử dụng Thư viện Máy khách OpenAI với Ollama:
Ưu điểm chính là bạn có thể sử dụng các thư viện máy khách OpenAI tiêu chuẩn (như openai-python, openai-node, v.v.) bằng cách chỉ cần thay đổi hai tham số cấu hình khi khởi tạo máy khách:

  1. base_url (hoặc api_base): Đặt tham số này thành điểm cuối Ollama v1 cục bộ của bạn: http://localhost:11434/v1/.
  2. api_key: Cung cấp bất kỳ chuỗi không trống nào. Điểm cuối /v1/ của Ollama thực sự không thực hiện xác thực và bỏ qua giá trị khóa, nhưng hầu hết các thư viện máy khách OpenAI đều yêu cầu tham số phải có mặt. Thông lệ phổ biến là sử dụng chuỗi "ollama" hoặc "nokey".

Ví dụ Python sử dụng openai-python:

# Đảm bảo bạn đã cài đặt thư viện openai: pip install openai
from openai import OpenAI
import os

# Xác định điểm cuối Ollama và khóa API giả
OLLAMA_BASE_URL = "http://localhost:11434/v1"
OLLAMA_API_KEY = "ollama" # Placeholder, giá trị bị Ollama bỏ qua

# Chỉ định mô hình Ollama cục bộ bạn muốn sử dụng
OLLAMA_MODEL = "llama3.2"

try:
    # Khởi tạo máy khách OpenAI, trỏ nó đến máy chủ Ollama
    client = OpenAI(
        base_url=OLLAMA_BASE_URL,
        api_key=OLLAMA_API_KEY,
    )

    print(f"Đang gửi yêu cầu đến mô hình Ollama: {OLLAMA_MODEL} qua lớp tương thích OpenAI...")

    # Thực hiện yêu cầu hoàn thành trò chuyện tiêu chuẩn
    chat_completion = client.chat.completions.create(
        model=OLLAMA_MODEL, # Sử dụng tên mô hình Ollama cục bộ của bạn
        messages=[
            {"role": "system", "content": "Bạn là một trợ lý hữu ích."},
            {"role": "user", "content": "Giải thích sự khác biệt giữa Ollama và llama.cpp."}
        ],
        temperature=0.7,
        max_tokens=250, # Lưu ý: 'max_tokens' gần tương ứng với 'num_predict' của Ollama
        stream=False # Đặt thành True để có phản hồi trực tuyến
    )

    # Xử lý phản hồi
    if chat_completion.choices:
        response_content = chat_completion.choices[0].message.content
        print("\nPhản hồi Ollama:")
        print(response_content)
        print("\nThống kê Sử dụng:")
        print(f"  Token Lời nhắc: {chat_completion.usage.prompt_tokens}")
        print(f"  Token Hoàn thành: {chat_completion.usage.completion_tokens}")
        print(f"  Tổng số Token: {chat_completion.usage.total_tokens}")
    else:
        print("Không nhận được lựa chọn phản hồi nào từ Ollama.")

except Exception as e:
    print(f"\nĐã xảy ra lỗi:")
    print(f"  Loại Lỗi: {type(e).__name__}")
    print(f"  Chi tiết Lỗi: {e}")
    print(f"\nVui lòng đảm bảo máy chủ Ollama đang chạy và có thể truy cập tại {OLLAMA_BASE_URL}.")
    print(f"Đồng thời xác minh mô hình '{OLLAMA_MODEL}' có sẵn cục bộ ('ollama list').")

Sự tương thích này đơn giản hóa đáng kể việc di chuyển các dự án dựa trên OpenAI hiện có sang sử dụng các mô hình cục bộ thông qua Ollama hoặc xây dựng các ứng dụng mới có thể chuyển đổi linh hoạt giữa các backend đám mây và cục bộ. Mặc dù không phải tất cả các tính năng OpenAI khó hiểu đều có thể được phản ánh hoàn hảo, nhưng các chức năng cốt lõi về trò chuyện, embedding và liệt kê mô hình đều được hỗ trợ tốt.

Tùy chỉnh Sâu Ollama với Modelfiles

Modelfile là nền tảng của khả năng tùy chỉnh của Ollama. Nó hoạt động như một bản thiết kế hoặc công thức, xác định chính xác cách một mô hình Ollama nên được xây dựng hoặc sửa đổi. Bằng cách tạo và chỉnh sửa các tệp văn bản đơn giản này, bạn có được quyền kiểm soát chi tiết đối với hành vi, tham số và cấu trúc của mô hình.

Các Lệnh Modelfile Ollama Chính:

TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}{{ range .Messages }}
<|im_start|>{{ .Role }}
{{ .Content }}<|im_end|>{{ end }}
<|im_start|>assistant
"""

Việc đặt template đúng là điều cần thiết để làm cho mô hình tuân theo hướng dẫn hoặc trò chuyện một cách tự nhiên. Bạn có thể xem template mặc định của mô hình bằng cách sử dụng ollama show --modelfile <tên_mô_hình>.

Xây dựng Mô hình Ollama từ Modelfile:
Sau khi bạn đã tạo Modelfile của mình (ví dụ: lưu dưới dạng MyCustomModel.modelfile), bạn sử dụng lệnh ollama create để xây dựng mô hình Ollama tương ứng:

ollama create my-new-model-name -f MyCustomModel.modelfile

Ollama xử lý các lệnh, có khả năng kết hợp các lớp, áp dụng bộ điều hợp, đặt tham số và đăng ký mô hình mới (my-new-model-name) trong thư viện cục bộ của bạn. Sau đó, bạn có thể chạy nó giống như bất kỳ mô hình nào khác: ollama run my-new-model-name.

Nhập Mô hình Bên ngoài vào Ollama (GGUF, Safetensors)

Hệ thống Modelfile của Ollama cung cấp một cách liền mạch để sử dụng các mô hình thu được từ các nguồn khác (như Hugging Face, các nhà nghiên cứu độc lập, v.v.) được phân phối ở các định dạng tiêu chuẩn.

Nhập Mô hình GGUF vào Ollama: GGUF là một định dạng phổ biến được thiết kế đặc biệt cho llama.cpp và các công cụ suy luận tương tự. Nó đóng gói trọng số mô hình (thường được lượng tử hóa trước), thông tin tokenizer và siêu dữ liệu vào một tệp duy nhất. Đây thường là định dạng dễ nhập nhất.

  1. Tải xuống tệp .gguf (ví dụ: zephyr-7b-beta.Q5_K_M.gguf).
  2. Tạo một Modelfile tối thiểu (ví dụ: ZephyrImport.modelfile):
# ZephyrImport.modelfile
FROM ./zephyr-7b-beta.Q5_K_M.gguf

# Quan trọng: Thêm template lời nhắc chính xác cho mô hình này!
# (Tra cứu định dạng template bắt buộc của mô hình)
TEMPLATE """<|system|>
{{ .System }}</s>
<|user|>
{{ .Prompt }}</s>
<|assistant|>
{{ .Response }}</s>
"""
PARAMETER num_ctx 4096 # Đặt ngữ cảnh mặc định hợp lý
SYSTEM "Bạn là một chatbot thân thiện." # Lời nhắc hệ thống mặc định tùy chọn
  1. Xây dựng mô hình Ollama: ollama create my-zephyr-gguf -f ZephyrImport.modelfile.

Nhập Mô hình Safetensors (Trọng số Đầy đủ) vào Ollama: Safetensors là một định dạng an toàn và nhanh chóng để lưu trữ tensor mô hình. Nếu bạn có bộ trọng số và tệp cấu hình hoàn chỉnh cho một mô hình ở định dạng này:

  1. Đảm bảo tất cả các tệp cần thiết (tệp trọng số *.safetensors, config.json, tokenizer.json, special_tokens_map.json, tokenizer_config.json, v.v.) được đặt trong một thư mục duy nhất (ví dụ: /data/models/Mistral-7B-v0.1-full/).
  2. Tạo một Modelfile tham chiếu đến thư mục này:
# MistralImport.modelfile
FROM /data/models/Mistral-7B-v0.1-full/

# Thêm các lệnh TEMPLATE, PARAMETER, SYSTEM bắt buộc
TEMPLATE """[INST] {{ if .System }}{{ .System }} \n{{ end }}{{ .Prompt }} [/INST]
{{ .Response }}"""
PARAMETER num_ctx 4096
PARAMETER temperature 0.7
  1. Xây dựng mô hình: ollama create my-mistral-safetensors -f MistralImport.modelfile. Ollama sẽ cố gắng tải các kiến trúc tương thích. Nếu mô hình không được lượng tử hóa (ví dụ: FP16), bạn có thể tùy chọn lượng tử hóa nó trong quá trình tạo (xem bên dưới).

Áp dụng Bộ điều hợp LoRA Safetensors qua Modelfile Ollama:

  1. Đầu tiên, đảm bảo bạn có mô hình Ollama cơ sở chính xác mà bộ điều hợp LoRA đã được đào tạo cho. Lấy nó nếu cần (ví dụ: ollama pull llama3.2:8b).
  2. Đặt các tệp bộ điều hợp LoRA (ví dụ: adapter_model.safetensors, adapter_config.json) vào thư mục riêng của chúng (ví dụ: /data/adapters/my_llama3_lora/).
  3. Tạo một Modelfile chỉ định cả cơ sở và bộ điều hợp:
# ApplyLora.modelfile
FROM llama3.2:8b # Phải khớp với cơ sở của bộ điều hợp!

ADAPTER /data/adapters/my_llama3_lora/

# Điều chỉnh tham số hoặc template nếu LoRA yêu cầu
PARAMETER temperature 0.5
SYSTEM "Bây giờ bạn phản hồi theo phong cách được dạy bởi LoRA."
  1. Xây dựng mô hình đã điều chỉnh: ollama create llama3-with-my-lora -f ApplyLora.modelfile.

Lượng tử hóa Mô hình với Ollama

Lượng tử hóa là quá trình giảm độ chính xác số của trọng số của mô hình (ví dụ: chuyển đổi số dấu phẩy động 16 bit thành số nguyên 4 bit). Điều này làm giảm đáng kể kích thước tệp và dung lượng bộ nhớ (sử dụng RAM/VRAM) của mô hình và tăng tốc độ suy luận, giúp có thể chạy các mô hình lớn hơn, có khả năng hơn trên phần cứng tiêu dùng. Sự đánh đổi thường là một sự giảm nhỏ, thường không thể nhận thấy, về chất lượng đầu ra.

Ollama có thể thực hiện lượng tử hóa trong quá trình tạo mô hình nếu lệnh FROM trong Modelfile của bạn trỏ đến trọng số mô hình không được lượng tử hóa hoặc có độ chính xác cao hơn (thường là Safetensors FP16 hoặc FP32).

Cách Lượng tử hóa bằng ollama create:

  1. Tạo một Modelfile trỏ đến thư mục chứa trọng số mô hình chưa được lượng tử hóa:
# QuantizeMe.modelfile
FROM /đường_dẫn/đến/mô_hình_fp16_chưa_lượng_tử_hóa_của_tôi/
# Thêm TEMPLATE, PARAMETER, SYSTEM nếu cần
  1. Chạy lệnh ollama create, thêm cờ -q (hoặc --quantize) theo sau là mã định danh cấp độ lượng tử hóa mong muốn:
# Lượng tử hóa thành Q4_K_M (cân bằng phổ biến về kích thước/chất lượng)
ollama create my-quantized-model-q4km -f QuantizeMe.modelfile -q q4_K_M

# Lượng tử hóa thành Q5_K_M (lớn hơn một chút, chất lượng có thể tốt hơn)
ollama create my-quantized-model-q5km -f QuantizeMe.modelfile -q q5_K_M

# Lượng tử hóa thành Q8_0 (lượng tử hóa phổ biến lớn nhất, chất lượng tốt nhất trong số các lượng tử hóa)
ollama create my-quantized-model-q8 -f QuantizeMe.modelfile -q q8_0

# Lượng tử hóa thành Q3_K_S (rất nhỏ, mất nhiều chất lượng hơn)
ollama create my-quantized-model-q3ks -f QuantizeMe.modelfile -q q3_K_S

Ollama sử dụng các quy trình lượng tử hóa từ llama.cpp để thực hiện chuyển đổi và lưu mô hình mới được lượng tử hóa dưới tên được chỉ định.

Các Cấp độ Lượng tử hóa Phổ biến:

Việc chọn cấp độ lượng tử hóa phù hợp phụ thuộc vào các hạn chế phần cứng của bạn và khả năng chấp nhận việc giảm chất lượng tiềm năng. Thường đáng để thử q4_K_M hoặc q5_K_M trước.

Chia sẻ Mô hình Ollama Tùy chỉnh của bạn

Nếu bạn đã tạo một biến thể mô hình độc đáo bằng cách sử dụng Modelfile – có lẽ bằng cách áp dụng một LoRA cụ thể, đặt lời nhắc hệ thống và template sáng tạo, hoặc tinh chỉnh các tham số – bạn có thể chia sẻ sáng tạo của mình với cộng đồng Ollama rộng lớn hơn thông qua trang web đăng ký mô hình Ollama chính thức.

Các bước để Chia sẻ Mô hình Ollama:

  1. Tạo Tài khoản Ollama: Đăng ký tài khoản miễn phí trên trang web Ollama (ollama.com). Tên người dùng bạn chọn sẽ trở thành không gian tên cho các mô hình được chia sẻ của bạn.
  2. Liên kết Ollama Cục bộ của bạn: Bạn cần liên kết cài đặt Ollama cục bộ với tài khoản trực tuyến của mình. Điều này liên quan đến việc thêm khóa công khai Ollama của máy cục bộ vào cài đặt tài khoản của bạn trên trang web. Trang web cung cấp hướng dẫn cụ thể về cách tìm tệp khóa công khai cục bộ của bạn (id_ed25519.pub) dựa trên hệ điều hành của bạn.
  3. Đặt tên Mô hình của bạn một cách Chính xác: Các mô hình được chia sẻ phải được đặt tên theo không gian tên với tên người dùng Ollama của bạn, theo định dạng tên_người_dùng_của_bạn/tên_mô_hình_của_bạn. Nếu mô hình tùy chỉnh cục bộ của bạn có tên khác (ví dụ: mario), trước tiên bạn cần sao chép nó sang tên có không gian tên chính xác bằng ollama cp:
# Giả sử tên người dùng của bạn là 'luigi' và mô hình cục bộ là 'mario'
ollama cp mario luigi/mario
  1. Đẩy Mô hình lên Sổ đăng ký: Sau khi mô hình được đặt tên chính xác cục bộ và khóa của bạn được liên kết, hãy sử dụng lệnh ollama push:
ollama push luigi/mario

Ollama sẽ tải lên các lớp mô hình và siêu dữ liệu cần thiết lên sổ đăng ký.

Sau khi quá trình đẩy hoàn tất, những người dùng Ollama khác trên toàn thế giới có thể dễ dàng tải xuống và chạy mô hình được chia sẻ của bạn chỉ bằng cách sử dụng tên có không gian tên của nó:

ollama run luigi/mario

Cơ chế chia sẻ này thúc đẩy sự hợp tác và cho phép cộng đồng hưởng lợi từ các mô hình chuyên biệt hoặc được tùy chỉnh sáng tạo.

Tối ưu hóa Hiệu suất Ollama bằng Tăng tốc GPU

Mặc dù Ollama có thể chạy các mô hình hoàn toàn trên CPU của máy tính, nhưng việc tận dụng một Bộ xử lý Đồ họa (GPU) tương thích sẽ mang lại sự tăng tốc hiệu suất đáng kể, tăng tốc đáng kể tốc độ mà các mô hình tạo ra văn bản (tốc độ suy luận). Ollama được thiết kế để tự động phát hiện và sử dụng các GPU được hỗ trợ bất cứ khi nào có thể.

Ollama với GPU NVIDIA: Ollama cung cấp hỗ trợ tuyệt vời cho GPU NVIDIA, yêu cầu:

Ollama với GPU AMD Radeon: Hỗ trợ cho các GPU AMD hiện đại có sẵn trên cả Windows và Linux:

Ollama với Apple Silicon (macOS): Trên máy Mac được trang bị chip dòng M1, M2, M3 hoặc M4, Ollama tự động sử dụng khả năng GPU tích hợp thông qua API đồ họa Metal của Apple. Thường không cần cài đặt trình điều khiển hoặc cấu hình bổ sung; tăng tốc GPU hoạt động ngay lập tức.

Xác minh Việc sử dụng GPU Ollama:
Cách dễ nhất để kiểm tra xem Ollama có thực sự đang sử dụng GPU của bạn hay không là chạy lệnh ollama ps trong khi một mô hình đang được tải (ví dụ: ngay sau khi bắt đầu ollama run <mô_hình> trong một terminal khác, hoặc trong khi một yêu cầu API đang được xử lý). Kiểm tra cột PROCESSOR trong đầu ra:

Chọn GPU Cụ thể trong Thiết lập Ollama Đa GPU:
Nếu hệ thống của bạn chứa nhiều GPU tương thích, bạn có thể hướng dẫn Ollama (và llama.cpp cơ bản) nên sử dụng (các) thiết bị cụ thể nào bằng cách đặt các biến môi trường trước khi khởi chạy quy trình máy chủ/ứng dụng Ollama:

Việc đặt ID thiết bị không hợp lệ (ví dụ: export CUDA_VISIBLE_DEVICES=-1) thường được sử dụng như một cách để cố tình buộc Ollama chỉ sử dụng CPU, điều này có thể hữu ích cho việc gỡ lỗi. Hãy nhớ khởi động lại máy chủ/ứng dụng Ollama sau khi đặt các biến môi trường này để chúng có hiệu lực.

Cấu hình Môi trường Ollama của bạn

Ngoài các cài đặt mặc định, hành vi của Ollama có thể được tinh chỉnh bằng cách sử dụng các biến môi trường khác nhau. Chúng cho phép bạn tùy chỉnh cài đặt mạng, vị trí lưu trữ, cấp độ ghi nhật ký và hơn thế nữa.

Các Biến Môi trường Ollama Chính để Cấu hình

Các Phương pháp Đặt Biến Môi trường Ollama

Cách chính xác để đặt các biến này phụ thuộc vào cách bạn đã cài đặt và chạy Ollama:

Ollama trên macOS (Sử dụng App): Các biến môi trường cho ứng dụng GUI trên macOS được đặt tốt nhất bằng launchctl. Mở Terminal và sử dụng:

launchctl setenv OLLAMA_MODELS "/Volumes/ExternalSSD/OllamaStorage"
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
# Lặp lại cho các biến khác

Sau khi đặt các biến, bạn phải Thoát và khởi động lại ứng dụng Ollama từ biểu tượng thanh menu để các thay đổi có hiệu lực.

Ollama trên Linux (Sử dụng Dịch vụ Systemd): Phương pháp được khuyến nghị là tạo một tệp ghi đè cho dịch vụ:

  1. Chạy sudo systemctl edit ollama.service. Thao tác này sẽ mở một trình soạn thảo văn bản trống.
  2. Thêm các dòng sau, sửa đổi biến và giá trị nếu cần:
[Service]
Environment="OLLAMA_MODELS=/đường_dẫn/đến/thư_mục/mô_hình/tùy_chỉnh"
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_DEBUG=1"
  1. Lưu và đóng trình soạn thảo.
  2. Áp dụng các thay đổi: sudo systemctl daemon-reload
  3. Khởi động lại dịch vụ Ollama: sudo systemctl restart ollama

Ollama trên Windows: Sử dụng trình chỉnh sửa Biến Môi trường tích hợp:

  1. Tìm kiếm "Chỉnh sửa biến môi trường hệ thống" trong menu Start và mở nó.
  2. Nhấp vào nút "Biến Môi trường...".
  3. Bạn có thể đặt biến cho người dùng cụ thể của mình ("Biến người dùng") hoặc cho tất cả người dùng ("Biến hệ thống"). Biến hệ thống thường yêu cầu quyền quản trị viên.
  4. Nhấp vào "Mới..." trong phần mong muốn.
  5. Nhập Tên biến (ví dụ: OLLAMA_MODELS) và Giá trị biến (ví dụ: D:\OllamaData).
  6. Nhấp OK trên tất cả các hộp thoại đang mở.
  7. Quan trọng là, bạn phải khởi động lại quy trình nền Ollama. Mở Trình quản lý Tác vụ (Ctrl+Shift+Esc), đi đến tab "Dịch vụ", tìm "Ollama", nhấp chuột phải và chọn "Khởi động lại". Hoặc, khởi động lại máy tính của bạn.

Ollama qua Docker: Truyền các biến môi trường trực tiếp trong lệnh docker run bằng cách sử dụng cờ -e cho mỗi biến:

docker run -d \
  --gpus=all \
  -v ollama_data:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  -e OLLAMA_HOST="0.0.0.0:11434" \
  -e OLLAMA_DEBUG="1" \
  -e OLLAMA_KEEP_ALIVE="10m" \
  --name my_ollama_configured \
  ollama/ollama

Ollama qua ollama serve thủ công trong Terminal: Đơn giản chỉ cần đặt tiền tố lệnh bằng các phép gán biến trên cùng một dòng:

OLLAMA_DEBUG=1 OLLAMA_HOST=0.0.0.0:11434 OLLAMA_MODELS=/data/ollama ollama serve

Các biến này sẽ chỉ áp dụng cho phiên bản máy chủ cụ thể đó.

Chọn phương pháp phù hợp với thiết lập của bạn và nhớ khởi động lại quy trình máy chủ Ollama sau khi thực hiện các thay đổi để chúng có hiệu lực.

Khắc phục sự cố Ollama Phổ biến

Ngay cả với sự tập trung vào tính đơn giản của Ollama, đôi khi bạn có thể gặp phải những trục trặc. Dưới đây là cách chẩn đoán và giải quyết một số sự cố thường gặp:

Tham khảo Nhật ký Ollama

Công cụ chẩn đoán chính của bạn là tệp nhật ký máy chủ Ollama. Nó ghi lại thông tin khởi động, các lần thử tải mô hình, kết quả phát hiện GPU, yêu cầu API và, quan trọng nhất, các thông báo lỗi chi tiết.

Vị trí Tệp Nhật ký Mặc định:

Mẹo: Để khắc phục sự cố chi tiết hơn, luôn bật ghi nhật ký gỡ lỗi bằng cách đặt biến môi trường OLLAMA_DEBUG=1 trước khi khởi động máy chủ Ollama, sau đó kiểm tra lại nhật ký.

Sửa lỗi Ollama: listen tcp 127.0.0.1:11434: bind: address already in use

Thông báo lỗi cụ thể này là một trong những sự cố phổ biến nhất mà người dùng mới gặp phải. Nó có nghĩa là Ollama không thể khởi động máy chủ API của mình vì một quy trình khác đã chiếm cổng mạng (mặc định 11434) mà Ollama cần để lắng nghe.

Giải quyết các Sự cố Phát hiện và Sử dụng GPU Ollama

Nếu ollama ps hiển thị cpu thay vì gpu, hoặc nếu bạn gặp các lỗi cụ thể liên quan đến GPU trong nhật ký (như CUDA error, ROCm error), hãy làm theo các bước sau:

Giải quyết các Sự cố Ollama Phổ biến Khác

Nếu bạn đã thử hết các bước khắc phục sự cố này và kiểm tra nhật ký gỡ lỗi mà không thành công, cộng đồng Ollama là một nguồn tài nguyên tuyệt vời. Chuẩn bị mô tả rõ ràng về sự cố, bao gồm các chi tiết liên quan về HĐH, phiên bản Ollama, phần cứng (CPU/GPU/RAM), mô hình cụ thể bạn đang sử dụng, lệnh bạn đã chạy và quan trọng là, các phần liên quan từ nhật ký gỡ lỗi của bạn. Đăng câu hỏi của bạn trên Discord của Ollama hoặc gửi một issue được ghi lại đầy đủ trên kho lưu trữ GitHub của Ollama.

Cách gỡ cài đặt Ollama hoàn toàn

Nếu bạn cần xóa Ollama khỏi hệ thống của mình, quy trình sẽ khác nhau tùy thuộc vào phương pháp cài đặt ban đầu của bạn. Thông thường, nó bao gồm việc xóa ứng dụng/tệp nhị phân, dịch vụ nền (nếu có) và các tệp mô hình/cấu hình đã lưu trữ.

Gỡ cài đặt Ollama trên macOS (Được cài đặt qua .app):

  1. Thoát Ollama: Nhấp vào biểu tượng Ollama trên thanh menu và chọn "Thoát Ollama".
  2. Xóa Ứng dụng: Kéo Ollama.app từ thư mục /Applications của bạn vào Thùng rác/Bin.
  3. Xóa Dữ liệu và Cấu hình: Mở Terminal và thực thi rm -rf ~/.ollama. Cảnh báo: Thao tác này sẽ xóa vĩnh viễn tất cả các mô hình và cấu hình đã tải xuống. Kiểm tra kỹ lệnh trước khi chạy.
  4. (Tùy chọn) Hủy đặt Biến Môi trường: Nếu bạn đã đặt biến thủ công bằng launchctl setenv, bạn có thể hủy đặt chúng: launchctl unsetenv OLLAMA_HOST, launchctl unsetenv OLLAMA_MODELS, v.v.

Gỡ cài đặt Ollama trên Windows (Được cài đặt qua .exe):

  1. Sử dụng Trình gỡ cài đặt Windows: Đi tới "Cài đặt" > "Ứng dụng" > "Ứng dụng đã cài đặt". Tìm "Ollama" trong danh sách, nhấp vào ba dấu chấm (...) bên cạnh và chọn "Gỡ cài đặt". Làm theo lời nhắc gỡ cài đặt.
  2. Xóa Dữ liệu và Cấu hình: Sau khi trình gỡ cài đặt hoàn tất, hãy xóa thủ công thư mục dữ liệu Ollama. Mở File Explorer, nhập %USERPROFILE%\.ollama vào thanh địa chỉ, nhấn Enter và xóa toàn bộ thư mục .ollama. Cảnh báo: Thao tác này sẽ xóa tất cả các mô hình.
  3. (Tùy chọn) Xóa Biến Môi trường: Nếu bạn đã thêm thủ công OLLAMA_HOST, OLLAMA_MODELS, v.v., thông qua Thuộc tính Hệ thống, hãy quay lại đó ("Chỉnh sửa biến môi trường hệ thống") và xóa chúng.

Gỡ cài đặt Ollama trên Linux (Được cài đặt qua Tập lệnh hoặc Tệp nhị phân Thủ công):

  1. Dừng Dịch vụ: sudo systemctl stop ollama
  2. Vô hiệu hóa Dịch vụ: sudo systemctl disable ollama
  3. Xóa Tệp nhị phân: sudo rm /usr/local/bin/ollama (hoặc đường dẫn nơi bạn đã cài đặt nó).
  4. Xóa Tệp Dịch vụ: sudo rm /etc/systemd/system/ollama.service
  5. Tải lại Systemd: sudo systemctl daemon-reload
  6. (Tùy chọn) Xóa Người dùng/Nhóm: Nếu người dùng/nhóm ollama đã được tạo: sudo userdel ollama, sudo groupdel ollama.
  7. Xóa Dữ liệu và Cấu hình: Xóa thư mục lưu trữ mô hình. Điều này phụ thuộc vào nơi nó được lưu trữ:

Gỡ cài đặt Ollama qua Docker:

  1. Dừng Bộ chứa: docker stop my_ollama (sử dụng tên bộ chứa của bạn).
  2. Xóa Bộ chứa: docker rm my_ollama.
  3. Xóa Hình ảnh: docker rmi ollama/ollama (và ollama/ollama:rocm nếu bạn đã sử dụng nó).
  4. (Tùy chọn, Phá hủy) Xóa Volume: Nếu bạn muốn xóa tất cả các mô hình đã tải xuống được lưu trữ trong volume Docker, hãy chạy docker volume rm ollama_data (sử dụng tên volume bạn đã tạo). Cảnh báo: Thao tác này không thể hoàn tác.

Kết luận: Nắm bắt Sức mạnh của AI Cục bộ với Ollama

Ollama đứng như một công cụ then chốt trong việc dân chủ hóa quyền truy cập vào sức mạnh to lớn của các Mô hình Ngôn ngữ Lớn hiện đại. Bằng cách trừu tượng hóa một cách thanh lịch sự phức tạp của việc thiết lập, cấu hình và thực thi, nó trao quyền cho một loạt người dùng đa dạng – từ các nhà phát triển và nhà nghiên cứu dày dạn kinh nghiệm đến những người đam mê tò mò – để chạy AI tinh vi trực tiếp trên phần cứng của riêng họ. Những lợi thế rất rõ ràng: quyền riêng tư vô song, thoát khỏi chi phí API định kỳ, hoạt động ngoại tuyến đáng tin cậy và khả năng tự do tùy chỉnh sâu và thử nghiệm với các mô hình bằng cách sử dụng hệ thống Modelfile trực quan và API mạnh mẽ.

Cho dù mục tiêu của bạn là xây dựng thế hệ tiếp theo của các ứng dụng dựa trên AI, tiến hành nghiên cứu tiên tiến trong khi duy trì chủ quyền dữ liệu, hay đơn giản là khám phá các khả năng hấp dẫn của việc tạo ngôn ngữ mà không cần phụ thuộc bên ngoài, Ollama cung cấp một nền tảng ổn định, hiệu quả và thân thiện với người dùng. Nó thành công trong việc thu hẹp khoảng cách giữa sức mạnh thô của các công cụ suy luận như llama.cpp và nhu cầu thực tế của người dùng, thúc đẩy sự đổi mới trong bối cảnh AI mã nguồn mở sôi động.

Hành trình vào thế giới LLM cục bộ vừa dễ tiếp cận vừa vô cùng bổ ích, nhờ có Ollama. Tải xuống ứng dụng, lấy mô hình đầu tiên của bạn bằng ollama pull, bắt đầu cuộc trò chuyện bằng ollama run và bắt đầu khai phá tiềm năng rộng lớn của trí tuệ nhân tạo, ngay trên máy tính của riêng bạn.

💡
Bạn muốn một công cụ Kiểm tra API tuyệt vời tạo ra tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, Một cho Tất cả để nhóm Phát triển của bạn có thể làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn, và thay thế Postman với mức giá hợp lý hơn nhiều!
button

Explore more

Tải Swagger UI Tiếng Việt Miễn Phí Ở Đâu

Tải Swagger UI Tiếng Việt Miễn Phí Ở Đâu

Khám phá khó khăn khi muốn có giao diện tiếng Việt cho Swagger UI và tìm hiểu lý do Apidog là một giải pháp nền tảng mạnh mẽ để phát triển API.

23 tháng 4 2025

Tải Postman Tiếng Việt Miễn Phí Ở Đâu?

Tải Postman Tiếng Việt Miễn Phí Ở Đâu?

Bạn có thể tải Postman Tiếng Việt miễn phí không? Mặc dù Postman thiếu hỗ trợ tiếng Việt gốc, các giải pháp thay thế vẫn tồn tại. Khám phá chúng và khám phá Apidog, một giải pháp thay thế Postman mạnh mẽ, thống nhất được thiết kế để hợp lý hóa toàn bộ quy trình làm việc API của bạn, bất kể ngôn ngữ.

22 tháng 4 2025

Dành cho người mới bắt đầu: Cách sử dụng cơ bản của Postman

Dành cho người mới bắt đầu: Cách sử dụng cơ bản của Postman

Postman là công cụ tiêu chuẩn cho việc thử nghiệm API, giúp nâng cao hiệu quả trong chiến lược API. Bài viết này giới thiệu cách sử dụng cơ bản của Postman, cho phép cả những người chưa từng sử dụng cũng có thể nắm bắt và sử dụng công cụ này hiệu quả thông qua các hướng dẫn có trong bài viết.

11 tháng 3 2025

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API