2 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Ornith-1.0 là mô hình mã nguồn mở tự cải thiện dành cho lập trình tác tử, cung cấp các cấu hình 9B Dense, 31B Dense, 35B MoE, 397B MoE và được hậu huấn luyện trên Gemma 4 và Qwen 3.5
  • Framework huấn luyện sử dụng học tăng cường, không chỉ tạo solution rollout mà còn học tạo scaffold dẫn dắt rollout, từ đó tối ưu đồng thời cả scaffold và lời giải đầu ra
  • Theo README, Ornith-1.0 đạt hiệu năng hàng đầu so với các mô hình mã nguồn mở cùng cỡ trên các benchmark lập trình như Terminal-Bench 2.1, SWE-Bench, NL2Repo, OpenClaw
  • Tất cả checkpoint đều cung cấp giao diện tương thích OpenAI và hỗ trợ cửa sổ ngữ cảnh 256K token, có thể chạy bằng vLLM, SGLang, Hugging Face Transformers, llama.cpp, Ollama...
  • Phát hành theo giấy phép MIT, có thể truy cập toàn cầu không giới hạn khu vực, đồng thời có thể tách khối suy luận và lệnh gọi công cụ qua reasoning_content và tool_calls để kết nối với framework tác tử và coding CLI

Tổng quan mô hình và cách huấn luyện

  • Ornith-1.0 là họ mô hình mã nguồn mở tự cải thiện cho lập trình tác tử
  • Các kích cỡ được cung cấp gồm 9B Dense, 31B Dense, 35B MoE, 397B MoE, và được hậu huấn luyện trên Gemma 4 và Qwen 3.5
  • Framework huấn luyện tự cải thiện sử dụng học tăng cường
    • Mô hình được huấn luyện để không chỉ tạo solution rollout mà còn tạo cả scaffold dẫn dắt rollout
    • Scaffold và lời giải kết quả được tối ưu cùng nhau để tìm ra quỹ đạo tìm kiếm tốt hơn và lời giải chất lượng cao hơn
  • Giấy phép là MIT, có thể truy cập trên toàn thế giới và không có giới hạn khu vực

Kết quả benchmark

  • Mỗi mô hình được so sánh với các mô hình chuẩn tương ứng về kích cỡ, và ba mô hình dùng cùng một harness và thiết lập decoding
  • Ornith-1.0-9B

    • Trên Terminal-Bench 2.1 đạt 43.1 theo chuẩn Terminus-2 và 40.6 theo chuẩn Claude Code
    • Đạt SWE-bench Verified 69.4, SWE-bench Pro 42.9, SWE-bench Multilingual 52
    • Đạt NL2Repo 27.2, Claw-eval Avg 63.1
    • SWE Atlas đạt QnA 17.9, RF 16.6, TW 15.3
  • Ornith-1.0-35B

    • Trên Terminal-Bench 2.1 đạt 64.2 theo chuẩn Terminus-2 và 62.8 theo chuẩn Claude Code
    • Đạt SWE-bench Verified 75.6, SWE-bench Pro 50.4, SWE-bench Multilingual 69.3
    • Đạt NL2Repo 34.6, Claw-eval Avg 69.8
    • SWE Atlas đạt QnA 37.1, RF 29.7, TW 27.8
  • Ornith-1.0-397B

    • Trên Terminal-Bench 2.1 đạt 77.5 theo chuẩn Terminus-2 và 78.2 theo chuẩn Claude Code
    • Đạt SWE-bench Verified 82.4, SWE-bench Pro 62.2, SWE-bench Multilingual 78.9
    • Đạt NL2Repo 48.2, Claw-eval Avg 77.1
    • SWE Atlas đạt QnA 41.2, RF 42.6, TW 39.1

Thiết lập đánh giá

  • Đánh giá Terminal-Bench 2.1 Terminus-2 sử dụng framework Harbor/Terminus-2, parser=json, temperature=1.0, top_p=1.0, cửa sổ ngữ cảnh 128K
    • Mỗi lần chạy dùng timeout 4 giờ, 32 lõi CPU, 48GB RAM và là trung bình của 5 lần chạy
    • Qwen chat template được điều chỉnh để đảm bảo tính nhất quán giữa huấn luyện và suy luận, Harbor cũng được sửa để khớp với khóa reasoning_content của vLLM
  • Đánh giá Terminal-Bench 2.1 Claude Code dùng Claude Code 2.1.126, parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072 và lấy trung bình 5 lần chạy
  • SWE-bench Verified / Pro / Multilingual dùng OpenHands harness, temperature=1.0, top_p=0.95, cửa sổ ngữ cảnh 256K
  • SWE Atlas QnA / RF / TW dùng mini-SWE-agent harness, temperature=1.0, top_p=0.95, cửa sổ ngữ cảnh 128K và lấy trung bình 5 lần chạy
  • NL2Repo dùng temperature=1.0, top_p=1.0, ngữ cảnh 400K, đầu ra 48K, cùng anti-hacking filters
  • ClawEval là benchmark mã tác tử dựa trên phân phối tác vụ người dùng thực, dùng temperature=0.6 và ngữ cảnh 256K

