Yasal düzenlemelere tabi sektörler için Gemma 4 ve AlloyDB Omni ile gelişmiş yapay zeka

1. Genel Bakış

Yasal düzenlemelere tabi, kritik öneme sahip sektörlerin yüksek riskli dünyasında kuruluşlar büyük bir ikilemle karşı karşıya: Siber güvenlik politikalarınız verilerinizin herkese açık internete asla erişemeyeceğini zorunlu kılıyorsa üretimi optimize etmek için en son yapay zeka teknolojisini nasıl kullanabilirsiniz? İntranetler ve genel internet kesinlikle birbirinden ayrılır ve hiçbir zaman birbirine temas etmez. Modern üretimde, ciddi ekipman arızalarını önlemek ve verimi optimize etmek için tahmine dayalı yapay zekaya büyük ihtiyaç duyuluyor. Ancak hassas telemetri günlüklerini, patentli alaşım formüllerini veya ERP verilerini herkese açık bir bulut API'sine göndermek, pratikte mümkün değil. Bu nedenle, veriler buluta gidemiyorsa bulutun verilere gelmesi gerekir.

Bu codelab'de, Gemma 4 ve AlloyDB Omni ile Google Cloud'un en gelişmiş veri ve yapay zeka araçlarını doğrudan bağlantısız, yüksek güvenlikli ortamlara taşıyacağız.

AlloyDB Omni: En Güvenli Veri Deposu

AlloyDB Omni'yi yüksek performanslı bir kasa olarak düşünebilirsiniz. Tamamen kendi güvenli intranetinizde indirip çalıştırdığınız, container mimarisine alınmış, kurumsal sınıf bir veritabanıdır.

  • Sorunsuz entegrasyon: Üretim sensörlerine (ör. VIM veya ağır pres) ve yerel ERP'lere (ör. Oracle R12) doğrudan bağlanır.
  • Yapay zekaya hazır depolama alanı: Yapay zeka destekli arama (pgvector) için vektör yerleştirmeleri kullanarak çok gizli işlem sayfalarını güvenli bir şekilde depolar.
  • Performans: Hem yoğun işlem iş yükleri hem de analitik yapay zeka işlemleri için standart PostgreSQL'den çok daha iyi performans gösterir.

Yerel Yapay Zeka Uzmanları: Gemma, TimesFM, TabFM

Uzak API'leri kullanmak yerine, açık ağırlıklı modelleri indirip yerel donanımınızda yerel olarak çalıştırarak API sızıntısını önleyebilirsiniz.

  • Gemma: Google'ın açık ağırlıklı LLM'si, Ar-Ge uzmanınız olarak görev yapar. Geçmiş günlükleri güvenli bir şekilde okuyabilir veya mekanik özellikleri tahmin etmek için karmaşık, patentli alaşım tariflerini analiz edebilir.
  • TimesFM (Sayısal Tahmin Aracı): LLM'ler bazen sayıları yanlış yorumlayabildiğinden ağır makineler için özel bir zaman serisi temel modeli gerekir. TimesFM,uzun vadeli sayısal ufukları (16.000 veri noktasına kadar) doğru bir şekilde tahmin eder, titreşim ve sıcaklık günlüklerini okuyarak ekipman arıza eğrilerini tam olarak tahmin eder. Bu işlemler tamamen çevrimdışı olarak gerçekleştirilir.
  • TabFM (Tabular Reasoner): LLM'ler metinleri, TimesFM ise sayısal trendleri işlerken TabFM, yapılandırılmış tablo verileri üzerinde akıl yürütme konusunda uzmanlaşmıştır. Karmaşık SQL birleştirmeleri yazmanıza gerek kalmadan karmaşık analizler yapmak ve doğrudan yoğun, çok sütunlu ERP veya CRM verilerinden soruları yanıtlamak için bu modeli şirket içinde güvenli bir şekilde çalıştırabilirsiniz.

Kullanım Örneği

1.500 tonluk dövme presinde tahmine dayalı bakım:

Bu devasa makinelerde plansız bir şekilde yaşanan kesintiler üretimi durdurarak çok fazla zaman ve kritik malzeme kaybına neden oluyor. Buna karşılık, planlı bakım genellikle pahalı parçaları çok erken değiştirerek bütçeyi boşa harcar. Hava boşluğunu bozmadan reaktif bakımdan tahmine dayalı bakıma geçmemiz gerekiyor.

b00c0159d3e6724.png

Neler öğreneceksiniz?

