Terapkan Model Pembelajaran Mesin Anda dengan Python

python
pembelajaran mesin
model ML
Terapkan Model Pembelajaran Mesin Anda dengan Python cover image

Saat bekerja di bidang ilmu data, Anda biasanya menghadapi tantangan baru setelah menyelesaikan serangkaian pelatihan, penyesuaian, dan peningkatan yang panjang. Selamat telah membangun model ML yang memiliki performa baik dan menjawab kebutuhan Anda. Sekarang tantangan yang Anda hadapi adalah bagaimana Anda bisa menghadirkan teknologi bagus ini kepada pengguna yang dituju? Atau mungkin bagaimana Anda bisa mengkomunikasikan hasil Anda secara efektif dengan pemangku kepentingan di perusahaan Anda? Atau bahkan bagaimana Anda bisa membagikan hasil model Anda dengan kolega Anda secara efektif untuk kolaborasi yang lebih baik?

Menerapkan pembelajaran mesin terkadang sulit karena kita akan menggunakan teknologi dan teknik di luar keahlian yang biasa diperlukan untuk membuat model.

Pada artikel ini, kita akan menemukan cara untuk menerapkan model pembelajaran mesin hanya menggunakan python. Dan dalam prosesnya, kami akan membangun model terjemahan mesin dan halaman web.

Jadi inilah langkah-langkah yang akan kita lihat:

  1. Menggunakan model terjemahan mesin Huggingface.

  2. Menemukan Anvil dan membuat UI web untuk model kami.

  3. Menghubungkan backend dan frontend serta melayani dunia dengan pekerjaan kita!

Membangun model Terjemahan Mesin

Huggingface adalah komunitas AI yang berupaya “mendemokratisasikan pembelajaran mesin yang baik”. Dalam inisiatif ini, Anda dapat menemukan banyak model terlatih tentang tugas pembelajaran mesin yang berbeda: segmentasi gambar, teks ke ucapan, pembuatan teks… dan juga terjemahan mesin!

Terjemahan mesin hanyalah tugas penerjemahan antara dua bahasa yang dilakukan oleh perangkat lunak, dalam kasus kami, model pembelajaran mesin yang dibuat dengan transformator.

Transformator adalah arsitektur pembelajaran mendalam yang didasarkan pada perhatian. Ayo jalankan di mesin Anda!

Kami akan menggunakan transformers, perpustakaan python untuk mengunduh model MT dan melakukan terjemahan.

pip install torch
pip install transformers

Setelah menginstal paket yang diperlukan, impor modul berikut:

from transformers import MarianTokenizer, MarianMTModel
from typing import List

Mari kita dapatkan model yang menerjemahkan kalimat dari bahasa Jerman ke bahasa Inggris. Kami membutuhkan nama model:

src= "de"
trg= "en"
mname= f'Helsinki-NLP/opus-mt-{src}-{trg}'

Sekarang mari impor model terlatih dan tokenizer menggunakan baris berikut:

model = MarianMTModel.from_pretrained(mname)
tok = MarianTokenizer.from_pretrained(mname)

Ukuran downloadnya sekitar 300mb, setelah selesai Anda dapat menyimpan modelnya di direktori lokal menggunakan yang berikut ini:

model.save_pretrained("./models/de_en/")
tok.save_pretrained("./models/de_en/tok")

Mari kita modelnya:

text="ich habe keine ahnung"
gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
print(words[0])

Sekarang Anda seharusnya memiliki terjemahan bahasa Inggris dari kalimat tersebut yang disimpan di kata[0].

Temukan Anvil dan buat UI web

Anvil adalah kerangka kerja dan serangkaian solusi yang memungkinkan Anda membangun aplikasi web hanya menggunakan kode python. Ini memiliki editor seret dan lepas untuk membangun UI web dan memungkinkan Anda menghubungkan kode dari mesin lokal Anda ke UI yang Anda buat dan menghosting aplikasi Anda dengan memberi Anda tautan yang dapat Anda bagikan.

Jadi mari kita mulai membuat aplikasi dari di sini. Pilih aplikasi kosong lalu desain material.

Anda akan melihat sesuatu seperti ini:

Anvil

Sekarang saya akan mengandalkan Anda untuk menggunakan editor dan membuat sesuatu yang mirip dengan berikut ini:

Anvil Editor

Dalam UI sederhana ini, kami memiliki dua DropDown untuk memilih bahasa sumber dan tujuan. Kami juga memiliki TextBox untuk memasukkan teks sumber dan komponen richText untuk menampilkan teks terjemahan. Anda juga dapat melihat Tombol untuk memulai tugas terjemahan.

Untuk menyinkronkan dengan cuplikan kode yang akan Anda lihat di bawah, berikan ID yang sama ke komponen. Di bawah ini Anda dapat menemukan contoh di mana Anda dapat mengatur id suatu komponen:

Anvil Editor Rename Component

ID yang kami gunakan adalah:

Komponen

tanda pengenal

DropDown bahasa sumber source_lang DropDown bahasa tujuan langka_tujuan Kotak Teks bahasa sumber teks_sumber Teks RichText yang diterjemahkan translated_text

Fungsi klik