Chạy mô hình và checkpoint

  • Ornith-1.0 là reasoning model, mặc định assistant turn bắt đầu bằng khối <think> … </think> rồi mới trả về câu trả lời cuối cùng
  • Công thức phục vụ bật reasoning parser để trả chain-of-thought trong trường reasoning_content riêng, đồng thời bật tool-call parser để đưa khối <tool_call> ra dưới dạng tool_calls kiểu OpenAI
  • Các phiên bản runtime cần thiết như sau
    • Transformers ≥ 5.8.1
    • vLLM ≥ 0.19.1
    • SGLang ≥ 0.5.9
  • Tham số lấy mẫu được khuyến nghị là temperature=0.6, top_p=0.95, top_k=20
    • Để tái hiện thiết lập benchmark đã công bố, dùng temperature=1.0
  • Tất cả checkpoint đều cung cấp cùng một giao diện tương thích OpenAI và hỗ trợ cửa sổ ngữ cảnh 256K, tức 262,144 token
    • Dense 9B phù hợp với một GPU 80GB đơn
    • Các checkpoint MoE được shard trên node nhiều GPU bằng tensor parallelism
  • Các checkpoint được cung cấp
    • Ornith-1.0-9B: Dense khoảng 9B, bf16, dành cho phục vụ và fine-tuning trên một GPU
    • Ornith-1.0-9B-GGUF: Dense khoảng 9B, lượng tử hóa GGUF, dành cho suy luận cục bộ bằng llama.cpp / Ollama
    • Ornith-1.0-35B: MoE 35B, bf16, dành cho phục vụ full-precision trên nhiều GPU
    • Ornith-1.0-35B-FP8: MoE 35B, FP8, dành cho phục vụ trên GPU hỗ trợ FP8 để giảm gần một nửa VRAM
    • Ornith-1.0-35B-GGUF: MoE 35B, lượng tử hóa GGUF, dành cho suy luận cục bộ bằng llama.cpp / Ollama
    • Ornith-1.0-397B: MoE 397B, bf16, dành cho phục vụ full-precision trên node nhiều GPU
    • Ornith-1.0-397B-FP8: MoE 397B, FP8, dành cho phục vụ tiết kiệm bộ nhớ trên GPU hỗ trợ FP8

API tương thích OpenAI và cách dùng cho tác tử

  • Khi máy chủ vLLM hoặc SGLang chạy, có thể gọi endpoint /v1/chat/completions bằng client tương thích OpenAI
  • Ví dụ máy chủ cục bộ dùng base_url="http://localhost:8000/v1";, api_key="EMPTY", model="Ornith-1.0"
  • Trong thông điệp phản hồi, reasoning_content chứa trace suy luận <think>, còn content chứa câu trả lời cuối cùng
  • Khi truyền công cụ vào, Ornith-1.0 sẽ tạo function call đúng định dạng, và máy chủ sẽ parse chúng thành trường tool_calls tiêu chuẩn
  • SDK tương thích OpenAI có thể dùng cùng endpoint này từ Python, Node.js, curl, v.v.

Framework được hỗ trợ và coding CLI

  • Ornith-1.0 được tối ưu cho gọi công cụ và khả năng lập trình tác tử
  • Vì cung cấp endpoint tương thích OpenAI và tool calling, nó có thể dùng cùng các framework tác tử tiêu chuẩn
  • README có ví dụ kết nối công cụ qua máy chủ MCP và ví dụ gọi công cụ hàm run_shell
  • Các agent harness và runtime được nêu làm ví dụ gồm
    • Hermes Agent: cấu hình OPENAI_BASE_URL, OPENAI_API_KEY, MODEL="Ornith-1.0"
    • OpenHands: dùng đường dẫn openai/Ornith-1.0 của LiteLLM và base URL cục bộ
    • llama.cpp / Ollama: nạp các bản dựng GGUF 9B và 35B để suy luận cục bộ
    • Unsloth Studio: dùng FastLanguageModel.from_pretrained để suy luận cục bộ hoặc fine-tuning
    • OpenClaw: trỏ endpoint tương thích OpenAI tới máy chủ Ornith
  • Có thể kết nối coding CLI bằng cách trỏ OPENAI_BASE_URLOPENAI_API_KEY tới endpoint Ornith-1.0
  • Ví dụ OpenCode đăng ký provider Ornith cục bộ trong ~/.config/opencode/opencode.json và dùng mô hình Ornith-1.0

