bởi Szymon Bodych
2024-10-05
Thời gian đọc ước tính: 7 minutes
Hướng dẫn này sẽ chỉ cho bạn cách dễ dàng thiết lập và chạy các mô hình ngôn ngữ lớn (LLM) cục bộ bằng cách sử dụng Ollama và Open WebUI trên Windows, Linux hoặc macOS – mà không cần Docker. Ollama cung cấp khả năng suy luận mô hình cục bộ, và Open WebUI là giao diện người dùng giúp đơn giản hóa việc tương tác với các mô hình này. Trải nghiệm tương tự như khi sử dụng các giao diện như ChatGPT, Google Gemini hoặc Claude AI.
Chạy Open WebUI mà không cần Docker cho phép bạn sử dụng tài nguyên của máy tính hiệu quả hơn. Không có những hạn chế của môi trường container, toàn bộ bộ nhớ hệ thống, sức mạnh CPU và dung lượng lưu trữ có thể được dành riêng cho việc chạy ứng dụng. Điều này đặc biệt quan trọng khi làm việc với các mô hình yêu cầu nhiều tài nguyên, nơi mà từng chút hiệu suất đều có ý nghĩa.
Ví dụ, nếu bạn đang sử dụng Open WebUI để tương tác với các mô hình ngôn ngữ lớn, việc thực thi trực tiếp có thể dẫn đến thời gian xử lý nhanh hơn và hiệu suất mượt mà hơn, vì không có chi phí quản lý container từ Docker. Khi chạy trực tiếp, bạn cũng có được:
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt những điều sau trên hệ thống của mình:
Hãy đảm bảo rằng bạn đang sử dụng Python 3.11.X. Ví dụ, phiên bản 3.11.6 hoạt động tốt. Phiên bản Python mới nhất, 3.12.7, không tương thích với phiên bản hiện tại của Open WebUI.
Bạn có thể tải Python tại đây. Hãy chắc chắn chọn đúng phiên bản cho hệ điều hành của bạn. Python là một ngôn ngữ lập trình linh hoạt, được sử dụng rộng rãi trong AI và học máy, bao gồm cả việc phát triển và vận hành các mô hình ngôn ngữ lớn (LLMs). Nếu bạn muốn nâng cao kỹ năng của mình trong lĩnh vực này, hãy tham khảo thẻ học Python của chúng tôi để học nhanh và hiệu quả.
Để cài đặt Open WebUI, bạn có thể sử dụng trình quản lý gói pip của Python. Thực hiện theo các bước sau:
Mở terminal của bạn và chạy lệnh sau để cài đặt Open WebUI:
pip install open-webui
Sau khi cài đặt, cập nhật pip lên phiên bản mới nhất bằng cách chạy lệnh:
python.exe -m pip install --upgrade pip
Khi Open WebUI đã được cài đặt, khởi động máy chủ bằng lệnh sau:
open-webui serve
Sau khi Open WebUI được khởi động thành công, bạn có thể truy cập nó trên trình duyệt tại địa chỉ: http://localhost:8080.
Ngoài ra, nếu bạn muốn, bạn có thể cài đặt Open WebUI bằng cách nhân bản dự án trực tiếp từ GitHub. Để biết thêm chi tiết, hãy xem phần cuối của hướng dẫn này.
Theo mặc định, Ollama thiết lập các đường dẫn sau để lưu trữ các mô hình ngôn ngữ (LLMs) trên hệ thống của bạn:
~/.ollama/models
/usr/share/ollama/.ollama/models
C:\Users\%username%\.ollama\models
Bạn có thể thay đổi đường dẫn này nếu cần. Ví dụ, trên Windows, sử dụng lệnh sau:
setx OLLAMA_MODELS "D:\ollama_models"
Nếu bạn đang chạy Ollama như một ứng dụng macOS, các biến môi trường nên được thiết lập bằng launchctl. Để thiết lập một biến, sử dụng lệnh sau:
launchctl setenv OLLAMA_MODELS "/new/path/to/models"
Sau khi thiết lập biến, khởi động lại ứng dụng Ollama để các thay đổi có hiệu lực.
Đối với người dùng Linux chạy Ollama như một dịch vụ systemd, bạn có thể thiết lập các biến môi trường bằng cách sử dụng systemctl. Đây là cách thực hiện:
Mở cấu hình dịch vụ bằng cách chạy lệnh:
sudo systemctl edit ollama.service
Trong phần [Service], thêm dòng sau:
Environment="OLLAMA_MODELS=/new/path/to/models"
Lưu tệp, sau đó tải lại systemd và khởi động lại dịch vụ:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Để tải xuống và chạy các mô hình ngôn ngữ trong Ollama, sử dụng các lệnh sau trong terminal. Các lệnh này sẽ tự động tải xuống mô hình nếu nó chưa được cài đặt:
Để tải xuống và chạy mô hình LLaMA 3.1 từ Meta (Facebook):
ollama run llama3.1
Để tải xuống và chạy mô hình Gemma 2 từ Google:
ollama run gemma2
Khi Open WebUI đang chạy, bạn có thể truy cập nó qua http://localhost:8080. Sau khi điều hướng đến địa chỉ này, bạn sẽ được yêu cầu đăng nhập hoặc đăng ký. Để tạo một tài khoản mới, chọn tùy chọn Đăng ký (Sign Up). Tài khoản này được tạo cục bộ, có nghĩa là nó chỉ khả dụng trên máy này và không người dùng nào khác trên hệ thống của bạn có quyền truy cập vào dữ liệu của bạn.
Nếu bạn đã khởi động Open WebUI trước đó và các mô hình tải xuống qua Ollama không xuất hiện trong danh sách, hãy làm mới trang để cập nhật các mô hình có sẵn. Tất cả dữ liệu được quản lý trong Open WebUI được lưu trữ cục bộ trên thiết bị của bạn, đảm bảo tính riêng tư và kiểm soát đối với các mô hình và tương tác của bạn.
Nếu bạn muốn cài đặt Open WebUI bằng cách nhân bản dự án từ GitHub và quản lý nó theo cách thủ công, hãy làm theo các bước sau:
Mở terminal và điều hướng đến thư mục nơi bạn muốn nhân bản repository.
Nhân bản repository Open WebUI bằng Git:
git clone https://github.com/open-webui/open-webui.git
Chuyển đến thư mục dự án:
cd open-webui/
Sao chép tệp .env:
cp -RPp .env.example .env
Xây dựng frontend bằng Node.js:
npm install
npm run build
Chuyển vào thư mục backend:
cd ./backend
(Tùy chọn) Tạo và kích hoạt môi trường Conda:
conda create --name open-webui-env python=3.11
conda activate open-webui-env
Cài đặt các phụ thuộc của Python:
pip install -r requirements.txt -U
Khởi động ứng dụng:
bash start.sh
Mở terminal và điều hướng đến thư mục nơi bạn muốn nhân bản repository.
Nhân bản repository Open WebUI bằng Git:
git clone https://github.com/open-webui/open-webui.git
Chuyển đến thư mục dự án:
cd open-webui
Sao chép tệp .env:
copy .env.example .env
Xây dựng frontend bằng Node.js:
npm install
npm run build
Chuyển vào thư mục backend:
cd .\backend
(Tùy chọn) Tạo và kích hoạt môi trường Conda:
conda create --name open-webui-env python=3.11
conda activate open-webui-env
Cài đặt các phụ thuộc của Python:
pip install -r requirements.txt -U
Khởi động ứng dụng:
start_windows.bat
Bằng cách làm theo hướng dẫn này, bạn sẽ có thể chạy Ollama và Open WebUI (không cần Docker) thành công trên máy tính cục bộ mà không gặp bất kỳ vấn đề nào. Tuy nhiên, nếu bạn gặp lỗi hoặc khó khăn trong quá trình thực hiện, hãy để lại bình luận và tôi sẽ cố gắng hết sức để hỗ trợ bạn.
Ollama + Open WebUI: Cách chạy LLMs cục bộ trên Windows, Linux hoặc macOS (không cần Docker)