Skip to content

This repository contains source codes for testing the Turkish language capabilities of various LLMs.

Notifications You must be signed in to change notification settings

ktoprakucar/turkish-responding-benchmark

Repository files navigation

turkish-responding-benchmark

Bu repository, blog yazımda paylaştığım örneklerin kaynak kodlarını içermektedir.

  • notebooks klasöründeki rephrasing.ipynb dosyasını çalıştırarak modellerin talimatlara ne kadar uyup nasıl Türkçe cümleler oluşturduğunu inceleyebilirsiniz.
  • src klasörünün altında ise application.py ile çalıştırabileceğiniz basit bir sohbet uygulamasına göz atabilirsiniz.

Kurulum

Tüm uygulamalar Python 3.12 ile geliştirilmiştir.

Paketleri yüklemeden önce uygulamalar için sanal bir Python ortamı oluşturmanızı tavsiye ederim.

mkvirtualenv turkish-responding-benchmark

Sonrasında, gerekli olan paketleri indirmeniz gerekmektedir.

pip install -r requirements.txt

Kodlarda yerel ayarları bulundurmamak için modellerin konumlarını harici bir yapılandırma dosyasında tutmak istedim. Bu nedenle, testte kullanmak istediğiniz modellerin konumunu properties klasörünün altında local.ini olarak oluşturmanız gerekiyor. Referans olarak test.ini dosyasına göz atabilirsiniz.

Örneğin Qwen2-7B quantized modelini Hugging Face reposundan indirip, indirdiğiniz konumu local.ini dosyasında şu şekilde belirtebilirsiniz:

[REPHRASING_MODEL]
model_directory = ../../models/qwen2-7b-instruct-q8_0.gguf

[CHAT_MODEL]
model_directory = ../../models/qwen2-7b-instruct-q8_0.gguf

Rephrasing

Gerekli paketleri kurduktan sonra, notebooks klasörüne gelip, jupyter-notebook platformuna girmeniz gerekiyor.

jupyter notebook

Sonrasında kodu baştan sona çalıştırıp modellerin performanslarını gözlemleyebilirsiniz.

P.S. Blog yazısında da bahsettiğim gibi, Llama modeli farklı spesifik token'lar kullandığı için, daha iyi performans için uyarlanan prompt'u kullanmanız gerekiyor.

Prompt'un farklı olan kısmı:

<|begin_of_text|>user
{question}<|eot_id|>"
<|begin_of_text|>assistant

Sohbet

Bu kısımda, uygulamayı başlatmak için streamlit'i de çalıştırmanız gerekiyor.

streamlit run application.py

Makinenizdeki donanıma bağlı olarak, soruların cevaplarını almaya başlayabilirsiniz!

Streamlit ile ilgili tüm detaylara application.py dosyasından, onun dışındaki tüm servislere ise service klasörünün altından ulaşabilirsiniz.

Rephrasing uygulamasında da bahsettiğim gibi, LLama modellerini kullanırken prompt'ta ve mesajların birleştirildiği kısımda (_combine_messages) özel token'ları değiştirmeniz gerekiyor.

<|im_start|> to <|begin_of_text|>
<|im_end|> to <|eot_id|>

Pre-commit Hooks

Kodun standartlarını ve okunabilirliğini sağlamak için hem Jupyter hem de Python dosyalarını destekleyen pre-commit hookları da eklemek istedim.

Bunun için gerekli paketleri yüklemeniz gerekmektedir.

pip install -r requirements_dev.txt

Sonrasında, herhangi bir commit oluşturduğunuzda aktif olarak tarama yapacak olan hookları aktive etmeniz için pre-commit paketini çalıştırmamız gerekiyor.

pre-commit install

.pre-commit-config.yaml dosyasında gerekli olan tüm ayarlara ulaşabilirsiniz.

Bonus: Commit öncesinde de tüm taramaları yapmak için aşağıdaki komutu çalıştırabilirsiniz:

pre-commit run --all-files

İyi Eğlenceler!

About

This repository contains source codes for testing the Turkish language capabilities of various LLMs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published