Açık Kaynak ChatGPT

Son zamanlarda OpenAi’ın geliştirdiği Chatgpt, teknoloji sektörünün gündemini fazlasıyla sarsmaya devam ediyor. İlk yayımlandığı günden beridir, Chatgpt’nin ününü duyan herkes OpenAi’ın sayfasına akın ederek Chatgpt’yi denedi ve sonuçlarına inanamadı. Bununla beraber, yapay zekanın hayatımızı tamamıyle değiştireceğine dair argümanlar güç kazandı. Fakat Openai’ın en üzücü yanı, açık kaynak olmamasıydı. Her ne kadar isminde open (açık) tabiri varsa da birçok araştırmacı, Chatgpt’nin dil modelini yayımlamaması konusunda Openai’yı eleştirdi. Bu durum araştırmacıları ve meraklıları benzer açık kaynak alternatifleri geliştirmeye itti.

Bu girişimlerden bir tanesi de Meta’nın geliştirdiği LLaMa dil modeli. Ocak 2023’de Facebook’a ait Meta firması tarafından GPL-3 Lisansı ile açık kaynak olarak yayımlandı. Github reposuna buradan ulaşabilirsiniz. Meta, LLaMa’nın Gpt-3’den daha iyi performans sergilediğini iddia etti. Açık kaynak olması sebebiyle çok kısa süre içinde geliştiricilerin ve araştırmacıların dikkatini çekti. Github üzerinde dil modelini baz alan birçok farklı proje oluştu. Stanford Üniversitesindeki araştırmacılar, LLaMA modelini C++’a taşıyarak adına Alpaca projesi dediler. Daha sonra bu projeye ek olarak Nomic AI firması, GPT4All projesini geliştirdi. Bu yazımda GPT4All projesinden bahsedeceğim. Fakat burada, açık kaynağın ne kadar güçlü olduğunu siz de fark etmişsinizdir sanırım. Dünyanın her bir yanındaki geliştiriciler, LLaMA’nın yayımlandığı ilk günden itibaren Facebook yararına bedava proje üretiyorlar. Birbirini hiç tanımayan, görmeyen bu insanlar beraber çalışarak teknoloji gelişimine katkı sağlıyorlar. Bu gerçekten müthiş bir şey.

Yukarıda linkini verdiğim teknik dokümanda bahsettiğine göre GPT4All, yaklaşık 430K soru-cevap veri setiyle eğitilmiş. Bu verileri, sırasıyla stackoverflow, bigscience ve unified_chip2 web sayfalarındaki soruları ve konuları GPT-3’e sorarak üretmişler. Tabi bu, günlerce sürmüş. Buradan yaklaşık 800K veri çıkardıktan sonra bu veri setlerini biraz temizlemişler ve yaklaşık 430K’ya indirmişler. Ve sonunda elde ettikleri 430K veriyi kullanarak gpt4all-lora modelini 8 saat boyunca Lambda Laboratuvarında DGX A100 8x 80GB donanımıyla 100 dolar maliyetle eğitmişler.

GPT4All’ın github reposuna buradan ulaşabilirsiniz. Repo’nun içerisinde “chat” klasörü altında Windows, Linux ve Mac için derlenmiş chat uygulamalarını bulabilirsiniz. Bu uygulamarın çalışabilmesi için “.bin” şeklinde derlenmiş bir AI modeline ihtiyaç oluyor. Bu yüzden uygulamayı çalıştırabilmek için Repo’nun içerisindeki “gpt4all-lora-quantized.bin” modelini indirip, chat uygulamasının olduğu yere kopyalamanız gerekiyor. Sanırım, bu “.bin” dosyası; bir çeşit veri tabanı gibi veri setlerini içeren derlenmiş bir binary dosya olmalı. Bu dosyayı chat klasörü içerisine kopyaladıktan sonra chat uygulamasını başlatıp yerel makinenizde kullanabilirsiniz. NomicAi’ın sunduğu bir diğer güzellik ise python koduyla kendi chat botunuzu yazabiliyor ve botu eğitebiliyor olmanız. Bunun için Repo’da belirtilen pyhon kütüphalerini “pip install” komutuyla indirip kurmanız lazım. Daha sonra, yerel makinenizde aşağıdaki örnek python koduyla basit bir soru cevap programı yazabilirsiniz.