Bu codelab'de:

  1. Titreşim ve sıcaklık sensörü verilerini yerel olarak güvenli bir şekilde yakalamak için AlloyDB Omni'yi kullanacaksınız. Daha gerçekçi ve kullanışlı hale getirmek için daha fazla parametre ekleyebilirsiniz.
  2. Gemma'yı kullanarak geçmiş hata günlüklerindeki trendleri analiz etmeyi öğreneceksiniz.
  3. Arızaları tahmin eden ve ERP'nizde Varlık Yönetimi iş emirlerini otomatik olarak tetikleyen bir sistem oluşturacaksınız.

Hem yerel LLM'yi hem de AlloyDB Omni'yi temel hazırlık için Docker'ı kullanırız. Bu yaklaşımın en iyi yanı basitliğidir: AlloyDB Omni, kendi dahili ML-Agent sürecini otomatik olarak yönetebilir.

Şartlar

  • SQL hakkında temel bilgi sahibi olmak
  • Standart bir Linux sanal makinesi (ör. Ubuntu 22.04) veya Docker'ın yüklü olduğu yerel bir makine (macOS/Windows).

2. Yerel LLM'yi (Gemma 4) başlatma

Gemma'yı yerel olarak barındırmak için Ollama'yı kullanacağız. Ollama örneğini yapılandırmak için bir Dockerfile oluşturun:

  1. Yerel makinenizdeki bir terminalde aşağıdaki komutları tek tek çalıştırın:
mkdir -p gemma4-ollama && cd gemma4-ollama
cat << 'EOF' > Dockerfile
FROM ollama/ollama:latest
ENV OLLAMA_HOST=0.0.0.0:8080
ENV OLLAMA_MODELS=/root/.ollama
ENV MODEL=gemma4:e2b
RUN ollama serve & sleep 5 && ollama pull $MODEL
ENTRYPOINT ["ollama", "serve"]
EOF
  1. Container'ı ana makine ağında derleyip çalıştırın:
docker build -t gemma4-local .

docker run --network host -d -p 8080:8080 --name gemma4-ollama-instance gemma4-local
  1. Aşağıdaki komutu kullanarak test edebilirsiniz:
curl -X POST http://localhost:8080/api/generate -d '{
  "model": "gemma4:e2b",
  "prompt": "Hello! Explain Gemma 4 in a few sentences."
}'

3. AlloyDB Omni'yi yükleme ve başlatma

Ardından, AlloyDB Omni veritabanı kapsayıcısını ana makine ağında çalıştırın:

docker run -d \
  --name my-omni \
  --network host \
  -e POSTGRES_PASSWORD=omni \
  gcr.io/alloydb-omni/alloydbomni:18

Google Cloud projenizden AlloyDB Omni görüntüsünü bulamadıysa yukarıdaki docker run komutunu çalıştırmadan önce şu komutu çalıştırarak kimlik doğrulamayı deneyin:

gcloud auth login

Kimlik doğrulama tamamlandıktan sonra docker run komutunu tekrar çalıştırmayı deneyin.

4. Dahili ML-Agent'ı etkinleştirme

AlloyDB Omni'nin ML entegrasyon özellikleri varsayılan olarak devre dışıdır. Dahili ML-Agent işlemini ve yapay zeka sorgu motorunu etkinleştirmek için container'ın içindeki postgresql.conf dosyasını değiştirmemiz gerekir.

Gerekli işaretleri eklemek için şu tek komutu yürütün:

docker exec -it my-omni sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
omni_enable_ml_agent_process = 'on'
google_ml_integration.enable_model_support = 'on'
google_ml_integration.enable_ai_query_engine = 'on'
EOF"

Değişiklikleri uygulamak için kapsayıcıyı yeniden başlatın:

docker restart my-omni

Aşağıdaki komutu kullanarak psql'i başlatıp sorguları test etmeye başlayabilirsiniz:

docker exec -it my-omni psql -U postgres

5. Yapay zekayı yerel LLM'ye yönlendirme

psql (docker exec -it my-omni psql -U postgres) aracılığıyla veritabanına bağlandıktan sonra yerel, çevrimdışı modelinizi kaydedebilirsiniz. İnternete bağlanmak yerine model_request_url'yi 8080 numaralı bağlantı noktasında çalışan yerel Ollama sunucunuza yönlendirin.

Terminaldeki psql isteminden aşağıdaki SQL ifadelerini çalıştırın:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

CALL google_ml.create_model(
    model_id => 'gemma4:e2b',
    model_request_url => 'http://localhost:8080/api/generate',
    model_provider => 'custom',
    model_type => 'generic'
);

Artık tahminleri SQL'den güvenli bir şekilde çağırabilirsiniz:

SELECT google_ml.predict_row(
    'gemma4:e2b',
    '{"model": "gemma4:e2b", "prompt": "Why is the sky blue?", "stream": false}'
)->'response';

Çıkış:

