Cách chạy LLM cục bộ với Ollama cho nhà phát triển mới bắt đầu

AI tutorial - IT technology blog
AI tutorial - IT technology blog

Bối cảnh & Tại sao nên chạy LLM cục bộ?

Các Mô hình Ngôn ngữ Lớn (LLM) đã cách mạng hóa cách chúng ta tương tác với công nghệ. Chúng hiện đang cung cấp sức mạnh cho mọi thứ, từ các công cụ tìm kiếm nâng cao đến các công cụ tạo nội dung phức tạp.

Các LLM dựa trên đám mây, chẳng hạn như dòng GPT của OpenAI hoặc Gemini của Google, mang lại sức mạnh và sự tiện lợi to lớn. Tuy nhiên, chúng đi kèm với những đánh đổi, đặc biệt là liên quan đến quyền riêng tư dữ liệu, chi phí và khả năng tùy chỉnh.

Đây chính xác là lý do tại sao việc chạy LLM trên máy cục bộ của bạn lại rất có lợi. Bằng cách lưu trữ các mô hình này trên máy của riêng bạn, bạn có được:

  • Quyền riêng tư nâng cao: Dữ liệu của bạn được giữ an toàn trên thiết bị của bạn. Điều này rất quan trọng đối với các dự án nhạy cảm hoặc sử dụng cá nhân, nơi bảo mật dữ liệu là tối quan trọng.
  • Hiệu quả chi phí: Tạm biệt phí sử dụng API. Sau khi bạn đã tải xuống mô hình, các tương tác là miễn phí.
  • Truy cập ngoại tuyến: Phát triển và thử nghiệm với LLM ngay cả khi không có kết nối internet.
  • Kiểm soát hoàn toàn: Bạn có thể tinh chỉnh, tùy chỉnh và tích hợp các mô hình vào ứng dụng của mình chính xác theo yêu cầu. Không có giới hạn API bên ngoài.
  • Học hỏi và thử nghiệm: Một thiết lập cục bộ đóng vai trò là hộp cát. Nó cho phép bạn hiểu cách LLM hoạt động, kiểm tra các lời nhắc và khám phá các mô hình khác nhau mà không phải lo lắng về chi phí sử dụng.

Đối với các nhà phát triển hiện đại, việc thành thạo thực thi LLM cục bộ là một kỹ năng thiết yếu. Nó trao quyền thử nghiệm rộng rãi và phát triển ứng dụng an toàn, đặc biệt khi xử lý dữ liệu độc quyền.

Ollama đơn giản hóa rất nhiều quá trình này. Công cụ mã nguồn mở này hợp lý hóa việc chạy các mô hình ngôn ngữ lớn trực tiếp trên máy của bạn. Ollama quản lý các trọng số mô hình, các phụ thuộc và việc thực thi phức tạp, giúp bạn tập trung vào việc xây dựng ứng dụng và thử nghiệm với AI.

Cài đặt

Việc cài đặt và chạy Ollama là một quá trình nhanh chóng. Chúng ta sẽ xem xét các bước cho các hệ điều hành phổ biến.

Tải xuống & Cài đặt Ollama

Đối với Linux

Mở terminal của bạn và chạy lệnh sau. Script này sẽ tải xuống và cài đặt Ollama, thiết lập nó dưới dạng một dịch vụ hệ thống.


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

Sau khi thực thi, Ollama sẽ được cài đặt và chạy trong nền.

Đối với macOS

Đối với người dùng macOS, phương pháp đơn giản nhất là tải xuống ứng dụng trực tiếp từ trang web chính thức của Ollama:

https://ollama.com/download

Tải xuống tệp .dmg, mở nó và kéo Ollama vào thư mục Ứng dụng của bạn. Ngoài ra, nếu bạn sử dụng Homebrew, bạn có thể cài đặt nó qua dòng lệnh:


brew install ollama

Đối với Windows

Người dùng Windows cũng có thể tải xuống trình cài đặt trực tiếp từ trang web của Ollama:

https://ollama.com/download

Chạy trình cài đặt .exe và làm theo các lời nhắc trên màn hình. Ollama sẽ tự cài đặt và thường khởi động tự động sau khi cài đặt.

Xác minh Cài đặt

Sau khi bạn đã hoàn thành các bước cài đặt cho hệ điều hành của mình, hãy mở một terminal hoặc dấu nhắc lệnh mới và gõ:


ollama --version

Bạn sẽ thấy đầu ra tương tự như sau, cho biết Ollama đã được cài đặt đúng cách:


ollama version is 0.1.XX

Số phiên bản chính xác có thể khác nhau, nhưng việc nhìn thấy nó xác nhận rằng lệnh ollama được nhận dạng.

Cấu hình

Với Ollama đã được cài đặt, đã đến lúc tải xuống và tương tác với một số mô hình ngôn ngữ lớn.

Tải xuống LLM đầu tiên của bạn

