Hướng dẫn chạy mô hình Gemma 4 cục bộ với Ollama và OpenCode

06 tháng 4, 2026·7 phút đọc

Bài viết hướng dẫn chi tiết quy trình cài đặt và chạy mô hình AI Gemma 4 trên máy tính cá nhân sử dụng Ollama, đồng thời giải quyết vấn đề giới hạn độ dài ngữ cảnh (context window) để tích hợp mượt mà với công cụ lập trình OpenCode.

Hướng dẫn chạy mô hình Gemma 4 cục bộ với Ollama và OpenCode

Hướng dẫn chạy mô hình Gemma 4 cục bộ với Ollama và OpenCode

Mô hình Gemma 4 mới ra mắt đang thu hút sự chú ý của cộng đồng công nghệ nhờ hiệu suất ấn tượng. Nếu bạn muốn tận dụng sức mạnh của mô hình này ngay trên máy tính cá nhân để bảo mật và kiểm soát tốt hơn, bài viết này sẽ hướng dẫn bạn cách cài đặt Gemma 4 thông qua Ollama và tích hợp nó với OpenCode một cách tối ưu.

Bước đầu tiên: Tải mô hình

Bước khởi đầu thông thường để chạy Gemma 4 trên Ollama là tải (pull) mô hình về máy:

ollama pull gemma4:e4b

Bạn hãy kiểm tra các phiên bản có sẵn và chọn biến thể phù hợp nhất với cấu hình hệ thống của mình. Phiên bản e4b là điểm khởi đầu tốt nếu phần cứng của bạn đủ mạnh để hỗ trợ.

Sử dụng lệnh ollama list để đảm bảo phiên bản bạn vừa tải đã sẵn sàng trên Ollama.

Kiểm tra và Vấn đề về Context Window

Tiếp theo, hãy chạy mô hình để đảm bảo nó hoạt động như mong đợi:

ollama run gemma4:e4b

Bạn có thể đặt một câu hỏi đơn giản hoặc chỉ cần nói "Hello", sau đó sử dụng /bye để thoát.

Ngay sau khi thoát, hãy chạy lệnh ollama ps. Bạn sẽ thấy thông tin tương tự như sau:

NAME          ID              SIZE     PROCESSOR    CONTEXT    UNTIL              
gemma4:e4b    c6eb396dbd59    10 GB    100% GPU     4096       4 minutes from now  

Hãy chú ý đặc biệt đến giá trị CONTEXT. Nếu bạn thấy con số 4096 như trên, điều đó có nghĩa là Ollama đang sử dụng cửa sổ ngữ cảnh mặc định 4K. Đây sẽ là vấn đề lớn khi bạn làm việc với mô hình này trong OpenCode. Triệu chứng của cửa sổ ngữ cảnh quá nhỏ có thể là mô hình liên tục lặp lại "Hãy cho tôi biết bạn muốn làm gì" hoặc các phản hồi không liên quan. Nguyên nhân là do các câu lệnh hệ thống (system prompts) chiếm phần lớn không gian ngữ cảnh, khiến câu lệnh thực tế của bạn bị cắt bớt hoặc bỏ qua.

Để khắc phục, chúng ta cần sử dụng một cửa sổ ngữ cảnh lớn hơn.

OpenCode có hỗ trợ chỉ định kích thước cửa sổ ngữ cảnh trong cấu hình, nhưng tính năng này dường như chưa hoạt động trơn tru với các mô hình dựa trên Ollama. Thay vào đó, chúng ta cần thiết lập kích thước ngữ cảnh khác ngay trong Ollama. Chúng ta sẽ tạo một phiên bản mới của mô hình với kích thước ngữ cảnh mong muốn, sau đó sử dụng phiên bản đó trong OpenCode. Cách dễ nhất để thực hiện việc này là thông qua chính Ollama.

ollama run gemma4:e4b

# sau đó trong cửa sổ lệnh của Ollama, chạy các lệnh sau:
/set parameter num_ctx 32768
/save gemma4:e4b-32k
/bye

# sau đó xác nhận mô hình mới đã được tạo
ollama list

Lưu ý về giá trị num_ctx: Giá trị này nên chia hết cho 2, chính xác hơn là nên là lũy thừa của 2. Trong trường hợp này, cửa sổ ngữ cảnh 32K tương ứng với 32768 byte. Bạn có thể thử nghiệm với nhu cầu sử dụng của mình để xem xem cửa sổ 16K có đủ không, hay bạn cần lớn hơn như 64K hoặc 128K. Hãy nhớ rằng giá trị càng lớn đồng nghĩa với việc sử dụng nhiều VRAM/bộ nhớ hơn – hãy điều chỉnh phù hợp với phần cứng của bạn.

Tên mô hình trong lệnh /save là tùy ý – hãy đặt một cái tên độc đáo phù hợp với bạn. Thông thường tôi chỉ thêm hậu tố "-32k" hoặc kích thước ngữ cảnh mà tôi đã điều chỉnh.

