
როგორ მოვაწყოთ ლოკალური კოდირების აგენტი macOS-ზე Gemma 4-ითა და llama.cpp-ით
კაილ ჰაუელსი აღწერს ლოკალური კოდირების აგენტის სტეკს macOS-ისთვის: llama.cpp Metal-ით, Gemma 4 26B-A4B, MTP სპეკულაციური სამუშაო მოდელი და Pi. გენერაციის სიჩქარე 58.2-დან 72.2 ტოკენამდე გაიზარდა.
რატომ გავუშვათ კოდირების აგენტი ლოკალურად
კაილ ჰაუელსს ინტერნეტი რამდენჯერმე გაუწყდა და კოდირების აგენტის გარეშე დარჩა, ამიტომ როცა დაინახა განახლება „Gemma 4 ახლა MTP-ით 2-ჯერ უფრო სწრაფად მუშაობს“ Multi-Token Prediction-ის შესახებ, გადაწყვიტა, აგენტი საკუთარ Mac-ზე გაეშვა.
მოთხოვნები პრაქტიკული იყო: საკმარისად სწრაფი რეალური მუშაობისთვის; OpenAI-ს თავსებადი API, რომ სხვა ხელსაწყოებსაც შეეძლოთ მასთან მუშაობა; და სასურველია სურათების მხარდაჭერა.
რომელ სტეკზე შეჩერდა
საბოლოო კონფიგურაცია: llama.cpp, Metal-ის მხარდაჭერით აწყობილი macOS-ზე; Gemma 4 26B-A4B GGUF ფორმატში; Q8 MTP საპროექტო მოდელი სპეკულაციური დეკოდირებისთვის; Gemma 4-ის მულტიმოდალური პროექტორი; და Pi, როგორც ტერმინალის კოდირების აგენტი. ტესტირება ჩატარდა Apple M1 Max-ზე 64 GB ერთიანი მეხსიერებით და macOS 15.7.7-ით.
მთავარი მოდელია gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf Unsloth-ის Hugging Face-ის რეპოზიტორიიდან, დაახლოებით 16 GB; draft-მოდელთან და პროექტორთან ერთად საქაღალდე ~17 GB-მდე იზრდება. ბენჩმარკისთვის გამოყენებული იყო ერთი მოთხოვნა — კომპაქტური Python ფუნქცია, რომელიც unified diff-ს აანალიზებს; თითო გაშვებაზე დაახლოებით 128 ტოკენი გენერირდებოდა.
MTP გენერაციას ~24%-ით აჩქარებს
საბაზისო llama.cpp Metal-ის აჩქარებით აღწევდა 298.0 prompt ტოკენს/წამში და 58.2 გენერაციის ტოკენს/წამში — გამოსადეგი, მაგრამ ნელი აგენტისთვის, რომელიც უამრავ ხელსაწყოს იძახებს. Q8 MTP draft მოდელის დამატებამ გენერაცია 72.2 ტოკენამდე აწია. ჰაუელსმა draft-ის სიგრძე 1-დან 6-მდე გატესტა: სამი ყველაზე სწრაფი იყო (72.2), ორი თითქმის იდენტური (72.0), უფრო დიდი მნიშვნელობები კი 63.7-მდე და 61.2-მდე დაეცა. prompt-ის დამუშავება თითქმის უცვლელი დარჩა (~296 ტოკენი/წამში), საერთო აჩქარება კი 1.24x-ია.
მან ასევე შეადარა MLX-LM, მოელოდა რა, რომ Mac-ის ტექნიკაზე ის მოიგებდა: საუკეთესო MLX გაშვებამ 45.8 ტოკენს/წამში მიაღწია, თემის 4-ბიტიანი ვარიანტები კი კიდევ უფრო ნელი იყო — 43.9 და 38.1. gemma-4-swift-mlx-ის მეშვეობით MTP-ის გამოყენების ცდა ვერ შედგა, რადგან 26B 4-ბიტიანი MLX ჩეკპოინტები ჩამტვირთავის მოსალოდნელ წონებს არ ემთხვეოდა.
სურათები, დაყენება და Qwen-ის ალტერნატივა
სკრინშოტებისთვის llama.cpp სერვერს Gemma 4-ის მულტიმოდალური პროექტორი სჭირდება, რადგან მხოლოდ 12B მოდელია ბუნებრივად მულტიმოდალური; პროექტორის ჩატვირთვით სერვერი მულტიმოდალურ მხარდაჭერას აცხადებს და Pi-ს სურათების გაგზავნა შეუძლია. Pi-ის მოდელის ჩანაწერშიც უნდა იყოს მითითებული ტექსტი და სურათი, თორემ სურათის გამოსავალი მოდელს არ მიუვიდოდა. პროექტორთან ერთად ტექსტური ბენჩმარკის ხელახლა გაშვებამ შენელება არ აჩვენა.
აწყობა სტანდარტულია: Homebrew-ით დააყენეთ cmake, git, tmux და Python 3.11, ააწყვეთ llama.cpp Metal-ისა და Accelerate-ის ჩართვით, ჩამოტვირთეთ მოდელი, MTP draft და mmproj-BF16.gguf, შემდეგ გაუშვით llama-server მისამართზე 127.0.0.1:8080 პარამეტრებით --spec-type draft-mtp, --spec-draft-n-max 3 და 65 536 ტოკენის კონტექსტით. ასე მიიღება OpenAI-ს თავსებადი /v1 endpoint, რომელზეც Pi თავის models.json-ში მიუთითებს.
დასკვნა: MTP draft მოდელი ღირს გამოყენებად, Gemma 4-ს 58.2-დან 72.2 ტოკენამდე წამში ამაღლებს და კონფიგურაციას მარტივს ტოვებს. ის აღნიშნავს ხშირ რჩევას Qwen3.6 35B-A3B-ის გამოყენების შესახებ: ნაპოვნი ბენჩმარკები აჩვენებს, რომ Qwen უკეთესი კოდირების აგენტია, მაგრამ ნელია — იმავე კონფიგურაციაში ~55 ტოკენი/წამში Gemma 4-ის 72-ის წინააღმდეგ.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.