4873acf20ded9dd1.png

Genel bir test durumu üzerinde deneme yaptığımıza göre, kullanım alanı verilerimizi de işin içine katalım.

6. Şema oluşturma ve verileri alma

Şimdi, kullanım alanımızı geliştirmek için gerekli şemayı ve verileri oluşturalım.

Terminaldeki psql isteminden aşağıdaki SQL ifadelerini çalıştırın:

-- ==============================================================================
-- 1. Setup the Schema for the 1500T Forging Press
-- ==============================================================================
CREATE TABLE IF NOT EXISTS forging_press_logs (
    log_id SERIAL PRIMARY KEY,
    timestamp TIMESTAMP NOT NULL DEFAULT NOW(),
    cycle_id VARCHAR(50) NOT NULL,
    hyd_pressure_bar NUMERIC(5,2),
    oil_temp_c NUMERIC(5,2),
    vib_z_rms NUMERIC(5,2)
);

-- Clean up any existing data if running multiple times
TRUNCATE TABLE forging_press_logs;

-- ==============================================================================
-- 2. Generate 1,000 Records of Simulated Data
-- ==============================================================================
-- 99% of data is 'Normal'
INSERT INTO forging_press_logs (cycle_id, hyd_pressure_bar, oil_temp_c, vib_z_rms)
SELECT
    'C-' || LPAD(i::text, 5, '0'),
    280.0 + (random() * 10 - 5), -- Pressure around 280
    42.0 + (random() * 5),       -- Temp around 42-47
    1.8 + (random() * 0.5)       -- Vib Z around 1.8-2.3
FROM generate_series(1, 990) AS i;

-- 1% of data is 'Anomalous' (Hydraulic pressure drop & vibration spike)
INSERT INTO forging_press_logs (cycle_id, hyd_pressure_bar, oil_temp_c, vib_z_rms)
SELECT
    'C-' || LPAD((990 + i)::text, 5, '0'),
    250.0 + (random() * 5),      -- Pressure dropping
    55.0 + (random() * 5),       -- Temp rising
    5.0 + (random() * 1.5)       -- High vibration
FROM generate_series(1, 10) AS i;

-- ==============================================================================
-- 3. Run the AI Prediction via AlloyDB Omni
-- ==============================================================================
-- Ensure the model is registered (assuming 'gemma4:e2b' is running locally on port 8080)
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

DO $$ 
BEGIN
    CALL google_ml.create_model(
        model_id => 'gemma4:e2b',
        model_request_url => 'http://localhost:8080/api/generate',
        model_provider => 'custom',
        model_type => 'generic'
    );
EXCEPTION WHEN OTHERS THEN 
    -- Ignore error if model already exists
END $$;

-- Query the most recent 5 potentially anomalous records and ask Gemma for an analysis
SELECT 
    cycle_id,
    hyd_pressure_bar,
    vib_z_rms,
    google_ml.predict_row(
        model_id => 'gemma4:e2b',
        request_body => json_build_object(
            'model', 'gemma4:e2b',
            'stream', false,
            'prompt', 'You are an industrial engineer. Analyze this sensor data from a 1500T forging press: Pressure=' || hyd_pressure_bar || ' bar, Vibration=' || vib_z_rms || ' mm/s. Normal pressure is ~280 bar and normal vibration is ~2.0 mm/s. Does this indicate a hydraulic failure? Answer in one short sentence.'
        )
    )->>'response' AS ai_analysis
FROM 
    forging_press_logs
WHERE 
    hyd_pressure_bar < 260 OR vib_z_rms > 4.5
ORDER BY 
    timestamp DESC
LIMIT 5;

Yukarıdaki ifadeleri tek tek çalıştırdığınızda şu sonucu elde edersiniz:

e8fabd49e72c225e.png

Verilerimiz hazır olduğuna göre tahmine dayalı bakım kontrol panelini oluşturmaya geçebiliriz.

7. Canlı Yayın Kontrol Paneli Oluşturma

Bu mimariyi tam olarak görselleştirmek için bir web uygulaması olan Python Flask kontrol paneline kolayca bağlayabilirsiniz.

SQL sorgularını manuel olarak çalıştırmak yerine, basit bir Flask arka ucu canlı sensör telemetrisini bir HTML kontrol paneline aktarır. Normal işlemler sırasında kontrol paneli yalnızca grafikleri çizer.

Ancak arka uç bir anormallik (ör. basınç düşüşü) algıladığında Python kodu, AlloyDB'deki google_ml.predict_row() işlevini anında tetikler. AlloyDB, bağlamı yerel Gemma modelinize sorunsuz bir şekilde iletir ve yapay zekanın teşhis bilgileri kontrol panelinde anlık olarak gösterilir.