Cấu hình trong OpenCode

Tôi giả định bạn đã quen thuộc với OpenCode và sẽ bỏ qua các hướng dẫn ở mức cơ bản.

Chúng ta cần thông báo cho OpenCode rằng mô hình mới này là một tùy chọn khả dụng. Chúng ta thực hiện việc này bằng cách thêm một mục vào tệp opencode.json — либо toàn cục (của tôi nằm tại ~/.config/opencode/opencode.json), either trong thư mục dự án cụ thể của bạn.

{
  "$schema": "https://opencode.ai/config.json",
  "default_agent": "plan",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 8192
  },
  "provider": {
    "ollama": {
      "name": "Ollama",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "gemma4:e4b-32k": {
          "name": "gemma4:e4b-32k",
          "_launch": true,
          "id": "gemma4:e4b-32k",
          "tool_call": true,
          "options": {
            "temperature": 0.1
          },
          "maxTokens": 16384
        },
        "ministral-3:8b-OC32k": {
          "_launch": true,
          "id": "ministral-3:8b-OC32k",
          "name": "Ministral 3 8B (32k)",
          "options": {
            "temperature": 0.1
          },
          "maxTokens": 16384
        }
        
      }
    },
  }
}

Ví dụ trên có thể không khớp hoàn toàn với thiết lập cụ thể của bạn. Phần quan trọng nhất là nơi mô hình gemma4:e4b-32k được định nghĩa. Bạn có thể sao chép/dán khối đó và sau đó chỉnh sửa cho phù hợp với hệ thống của mình nếu cần.

  • "name": Có thể đặt tên thân thiện hơn nếu muốn — ví dụ "Gemma 4 (32k)". Đây là tên bạn sẽ thấy khi chọn mô hình trong giao diện TUI của OpenCode.
  • "id": Đây là cái tên bạn sẽ dùng để tham chiếu đến mô hình cụ thể — ví dụ nếu bạn gọi lệnh opencode run PROMPT --model gemma4:e4b-32k từ dòng lệnh.
  • "_launch": Tôi không chắc đây có thực sự cần thiết hay không, nhưng tôi có kết quả tốt hơn khi nó được đặt là "true".
  • "tool_call": Nếu không được định nghĩa và đặt là true, Gemma sẽ chạy nhưng sẽ dừng lại khi nó cố gắng sử dụng lệnh gọi công cụ "task".
  • "options": Thiết lập theo nhu cầu sử dụng của bạn.
  • "maxTokens": Đặt kích thước hợp lý để bao quát kích thước đầu ra mà bạn mong đợi từ một câu lệnh.

Sử dụng OpenCode

Khi bạn đã cấu hình xong tệp opencode.json, bạn có thể khởi chạy OpenCode:

cd project/folder
opencode

Lệnh này sẽ khởi chạy giao diện TUI của OpenCode. Khi ở bên trong, hãy sử dụng công cụ chọn mô hình — thông qua ctrl-p hoặc ctrl-x m. Tôi dùng từ khóa "ollama" để lọc ra các mô hình dựa trên Ollama của mình. Bây giờ bạn nên thấy mô hình gemma4:e4b-32k được liệt kê. Hãy chọn nó.

Bây giờ bạn đang sử dụng mô hình Gemma cục bộ. Hãy tương tác với nó theo nhu cầu, đặt câu hỏi hoặc xây dựng dự án của bạn. Hiệu suất sẽ phụ thuộc vào phần cứng của bạn, và bạn có thể gặp một số vấn đề mà bạn sẽ không gặp phải nếu sử dụng phiên bản đám mây của mô hình. Nhưng với hầu hết các trường hợp sử dụng, cấu hình này nên đủ sức thực hiện nhiệm vụ. Hiệu suất khá hợp lý trên hệ thống có 16GB VRAM và chỉ bị trễ một hoặc hai giây để nhận phản hồi sau khi mô hình đã được tải.

Quan sát

Tôi mới chỉ bắt đầu thử nghiệm việc sử dụng Gemma 4 cho các nhiệm vụ thực tế. Nó khá năng lực, nhưng tôi nhận thấy mình cần hướng dẫn nó kỹ hơn một chút so với các mô hình khác — như mô hình Zen Big Pickle mặc định. Tuy nhiên, đó cũng không phải là một sự so sánh tương đương hoàn toàn. Cho đến nay, mô hình này cho thấy khả năng ổn định. Nhiệm vụ thực sự sẽ là khi tôi cố gắng sử dụng nó cho dự án phân tích thị trường của mình.

Kết luận

Hy vọng bài hướng dẫn này hữu ích với bạn. Hãy cho tôi biết nếu thông tin của tôi không chính xác hoặc có thể cải thiện.

Trải nghiệm của bạn về việc chạy LLM cục bộ như thế nào? Hãy chia sẻ trong phần bình luận nhé.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