AI Giriş Bölüm 6 | Yapay Zeka Geliştirme Araçları ve Süreçleri
Yapay Zakaya Giriş Ders Notları
Bu yazımız BTK Yapay Zeka'ya giriş ders notlarindan oluşmatadır.
Programlama Dilleri ve Kütüphaneler
- Python
- NumPy
- Doğrudan AI kullanılmaz.
- Bilimsel hesaplamalar için kullanılan bir kütüphanedir.
- Çok boyutlu diziler ve matematiksel fonksiyonlar sağlar.
- AI uygulamalarında çok sayıda matris hesaplamaları kullanıldığı için bir AI modelini sıfırdan implemente etmek için kullanılır.
- Pandas
- Veri analizi ve işleme için kullanılan bir kütüphanedir.
- Veri çerçevelerini (data frame) manipüle etmek için kullanılır.
- Veri ön işleme adımında AI projelerinde sıklıkla tercih edilir.
- SciPy
- Bilimsel ve teknik hesaplamalar için kullanılır.
- Optimizasyon, lineer cebir, istatistik ve sinyal işleme fonksiyonları içerir.
- NumPy üzerine inşa edilmiştir.
- TensorFlow/Keras
- Derin öğrenmede kullanılan en popüler kütüphanelerdir.
- TensorFlow, Google tarafından geliştirilmiştir. Derin öğrenme modelleri oluşturmak için açık kaynak bir kütüphanedir.
- Keras ise TensorFlow üzerinde koşan yüksek seviyeli bir API’dır.
- Derin öğrenme modellerini hızlı ve kolay bir şekilde oluşturmayı amaçlar.
- Yeni başlayanlar için Keras ile başlamak tavsiye edilir.
- Derin öğrenmede kullanılan en popüler kütüphanelerdir.
- PyTorch
- Bir derin öğrenme kütüphanesidir.
- Meta tarafından geliştirilmiştir.
- Dinamik hesaplama grafiklerine bağlıdır (dynamic computation graph).
- Esneklik ve hız açısından popülerdir.
- Araştırma odaklı projelerde sıklıkla kullanılır.
- JAX
- Google tarafından geliştirilen yüksek performanslı sayısal hesaplama kütüphanesidir.
- Otomatik türev (automatic differentiation) desteği sunar.
- TPU ve GPU üzerinde yüksek performans sağlar.
- Scikit-learn
- Makine öğrenmesi algoritmalarını ve araçlarını içeren bir kütüphanedir.
- Neredeyse tüm klasik makine öğrenmesi modelleri için metot ve fonksiyonları vardır.
- İçerisinde farklı veri setleri de barındırır.
- XGBoost
- Gradient Boosting algoritmasını optimize edilmiş şekilde sunar.
- Tabular veri problemlerinde yüksek performans sağlar.
- LightGBM
- Microsoft tarafından geliştirilmiştir.
- Büyük veri setlerinde hızlı ve hafif bir gradient boosting çözümüdür.
- CatBoost
- Özellikle kategorik verilerde başarılıdır.
- Gradient boosting tabanlıdır.
- Hugging Face Transformers
- NLP ve LLM modellerini kullanmak için popüler bir kütüphanedir.
- BERT, GPT, T5 gibi hazır modeller sunar.
- CNTK (Microsoft Cognitive Toolkit)
- Microsoft tarafından geliştirilen açık kaynaklı bir derin öğrenme kütüphanesidir.
- Yüksek performanslı GPU hesaplaması ve dağıtılmış eğitim desteği sunar.
- MXNet
- Apache MXNet, çoklu dilleri ve çoklu cihazları destekleyen bir derin öğrenme kütüphanesidir.
- Matplotlib
- Verileri, model değerlendirmelerini, eğitim sırasında oluşan loss vb. değerleri görselleştirmemizi sağlar.
- Seaborn
- İstatistiksel veri görselleştirme için kullanılır.
- Matplotlib üzerine inşa edilmiştir.
- Plotly
- İnteraktif görselleştirme sağlar.
- Dashboard geliştirmede kullanılır.
- OpenCV
- Bilgisayarlı görü uygulamalarında kullanılır.
- Görüntü işleme, nesne tanıma, yüz tanıma gibi işlemleri içerir.
- NLTK
- Doğal Dil İşleme (NLP) için kullanılan temel bir kütüphanedir.
- SpaCy
- Endüstriyel seviyede NLP işlemleri için optimize edilmiştir.
- FastAPI
- AI modellerini REST API olarak servis etmek için kullanılır.
- Flask
- Hafif bir web framework’tür.
- Model deployment için kullanılır.
- Streamlit
- AI projeleri için hızlı arayüz geliştirmeye olanak sağlar.
- Gradio
- Makine öğrenmesi modelleri için hızlı demo arayüzü oluşturmayı sağlar.
- NumPy
- R
- Caret (Classification and Regression Training)
- Makine öğrenmesi modellerini üretmek ve değerlendirmek için kullanılır.
- Dplyr
- Veri manipülasyonu ve işlemesinde kullanılır.
- Pandas kütüphanesinin R dilindeki karşılığı olarak düşünülebilir.
- ggplot2
- Görselleştirme için yaygın olarak kullanılan bir kütüphanedir.
- Matplotlib’in R dilindeki karşılığı olarak düşünülebilir.
- Shiny
- Web tabanlı veri uygulamaları geliştirmek için kullanılır.
- randomForest
- Random Forest algoritmasının R implementasyonudur.
- xgboost
- Gradient boosting algoritmasını R ortamında kullanmayı sağlar.
- Caret (Classification and Regression Training)
- Julia
- Flux.jl
- Derin öğrenme modelleri oluşturmak için kullanılan bir kütüphanedir.
- Hızlı ve esnektir.
- MLJ.jl
- Makine öğrenmesi algoritmalarını bir araya getiren bir framework’tür.
- Flux.jl
- Java
- Weka
- Makine öğrenmesi ve veri madenciliği kütüphanesidir.
- Açık kaynaklıdır.
- Deeplearning4j
- JVM tabanlı derin öğrenme kütüphanesidir.
- Enterprise projelerde kullanılır.
- Weka
- JavaScript
- TensorFlow.js
- Tarayıcı tabanlı yapay zeka uygulamaları geliştirmek için kullanılır.
- Brain.js
- JavaScript tabanlı neural network kütüphanesidir.
- ONNX Runtime Web
- ONNX formatındaki modelleri tarayıcıda çalıştırmayı sağlar.
- TensorFlow.js
- C++
- OpenCV
- Açık kaynaklı bilgisayarlı görü ve makine öğrenimi kütüphanesidir.
- dlib
- Yüz tanıma, nesne tanıma ve yüz ifadesi analizi gibi işlemleri destekler.
- OpenCV
- C#
- ML.NET
- Microsoft tarafından geliştirilen açık kaynaklı bir makine öğrenimi kütüphanesidir.
- Accord.NET
- Makine öğrenmesi, istatistik ve sinyal işleme araçları içerir.
- ML.NET
Geliştirme Ortamları
-
Entegre Geliştirme Ortamları (IDEs)
- PyCharm
- JetBrains tarafından geliştirilen ve Python geliştirme için popüler bir IDE’dir. Yapay zeka projelerinde TensorFIow, PyTorch gibi kütüphaneleri kullanmak için tercih edilir.
- Jupyter Notebook/JupyterLab
- Veri analizi, görselleştirme ve yapay zeka modeli prototipleme için yaygın olarak kullanılan bir araçtır. Hem kodu hem de açıklamaları içeren belgeler oluşturmak için kullanılır.
- İnteraktif bir döküman belgesine benzemektedir.
- Visual Studio Code (VSCode)
- Microsoft tarafından geliştirilen ve Python, JavaScript, C++ gibi birçok dili destekleyen bir IDE’dir. Derin öğrenme projeleri için eklentilerle genişletilebilir.
- Spyder
- Python bilimsel hesaplamaları için tasarlanmış bir IDEldir. NumPy, SciPy, Pandas gibi kütüphaneleri kullanarak yapay zeka projeleri geliştirmek için uygun bir ortamdır.
- PyCharm
-
Bulut Tabanlı Geliştirme Ortamları
- Google Colab
- Google’ın ücretsiz bulut tabanlı Jupyter Notebook hizmetidir. GPU ve TPU desteği sunar ve TensorFIow, PyTorch gibi kütüphaneleri kullanmak için uygun bir ortam sağlar.
- Microsoft Azure Notebooks
- Microsoft’un bulut tabanlı Jupyter Notebook hizmetidir. Python, R ve F# dillerini destekler ve yapay zeka projelerini geliştirmek için kullanılabilir.
- Amazon SageMaker
- Amazon Web Services (AWS) tarafından sağlanan bir hizmettir. Makine öğrenimi modellerini eğitmek, dağıtmak ve yönetmek için kullanılan bir bulut tabanlı platformdur. TensorFlow, PyTorch, MXNet gibi çeşitli derin öğrenme çerçevelerini destekler.
- IBM Watson Studio
- IBM tarafın n sağlanan bir platformdur. Veri bilimi ve yapay zeka projeleri için kullanılan bir bulut tabanlı çözümdür. Python, R ve Scala gibi dilleri destekler ve derin öğrenme kütüphanelerini kullanmak için uygun bir ortam sağlar.
- Google Colab
Süreçleri
DevOps (Development Operations)
- Yazılım geliştirme ve bilgi teknolojileri operasyonları arasındaki işbirliğini ve iletişimi artırmayı amaçlayan bir kültür, hareket ve uygulama yaklaşımıdır.
- Yazılım geliştirme süreçlerini ve operasyonel süreçleri entegre ederek, yazılım yayınlama süreçlerini hızlandırır, hata oranlarını azaltır ve yazılımın kalitesini artırır.
CAPTION DevOps Süreci1
DataOps (Data Operations)
- Veri yönetimi ve veri mühendisliği süreçlerini geliştirmeyi ve otomatize etmeyi amaçlayan bir metodoloji ve kültürdür.
- Veri işleme, veri kalitesi, veri entegrasyonu ve veri analitiği gibi veri odaklı süreçlerin verimlılıgıni artırır ve işbirliğini teşvik eder.
CAPTION DataOps Süreci2
MLOps (Machine Learning Operations)
- Makine öğrenimi projeleri için geliştirilen uygulama ve operasyonel pratikler bütünüdür.
- Makine öğrenimi modellerini geliştirme, eğitme, dağıtma ve sürdürme süreçlerini otomatize ederek, makine öğrenimi projelerinin verimliliğini ve güvenilirliğini artırır.
CAPTION MLOps Süreci3
AIOps (Artifical Intelligence Operations)
- Bilgisayar sistemlerinin ve ağların performansını, güvenliğini ve durumunu izlemek ve yönetmek için yapay zeka ve makine öğrenimi tekniklerini kullanan bir yaklaşımdır.
- Büyük miktarda veriyi analiz ederek, anormal durumları tespit eder, sorunları tahmin eder ve operasyonel verimlılıgı artırır.
CAPTION AIOps Süreci4
LLMOps (Large Language Model Operations)
- Büyük dil modelleri (LLM’ler) gibi büyük ölçekli dil modellerini geliştirme, dağıtma ve sürdürme süreçlerini yönetmek için kullanılan operasyonel ve yönetim pratiklerini kapsar.
- Yüksek hesaplama kaynaklarına ve veriye dayalı olarak LLM’Ieri egı me ve etkin bir şekilde kullanmak için gereken altyapıyı sağlar.
CAPTION LLMOps Süreçleri5
-
TrustBT Görsel Kaynağı ↩
-
TheDataOps Görsel Kaynağı ↩
-
VeriBilimiOkulu Gösel Kaynağı ↩
-
XongoLab Gösel Kaynağı ↩
-
Medium Görsel Kaynağı ↩