Ollama đơn giản hóa việc tải xuống mô hình. Nó tự động xử lý việc định vị trọng số mô hình và chuẩn bị chúng để sử dụng. Hãy bắt đầu với Llama 2, một mô hình mã nguồn mở phổ biến:


ollama run llama2

Lần đầu tiên bạn thực hiện lệnh này, Ollama phát hiện rằng llama2 chưa được cài đặt cục bộ. Sau đó, nó tự động bắt đầu tải xuống mô hình. Hãy lưu ý rằng việc này có thể mất một chút thời gian, tùy thuộc vào tốc độ internet của bạn và kích thước của mô hình (nhiều LLM có dung lượng vài gigabyte, như Llama 2 khoảng 3.8 GB). Một chỉ báo tiến độ sẽ xuất hiện trong terminal của bạn.

Sau khi quá trình tải xuống hoàn tất, Ollama sẽ tự động tải mô hình và hiển thị cho bạn một lời nhắc để bắt đầu tương tác với nó.

Bạn có thể khám phá các mô hình khác có sẵn trên thư viện Ollama. Ví dụ, để tải xuống và chạy Mistral, một mô hình tuyệt vời khác, bạn sẽ sử dụng:


ollama run mistral

Tương tác với các Mô hình qua CLI

Khi bạn chạy một mô hình bằng ollama run <model_name>, bạn sẽ vào một phiên trò chuyện tương tác. Bạn có thể gõ các lời nhắc của mình trực tiếp vào terminal.


ollama run llama2

>>> Hi there! # Chào bạn!
Hello! How can I assist you today? # Xin chào! Tôi có thể hỗ trợ bạn như thế nào hôm nay?

>>> Explain the concept of recursion in programming. # Giải thích khái niệm đệ quy trong lập trình.
Recursion in programming is a technique where a function calls itself, directly or indirectly, to solve a problem. Think of it like a set of Russian nesting dolls, each doll containing a smaller version of itself. ... # Đệ quy trong lập trình là một kỹ thuật trong đó một hàm tự gọi chính nó, trực tiếp hoặc gián tiếp, để giải quyết một vấn đề. Hãy hình dung nó giống như một bộ búp bê Nga lồng vào nhau, mỗi búp bê chứa một phiên bản nhỏ hơn của chính nó. ...

>>> Generate a Python function to reverse a string. # Tạo một hàm Python để đảo ngược một chuỗi.
def reverse_string(s):
    return s[::-1]

# Example usage:
my_string = "hello"
reversed_my_string = reverse_string(my_string)
print(reversed_my_string)  # Output: olleh # Đầu ra: olleh

Để thoát khỏi phiên tương tác, chỉ cần gõ /bye hoặc nhấn Ctrl + D (trên Linux/macOS) hoặc Ctrl + Z sau đó Enter (trên Windows).

Sử dụng API của Ollama

Ollama bao gồm một API tích hợp mạnh mẽ. Khi Ollama chạy, nó sẽ tự động khởi động một máy chủ cục bộ, thường tại http://localhost:11434, nơi cung cấp một REST API. API này cho phép tích hợp liền mạch các LLM cục bộ của bạn vào các ứng dụng tùy chỉnh thông qua các yêu cầu HTTP đơn giản.

Tương tác API cơ bản với cURL

Bạn có thể kiểm tra API bằng curl từ terminal của mình:


curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "prompt": "Why is the sky blue?" # Tại sao bầu trời lại xanh?
}'

Phản hồi sẽ là một luồng các đối tượng JSON, mỗi đối tượng chứa một phần của câu trả lời của mô hình.

Ví dụ Python để tương tác API

Đây là một script Python đơn giản để tương tác với API Ollama cục bộ của bạn. Bạn sẽ cần thư viện requests (pip install requests).


import requests
import json

def generate_response(prompt, model="llama2"):
    url = "http://localhost:11434/api/generate"
    headers = {'Content-Type': 'application/json'}
    data = {
        "model": model,
        "prompt": prompt,
        "stream": False  # Set to True for streaming responses # Đặt thành True để nhận phản hồi theo luồng
    }

    try:
        response = requests.post(url, headers=headers, data=json.dumps(data))
        response.raise_for_status()  # Raise an HTTPError for bad responses (4xx or 5xx) # Báo lỗi HTTPError cho các phản hồi không tốt (4xx hoặc 5xx)
        
        # If not streaming, the response is a single JSON object # Nếu không theo luồng, phản hồi là một đối tượng JSON duy nhất
        return response.json()['response']
    except requests.exceptions.RequestException as e:
        print(f"Error communicating with Ollama API: {e}") # Lỗi khi giao tiếp với API Ollama: {e}
        return None