💡 Codelab İpucu: Veritabanı kapsayıcısından çıkıp ana makine komut satırınıza dönmek için \q yazıp Enter tuşuna basın (veya yeni bir terminal sekmesi açın). Ardından, aşağıdaki Flask uygulama komutlarını çalıştırın.

Bunu yapmak için:

  1. Geliştirme ortamınıza / kod düzenleyicinize gidin ve terminali açın.
  2. Aşağıdaki komutu çalıştırın:
pip install flask psycopg2-binary
  1. Cloud Shell terminalinizde aşağıdaki komutu çalıştırarak kod deposunu proje dizininize klonlayın:
git clone https://github.com/AbiramiSukumaran/gemma4-alloydb-omni-demo
  1. Proje klasörüne gidin:
cd gemma4-alloydb-omni-demo
  1. Uygulamayı çalıştırın:
python3 app.py

Web tarayıcısını açın veya yerel ana makinenizde çalışan uygulamanın bağlantısını tıklayın.

db2249f5d7f87d4c.png

Canlı yayın kontrol panelinin işlevi

Flask uygulaması, 1.500 tonluk dövme presi için gerçek zamanlı izleme kontrol paneli görevi görür ve tamamen çevrimdışı, hava boşluklu bir sistemin tahmine dayalı bakımı nasıl gerçekleştirdiğini görselleştirir:

  • Sürekli Telemetri Akışı: Kontrol paneli, gerçek zamanlı titreşim (mm/sn) ve hidrolik basınç (bar) günlüklerini çizerek aktif fabrika operasyonlarını simüle etmek için dinamik olarak güncellenir.
  • Anlık Veritabanı Anomalileri: Bir sensör eşiğin altına düştüğünde (ör. basınç 260 barın altına düştüğünde) Python arka ucu, etkinliği işaretler ve AlloyDB Omni'deki google_ml.predict_row() işlevini hemen çağırır.
  • Yerelleştirilmiş Yapay Zeka Teşhisi: AlloyDB Omni, gerçek zamanlı bağlamı yerel Gemma 4 modelinize iletir. Gemma, şirket içi endüstri uzmanı olarak görev yapar.Telemetriyi analiz eder ve doğrudan kontrol panelinde bir teşhis uyarısı (ör. "Uyarı: Basınç düşüşü ve yüksek titreşim, potansiyel bir hidrolik conta arızasına işaret ediyor") yazdırır.
  • Sıfır Sızıntı: Tüm hesaplamalar, veritabanları, grafikler ve yapay zeka mantığı, internet bağlantısı gerekmeden tamamen yerel ana makinenizde çalışır.

8. Üretime Giden Yol

Bu mimariyi, yerel bir prototipten üretim düzeyinde bir fabrika katı dağıtımına ölçeklendirmek için internet bağlantısı olmayan güvenlikten ödün vermeden iki standart şirket içi kurulum yolundan birini seçebilirsiniz:

Üretim sanal makineleri ve Bare-Metal (Kapsayıcıya alınmamış):

Kapsayıcılaştırmanın tercih edilmediği veya güvenlik politikası gereği ana makine işletim sistemiyle derin entegrasyonun gerekli olduğu ortamlarda resmi AlloyDB Omni RPM paketini kullanarak dağıtım yapabilirsiniz. AlloyDB Omni Red Hat RPM düzenleyicisi tarafından desteklenen bu dağıtım; düşük gecikmeli performans, SELinux uyumluluğu ve otomatik yüksek kullanılabilirlik (HA) özelliklerini doğrudan yerel RHEL veya Rocky Linux sanal makinelerinize tamamen çevrimdışı olarak getirir.

Üretim Kubernetes ve HA:

Fabrika altyapınızda yerel orkestrasyon kullanılıyorsa AlloyDB Omni'yi Kubernetes'e dağıtabilirsiniz . Resmî AlloyDB Omni Kubernetes Operator'ı kullanarak eşzamanlı bekleme replikaları, otomatik yerel yedeklemeler ve özel salt okunur uç noktalar içeren güçlü bir veritabanı kümesini bildirimli olarak dağıtabilirsiniz.

9. Tebrikler!

Savunma sanayisi ve internete bağlı olmayan benzer sektörler için artık katı güvenlik ile teknolojik inovasyon arasında seçim yapmak gerekmiyor. Kapsayıcıya alınmış veritabanlarını, özel proxy modellerini ve açık ağırlıklı yapay zekayı egemen donanımlarda dağıtarak fabrikanızı akıllı ve öngörüye dayalı bir güç merkezine dönüştürebilir, aynı zamanda dijital korumanızı tamamen koruyabilirsiniz.