1 bình luận

 
Ý kiến trên Hacker News
  • Thảo luận trước đó: https://news.ycombinator.com/item?id=48709744
    https://swelljoe.com/post/will-it-mythos/: “Hiệu năng khá kém, chỉ tìm được đúng một lỗi mà gần như mọi mô hình khác đều tìm ra. Dù hiệu năng ở các benchmark khác rất ấn tượng so với kích thước, kết quả ở đây vẫn vậy. […] Ngay cả khi chat không có công cụ thì nó cũng hoạt động tệ và còn khá tích cực tạo ảo giác. Hiện tôi đang tái hiện với quyền truy cập đầy đủ vào công cụ, bao gồm bash/Python; trong trường hợp đó thì mô hình này có thể vẫn cạnh tranh được”

    • Thật kỳ lạ khi đến năm 2026 mà người ta vẫn nghiêm túc nói rằng “hiệu năng kém khi chat không có công cụ”. Tôi chưa trực tiếp dùng nên không biết bản fine-tune này có tốt không, nhưng rõ ràng việc kiểm thử một mô hình tác tử mà không cho truy cập công cụ rồi kỳ vọng nó hoạt động tốt thì chẳng hợp lý chút nào, đúng không? Tôi cũng không hiểu rốt cuộc họ đã test cái gì
    • Benchmark đó xếp Kimi K2.6K2.7 Code gần như ở nhóm cuối. Cả hai đều thấp hơn Ornith 35B, và còn đánh giá Gemma 4 26B cao hơn GLM-5.2 rất nhiều. Kết quả nghe không mấy thuyết phục
  • Đây là bản fine-tune Qwen đầu tiên không bị cộng đồng LLM cục bộ bác bỏ ngay lập tức, thậm chí trong vài trường hợp còn được khuyến nghị. Theo trải nghiệm dùng hạn chế của tôi thì nó ổn, và đưa ra các lời giải sáng tạo cho bài toán lập trình. Tôi không kỳ vọng mô hình 9~35B có thể tạo ra cả một ứng dụng chỉ bằng một cú nhấp chuột. Có vẻ phần lớn lời phàn nàn xuất phát từ chính kỳ vọng đó

    • Cộng đồng LLM cục bộ đã bị những tay buôn crypto/NFT thời trước tràn vào, kéo theo cả văn hóa thổi phồng từ các cộng đồng cũ. Vẫn còn những người làm kỹ thuật thật sự ở lại, nhưng ngày càng bị nhấn chìm bởi những tiếng nói marketing rỗng tuếch
    • Đáng tiếc là ngay từ đầu đã luôn như vậy rồi. Không có gì hại khi thử các mô hình cục bộ cho công việc cục bộ, với một số rào chắn phù hợp
      Phần lớn các mô hình như Qwen, Gemma, Llama, gpt-oss hiện giờ thật sự rất phiền vì phải mò các bẫy lặt vặt như token đặc biệt, cấu trúc prompt hay sở thích của mô hình. Nhưng đổi lại, trong một môi trường thực thi tác tử được tinh chỉnh bằng prompt và tham số mà bạn khó nhọc mới học được, bạn có thể có một mô hình chạy cực kỳ tốt
    • Cũng không hẳn là đã khá hơn. Phần lớn cộng đồng LocalLLama không thích cái này lắm; chỉ có vài người mới đến là đăng bài về nó
    • Có lẽ chúng ta đang ở trong các cộng đồng khác nhau. Các mô hình Qwen là một trong những dòng được khuyến nghị nhiều nhất trong số những mô hình thực sự chạy được trên phần cứng cục bộ mà số đông có thể tiếp cận
  • Vì sao những mô hình “tự cải thiện” này rốt cuộc lại không cải thiện đến mức vượt qua cả các mô hình tiên tiến nhất?

  • Theo thử nghiệm trực tiếp của tôi, Ornith-1.0 35B nhỉnh hơn một chút so với Qwen-3.6 35B
    Bài test của tôi là các tác vụ thêm hoặc sửa tính năng trong một codebase C++ lớn. Điều thú vị là mô hình này nhanh hơn Qwen3.6 35B rất nhiều. Có vẻ Ornith tạo ra chuỗi suy nghĩ ngắn hơn
    Trong bài test của tôi, tốc độ tạo câu trả lời nhanh hơn tới 3 lần. Tôi đang dùng với llamacpp và codex-cli

  • Tôi đã test Ornith-1.0 35B bằng lượng tử hóa khối FP8 do tự mình tạo ra và khá thích nó. Trên RTX PRO 6000(sm120) với vLLM, nó đạt hơn 200 token/giây, và trong vài ngày qua tôi đã chạy hơn 140 triệu token được cache cho các tác vụ coding kiểu tác tử
    Nó có vẻ đâu đó nằm giữa Qwen 3.6 35B-A3B và 27B, nhưng điểm hay là nó ít suy nghĩ quá mức hoặc rơi vào cùng một vòng lặp hơn hẳn Qwen 3.6. Nhìn vào trace suy nghĩ, tôi thích mẫu tiếp cận phân rã của nó
    Trên một codebase Go cỡ vừa, nó xử lý tốt phân tích cơ bản, thực thi tác vụ và một số thay đổi frontend/backend, nhưng với các tác vụ triển khai kernel đơn giản mà dài hơn thì hoàn toàn chạm trần. Tôi đã lặp khoảng 100 lần trong môi trường thực thi Pi Agent mà vẫn thất bại; đây là kiểu tác vụ mà các mô hình công khai mạnh hơn như Kimi K2.6 hay GLM 5.2 có thể làm được

    • Ở cỡ mô hình này, môi trường thực thi có vẻ quan trọng hơn. Cá nhân tôi đã chuyển từ raw pi sang little-coder trên qwen3.6 27b, đáng để xem thử
  • Có ai giải thích được ở đây đã xảy ra chuyện gì không? Họ chỉ thay vỏ ngoài cho Qwen thôi à? deepreinforce-ai là ai, và tại sao mô hình này lại không có trên website của họ?
    Tôi cũng tò mò “tự cải thiện” ở đây nghĩa là gì. Mô hình trên đĩa có thay đổi không, hay nó chỉ trở nên tốt hơn trong phạm vi một lần chạy ngữ cảnh đơn lẻ?

    • Nó không tự cải thiện. Tiêu đề dùng từ dễ gây hiểu nhầm
      Theo tôi hiểu thì có vẻ họ đã huấn luyện bằng reinforcement learning riêng của họ trên nền Qwen và Gemma 4. Tôi không rõ họ kết hợp trọng số của hai bên như thế nào, cũng không chắc là họ lấy Qwen làm nền và dùng Gemma 4 để hỗ trợ huấn luyện hay không. Ở đây, “tự cải thiện” có vẻ đang nói đến quy trình huấn luyện, chứ không phải cách các trọng số được dùng
  • Mấy cái này trông như chỉ là phiên bản tối ưu benchmark của Qwen hoặc Gemma 4

    • Nếu vậy thì việc họ còn đẩy Qwen đi xa hơn nữa, vốn đã được tối ưu benchmark khá mạnh rồi, cũng khá ấn tượng
  • “Bản dense 9B vừa trong một GPU 80GB đơn lẻ”
    Người bình thường như chúng ta chắc không dùng nổi

    • Nghe lạ thật. Mô hình 9B thì thường ngay cả GPU 24GB cũng chứa được ở trạng thái chưa lượng tử hóa
    • Đã có sẵn các bản lượng tử hóa rồi
  • Tôi đã dùng khá nhiều mô hình cục bộ và thấy tất cả đều giống đồ chơi. Nhưng cái này thực sự cho cảm giác hữu ích. Tôi cũng nghe nói Qwen 36-A3B rất tốt, nhưng vẫn chưa thử

  • Hệ thống tự cải thiện thì rất thú vị, nhưng lại khiến việc truy xuất nguồn gốc và quản trị khó hơn nhiều. Nếu các tác tử có thể tự thay đổi hành vi theo thời gian, thì việc hiểu vì sao chúng hành xử theo một cách nhất định sẽ ngày càng trở nên quan trọng hơn