1. Anasayfa
  2. Microsoft 365

Microsoft’un Açık Kaynak Projesi Bitnet.cpp ve CPU Üzerinde Büyük Dil Modelli Kullanımı


Microsoft yapay zeka alanındaki yenilikçi çalışmalarıyla dikkat çekmeye devam ediyor. Microsoft büyük dil modellerinin (LLM’ler) daha erişilebilir ve uygun maliyetli hale getirilmesini amaçlayan bitnet.cpp adlı framework’ünü açık kaynak olarak sundu. Bu devrim niteliğindeki teknoloji 1-bit kuantizasyon yöntemiyle dil modellerini yalnızca CPU üzerinde çalıştırarak yüksek performanslı GPU’lara olan bağımlılığı azaltıyor.

Büyük dil modelleri; doğal dil işleme, metin oluşturma ve analiz gibi birçok alanda önemli ilerlemeler sağlamıştır. Ancak bu modellerin geliştirilmesi ve çalıştırılması ciddi zorluklar barındırır;

  • Yüksek Donanım Gereksinimleri: Milyarlarca parametreye sahip bu modeller genellikle GPU tabanlı altyapıya ihtiyaç duyar ve bu da maliyetleri artırır.
  • Enerji Tüketimi: GPU’lar yüksek enerji tüketimiyle bilinir bu da çevresel etkileri artırır.
  • Erişim Kısıtlamaları: Küçük işletmeler, araştırmacılar ve bireyler, bu maliyetli altyapıya erişmekte zorlanır.

Bitnet.cpp Nedir?
Bitnet.cpp büyük dil modellerini CPU’larda çalıştırmak için tasarlanmış açık kaynaklı bir C++ framework’üdür. Bu framework 1-bit kuantizasyon yöntemini kullanarak model boyutunu ve hesaplama maliyetlerini büyük ölçüde azaltır.

1-Bit Kuantizasyonun Avantajları

  • Boyut Azaltma: Model boyutunu, FP32’ye göre 32 kat ve FP16’ya göre 16 kat küçültür.
  • Doğruluk Koruma: Sıkıştırmaya rağmen model doğruluğunu büyük ölçüde korur.
  • Bellek Kullanımı: 1-bit kuantizasyon, bellek kullanımını ciddi şekilde azaltır. Örneğin, 1.58B parametreli bir model FP16’da 25 GB RAM kullanırken, 1-bit yöntemiyle yalnızca 1.6 GB RAM gerektirir.

Bitnet.cpp’nin Öne Çıkan Özellikleri

  1. CPU Performans Optimizasyonu
    Bitnet.cpp, modern CPU’lar için optimize edilmiştir. AVX2 ve AVX-512 gibi gelişmiş vektör talimatlarını kullanarak paralel hesaplama yapar. Bu optimizasyonlar sayesinde;

ARM işlemcilerde %1.37 ila %5.07,
x86 işlemcilerde ise %2.37 ila %6.17 hız artışı sağlanır.

  1. Enerji Verimliliği
    1-bit modeller FP16 matematiği yerine düşük güç tüketen tamsayı işlemlerini kullanır. Bu yöntem enerji tüketimini %55 ila %82 oranında azaltabilir.
  2. Açık Kaynak Gücü
    Framework’ün açık kaynak olması araştırmacılara ve geliştiricilere framework’ü özelleştirme ve geliştirme imkanı sunar.

Bitnet.cpp Nasıl Çalışır?
Bitnet.cpp CPU üzerinde büyük dil modellerinin çalışmasını mümkün kılan birkaç temel aşamadan oluşur:

  1. Model Yükleme
    Diskten 1-bit kuantize edilmiş bir model CPU belleğine yüklenir.
    Model 1-bit ağırlık matrislerinden ve 8-bit ölçekleme faktörlerinden oluşur.
  2. Çıkarım Süreci
    Girdi token’ları vektörlere gömülür ve her katmanda 1-bit ağırlıklarla matris çarpımı yapılır.
    ReLU gibi aktivasyon fonksiyonları uygulanır ve çıktı logits’leri bir sonraki token’ı tahmin eder.
  3. Optimizasyon
    AVX talimatları 256 veya 512 1-bit çarpımını tek bir işlemde gerçekleştirir.
    Ağırlıkların sıkıştırılmasıyla bellek bant genişliği azaltılır.
  4. Örnekleme ve Yineleme
    Beam search gibi algoritmalar, en yüksek olasılıklı token’ları seçer.
    Üretilen token girdi dizisine eklenerek işlem tekrar eder.

Bitnet.cpp’nin Kurulumu

Gereksinimler
AVX2 veya AVX-512 destekleyen modern bir CPU.
C++17 uyumlu bir derleyici (GCC 9+, Clang 10+, MSVC 2019+).
Python 3.7+ (model indirme için).


Linux/macOS Kurulumu

Bitnet deposunu klonlayınız.

git clone https://github.com/microsoft/BitNet.git

Gerekli araçları yükleyiniz;

Ubuntu: sudo apt install build-essential
macOS : brew install cmake

Yeni bir çalışma dizini oluşturup projeyi derleyiniz.

mkdir build && cd build
cmake ..
make -j

Bitnet çalıştırılabilir dosyasını çalıştırarak çıkarım yapabilirsiniz;

./bitnet models/bitnet-1-58b/ -p "What is the capital of Turkey?"