Kami telah menambahkan tombol yang digunakan untuk memulai terjemahan. Dari editor Anda, klik tombol lalu gulir ke bawah di panel properti. Di bagian bawah, Anda akan melihat bagian acara. Di zona teks di sebelah “klik”, masukkan “terjemahkan” dan kemudian klik panah di sebelah kanan zona teks ini.

Ini akan membawa Anda ke tampilan kode di mana Anda akan melihat beberapa kode python yang dibuat secara otomatis.

Anda akan menemukan bahwa landasan secara otomatis menambahkan fungsi yang disebut terjemahan. Ini akan dipanggil setiap kali tombol di UI kita diklik.

Berikut tampilan fungsinya:

def translate(self, **event_args):
 """This method is called when the button is clicked"""
 src_lang=self.source_lang.selected_value #get the selected source language
 dest_lang=self.dest_lang.selected_value #get the selected destination language
 text=self.source_text.text   #get the text written in source language
 #call the server function
 translated_text=anvil.server.call("translation",text,src_lang,dest_lang)
 #write the translated text to the UI
 self.translated_text.content=translated_text

Fungsi ini melakukan 3 tugas utama:

  1. Dapatkan Informasi dari UI

  2. Kirim informasi ke backend kami menggunakan fungsi server “terjemahan” (akan kami jelaskan di bagian selanjutnya)

  3. Kirim teks terjemahan ke UI.

Fungsi server

Mari fokus pada baris kode ini:

translated_text=anvil.server.call("translation",text,src_lang,dest_lang)

Kami menggunakan anvil.server.call untuk memanggil fungsi server bernama translation yang akan kami definisikan dalam kode backend kami di mesin lokal.

Fungsi ini akan berfungsi sebagai koneksi antara UI web dan kode backend yang akan dijalankan pada model terjemahan mesin kami.

Seperti yang Anda perhatikan, kami juga mengirimkan parameter fungsi ini ke fungsi anvil.server.call.

Terapkan model MT kami

Mari kita instal landasannya terlebih dahulu

pip install anvil-uplink

Sekarang kami telah membangun antarmuka web kami di editor landasan dan kami memiliki blok kode dasar untuk menjalankan model terjemahan mesin dan melakukan terjemahan.

Langkah selanjutnya adalah mendefinisikan fungsi server yang telah kita bahas pada bagian sebelumnya.

Berikut ini kode fungsinya:

@anvil.server.callable
def translation(text,src,dest):
 lang_code={"English":"en",
       "German":"de",
       "French":"fr",
       "Spanish":"es"}
      model=MarianMTModel.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest])
 tok=MarianTokenizer.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest]+"/tok")
 gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
 words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
 return words[0]

Fungsi tersebut akan mengambil 3 parameter yang dikirim dari frontend, mengonversi bahasa sumber dan tujuan ke kode bahasa masing-masing, lalu memuat model dan menghitung terjemahannya serta mengembalikan hasilnya.

Cara mendeklarasikan fungsi ini ke anvil sebagai fungsi server adalah dengan menggunakan dekorator

@anvil.server.dapat dipanggil.

Kami memiliki satu langkah terakhir yang harus dilakukan untuk menghubungkan kode backend yang dapat kami jalankan di notebook jupyter ke aplikasi landasan kami.

Buka editor online anvil, klik ikon roda gigi, lalu klik “Uplink…”.

Lihat layar di bawah ini

Anvil Editor Uplink

Anda akan melihat popup muncul, lalu klik “Aktifkan uplink server untuk aplikasi ini” untuk mendapatkan kode koneksi yang Anda salin.

Anvil Uplink

Anda menempelkan kode ke baris kode berikut:

anvil.server.connect("code here")

Baris ini akan memulai server yang menghubungkan skrip kode lokal atau notebook jupyter Anda ke aplikasi landasan dengan fungsi translation yang terdaftar sebagai fungsi server.

Langkah terakhir

Sampai titik ini, server backend Anda berjalan dengan fungsi server yang memuat model terjemahan mesin dan melakukan terjemahan setelah mempertimbangkan parameter yang dikirim dari frontend. Angka ini merangkum apa yang telah kita terapkan bersama sejauh ini.

Anvil Uplink

Langkah terakhir adalah menjalankan aplikasi dengan mengklik tombol run di bagian tengah atas editor landasan.

Setelah menjalankan aplikasi, Anda melihat di pojok kanan atas tombol "publikasikan aplikasi ini" yang akan memberi Anda tautan yang dapat Anda bagikan untuk mengakses aplikasi dan melakukan terjemahan!

Kesimpulan

Dengan mengikuti artikel ini Anda telah dapat menerapkan model MT dan membangun antarmuka web untuk menggunakannya.

Masih banyak yang perlu diketahui tentang cara menerapkan model secara efektif menggunakan landasan, tetapi sekarang Anda memiliki dasar-dasar untuk memulai perjalanan penerapan dan meningkatkan potensi pengetahuan Anda sebelumnya tentang Python untuk melakukan lebih banyak hal!

Datanglah ke Salah Satu Lokakarya Gratis Kami

Mulailah karir Anda sebagai data scientist dengan lokakarya gratis, yang didasarkan pada kurikulum yang dapat disesuaikan dan dipandu oleh pakar industri.


Career Services background pattern

Layanan Karir

Contact Section background image

Mari tetap berhubungan

Code Labs Academy © 2024 Semua hak dilindungi undang-undang.