if __name__ == "__main__":
    user_prompt = "Write a short poem about a sunny day." # Viết một bài thơ ngắn về một ngày nắng.
    print(f"Prompt: {user_prompt}") # Lời nhắc: {user_prompt}
    llm_response = generate_response(user_prompt, model="mistral") # You can change the model here # Bạn có thể thay đổi mô hình ở đây
    
    if llm_response:
        print("\nLLM Response:") # Phản hồi của LLM:
        print(llm_response)

    user_prompt_2 = "Give me three ideas for a simple Python CLI tool." # Cho tôi ba ý tưởng cho một công cụ CLI Python đơn giản.
    print(f"\nPrompt: {user_prompt_2}") # Lời nhắc: {user_prompt_2}
    llm_response_2 = generate_response(user_prompt_2)

    if llm_response_2:
        print("\nLLM Response:") # Phản hồi của LLM:
        print(llm_response_2)

Script này minh họa cách gửi một lời nhắc đến phiên bản Ollama cục bộ của bạn và nhận phản hồi. Bạn có thể điều chỉnh nó cho các ứng dụng khác nhau, từ chatbot đến trình tạo nội dung.

Xác minh & Giám sát

Theo dõi phiên bản Ollama của bạn đảm bảo mọi thứ đang chạy trơn tru và giúp khắc phục sự cố.

Kiểm tra trạng thái dịch vụ Ollama

Điều quan trọng là phải biết dịch vụ Ollama có đang hoạt động trong nền hay không.

Trên Linux


systemctl status ollama

Bạn sẽ thấy đầu ra cho biết trạng thái active (running).

Trên macOS

Ollama thường chạy dưới dạng tác agent người dùng. Bạn thường có thể thấy trạng thái của nó bằng cách kiểm tra các tiến trình hoặc nhìn vào Activity Monitor. Để kiểm tra nhanh, hãy xem điểm cuối API có đang phản hồi hay không:


curl http://localhost:11434

Nếu Ollama đang hoạt động, bạn có thể sẽ nhận được một phản hồi JSON đơn giản, chẳng hạn như {"message":"Ollama is running"}. Ngoài ra, bạn có thể gặp lỗi 404 nếu đường dẫn không hợp lệ, xác nhận rằng máy chủ đang chạy.

Trên Windows

Kiểm tra trình quản lý Dịch vụ Windows (tìm kiếm “Services” trong menu Bắt đầu) và tìm kiếm dịch vụ Ollama. Bạn cũng có thể xác minh điểm cuối API như đã hiển thị cho macOS.

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

Để xem các mô hình bạn đã tải xuống và có sẵn để chạy:


ollama list

Lệnh này sẽ hiển thị danh sách các mô hình, kích thước của chúng và thời điểm chúng được sử dụng lần cuối:


NAME ID SIZE MODIFIED
llama2:latest f6b15d2a... 3.8 GB 5 minutes ago # 5 phút trước
mistral:latest 294e7737... 4.1 GB 2 hours ago # 2 giờ trước

Giám sát việc sử dụng tài nguyên

LLM có thể tốn tài nguyên, đặc biệt là trên phần cứng tiêu dùng. Việc theo dõi CPU, GPU (nếu có và được Ollama sử dụng) và RAM của hệ thống là rất quan trọng.

Trên Linux/macOS

Sử dụng các công cụ như htop (brew install htop hoặc sudo apt install htop nếu chưa cài đặt) hoặc top trong terminal của bạn:


htop

Định vị các tiến trình có tên ollama hoặc những tiến trình liên quan đến mô hình đang hoạt động của bạn. Giám sát các cột CPU và bộ nhớ. Nếu bạn có GPU tương thích, Ollama sẽ cố gắng chuyển các phép tính sang GPU đó. Bạn có thể giám sát việc sử dụng GPU này bằng các công cụ cụ thể, chẳng hạn như nvidia-smi cho GPU NVIDIA.

Trên Windows

Mở Trình quản lý tác vụ (Ctrl + Shift + Esc) và điều hướng đến tab “Processes” hoặc “Performance”. Bạn có thể giám sát việc sử dụng CPU, Bộ nhớ và GPU ở đó. Tìm kiếm tiến trình Ollama.

Nếu bạn gặp phải các vấn đề về hiệu suất hoặc lỗi hết bộ nhớ, hãy cân nhắc tải xuống các mô hình nhỏ hơn. Ollama thường cung cấp các kích thước khác nhau, như llama2:7b so với llama2:13b, nếu có sẵn. Ngoài ra, hãy đảm bảo hệ thống của bạn đáp ứng các thông số kỹ thuật được khuyến nghị cho các mô hình bạn định chạy.

Chạy LLM cục bộ với Ollama đặt khả năng AI mạnh mẽ trực tiếp trên máy tính để bàn của bạn. Cách tiếp cận này trao quyền cho bạn học hỏi, phát triển và đổi mới với các mô hình ngôn ngữ, đồng thời duy trì toàn quyền kiểm soát và quyền riêng tư đối với dữ liệu của bạn.

Share: