Lewati ke konten utama

Fine-Tuning Google Gemma: Meningkatkan LLM dengan Instruksi yang Disesuaikan

Pelajari cara menjalankan inferensi pada GPU/TPU dan melakukan fine-tuning model Gemma 7b-it terbaru pada dataset role-play.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Ini masa yang menarik di dunia AI. Perusahaan besar seperti Google, Meta, dan Twitter sangat fokus membuat large language model (LLM) mereka bersifat open-source. Baru-baru ini, tim Google DeepMind meluncurkan Gemma—keluarga LLM yang ringan dan open-source, dibangun dari riset dan teknologi yang sama dengan yang digunakan untuk membuat model Gemini dari Google.

Logo Gemma

Gambar Sumber

Di sini, kita akan mempelajari model Gemma, cara mengaksesnya menggunakan GPU dan TPU cloud, serta cara melatih model Gemma 7b-it terbaru pada dataset role-play.

Memahami Gemma dari Google

Gemma (kata Latin untuk “batu mulia”) adalah keluarga model teks-ke-teks, decoder-only, yang terbuka dan dikembangkan oleh berbagai tim di Google, khususnya Google DeepMind. Model ini terinspirasi oleh model Gemini dan dirancang agar ringan serta kompatibel dengan semua kerangka kerja utama.

Google merilis bobot model untuk dua ukuran Gemma, yaitu Gemma 2B dan Gemma 7B, yang tersedia dalam varian pra-latih dan instruction-tuned seperti Gemma 2B-it dan Gemma 7B-it.

Seperti yang kita ketahui, Gemma berbagi komponen teknis serupa dengan Gemini, mencapai performa terbaik di kelasnya untuk ukurannya dibanding model open-source lain seperti Llama-2 dari Meta. Model ini melampaui Llama-2 pada semua tolok ukur LLM.

Benchmark Gemma. Gemma vs Llama-2

Gambar Sumber

Gemma mendukung beragam alat dan sistem, termasuk alat multi-framework seperti Keras 3.0, PyTorch native, JAX, dan Hugging Face Transformers. Model ini juga berjalan di berbagai jenis perangkat populer, termasuk laptop, desktop, IoT, seluler, dan cloud.

Anda kini dapat menjalankan inferensi dan supervised fine-tuning (SFT) pada Cloud TPU gratis menggunakan kerangka pembelajaran mesin favorit Anda seperti Keras 3.0.

Google juga memperkenalkan Responsible Generative AI Toolkit bersama Gemma untuk memberikan panduan, alat penting, dan metode klasifikasi keamanan agar pengembang dapat membuat aplikasi AI yang lebih aman.

Jika Anda baru di dunia AI dan LLM, disarankan untuk mengikuti jalur keterampilan AI Fundamentals. Ini akan membekali Anda dengan pengetahuan praktis tentang topik AI populer seperti ChatGPT, large language models, generative AI, dan lainnya.

Cara Mengakses Model Gemma dari Google

Mengakses Gemma sangat mudah; Anda dapat mulai menggunakannya secara gratis di HuggingChat dan Poe. Anda bahkan dapat menggunakannya secara lokal dengan mengunduh bobot model dari Hugging Face dan menggunakan GPT4ALL atau LMStudio.

Pada bagian ini, kita akan belajar memuat model Gemma dan menjalankan inferensi menggunakan GPU dan TPU gratis yang disediakan oleh platform Kaggle.

Menjalankan Inferensi Gemma di TPU

Anda dapat membuka Keras/Gemma, gulir ke bawah, pilih varian model “gemma_instruct_2b_en”, dan klik tombol “New Notebook”. Ini akan meluncurkan Cloud Notebook dengan model Gemma di direktori input.

Implementasi Keras untuk model Gemma

Pilih akselerator “TPU VM v3-8” melalui panel kanan dan gulir ke bawah.

Mengakses Keras Gemma v2 di Kaggle

Pastikan Anda telah memasang dan memperbarui semua pustaka Python yang diperlukan.

!pip install -q tensorflow-cpu
!pip install -q -U keras-nlp tensorflow-hub
!pip install -q -U keras>=3
!pip install -q -U tensorflow-text

Untuk memeriksa jumlah TPU yang tersedia, Anda dapat menggunakan pustaka `jax` dan fungsi `device` untuk menampilkan perangkat TPU. Kita memiliki akses ke 8 TPU.

import jax

jax.devices()
[TpuDevice(id=0, process_index=0, coords=(0,0,0), core_on_chip=0),
 TpuDevice(id=1, process_index=0, coords=(0,0,0), core_on_chip=1),
 TpuDevice(id=2, process_index=0, coords=(1,0,0), core_on_chip=0),
 TpuDevice(id=3, process_index=0, coords=(1,0,0), core_on_chip=1),
 TpuDevice(id=4, process_index=0, coords=(0,1,0), core_on_chip=0),
 TpuDevice(id=5, process_index=0, coords=(0,1,0), core_on_chip=1),
 TpuDevice(id=6, process_index=0, coords=(1,1,0), core_on_chip=0),
 TpuDevice(id=7, process_index=0, coords=(1,1,0), core_on_chip=1)]

Sekarang kita akan mengaktifkan TPU untuk Keras 3 dengan mengatur `jax` sebagai backend Keras.

import os

os.environ["KERAS_BACKEND"] = "jax"

Setelah penyiapan awal, mengakses model Gemma dan menghasilkan respons cukup mudah. Kita akan menggunakan pustaka `keras_nlp` untuk memuat model dari Kaggle lalu memberikan prompt ke fungsi `generate`.

import keras
import keras_nlp

model_name = "/kaggle/input/gemma/keras/gemma_instruct_2b_en/2"
gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset(model_name)
prompt = "Can you share an interesting fact about Leonardo da Vinci?"

gemma_lm.generate(prompt, max_length=100)

Berikut hasilnya:

"Can you share an interesting fact about Leonardo da Vinci?\n\nSure, here's an interesting fact about Leonardo da Vinci:\n\nLeonardo da Vinci was born in a village called Vinci, Italy, which is now part of the city of Florence."

Anda dapat dengan mudah menjalankan notebook Kaggle (Gemma-2B-V2 Simple Inference on TPU) dan mulai menghasilkan respons menggunakan TPU gratis.

Menjalankan Inferensi Gemma di GPU

Sekarang, kita akan belajar menghasilkan respons menggunakan GPU dan menggunakan kerangka kerja transformer sebagai pengganti Keras.

Anda dapat membuka google/gemma, gulir ke bawah, pilih transformers, pilih varian model “7b-it”, dan klik tombol “New Notebook”. Ini akan meluncurkan Cloud Notebook dengan versi model Gemma yang tepat di direktori input.

Catatan: Anda bahkan dapat menggulir lebih jauh ke bawah halaman untuk mengakses bagian inferensi. Di sini, Anda dapat menguji semua jenis varian Gemma dengan memberikan prompt dan menghasilkan respons. Cepat dan praktis.

Di notebook baru, ubah judul lalu ubah akselerator ke GPT T4 x2.

Mengakses implementasi transformers dari model Gemma

Pasang dan perbarui semua paket Python yang diperlukan.

%%capture
%pip install -U bitsandbytes
%pip install -U transformers
%pip install -U accelerate

Kita tidak dapat memuat seluruh model Gemma 7b-it di GPU Kaggle karena keterbatasan VRAM. Untuk mengatasinya, kita akan memuat model menggunakan kuantisasi 4-bit dengan konfigurasi tipe NF4 menggunakan BitsAndBytes. Juga, muat tokenizer.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, AutoConfig

modelName = "/kaggle/input/gemma/transformers/7b-it/2"

bnbConfig = BitsAndBytesConfig(
    load_in_4bit = True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

model = AutoModelForCausalLM.from_pretrained(
    modelName,
    device_map = "auto",
    quantization_config=bnbConfig
)

tokenizer = AutoTokenizer.from_pretrained(modelName)

Buat templat prompt sederhana dengan System, User, dan AI. Kita meminta model untuk menghasilkan kode untuk menampilkan pola bintang menggunakan Python.

Teruskan prompt final melalui tokenizer lalu ke model untuk menghasilkan prediksi. Kemudian kita dekode prediksi tersebut dan ubah respons menjadi string. Terakhir, kita gunakan fungsi Markdown untuk menampilkan respons dalam gaya Markdown.

from IPython.display import Markdown, display
system =  "You are a skilled software engineer who consistently produces high-quality Python code."
user = "Write a Python code to display text in a star pattern."

prompt = f"System: {system} \n User: {user} \n AI: "
    
inputs = tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")

outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)

text = tokenizer.decode(outputs[0], skip_special_tokens=True)

Markdown(text.split("AI:")[1])

Seperti yang kita lihat, Gemma 7b-it bekerja dengan sangat baik.

Output model Gemma untuk prompt pembuatan kode

Anda dapat menjalankan kodenya sendiri dengan mengkloning notebook Kaggle Gemma-7B Simple Inference on GPU.

Cara Fine-Tune Gemma dari Google: Panduan Langkah demi Langkah

Pada bagian ini, kita akan belajar melakukan fine-tuning model Gemma 7b-it pada dataset hieunguyenminh/roleplay. Kita akan menggunakan Kaggle GPU P100 sebagai akselerator.

Baca panduan kami, An Introductory Guide to Fine-Tuning LLMs, untuk memahami tiap langkah secara rinci.

Menyiapkan lingkungan

Penting untuk memasang dan memperbarui semua paket Python yang diperlukan agar terhindar dari error.

%%capture 
%pip install -U bitsandbytes 
%pip install -U transformers 
%pip install -U peft 
%pip install -U accelerate 
%pip install -U trl
%pip install -U datasets

Muat semua paket yang akan kita gunakan untuk memuat dataset, model, dan tokenizer, serta melakukan supervised fine-tuning (SFT) dan inferensi.

from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    BitsAndBytesConfig,
    HfArgumentParser,
    TrainingArguments,
    pipeline,
    logging,
)
from peft import (
    LoraConfig,
    PeftModel,
    prepare_model_for_kbit_training,
    get_peft_model,
)
import os, torch, wandb
from datasets import load_dataset
from trl import SFTTrainer

Tentukan nama untuk model dasar dan dataset, serta nama model hasil fine-tuning, yang nanti akan kita unggah ke Hugging Face Hub.

Variabel-variabel ini akan digunakan pada berbagai tahap, seperti memuat dataset dan model, tokenisasi, pelatihan, dan penyimpanan model.

base_model = "/kaggle/input/gemma/transformers/7b-it/2"
dataset_name = "hieunguyenminh/roleplay"
new_model = "gemma-7b-it-v2-role-play"

Masuk ke Hugging Face CLI

Kita akan memuat kunci API Hugging Face dari secrets Kaggle (variabel lingkungan).

from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
secret_hf = user_secrets.get_secret("HUGGINGFACE_TOKEN")

Gunakan kunci API untuk masuk ke Hugging Face CLI. Ini memungkinkan kita mengakses model dan juga menyimpannya di Hugging Face Hub.

!huggingface-cli login --token $secret_hf

Inisialisasi workspace W&B

Inisialisasi workspace Weights & Biases (W&B) menggunakan kunci API W&B. Kita akan menggunakan workspace ini untuk melacak pelatihan model.

secret_wandb = user_secrets.get_secret("wandb")

# Monitoring the LLM
wandb.login(key = secret_wandb)
run = wandb.init(
    project='Fine tuning Gemma 7B', 
    job_type="training", 
    anonymous="allow"
)

Memuat dataset

Ambil 1000 baris pertama data dari dataset role play yang tersedia di Hugging Face dan tampilkan sampel kolom `text`.

#Loading the dataset
dataset = load_dataset(dataset_name, split="train[0:1000]")
dataset["text"][100]

Dataset kita berisi percakapan berkelanjutan antara pengguna dan asisten berdasarkan gaya selebritas. Ini adalah role-playing.

Baris ke-100 dari dataset Role play

Memuat model dan tokenizer

Untuk menghindari masalah memori, kita akan memuat model dalam presisi 4-bit menggunakan BitsAndBytesConfig. Ini akan memuat model langsung dari Kaggle tanpa mengunduh.

# Load base model(Gemma 7B-it)
bnbConfig = BitsAndBytesConfig(
    load_in_4bit = True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

model = AutoModelForCausalLM.from_pretrained(
        base_model,
        quantization_config=bnbConfig,
        device_map="auto"
)

model.config.use_cache = False # silence the warnings. Please re-enable for inference!
model.config.pretraining_tp = 1
model.gradient_checkpointing_enable()

Muat tokenizer dan konfigurasikan pad token untuk memperbaiki masalah dengan fp16.

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(base_model)
tokenizer.padding_side = 'right'
tokenizer.pad_token = tokenizer.eos_token
tokenizer.add_eos_token = True
tokenizer.add_bos_token, tokenizer.add_eos_token

Menambahkan lapisan adapter

Dengan menambahkan lapisan adapter ke model kita, kita dapat melakukan fine-tune lebih efisien. Alih-alih melatih seluruh model, kita hanya perlu memperbarui parameter pada lapisan adapter, yang akan mempercepat proses pelatihan.

Modul target kita adalah 'o_proj', 'q_proj', 'up_proj', 'v_proj', 'k_proj', 'down_proj', dan 'gate_proj'.

model = prepare_model_for_kbit_training(model)
peft_config = LoraConfig(
    lora_alpha=16,
    lora_dropout=0.1,
    r=64,
    bias="none",
    task_type="CAUSAL_LM",
    target_modules=['o_proj', 'q_proj', 'up_proj', 'v_proj', 'k_proj', 'down_proj', 'gate_proj']
)
model = get_peft_model(model, peft_config)

Melatih model

Untuk memulai pelatihan, kita perlu menentukan hiperparameter. Parameter ini mendasar dan dapat dimodifikasi untuk meningkatkan proses pelatihan dan kinerja model.

Jika Anda ingin memahami tiap hiperparameter dengan lebih baik, kami sarankan membaca tutorial Fine-Tuning LLaMA 2.

training_arguments = TrainingArguments(
    output_dir="./gemma-7b-v2-role-play",
    num_train_epochs=1,
    per_device_train_batch_size=2,
    gradient_accumulation_steps=1,
    optim="paged_adamw_32bit",
    save_strategy="epoch",
    logging_steps=100,
    logging_strategy="steps",
    learning_rate=2e-4,
    fp16=False,
    bf16=False,
    group_by_length=True,
    report_to="wandb"
)

Untuk menyiapkan pelatih Supervised Fine-tuning (SFT), kita perlu memberinya model, dataset, konfigurasi Lora, tokenizer, dan parameter pelatihan sebagai argumen.

trainer = SFTTrainer(
    model=model,
    train_dataset=dataset,
    peft_config=peft_config,
    max_seq_length= 512,
    dataset_text_field="text",
    tokenizer=tokenizer,
    args=training_arguments,
    packing= False,
)

Sekarang kita akan menjalankan proses pelatihan menggunakan fungsi `.train`. Fine-tuning memakan waktu sekitar 1 jam 1 menit. Loss pelatihan menurun secara bertahap, dan Anda bahkan dapat menurunkannya lagi dengan menambah jumlah epoch.

trainer.train()

langkah pelatihan dan training loss

Akhiri sesi W&B dan konfigurasikan model untuk inferensi.

wandb.finish()
model.config.use_cache = True

riwayat run w&b

Kami melatih model pada dua jenis akselerator GPU. Tampaknya P100 dua kali lebih cepat dibanding T4 2X.

metrik model online w&b

Menyimpan model

Sekarang kita akan menyimpan adapter model secara lokal lalu mengunggah model ke Hugging Face hub. Perintah `push_to_hub` akan membuat repo dan mendorong konfigurasi adapter dan bobot adapter ke hub.

# Save the fine-tuned model
trainer.model.save_pretrained(new_model)
trainer.model.push_to_hub(new_model, use_temp_dir=False)

Catatan: Ini hanyalah adapter—menyimpan model lengkap ukurannya sekitar 18 GB.

mengunggah adapter model ke hugging face

Kita dapat melihat model di Hugging Face dengan membuka halaman profil dan memeriksa model baru.

model Gemma hasil fine-tune di Hugging Face

Gambar Sumber

Inferensi model

Untuk menghasilkan respons menggunakan model hasil fine-tune, kita perlu mengikuti beberapa langkah.

Pertama, kita akan membuat prompt dalam format dataset role-play. Lalu, kita teruskan prompt ke tokenizer dan selanjutnya ke model untuk menghasilkan prediksi.

Untuk menerjemahkan output prediksi menjadi teks yang dapat dibaca, kita akan mendekodenya menggunakan tokenizer.

prompt = '''<|system|>Harry Potter is a wizard known for his distinctive lightningshaped scar and his remarkable journey through magic and battles against the dark wizard Voldemort.
<|user|> What is the meaning of hate? 
<|assistant|>'''
    
inputs = tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")

outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)

text = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(text)

Tidak buruk sama sekali. Model juga mengajukan pertanyaan lanjutan yang relevan.

Output model Gemma hasil fine-tune 1

Coba lagi dengan karakter baru: Michel Jordan.

prompt = '''<|system|>Michael Jordan an NBA legend known for his competitive drive six championship wins with the Chicago Bulls.
<|user|> What motivates you in the life? 
<|assistant|>'''
    
inputs = tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")

outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)

text = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(text)

Menurut saya, kita telah melakukan pekerjaan yang baik dalam menyesuaikan model dasar agar memahami gaya baru dalam menghasilkan respons.

Output model Gemma hasil fine-tune 2

Jika Anda mengalami kesulitan melakukan fine-tuning model pada dataset Anda, silakan lihat notebook Kaggle Gemma-7B 4-bit QLoRA Fine-tuning.

Anda juga dapat mempelajari cara fine-tune model dengan performa tertinggi dan terbaik di kelasnya dengan mengikuti tutorial Fine-Tuning OpenAI's GPT-4.

Inferensi Gemma 7B dengan Adapter Role Play

Untuk menghasilkan respons, kita tidak bisa sekadar memuat adapter yang disimpan. Kita perlu menggabungkan adapter hasil fine-tune dengan model dasar (Gemma 7b-it).

Pada bagian ini, kita akan mempelajari cara memuat model dasar dan adapter lalu menggabungkannya untuk menghasilkan respons.

1. Pasang semua pustaka Python yang diperlukan.

%%capture
%pip install -U bitsandbytes
%pip install -U transformers
%pip install -U accelerate
%pip install -U peft

2. Muat kunci API dari secrets Kaggle dan masuk ke Hugging Face CLI.

from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
secret_hf = user_secrets.get_secret("HUGGINGFACE_TOKEN")
!huggingface-cli login --token $secret_hf

3. Sediakan lokasi model dasar dan adapter.

base_model = "/kaggle/input/gemma/transformers/7b-it/2"
new_model = "kingabzpro/gemma-7b-it-v2-role-play"

4. Muat model dasar.

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
from peft import PeftModel
import torch



base_model_reload = AutoModelForCausalLM.from_pretrained(
        base_model,
        return_dict=True,
        low_cpu_mem_usage=True,
        torch_dtype=torch.float16,
        device_map="auto",
        trust_remote_code=True,
)

5. Muat dan gabungkan adapter dengan model dasar

model = PeftModel.from_pretrained(base_model_reload, new_model)

memuat adapter model hasil fine-tune dari Hugging Face hub

6. Muat tokenizer

tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"

7. Teruskan prompt melalui tokenizer lalu ke model untuk menghasilkan respons.

prompt = '''<|system|> Alan Watts's colorful journey explored the depths of philosophy and religion, weaving together Eastern wisdom and Western insights.
<|user|> What does the self actually amount to? 
<|assistant|>'''
    
inputs = tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")

outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)

text = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(text)

Alan Watts menjelaskan makna “diri” dengan sangat tepat.

Output model Gemma hasil fine-tune 3

Sumber kode untuk menggabungkan model dasar dengan adapter tersedia di Gemma 7B Inference with Role Play Adopter.

Daftarkan diri Anda untuk webinar Fine-Tuning Your Own Llama 2 untuk menonton tutorial video dari pakar industri.

Penutup

Google memulai revolusi large language model bertahun-tahun lalu namun belum mampu memanfaatkannya. Kini, perusahaan melakukan perubahan yang diperlukan pada strateginya untuk kembali menjadi pemimpin industri.

Dengan peluncuran model open-source terbaru, Gemma, Google mengambil langkah untuk mendorong riset AI dan pada gilirannya akan mampu membangun model yang bahkan lebih baik di masa depan.

Perusahaan akhirnya menyadari kekuatan komunitas open-source dan bagaimana mereka dapat mengambil manfaat darinya. Dengan memanfaatkan platform cloud, kerangka kerja native, serta platform seperti Kaggle, Colab, dan Vertex AI, Google bertujuan memaksimalkan komunitas open-source dan tetap unggul dalam persaingan.

Dalam tutorial ini, kita telah mempelajari model Gemma dan cara mengaksesnya menggunakan GPU dan TPU cloud. Kita juga membahas proses fine-tuning model Gemma 7b-it terbaru menggunakan dataset role-play.

Langkah berikutnya dalam perjalanan AI Anda adalah membuat aplikasi berbasis LLM sendiri. Lihat tutorial cara membangun aplikasi LLM dengan LangChain dan pelajari cara menggunakan kerangka kerja Python yang kuat untuk mengembangkan aplikasi AI mutakhir.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.

Topik
Kecerdasan Buatan

Pelajari Lebih Lanjut tentang LLM

Kursus

Mengembangkan Aplikasi LLM dengan LangChain

3 jam
51.9K
Temukan cara membangun aplikasi bertenaga AI menggunakan LLM, prompt, chain, dan agent di LangChain.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat SelengkapnyaLihat Selengkapnya