Mencari Alternatif Google Colab

Setelah lebih dari dua tahun tulisan pertama tentang Google Colab, pada artikel ini kami mau sharing pengalaman mencari alternatif google colab beberapa pekan terakhir. Apakah ada yang sebanding?

Setelah browsing artikel sejenis dan juga lihat-lihat akun twitter aktivis machine learning, akhirnya menemukan ada dua platform yang menarik untuk dicoba, Gradient dan Jarvis Labs. Perlu dicatat, kedua platform itu berbayar. Alhamdulillah karena dibantu dana penelitian, proses eksplorasi ini tidak jadi pikiran tambahan tagihan hehe.

Artikel ini akan berfokus pada alternatif berbayar Gradient dan Jarvis Labs, insyaAllah akan ada artikel lain yang akan bercerita alternatif yang juga bisa dibandingkan dalam hal sama-sama gratis.

Kenapa Tidak Google Colab?

Sebenernya, secara fitur, Google Colab sudah memiliki banyak keunggulan: terintegrasi dengan github dan drive, mudah dipakai, dan termasuk yang tadi saya sebut di awal, gratis. Fitur-fitur itu sudah sangat cukup untuk hampir kebanyakan pengguna. Tapi, beberapa pengguna yang cukup intens akan merasakan beberapa kekurangan yang membuat mereka harus mencari alternatif google colab.

Beberapa kekurangan yang mungkin dirasakan:

1. Google Colab tidak bisa menjamin jenis hardware yang kita peroleh. Bahkan ketika kita menggunakan Google Colab Pro+ yang berbayar (sementara ini belum tersedia di Indonesia), kita tidak bisa tahu tepatnya GPU apa yang akan kita peroleh atau berapa kapasitas Memory yang bisa kita gunakan maksimal.

2. Google Colab “tidak menyediakan” persistent storage, atau tempat penyimpanan permanen . Sebenarnya Colab sudah memberi fitur untuk menghubungkan google drive dengan colab, tetapi bagi pengguna yang intens codingnya dan membangun sistem yang terdiri dari banyak source code file dan data, penghubungan ini terasa tidak alami dan bisa jadi mengganggu kinerja. Apalagi kalau sampai lupa/gagal menyimpan model karena masalah ini.

3. Terbatas hanya format notebook. Meskipun ada beberapa trik yang bisa digunakan, google colab secara alami hanya menyediakan format notebook (.ipynb). Bagi yang biasa coding dengan bentuk script file (.py), atau perlu menggunakan terminal, sementara ini belum bisa dilakukan.

4. Waktu runtime yang terbatas. Jika colab kita tidak aktif dalam beberapa menit koneksi bisa diputus. Dan untuk running program dibatasi maksimal 12 jam, setelah itu akan ada jeda (kayak sesi cooling down) beberapa waktu untk kita bisa gunakan Google Colab lagi.

Alternatif Google Colab Berbayar

1. Gradient by Paperspace

Pertama kali dengar Gradient ketika mengikuti course dari Fast.ai. Saat itu mereka merekomendasikan Gradient yang menyediakan GPU dan fitur-fitur yang lebih baik dibanding Colabsecara gratis. Tapi sayangnya, di versi yang sekarang kita perlu membayar (menjadi member) untuk menggunakan Gradient. Gradient menyediakan beragam jenis pilihan CPU/GPU yang bisa digunakan, dari yang standard seperti RTX4000 sampai yang sangat bagus seperti A100.

Continue reading
question answer chatbot

Question Answer (QA) Chatbot dengan DistillBERT Transformer

Tutorial kali ini kita akan membuat model Question Answer (QA), dengan menggunakan library transformer untuk NLP yakni Hugging Face. QA yang kita buat dapat menerima pertanyaan dalam format layaknya pertanyaan yang diajukan manusia, dan memberikan jawaban yang sesuai dengan konteks yang kita harapkan. QA adalah task yang menarik dan berbeda dengan retrieval, karena kita bukan searching keyword jawaban di database, meskipun perkembangan search engine bisa dikombinasi dengan task ini (bisa dibaca artikel menarik di sini https://blog.google/search-language-understanding-bert).

Ada 4 tahapan yang akan dieksplor di tutorial ini:

  1. Membuat Question Answer dengan DistillBERT
  2. Pre-trained Model Transformer Khusus
  3. Membuat Chatbot Telegram
  4. Integrasi Model Transformer QA ke Chatbot Telegram

1. Membuat Question Answer dengan DistillBERT

DistillBERT adalah varian BERT dengan kecepatan inferensi yang baik sehingga cocok digunakan untuk Question Answer system. Perbedaan DistillBERT, BERT, dan varian lain bisa juga dibaca di sini: https://towardsdatascience.com/bert-roberta-distilbert

Workflow
  1. Buat file Colab
  2. Install library transformers Hugging Face.
  3. Import class pipeline dari library transformer. Class ini memuat pre-trained model untuk berbagai task NLP dalam bahasa Inggris. Ada beberapa pilihan task NLP yang bisa kita gunakan misalnya sentiment analysis, translation, question-answering dll. Task yang akan kita gunakan adalah question-answering.
  4. Inisiasi pembuatan obect dengan class pipeline, isikan parameter pertama dengan "question-answering". Step ini akan mendownload model untuk task question-answering sehingga hanya perlu di-run sekali. Inisiasi ini akan otomatis menggunakan model transformer DistillBERT, yang kecepatan inferensinya baik.
  5. Object bisa digunakan dengan mengisikan pertanyaan pada parameter question dan konteks pertanyaan pada parameter context.

Sebagai contoh akan diberikan pertanyaan “Where was Pink Floyd established?” dengan konteks “Pink Floyd was an English rock band formed in London in 1965.“. Implementasinya dituliskan pada code di bawah ini.

# Install library transformer dan Import class pipeline
!pip install transformers 
from transformers import pipeline

# Inisiasi object dan Penggunaan pre-trained model QA
qa_model = pipeline('question-answering')
qa_model(question='Where is Pink Floyd established?',
         context='Pink Floyd was an English rock band formed in London in 1965.')
Continue reading