Kimi K3'ü bir dizüstü bilgisayarda çalıştırmak için yeni bir motor
Özgün başlık: A new engine to run Kimi K3 on a laptop
Kimi K3, 2,78 trilyon parametreye sahiptir ve 1,42 TB ağırlık olarak gönderilir. Açıkça bir dizüstü bilgisayarın hafızasına sığmıyor. Ancak K3 Uzmanların Karma modelidir. Her token için katman başına 896 uzmanın yalnızca küçük bir kısmı etkinleştirilir. Bu sorunu değiştirir: Her bir tokenın gerektirdiği ağırlıklara yeterince hızlı bir şekilde ulaşılabildiği sürece tüm modelin RAM'de yerleşik olmasına gerek yoktur. Bu fikri keşfetmek için WASTE'i (Ağırlığa Duyarlı Akış Tensör Motoru) geliştirdik. WASTE, modelin yoğun, tekrar tekrar kullanılan kısmını bellekte tutar, yönlendirilen uzmanları NVMe için optimize edilmiş bir kapsayıcıda saklar ve yalnızca çıkarım sırasında seçilen uzmanların akışını sağlar. Geri kalan RAM, sınırlı bir uzman önbelleği olarak kullanılır. Mevcut Kimi K3 konteyneri 982 GiB'dir. 64 GB MacBook Pro'da WASTE, 4K bağlamında yaklaşık 29 GB ölçülen minimum bellek gereksinimiyle tüm modeli saniyede yaklaşık 0,32-0,34 jetonla çalıştırıyor. Bu açıkçası henüz etkileşimli bir performans değil. Ancak ilginç bulduğumuz sonuç, bunun işe yaramasıydı: bu, damıtma, budanmış versiyon veya Kimi adını kullanan daha küçük bir model değil, tam açık ağırlık modelidir. Motor C dilinde yazılmıştır ve çıkarım yolunda BLAS, CUDA, ONNX veya Python bağımlılığı yoktur. Aynı kod CLI aracılığıyla kullanılabilir, kitaplık olarak gömülebilir veya dahil edilen OpenAI uyumlu sunucu aracılığıyla kullanıma sunulabilir. Doğruluk ilk kısıtlamaydı.
Her katman bir PyTorch referansına göre doğrulandı ve son logitler 3.6e-06 ile eşleşti. Görüş kulesi de desteklenmektedir ve 2.3e-06'daki referansıyla eşleşmektedir. Mevcut darboğaz anlaşıldı: K3'ün token başına yaklaşık 17 GB uzman verisine ihtiyacı var ve kod çözme süresinin yarısından fazlası uzmanların diskten okunmasıyla harcanıyor. Motor halihazırda dizüstü bilgisayarın dahili SSD'sinin ölçülen verim sınırına yakın bir şekilde çalışıyor. Bu nedenle sonraki iyileştirmelerin, belirteç başına okunan bayt sayısını azaltması ve işletim sistemini sayfalamaya zorlamadan uzmanların yararlı yeniden kullanımını artırması gerekiyor. K3 kasıtlı olarak en uç durumdur. Aynı motor, Kimi-Linear 48B'yi 19 GB'lik bir konteynerden saniyede 8,92 jetonla ve 8 GB bellek bütçesiyle çalıştırır. Daha geniş amaç, özel verileri bir API'ye göndermeden ve özel hızlandırıcı donanımı gerektirmeden, mevcut RAM'den çok daha büyük modelleri yerel olarak kullanılabilir hale getirmektir.