5 điểm bởi GN⁺ 2025-05-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Ollama bắt đầu hỗ trợ các mô hình đa phương thức (văn bản + hình ảnh) thông qua engine mới
  • Hỗ trợ nhiều mô hình thị giác đa phương thức như Llama 4 ScoutGemma 3, cho phép hỏi đáp bằng cách kết hợp hình ảnh và văn bản
  • Engine mới cung cấp các tính năng cải thiện tính mô-đun của mô hình, nâng cao độ chính xác, quản lý bộ nhớ hiệu quả
  • Thông qua image caching, tận dụng metadata phần cứng, v.v., engine đạt được hiệu năng suy luận nhanh và tối ưu hóa phần cứng
  • Trong tương lai, sẽ tiếp tục mở rộng nhiều tính năng như hỗ trợ ngữ cảnh dài hơn, tool calling, streaming

Hỗ trợ mô hình đa phương thức của Ollama

Ollama hỗ trợ các mô hình thị giác đa phương thức mới nhất có khả năng xử lý kết hợp hình ảnh và văn bản, thông qua việc đưa vào engine đa phương thức mới

Hiểu và suy luận đa phương thức tổng hợp

Llama 4 Scout

  • Ollama hỗ trợ Llama 4 Scout (109 tỷ tham số, mô hình mixture-of-experts)
  • Ví dụ, có thể đặt các câu hỏi dựa trên vị trí trong từng khung hình video
    • Ví dụ: có thể phát hiện nhiều đặc điểm hình ảnh khác nhau như một tòa nhà cụ thể, các yếu tố môi trường, thông tin nền, v.v.
  • Sau đó cũng có thể tiếp tục nhiều câu hỏi kế tiếp một cách tự nhiên
    • Ví dụ: cung cấp thông tin chính xác cho các câu hỏi như "Từ tòa nhà này đến Stanford xa bao nhiêu?", "Đi bằng cách nào là tốt nhất?"
    • Đưa ra câu trả lời phù hợp với tình huống thực tế như nhiều phương tiện di chuyển, lộ trình, thời gian dự kiến, v.v.

Gemma 3

  • Gemma 3 có thể nhận đồng thời nhiều hình ảnh và phân tích mối quan hệ giữa các hình ảnh đó
    • Ví dụ: từ 4 hình ảnh, có thể nhanh chóng xác định các loài động thực vật xuất hiện chung, sự hiện diện của một khung cảnh cụ thể, các tình huống bất thường, v.v.
    • Một ví dụ thú vị là phân tích ai sẽ thắng khi xem cảnh một con llama và một con cá heo đang đấu boxing, bằng cách nắm bắt đặc điểm và tính động của từng cá thể

Nhận diện và phân tích tài liệu

Qwen 2.5 VL

  • Mô hình Qwen 2.5 VL được dùng cho nhận dạng ký tự (OCR) và trích xuất thông tin văn bản cụ thể trong ảnh
    • Ví dụ thực tế: xử lý các tác vụ như trích xuất thông tin từ séc hoặc dịch các câu đối dọc bằng tiếng Trung sang tiếng Anh

Đặc điểm của engine đa phương thức Ollama

  • Cho đến nay, Ollama đã dựa vào dự án ggml-org/llama.cpp để hỗ trợ mô hình, với trọng tâm phát triển là tính dễ dùng và khả năng di chuyển mô hình
  • Gần đây, khi nhiều phòng nghiên cứu công bố các mô hình đa phương thức, Ollama đã tự tăng cường engine để hỗ trợ dải mô hình rộng hơn đúng theo mục tiêu của mình
  • Engine mới coi các mô hình đa phương thức là các thực thể độc lập, hạng nhất, đồng thời tăng cường sự tham gia của đối tác và cộng đồng

Ý nghĩa của sự phát triển engine

  • Cải thiện độ tin cậy và độ chính xác của suy luận cục bộ trên Ollama, đồng thời đặt nền tảng để hỗ trợ nhiều lĩnh vực đa phương thức khác trong tương lai (ví dụ: giọng nói, tạo ảnh, tạo video, hỗ trợ ngữ cảnh dài, sử dụng công cụ tốt hơn, v.v.)