import from nomic.gpt4all import GPT4All

m = GPT4All()
m.open()
m.prompt('write me a story about a lonely computer')

Modeli eğitmek için repodaki “train.py” scriptini kullanıyorsunuz. Repo’nun içerisinde eğitmek için örnek bir kod da koymuşlar. Fakat, modeli eğitmek için uygun nitelikte, güçlü GPU’nuz olması gerekiyor. Bu yüzden bunu deneyemedim açıkçası. Ama ilerleyen zamanlarda bu olaya detaylı olarak tekrar göz atacağım.

Aynı modeli kullanan bir Cpp reposu da gpt4All.cpp . Bu reponun güzel yanı ise CPP de yazılmış olması ve kendiniz derleyebilmeniz. Bu projede modeli eğitme bölümünü halen geliştiriyorlarmış, ama en azından chatbot’u yazmışlar. Projeyi içindeki “makefile”‘ı kullanrak kendiniz derleyebilirsiniz. Bu repo’nun içerisinde de aynı şekilde Windows, Linux ve Mac gibi farklı işletim sistemleri için derlenmiş hallerini bulabilirsiniz. Aynı zamanda yine, chatbot’u çalıştırmak için “gpt4all-lora-quantized.bin” dosyasının bot uygulamasının olduğu konumda olması gerekiyor. “chat.cpp” dosyası chatbot’un kodlarını oluşturuyor ve eğer C/C++ geliştiriyorsanız kolaylıkla kodu kendiniz değiştirerek istediğiniz şekle evirebilirsiniz. Kısa bir ipucu verirsem kodda 1017. satırla başlayan şu kod parçası cevabı ekrana basıyor;

        // display text
        if (!input_noecho) {
            for (auto id : embd) {
                printf("%s", vocab.id_to_token[id].c_str());
            }
            fflush(stdout);
        }

1042 ile başlayan satırda da giriş inputubu okuyor.

                // currently being interactive
                bool another_line=true;
                while (another_line) {
                    fflush(stdout);
                    char buf[256] = {0};
                    int n_read;
                    if(params.use_color) printf(ANSI_BOLD ANSI_COLOR_GREEN);
                    if (scanf("%255[^\n]%n%*c", buf, &n_read) <= 0) {
                        // presumable empty line, consume the newline
                        if (scanf("%*c") <= 0) { /*ignore*/ }
                        n_read=0;
                    }

Bu projenin, yapay zekayı eğiten kod kısmını da heyecanla bekliyor olacağım.

Gpt4All’ı kullandığımda elde ettiğim sonuçlar son derece şaşırtıcı. Açıkçası bu projeyi  GPT-3.5 ve hatta GPT-4 seviyesinde olmasa bile gerçekten çok kullanışlı buldum. Herhangi bir bireysel projesinize kolaylıkla entegre edilebilir ve uygulamanızda bir asistan olarak kullanabilirsiniz. Fakat aklınızda bulundurmanızda fayda var; bu proje, ticari olarak kullanılamaz ve sadece bireysel veya araştırma projelerinde kullanılabilir. Yine de bunun benim kendi bilgisayarımda çalıştığını düşünürsek kesinlikle müthiş!

Yusuf

Yusuf

Bir Mühendis.

Önerilen makaleler

4 Yorum

  1. Avatar

    Harika içerik. Sağolasın kardeşim.

    1. Yusuf

      Yorum için teşekkürler. 🙂

  2. Avatar

    super hocam ben daha yeni duydum cok heyecanlandim 🙂

    1. Yusuf

      😀 Bunların sesli konuşanları falan da var githubda whisper.cpp diye aratabilirsin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Translate »