Tính mô-đun của mô hình

  • Thiết kế để cô lập “phạm vi ảnh hưởng” của từng mô hình, cải thiện độ tin cậy và giúp nhà phát triển dễ tích hợp mô hình mới
    • ggml/llama.cpp trước đây chỉ hỗ trợ mô hình chỉ-văn-bản; trong đa phương thức, text decoder và vision encoder được tách ra và chạy riêng
    • Hình ảnh cần được embedding trong thuật toán thị giác rồi chuyển sang mô hình văn bản, vì vậy có thể triển khai logic gọn nhẹ cho từng mô hình
    • Trong Ollama, mô hình có thể tự tách theo lớp chiếu embedding và theo cơ chế huấn luyện riêng của từng mô hình
    • Nhà tạo mô hình có thể chỉ tập trung vào mô hình và quá trình huấn luyện của mình mà không cần thêm patch bổ sung hay các câu lệnh điều kiện phức tạp
    • Có thể xem một số ví dụ về kiến trúc mô hình trong kho GitHub của Ollama

Nâng cao độ chính xác

  • Hình ảnh lớn có lượng token lớn nên có thể vượt quá batch size
    • Nếu hình ảnh vượt quá batch, thông tin vị trí có thể bị phá vỡ
  • Khi xử lý hình ảnh, Ollama bổ sung thêm metadata để nâng cao độ chính xác
    • Xử lý chi tiết các yếu tố như có áp dụng causal attention hay không, chia batch embedding hình ảnh và quản lý ranh giới, v.v.
    • Nếu điểm chia không phù hợp, chất lượng đầu ra có thể suy giảm, nên mốc được căn chỉnh theo tiêu chuẩn trong bài báo của từng mô hình
  • Các công cụ suy luận cục bộ khác triển khai theo nhiều cách khác nhau, nhưng Ollama đảm bảo chất lượng bằng cách xử lý chính xác phù hợp với thiết kế mô hình và phương thức huấn luyện

Tối ưu quản lý bộ nhớ

  • Image caching: hình ảnh đã được xử lý một lần sẽ tiếp tục được lưu trong bộ nhớ, giúp tăng tốc xử lý các prompt tiếp theo. Trừ khi chạm đến giới hạn bộ nhớ, hình ảnh sẽ được giữ lại
  • Dự đoán bộ nhớ và tối ưu KV cache: hợp tác với các nhà sản xuất phần cứng và đối tác hệ điều hành để nhận diện chính xác metadata phần cứng, hướng tới tối ưu hóa sử dụng bộ nhớ
    • Thực hiện kiểm chứng theo từng phiên bản firmware và tiến hành benchmark cho các tính năng mới
  • Ollama tối ưu causal attention riêng theo từng mô hình, cung cấp cấu hình tùy biến cho từng mô hình thay vì ở cấp độ nhóm
    • Ví dụ:
      • Gemma 3 của Google DeepMind: phân bổ chỉ một phần độ dài ngữ cảnh thông qua sliding window attention, phần bộ nhớ còn lại dành cho suy luận đồng thời, v.v.
      • Llama 4 Scout, Maverick của Meta, v.v.: hỗ trợ chunked attention, 2D rotary embeddings, đồng thời triển khai hỗ trợ ngữ cảnh dài cho các mô hình mixture-of-experts
  • Với các mô hình mà lớp attention chưa được triển khai đầy đủ, chúng có thể vẫn “chạy”, nhưng về lâu dài có thể làm giảm chất lượng đầu ra và tạo ra kết quả bất thường

Kế hoạch sắp tới

  • Hỗ trợ độ dài ngữ cảnh dài hơn
  • Tăng cường năng lực suy luận/tư duy
  • Cung cấp tool calling và phản hồi streaming
  • Mở rộng khả năng sử dụng trực tiếp máy tính

Lời cảm ơn

  • Các tổ chức và nhà nghiên cứu đã đóng góp cho việc phát triển mô hình
    • Gửi lời cảm ơn tới nhiều phòng thí nghiệm và thành viên cộng đồng đã nỗ lực phát triển các mô hình thị giác như Google DeepMind, Meta Llama, Alibaba Qwen, Mistral, IBM Granite, v.v.
  • GGML
    • Thư viện tensor của đội ngũ GGML là thành phần cốt lõi cấu thành engine suy luận của Ollama. Có thể truy cập trực tiếp GGML từ Go để tận dụng cho các đồ thị suy luận tùy biến và thiết kế kiến trúc mô hình phức tạp
  • Các đối tác phần cứng
    • Gửi lời cảm ơn tới các đối tác phần cứng như NVIDIA, AMD, Qualcomm, Intel, Microsoft đã hợp tác để cải thiện hiệu năng suy luận trên nhiều thiết bị khác nhau

1 bình luận

 
GN⁺ 2025-05-17
Ý kiến trên Hacker News
  • Bày tỏ sự bất ngờ khi nghe tin Ollama công bố một engine mới vào thời điểm này; chia sẻ cảm xúc bắt nguồn từ việc llama.cpp cuối cùng đã đưa tính năng vision ổn định vào nhánh mặc định sau thời gian dài nỗ lực, như thể công sức bấy lâu nay cuối cùng cũng đơm hoa kết trái; suy đoán rằng Ollama có lẽ đã chuẩn bị tính năng này từ lâu; cho rằng quyết định tách khỏi sự phụ thuộc ban đầu vào llama.cpp và đi theo hướng độc lập là một phán đoán hợp lý
  • Bày tỏ thắc mắc về sự khác biệt thực chất giữa cách hai dự án bổ sung tính năng multimodal; vì hỗ trợ LLaVA đã tồn tại từ lâu nên tự hỏi trước đây có cần một cách xử lý đặc biệt nào không; từng kỳ vọng TFA sẽ đề cập đến khác biệt đó nhưng lại thấy bối rối khi Ollama nói về multimodal như thể đây là thứ hoàn toàn mới được đưa vào
  • Cho rằng thuật ngữ multimodal nên bao gồm không chỉ văn bản và hình ảnh mà cả âm thanh (và có thể cả video); lập luận rằng nếu mô hình chỉ có khả năng tạo ảnh hoặc phân tích ảnh thì gọi là “mô hình thị giác” sẽ chính xác hơn; nhấn mạnh sự cần thiết phải phân biệt rõ các mô hình multimodal như Qwen2.5-Omni với Qwen2.5-VL; giải thích rằng theo nghĩa này, engine mới của Ollama là bổ sung hỗ trợ "vision"
  • Bày tỏ sự quan tâm tới việc xử lý đầu vào video; hỏi liệu Qwen2.5-Omni và Ollama có hỗ trợ đầu vào video hay không
  • Dù thấy cụm “engine mới” của Ollama được nhắc đến nhiều, vẫn muốn thấy thông tin cụ thể hơn về cách nó thực sự được triển khai; vì llama.cpp cũng là một dự án rất ấn tượng, nếu đã tạo ra một engine thay thế thì mong được xem ví dụ về cách họ xây dựng nó; suy đoán thư viện tensor GGML đóng vai trò cốt lõi, và có thể cấu trúc là viết trực tiếp phần vận hành mô hình (ví dụ triển khai Gemma3) trong Go thông qua FFI (gọi hàm ngoại ngữ) để tận dụng các khả năng của GGML; cho rằng những chi tiết kỹ thuật này đáng lẽ nên được nêu rõ hơn trong blog chính thức
  • Ollama từ trước đến nay có hình ảnh là một công ty bị chỉ trích vì thiếu minh bạch, ghi nhận công lao không rõ ràng và đưa ra quyết định không theo hướng người dùng; vì vậy lần này lại thấy bất ngờ khi bài viết ghi nhận người đóng góp nhiều hơn; đoán rằng do bị người dùng chỉ trích nhiều nên đã có sự điều chỉnh
  • Thú nhận rằng cách đặt tên kiểu *llama trong thế giới LLM quá dễ gây rối; có quá nhiều dự án mang tên llama hoặc tên na ná nhau khiến mức độ nhầm lẫn ngày càng tăng
  • Chia sẻ rằng tốc độ phát triển của AI/ML quá nhanh nên rất khó theo kịp; nếu không liên tục chú ý thì gần như không thể nắm bắt đúng; đồng thời nhắc đến xu hướng ưa thích những cái tên mang tính “meme”; kể rằng trước đây từng có trào lưu lấy tên nhân vật Sesame Street, họ YOLO, và cả các bài báo hội nghị cũng không ngoại lệ
  • Hơi lạc đề một chút để đặt câu hỏi vì sao Ollama lại bị một số người dùng đánh giá tiêu cực; chỉ ra rằng ngoài lập luận “hãy tự chạy llama.cpp đi” thì thường không thấy lời giải thích nào rõ ràng hơn
  • Chia sẻ các liên kết Reddit và GitHub issue để giới thiệu rằng Ollama từ lâu đã có vấn đề trong việc ghi công đúng mức cho llama.cpp; thậm chí trong một số dự án, dù thực chất dùng llama.cpp trực tiếp nhưng công lao lại đổ về Ollama; cũng chỉ ra rằng Ollama không trực tiếp đóng góp trở lại (dù đây không phải nghĩa vụ), nhưng có một fork được duy trì nội bộ nên ai quan tâm vẫn có thể lấy mã theo kiểu cherry-pick khi muốn
  • Tách biệt với các tranh luận trước đó về văn hóa, giấy phép và FOSS, có người bày tỏ sự khó chịu về cách lưu trữ tệp; Ollama đưa vào cơ chế lưu đĩa và registry riêng khiến việc tái sử dụng trở nên bất tiện; suy đoán rằng về lâu dài họ đang nghĩ tới kiếm tiền nên cố ý thiết kế một cấu trúc mang tính khép kín; có thể mục tiêu là tránh lưu trùng như Docker, nhưng trên thực tế chỉ làm trải nghiệm tệ hơn; kết quả là người dùng phải lưu trùng các tệp lớn hơn 30GB, khiến ngay cả vấn đề nhỏ cũng trở nên đáng bực; một cách tiếp cận chuẩn và tương thích với nhiều hệ sinh thái sẽ tốt hơn; cuối cùng người này đã ngừng dùng Ollama vì sự bất tiện đó
  • Đánh giá Ollama là một giải pháp kiểu Docker cho thế giới LLM, cả trải nghiệm người dùng lẫn cú pháp tệp mô hình đều tạo cảm giác lấy cảm hứng từ Dockerfile; nhớ lại thời kỳ đầu Docker cũng từng có tranh cãi Docker với LXC, nhưng đổi mới về trải nghiệm người dùng của Docker khi đó lại hay bị bỏ qua; tuy vậy vẫn xem việc thiếu ghi nhận llama.cpp trong thời gian dài là vấn đề; đồng thời nói thêm rằng hiện nay việc ghi credit có vẻ đã cởi mở hơn phần nào
  • Điều gây khó chịu là Ollama không hợp tác với cộng đồng; vì đây là công ty nhận vốn từ VC nên vẫn còn nghi ngờ về mô hình kiếm tiền của họ; trong khi ở các lựa chọn khác như llama.cpp, lmstudio, ramalama thì có thể hiểu khá rõ tình hình của từng bên; ramalama còn được cho là đóng góp nhiều cho nhiều dự án mã nguồn mở liên quan; người bình luận cũng cung cấp một liên kết GitHub để tham khảo
  • Điểm đáng tiếc là Ollama thực chất chỉ đóng vai trò frontend cho llama.cpp, nhưng lại không thể hiện và cũng không thừa nhận rõ điều đó
  • Chỉ ra rằng ví dụ “dịch câu đối Tết dọc tiếng Trung” của Ollama có khá nhiều chỗ dịch sai; suy đoán người viết blog không phải là người dùng tiếng Trung thực sự; sau đó phân tích cụ thể từng phần xem nội dung thật và kết quả của Ollama khác nhau như thế nào
  • Người bảo trì đã trực tiếp xuất hiện để phản hồi, khẳng định rõ mình là người Trung Quốc để tăng độ tin cậy; cho rằng bản dịch tiếng Anh nhìn chung khá chính xác; nhấn mạnh rằng họ không che giấu hay chỉnh sửa lỗi của mô hình hoặc bản demo; đồng thời chia sẻ hy vọng rằng về lâu dài chất lượng mô hình sẽ còn được cải thiện hơn nữa
  • Dự định sẽ tự thử dùng; đánh giá cao cách viết bài vì các ví dụ thực tế và chi tiết hữu ích được thể hiện ngay lập tức
  • Điểm mạnh của Ollama là có thể chạy mô hình ngay chỉ với vài lệnh Docker đơn giản, gần như không cần cấu hình gì; nhưng nếu cần dùng hình ảnh và video thì Docker không dùng GPU nên phát sinh hạn chế kỹ thuật; vì vậy có người thắc mắc Ollama sẽ duy trì hỗ trợ tích hợp Docker như thế nào trong tương lai, và liệu tính năng này có bị đẩy thành một phần phụ ít được ưu tiên của dự án hay không
  • Có ý kiến cho rằng trên một số nền tảng vẫn có thể dùng GPU trong Docker; chỉ là cần cấu hình nhiều hơn và nvidia cũng có tài liệu liên quan
  • Có người thấy thú vị khi ví dụ chỉ đường di chuyển ở Stanford lại đưa ra thông tin sai; đồng thời chia sẻ một hiểu biết giao thông cơ bản rằng CA-85 nằm về phía nam hơn so với Palo Alto
  • Có người cho biết đã dùng Ollama gần một năm để chạy mô hình cục bộ và khá hài lòng; tuy nhiên các tính năng hỗ trợ multimodal như Llava thì hầu như chưa được trải nghiệm vì phần lớn chỉ dùng cho văn bản; vì vậy họ muốn được gợi ý các dự án hữu ích và thú vị được xây dựng bằng mô hình multimodal chạy cục bộ, đồng thời hy vọng tìm được ý tưởng cho dự án cá nhân của mình