SlideShare a Scribd company logo
1 of 14
1
NLP (Natural Language Processing)
Diskusi Pertemuan 4
Nama : Hendro Gunawan
NIM : 200401072103
Kelas : IT701
Penjelasan Dasar Pipeline
https://www.youtube.com/embed/1pJZufDvBng?rel=0&controls=0&showinfo=0
4.1. Perkenalan
Selami dunia Pipelines, sahabat baru Anda untuk inferensi model. Mereka berfungsi sebagai jalan tol,
menyederhanakan kode yang berbelit-belit dan mengubah fitur kompleks menjadi alat yang ramah
pengguna. Setiap alur dirancang untuk menawarkan API yang disederhanakan yang melayani berbagai
tugas.
Mereka serbaguna dan melayani berbagai tipe data, termasuk:
- Teks: Tangani tugas Pemrosesan Bahasa Alami seperti terjemahan, peringkasan, dan lainnya dengan
mudah. Tugas berbasis teks tidak pernah semulus ini!
- Audio: Pelajari ranah suara dengan saluran pipeline yang dirancang untuk data audio. Sempurna untuk
tugas-tugas seperti pengenalan suara atau klasifikasi musik.
- Visual: Melepaskan kekuatan model visi komputer. Ideal untuk tugas-tugas seperti klasifikasi gambar
atau deteksi objek.
- Inferensi Multimodal: Mengapa membatasi satu ketika Anda dapat menangani beberapa tipe data?
Dengan inferensi multimodal, Anda dapat menggabungkan input teks, audio, dan visual untuk wawasan
yang diperkaya.
Manfaatkan kekuatan pipeline dan tingkatkan proyekAIAnda dengan penanganan dan efisiensinya yang
mudah.
4.2. Keuntungan
Pipeline adalah senjata rahasia Anda untuk pengembangan AI yang efisien. Inilah alasannya:
1. Penggunaan yang Disederhanakan: Tidak ada lagi sakit kepala karena kode yang rumit. Saluran
pipeline membuat aplikasi menjadi mudah.
2. Abstraksi Detail Tingkat Rendah: Pertahankan fokus Anda pada gambaran besar. Saluran pipeline
menangani detail berpasir.
3. API Terpadu di Berbagai Tugas: Nikmati konsistensi di seluruh tugas. Satu API, beberapa aplikasi.
4. Dapat Beradaptasi dengan Model Kustom: Fleksibilitas yang terbaik! Saluran pipeline dapat
dengan mudah beradaptasi dengan model unik Anda.
2
Apakah ada veteran di rumah yang pernah mengalami kekuatan saluran pipeline di perpustakaan
pemrosesan bahasa? Kami ingin mendengar cerita Anda dari parit!
4.3. Memulai
Untuk menggunakanHugging Face pipelines, Mengimpor kelas alur dan menentukan tugas yang ingin
Anda lakukan.
Memanfaatkan pipeline() untuk Inferensi Teks
Memulai perjalanan analisis teks dengan fungsi pipeline(). Ini diarahkan untuk memenuhi berbagai tugas
yang berhubungan dengan teks:
1. Klasifikasi Teks: Analisis dan kategorikan data teks Anda dengan mudah.
2. Klasifikasi Zero-Shot: Mengklasifikasikan konten ke dalam kelas yang tidak pernah terlihat selama
pelatihan. Ini belajar, ditinggikan.
3. Pembuatan Teks: Buat teks baru yang bermakna dalam sekejap.
4. Penyelesaian Teks (Pengisian Mask): Biarkan alur mengisi kekosongan untuk Anda dalam teks
mask.
5. Klasifikasi Token: Mengklasifikasikan token individual dalam kalimat untuk tugas-tugas seperti
pengenalan entitas bernama.
6. Jawaban Pertanyaan: Ekstrak jawaban yang tepat untuk pertanyaan spesifik dari data teks Anda.
7. Ringkasan: Ubah teks panjang menjadi ringkasan yang ringkas dan bermakna.
8. Terjemahan: Lelehkan hambatan bahasa - terjemahkan teks ke dalam bahasa yang berbeda.
Siap menjelajah? Ayo selami!
!pip install -q transformers dataset evaluate
Jalankan fungsi ini:
from transformers import pipeline
def sentiment_analysis(text, device):
device = 0 if device else "cpu"
run = pipeline("sentiment-analysis", model="distilbert-base-uncased-
finetuned-sst-2-english", device=0)
result = run(text)
return result
def zero_shot_classification(text, kelas_zero_shot, device):
device = 0 if device else "cpu"
run = pipeline("zero-shot-classification", model="facebook/bart-large-
mnli", device=0)
3
result = run(text, candidate_labels=kelas_zero_shot.split(","))
return result
def text_generation(text, device):
device = 0 if device else "cpu"
run = pipeline("text-generation", model="gpt2", max_new_tokens=100,
device=0)
result = run(text)
return result
def fill_mask(text, device):
device = 0 if device else "cpu"
run = pipeline("fill-mask", model="distilroberta-base", device=0)
result = run(text)
return result
def ner(text, device):
device = 0 if device else "cpu"
run = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-
english", device=0)
result = run(text)
return result
def translation_en_to_fr(text, device):
device = 0 if device else "cpu"
run = pipeline("translation_en_to_fr", model="t5-base", device=0)
result = run(text)
return result
def func_pipeline(numb_task: int):
if numb_task == "1":
print("Example input: I've been waiting for a HuggingFace course my
whole life.")
input_text = input("Input: ")
device = input("Use GPU? (True or False)")
return sentiment_analysis(input_text, device)
elif numb_task == "2":
print("Example input: This is a course about the Transformers
library")
4
input_text = input("Input: ")
kelas_zero_shot = input("Input Zero Shot Class: ")
device = input("Use GPU? (True or False)")
return zero_shot_classification(input_text, kelas_zero_shot,
device)
elif numb_task == "3":
print("Example input: In this course, we will teach you how to")
input_text = input("Input: ")
device = input("Use GPU? (True or False)")
return text_generation(input_text, device)
elif numb_task == "4":
print("Example input: This course will teach you all about <mask>
models")
input_text = input("Input: ")
device = input("Use GPU? (True or False)")
return fill_mask(input_text, device)
elif numb_task == "5":
print("Example input: My name is Sylvain and I work at Hugging Face
in Brooklyn")
input_text = input("Input: ")
device = input("Use GPU? (True or False)")
return ner(input_text, device)
elif numb_task == "6":
print("Example input: How are you?")
input_text = input("Input: ")
device = input("Use GPU? (True or False)")
return translation_en_to_fr(input_text, device)
else:
return "Task not found!"
Dan coba fungsi ini:
input_task = input("Select number task: ")
# Task list:
# - 1. sentiment-analysis
# - 2. zero-shot-classification
# - 3. text-generation
# - 4. fill-mask
# - 5. ner
# - 6. translation_en_to_fr
5
print(func_pipeline(input_task))
Output:
Select number task: 1
Example input: I've been waiting for a HuggingFace course my whole life.
Input: Help me!
Use GPU? (True or False)1
Output:
[{'label': 'NEGATIVE', 'score': 0.574838399887085}]
4.4. Klasifikasi Teks
Anda mencoba memahami apakah sebuah kalimat membawa sentimen positif atau negatif, tetapi
proses pengkodeannya tampak menakutkan? 🤔 Jangan takut! Dengan memanfaatkan fungsi
pipeline() Hugging Face , Anda dapat dengan mudah mengatasi hal ini. Kode berikut
menyederhanakan proses:
Potongan kode ini menciptakan alat yang dapat menentukan sentimen teks:
from transformers import pipeline
classifier = pipeline("sentiment-analysis", model="distilbert-base-uncased-
finetuned-sst-2-english")
Now, let's use this tool to analyze a sentence:
classifier("Huggingface is easy to use, but needs a little improvement.")
Output:
[{'label': 'NEGATIVE', 'score': 0.9983354210853577}]
Bagaimana dengan beberapa kalimat? Tidak masalah: Tapi kali ini, mari kita hitung waktu yang
dibutuhkan model untuk melakukan inferensi
sentences = [
"I've been waiting for a HuggingFace course my whole life.",
"I hate this so much!"
]
classifier(sentences)
Output:
[{'label': 'POSITIVE', 'score': 0.9598048329353333}, {'label': 'NEGATIVE',
'score': 0.9994558691978455}]
Semua perhitungan kompleks terjadi di belakang layar. Fungsi alur dan model terlatih memberi Anda
label sentimen (positif/negatif), dan skor keyakinan untuk setiap teks. Sederhana, bukan? 😎
Tunggu!!!
6
Bagaimana dengan kinerjanya dalam bahasa yang tidak ada dalam data prapelatihan model
(Data prapelatihan BERT/distill-BERT hanya terdiri dari Bahasa Inggris)
# Example dataset from indonlp/indonlu - smsa
sentence_id = [
"menu warkop , tempat gaul . paling enak ke sini pagi hari masih sepi . kalau
siang - malam ramai bingitzzxz . cocok untuk anak baru besar atau remaja .
buat bincang bisnis tidak cocok terlalu ramai . kopi nya gayo arabica mantap
, sayang tidak ada manual brew . semuanya pakai expresso mesin . buat kawula
muda cocoklah"
]
classifier(sentence_id)
Output:
[{'label': 'NEGATIVE', 'score': 0.9971126317977905}]
Bagaimana menurutmu 🤔
Yakin labelnya harus positif kan?
Mari kita coba dengan model finetuned yang menggunakan dataset bahasa indonesia sebagai data
prapelatihan.
from transformers import pipeline
classifier_id = pipeline("sentiment-analysis", model="ayameRushia/roberta-
base-indonesian-1.5G-sentiment-analysis-smsa")
classifier_id("Pemilu 2 putaran.")
Output:
[{'label': 'NEUTRAL', 'score': 0.9991310238838196}]
4.5. Klasifikasi zero-shot
Anda memiliki pernyataan dan Anda ingin tahu tentang kategori mana yang dimilikinya: pendidikan,
politik, atau bisnis. Namun, Anda menemukan bagian pengkodean sedikit rumit, bukan? 🤔 Jangan
khawatir! Menggunakan fungsi pipeline() Hugging Face, Anda dapat dengan mudah
mengklasifikasikan pernyataan Anda.
Mari kita uraikan dengan kode berikut, Kita mulai dengan membuat alat untuk klasifikasi:
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="facebook/bart-
large-mnli")
Next, let's classify a sentence into one of the three categories:
classifier(
7
"This is a course about the Transformers library",
candidate_labels=["education", "politics", "computer"]
)
Output:
{'sequence': 'This is a course about the Transformers library', 'labels':
['education', 'computer', 'politics'], 'scores': [0.7643018960952759,
0.19639979302883148, 0.03929830342531204]}
What's happening behind the scenes? The pipeline function and the specified model combine their
powers to classify the provided statement into either "education", "politics", or "business", even though
it hasn't seen these labels before during its training.
This process is called 'zero-shot classification', and it's cool because the model is making an educated
guess based on its understanding of language and the relationships between words. Isn't that amazing?
😎
## Alternative, you can use model which used Bahasa Indonesia as
pretraining dataset, here we have "ilos-vigil/bigbird-small-indonesian-nli"
classifier_zero_id = pipeline("zero-shot-classification", model="ilos-
vigil/bigbird-small-indonesian-nli")
classifier_zero_id(
"Saya adalah mahasiswa Unsia",
candidate_labels=["pendidikan", "bisnis", "olahraga"]
)
Output:
Attention type 'block_sparse' is not possible if sequence_length: 16 <= num
global tokens: 2 * config.block_size + min. num sliding tokens: 3 *
config.block_size + config.num_random_blocks * config.block_size +
additional buffer: config.num_random_blocks * config.block_size = 704 with
config.block_size = 64, config.num_random_blocks = 3. Changing attention
type to 'original_full'...
{'sequence': 'Saya adalah mahasiswa Unsia',
'labels': ['pendidikan', 'olahraga', 'bisnis'],
'scores': [0.6308442950248718, 0.23793083429336548, 0.1312248706817627]}
4.6. Pembuatan Teks
Anda tertarik untuk menghasilkan teks baru berdasarkan input yang diberikan, tetapi detail
pengkodeannya tampak luar biasa, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline() Hugging
8
Face, Anda dapat menghasilkan teks dengan mudah. Lihat bagaimana kami menyederhanakannya di
bawah ini:
from transformers import pipeline
generator = pipeline("text-generation")
Selanjutnya, mari kita gunakan alat ini untuk menghasilkan beberapa teks:
generator("In this course, we will teach you how to")
Output:
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[{'generated_text': 'In this course, we will teach you how to create and
test interactive web applications and projects that can be used in both the
real world and on the fly. We will learn how to code and use JavaScript in
conjunction with your team to ensure your applications'}]
Inilah yang terjadi: generator, dibangun dengan model pra-terlatih, menggunakan string "Dalam kursus
ini, kami akan mengajari Anda cara" sebagai titik awal dan menghasilkan teks baru darinya.
Now, let's add a few more features to our text generation:
generator = pipeline("text-generation", model="distilgpt2")
generator(
"In this course, we will teach you how to",
max_length=30,
num_return_sequences=2,
)
Output:
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[{'generated_text': 'In this course, we will teach you how to use the
techniques to generate the correct results - including making the correct
results easily easy. You can see'},
{'generated_text': 'In this course, we will teach you how to apply the "A"
test. Each module uses the following concepts:nnnnnn'}]
generator(
"After today's course, I will",
max_length=30
)
Output:
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[{'generated_text': "After today's course, I will be going back in time and
giving you a full list as you learn more from this post.nnFor the"}]
Dalam hal ini, max_length=30 memberi tahu generator bahwa teks tidak boleh melebihi 30
token. num_return_sequences=2 meminta generator untuk menyediakan dua kemungkinan
kelanjutan dari teks input.
9
Jadi dengan bantuan baris kode ini, Anda dapat menghasilkan satu atau lebih kemungkinan kelanjutan
dari string yang diberikan. Bukankah itu rapi? 😎
Untuk setiap tugas, Anda dapat mencari model hub untuk berbagai model yang dapat Anda gunakan
dalam pipeline.
4.7. Pelengkapan teks (mask filling)
Anda mencoba menyelesaikan kalimat yang memiliki kata yang hilang tetapi bagian pengkodeannya
tampaknya agak sulit, bukan? 🤔 Tanpa stres! Dengan fungsi pipeline() dari Hugging Face, Anda
dapat mengisi bagian yang kosong dengan mudah. Berikut adalah versi sederhana dengan kode:
Mari kita mulai dengan membuat alat yang akan mengisi kata-kata mask dalam sebuah kalimat:
from transformers import pipeline
unmasker = pipeline("fill-mask")
Selanjutnya, kami menggunakan alat ini untuk menemukan kata yang hilang dalam kalimat:
unmasker("This course will teach you all about <mask> models", top_k=2)
Output:
[{'score': 0.19631513953208923, 'token': 30412, 'token_str': ' mathematical',
'sequence': 'This course will teach you all about mathematical models'},
{'score': 0.04449228197336197, 'token': 745, 'token_str': ' building',
'sequence': 'This course will teach you all about building models'}]
unmasker("After this course, I want to eat <mask> until I get full",
top_k=3
Output:
10
[{‘score’: 0.08515623956918716, ‘token’: 18236, ‘token_str’: ‘ pasta’,
‘sequence’: ‘After this course, I want to eat pasta until I get full’},
{‘score’: 0.0690297931432724, ‘token’: 1085, ‘token_str’: ‘ nothing’,
‘sequence’: ‘After this course, I want to eat nothing until I get full’},
{‘score’: 0.03407108783721924, ‘token’: 960, ‘token_str’: ‘ everything’,
‘sequence’: ‘After this course, I want to eat everything until I get full’}]
Inilah keajaiban di baliknya: Unmasker, dilengkapi dengan model pra-terlatih, melihat kalimat "Kursus
ini akan mengajarkan Anda semua tentang model <mask>". Ia memahami <mask> sebagai placeholder
untuk kata yang perlu diprediksi berdasarkan sisa kalimat. Parameter top_k=2 memberitahukannya
untuk menghasilkan dua kata teratas yang paling mungkin yang dapat mengisi bagian yang kosong.
Keren, bukan? 😎
4.8. Klasifikasi token
![NER](https://storage.googleapis.com/rg-ai-bootcamp/model_usage/ner.png)
Anda memiliki kalimat dengan nama, lokasi, atau organisasi, dan Anda ingin mengidentifikasi masing-
masing dari mereka. Tetapi aspek pengkodean tampaknya agak menakutkan, bukan? 🤔 Jangan
khawatir! Dengan fungsi pipeline() Hugging Face, Anda dapat dengan mudah mengidentifikasi
entitas ini. Mari kita sederhanakan dengan kode ini:
Pertama, buat alat yang dapat mengenali entitas bernama:
from transformers import pipeline
ner = pipeline("ner", grouped_entities=True)
Output:
No model was supplied, defaulted to dbmdz/bert-large-cased-finetuned-
conll03-english and revision f2482bf (https://huggingface.co/dbmdz/bert-
large-cased-finetuned-conll03-english).
Using a pipeline without specifying a model name and revision in production
is not recommended.
Selanjutnya, gunakan alat ini untuk menemukan entitas bernama dalam kalimat:
ner("My name is Hendro Gunawan and I study at Unsia in Jakarta")
Output:
[{'entity_group': 'PER',
'score': 0.9980493,
'word': 'Hendro Gunawan',
'start': 11, 'end': 25},
{'entity_group': 'ORG',
'score': 0.9482717,
11
'word': 'Unsia',
'start': 41,
'end': 46}, {'entity_group': 'LOC',
'score': 0.99793637,
'word': 'Jakarta',
'start': 50,
'end': 57}]
Inilah yang terjadi: Alat ner, dibangun dengan model pra-terlatih, akan menganalisis kalimat "Nama
saya Hendro Gunawan dan saya belajar di Unsia di Jakarta". Ini mengidentifikasi entitas bernama seperti
"Hendro Gunawan", "Unsia", dan "Jakarta", dan memberi label mereka dengan tepat sebagai 'orang',
'organisasi', 'lokasi' berdasarkan konteks mereka. Parameter grouped_entities=True
memungkinkan model untuk mengelompokkan kata-kata terkait ke dalam satu entitas. Hasilnya? Daftar
entitas yang terdeteksi masing-masing terkait dengan label dan skor kepercayaan. Rapi, ya? 😎
4.9. Jawaban Atas Pertanyaan
Anda memiliki sepotong teks dan pertanyaan yang terkait dengannya, tetapi menemukan jawabannya di
dalam teks itu tampaknya agak menakutkan, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline()
Hugging Face, Anda dapat dengan mudah menemukan jawabannya. Mari kita sederhanakan dengan
kode berikut:
Kita mulai dengan membuat alat yang dapat menjawab pertanyaan:
from transformers import pipeline
question_answerer = pipeline("question-answering")
Output:
No model was supplied, defaulted to distilbert-base-cased-distilled-squad
and revision 626af31 (https://huggingface.co/distilbert-base-cased-
distilled-squad).
Using a pipeline without specifying a model name and revision in production
is not recommended.
Selanjutnya, kami menggunakannya untuk menemukan jawaban atas pertanyaan:
question_answerer(
question="Who is my name?",
context="My name is Hendro Gunawan and I work at PT Indospring Tbk in
Gresik"
)
Output:
12
{'score': 0.9961605072021484,
'start': 11,
'end': 25,
'answer': 'Hendro Gunawan'}
Inilah bagian yang rapi: alat question_answerer, dilengkapi dengan model pra-terlatih, akan
menganalisis konteks "Nama saya Hendro Gunawan dan saya bekerja di PT Indospring Tbk di Gresik"
untuk menemukan jawaban atas pertanyaan "Di mana saya bekerja?". Hasil yang dikembalikan akan
menjadi jawaban atas pertanyaan, diekstraksi langsung dari konteks yang disediakan, bersama dengan
skor keyakinan tentang seberapa yakin itu tentang jawabannya. Luar biasa, bukan? 😎
4.10. Ringkasan
Anda memiliki teks yang agak panjang dan Anda ingin menemukan ringkasan singkat tanpa melalui
kerumitan pengkodean, bukan? 🤔 Jangan katakan lagi! Menggunakan fungsi pipeline() Hugging
Face, Anda dapat dengan mudah membuat ringkasan. Inilah cara kami menyederhanakannya dengan
kode:
Pertama, buat alat yang dapat meringkas teks:
from transformers import pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
Selanjutnya, mari kita gunakan untuk menghasilkan ringkasan:
summarizer("""
New York (CNN)When Liana Barrientos was 23 years old, she got married in
Westchester County, New York.
A year later, she got married again in Westchester County, but to a
different man and without divorcing her first husband.
Only 18 days after that marriage, she got hitched yet again. Then,
Barrientos declared "I do" five more times, sometimes only within two weeks
of each other.
In 2010, she married once more, this time in the Bronx. In an application
for a marriage license, she stated it was her "first and only" marriage.
""")
Output:
[{'summary_text': 'Liana Barrientos got married five times in less than a
decade. She said it was her "first and only" marriage in an application for
a marriage license. In 2010, she married once more, this time in the Bronx.
In 2011, she got married again in Westchester County, New York.'}]
Inilah bagian kerennya: alat peringkas, dibangun menggunakan model pra-terlatih, akan menganalisis
teks yang disediakan dan membuat ringkasan yang lebih pendek yang mempertahankan ide utama dan
detail penting dari teks asli, sehingga lebih mudah bagi Anda untuk mendapatkan intinya tanpa harus
membaca seluruh bagian. Efisien, bukan? 😎
13
4.11. Terjemahan
Anda memiliki frasa bahasa Inggris dan Anda ingin menerjemahkannya ke dalam bahasa Prancis, tetapi
bagian pengkodeannya tampaknya menantang, bukan? 🤔 Jangan khawatir! Dengan fungsi
pipeline() Hugging Face, Anda bisa mendapatkan terjemahan Anda dengan cepat. Berikut adalah
kode yang disederhanakan:
Pertama, buat alat yang dapat menerjemahkan bahasa Inggris ke Prancis:
from transformers import pipeline
translator = pipeline("translation_en_to_fr")
Output:
No model was supplied, defaulted to t5-base and revision 686f1db
(https://huggingface.co/t5-base).
Using a pipeline without specifying a model name and revision in production
is not recommended.
Selanjutnya, gunakan alat ini untuk menerjemahkan frasa bahasa Inggris:
translator("How are you?")
Output:
[{'translation_text': 'Comment êtes-vous?'}]
Di balik layar, alat penerjemah, dilengkapi dengan model pra-terlatih, akan mengambil frasa bahasa
Inggris "Apa kabar?" dan menerjemahkannya ke dalam bahasa Prancis. Hasilnya? Teks bahasa Inggris
Anda diterjemahkan dengan lancar ke bahasa Prancis. Luar biasa, bukan? 😎
Referensi
Syahid Abdullah, S. M. (2023, November 11). Natural Language Processing. Diambil kembali dari
Edlink Universitas Siber Asia: https://edlink.id/panel/classes/563118
Website
Slide Share: https://www.slideshare.net/HendroGunawan8/natural-language-processing-diskusi-4docx
Google Collab
14
https://colab.research.google.com/drive/196XY2fR__0jdUScd6s6VNQis0apCf0GA#scrollTo=PnBMd
kudiQHZ

More Related Content

Similar to Natural Language Processing Diskusi 4.docx

Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratn
Lanoy Jr.
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
zisgoo
 
Ayo membuat program pascal
Ayo membuat program pascalAyo membuat program pascal
Ayo membuat program pascal
Hary Purwoko
 

Similar to Natural Language Processing Diskusi 4.docx (20)

Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
3rd Workshop: Introduction to R (Institut Teknologi Bandung)
3rd Workshop: Introduction to R (Institut Teknologi Bandung)3rd Workshop: Introduction to R (Institut Teknologi Bandung)
3rd Workshop: Introduction to R (Institut Teknologi Bandung)
 
PENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTURPENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTUR
 
Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratn
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Part 24 Perintah Record with
Part 24 Perintah Record withPart 24 Perintah Record with
Part 24 Perintah Record with
 
Noprianto Antiword
Noprianto AntiwordNoprianto Antiword
Noprianto Antiword
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1
 
flowchart
flowchartflowchart
flowchart
 
PRESENTASI DATA ANALYS.pptx
PRESENTASI DATA ANALYS.pptxPRESENTASI DATA ANALYS.pptx
PRESENTASI DATA ANALYS.pptx
 
Pengantar PBO
Pengantar PBOPengantar PBO
Pengantar PBO
 
Algoritma dan struktur data i silabus
Algoritma dan struktur data i  silabusAlgoritma dan struktur data i  silabus
Algoritma dan struktur data i silabus
 
Pengulangan dan Seleksi
Pengulangan dan SeleksiPengulangan dan Seleksi
Pengulangan dan Seleksi
 
Laporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul ILaporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul I
 
How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggur
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal
 
Laporan Matlab
Laporan MatlabLaporan Matlab
Laporan Matlab
 
Ayo membuat program pascal
Ayo membuat program pascalAyo membuat program pascal
Ayo membuat program pascal
 
Makalah java
Makalah javaMakalah java
Makalah java
 

More from HendroGunawan8

More from HendroGunawan8 (20)

Pengolahan Citra Diskusi Pertemuan Ke-5.pdf
Pengolahan Citra Diskusi Pertemuan Ke-5.pdfPengolahan Citra Diskusi Pertemuan Ke-5.pdf
Pengolahan Citra Diskusi Pertemuan Ke-5.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
Diskusi Modul Sistem Pakar Sesi Ke-5.pdfDiskusi Modul Sistem Pakar Sesi Ke-5.pdf
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
Diskusi Modul Sistem Pakar Sesi Ke-5.pdfDiskusi Modul Sistem Pakar Sesi Ke-5.pdf
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
 
Estetstika Humanisme_Hendro Gunawan_200401072103_IT-05.docx
Estetstika Humanisme_Hendro Gunawan_200401072103_IT-05.docxEstetstika Humanisme_Hendro Gunawan_200401072103_IT-05.docx
Estetstika Humanisme_Hendro Gunawan_200401072103_IT-05.docx
 
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdfJaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
 
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdfEstetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdf
 
Pengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdfPengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdfDiskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdf
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
 
Estetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdfEstetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
 
Pengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdfPengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdf
 
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
 
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
 
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
 
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfJaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
 

Recently uploaded

Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
RIMA685626
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
ssuser35630b
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
JuliBriana2
 

Recently uploaded (20)

Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
E-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMAE-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMA
 
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAYSOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
 
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 

Natural Language Processing Diskusi 4.docx

  • 1. 1 NLP (Natural Language Processing) Diskusi Pertemuan 4 Nama : Hendro Gunawan NIM : 200401072103 Kelas : IT701 Penjelasan Dasar Pipeline https://www.youtube.com/embed/1pJZufDvBng?rel=0&amp;controls=0&amp;showinfo=0 4.1. Perkenalan Selami dunia Pipelines, sahabat baru Anda untuk inferensi model. Mereka berfungsi sebagai jalan tol, menyederhanakan kode yang berbelit-belit dan mengubah fitur kompleks menjadi alat yang ramah pengguna. Setiap alur dirancang untuk menawarkan API yang disederhanakan yang melayani berbagai tugas. Mereka serbaguna dan melayani berbagai tipe data, termasuk: - Teks: Tangani tugas Pemrosesan Bahasa Alami seperti terjemahan, peringkasan, dan lainnya dengan mudah. Tugas berbasis teks tidak pernah semulus ini! - Audio: Pelajari ranah suara dengan saluran pipeline yang dirancang untuk data audio. Sempurna untuk tugas-tugas seperti pengenalan suara atau klasifikasi musik. - Visual: Melepaskan kekuatan model visi komputer. Ideal untuk tugas-tugas seperti klasifikasi gambar atau deteksi objek. - Inferensi Multimodal: Mengapa membatasi satu ketika Anda dapat menangani beberapa tipe data? Dengan inferensi multimodal, Anda dapat menggabungkan input teks, audio, dan visual untuk wawasan yang diperkaya. Manfaatkan kekuatan pipeline dan tingkatkan proyekAIAnda dengan penanganan dan efisiensinya yang mudah. 4.2. Keuntungan Pipeline adalah senjata rahasia Anda untuk pengembangan AI yang efisien. Inilah alasannya: 1. Penggunaan yang Disederhanakan: Tidak ada lagi sakit kepala karena kode yang rumit. Saluran pipeline membuat aplikasi menjadi mudah. 2. Abstraksi Detail Tingkat Rendah: Pertahankan fokus Anda pada gambaran besar. Saluran pipeline menangani detail berpasir. 3. API Terpadu di Berbagai Tugas: Nikmati konsistensi di seluruh tugas. Satu API, beberapa aplikasi. 4. Dapat Beradaptasi dengan Model Kustom: Fleksibilitas yang terbaik! Saluran pipeline dapat dengan mudah beradaptasi dengan model unik Anda.
  • 2. 2 Apakah ada veteran di rumah yang pernah mengalami kekuatan saluran pipeline di perpustakaan pemrosesan bahasa? Kami ingin mendengar cerita Anda dari parit! 4.3. Memulai Untuk menggunakanHugging Face pipelines, Mengimpor kelas alur dan menentukan tugas yang ingin Anda lakukan. Memanfaatkan pipeline() untuk Inferensi Teks Memulai perjalanan analisis teks dengan fungsi pipeline(). Ini diarahkan untuk memenuhi berbagai tugas yang berhubungan dengan teks: 1. Klasifikasi Teks: Analisis dan kategorikan data teks Anda dengan mudah. 2. Klasifikasi Zero-Shot: Mengklasifikasikan konten ke dalam kelas yang tidak pernah terlihat selama pelatihan. Ini belajar, ditinggikan. 3. Pembuatan Teks: Buat teks baru yang bermakna dalam sekejap. 4. Penyelesaian Teks (Pengisian Mask): Biarkan alur mengisi kekosongan untuk Anda dalam teks mask. 5. Klasifikasi Token: Mengklasifikasikan token individual dalam kalimat untuk tugas-tugas seperti pengenalan entitas bernama. 6. Jawaban Pertanyaan: Ekstrak jawaban yang tepat untuk pertanyaan spesifik dari data teks Anda. 7. Ringkasan: Ubah teks panjang menjadi ringkasan yang ringkas dan bermakna. 8. Terjemahan: Lelehkan hambatan bahasa - terjemahkan teks ke dalam bahasa yang berbeda. Siap menjelajah? Ayo selami! !pip install -q transformers dataset evaluate Jalankan fungsi ini: from transformers import pipeline def sentiment_analysis(text, device): device = 0 if device else "cpu" run = pipeline("sentiment-analysis", model="distilbert-base-uncased- finetuned-sst-2-english", device=0) result = run(text) return result def zero_shot_classification(text, kelas_zero_shot, device): device = 0 if device else "cpu" run = pipeline("zero-shot-classification", model="facebook/bart-large- mnli", device=0)
  • 3. 3 result = run(text, candidate_labels=kelas_zero_shot.split(",")) return result def text_generation(text, device): device = 0 if device else "cpu" run = pipeline("text-generation", model="gpt2", max_new_tokens=100, device=0) result = run(text) return result def fill_mask(text, device): device = 0 if device else "cpu" run = pipeline("fill-mask", model="distilroberta-base", device=0) result = run(text) return result def ner(text, device): device = 0 if device else "cpu" run = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03- english", device=0) result = run(text) return result def translation_en_to_fr(text, device): device = 0 if device else "cpu" run = pipeline("translation_en_to_fr", model="t5-base", device=0) result = run(text) return result def func_pipeline(numb_task: int): if numb_task == "1": print("Example input: I've been waiting for a HuggingFace course my whole life.") input_text = input("Input: ") device = input("Use GPU? (True or False)") return sentiment_analysis(input_text, device) elif numb_task == "2": print("Example input: This is a course about the Transformers library")
  • 4. 4 input_text = input("Input: ") kelas_zero_shot = input("Input Zero Shot Class: ") device = input("Use GPU? (True or False)") return zero_shot_classification(input_text, kelas_zero_shot, device) elif numb_task == "3": print("Example input: In this course, we will teach you how to") input_text = input("Input: ") device = input("Use GPU? (True or False)") return text_generation(input_text, device) elif numb_task == "4": print("Example input: This course will teach you all about <mask> models") input_text = input("Input: ") device = input("Use GPU? (True or False)") return fill_mask(input_text, device) elif numb_task == "5": print("Example input: My name is Sylvain and I work at Hugging Face in Brooklyn") input_text = input("Input: ") device = input("Use GPU? (True or False)") return ner(input_text, device) elif numb_task == "6": print("Example input: How are you?") input_text = input("Input: ") device = input("Use GPU? (True or False)") return translation_en_to_fr(input_text, device) else: return "Task not found!" Dan coba fungsi ini: input_task = input("Select number task: ") # Task list: # - 1. sentiment-analysis # - 2. zero-shot-classification # - 3. text-generation # - 4. fill-mask # - 5. ner # - 6. translation_en_to_fr
  • 5. 5 print(func_pipeline(input_task)) Output: Select number task: 1 Example input: I've been waiting for a HuggingFace course my whole life. Input: Help me! Use GPU? (True or False)1 Output: [{'label': 'NEGATIVE', 'score': 0.574838399887085}] 4.4. Klasifikasi Teks Anda mencoba memahami apakah sebuah kalimat membawa sentimen positif atau negatif, tetapi proses pengkodeannya tampak menakutkan? 🤔 Jangan takut! Dengan memanfaatkan fungsi pipeline() Hugging Face , Anda dapat dengan mudah mengatasi hal ini. Kode berikut menyederhanakan proses: Potongan kode ini menciptakan alat yang dapat menentukan sentimen teks: from transformers import pipeline classifier = pipeline("sentiment-analysis", model="distilbert-base-uncased- finetuned-sst-2-english") Now, let's use this tool to analyze a sentence: classifier("Huggingface is easy to use, but needs a little improvement.") Output: [{'label': 'NEGATIVE', 'score': 0.9983354210853577}] Bagaimana dengan beberapa kalimat? Tidak masalah: Tapi kali ini, mari kita hitung waktu yang dibutuhkan model untuk melakukan inferensi sentences = [ "I've been waiting for a HuggingFace course my whole life.", "I hate this so much!" ] classifier(sentences) Output: [{'label': 'POSITIVE', 'score': 0.9598048329353333}, {'label': 'NEGATIVE', 'score': 0.9994558691978455}] Semua perhitungan kompleks terjadi di belakang layar. Fungsi alur dan model terlatih memberi Anda label sentimen (positif/negatif), dan skor keyakinan untuk setiap teks. Sederhana, bukan? 😎 Tunggu!!!
  • 6. 6 Bagaimana dengan kinerjanya dalam bahasa yang tidak ada dalam data prapelatihan model (Data prapelatihan BERT/distill-BERT hanya terdiri dari Bahasa Inggris) # Example dataset from indonlp/indonlu - smsa sentence_id = [ "menu warkop , tempat gaul . paling enak ke sini pagi hari masih sepi . kalau siang - malam ramai bingitzzxz . cocok untuk anak baru besar atau remaja . buat bincang bisnis tidak cocok terlalu ramai . kopi nya gayo arabica mantap , sayang tidak ada manual brew . semuanya pakai expresso mesin . buat kawula muda cocoklah" ] classifier(sentence_id) Output: [{'label': 'NEGATIVE', 'score': 0.9971126317977905}] Bagaimana menurutmu 🤔 Yakin labelnya harus positif kan? Mari kita coba dengan model finetuned yang menggunakan dataset bahasa indonesia sebagai data prapelatihan. from transformers import pipeline classifier_id = pipeline("sentiment-analysis", model="ayameRushia/roberta- base-indonesian-1.5G-sentiment-analysis-smsa") classifier_id("Pemilu 2 putaran.") Output: [{'label': 'NEUTRAL', 'score': 0.9991310238838196}] 4.5. Klasifikasi zero-shot Anda memiliki pernyataan dan Anda ingin tahu tentang kategori mana yang dimilikinya: pendidikan, politik, atau bisnis. Namun, Anda menemukan bagian pengkodean sedikit rumit, bukan? 🤔 Jangan khawatir! Menggunakan fungsi pipeline() Hugging Face, Anda dapat dengan mudah mengklasifikasikan pernyataan Anda. Mari kita uraikan dengan kode berikut, Kita mulai dengan membuat alat untuk klasifikasi: from transformers import pipeline classifier = pipeline("zero-shot-classification", model="facebook/bart- large-mnli") Next, let's classify a sentence into one of the three categories: classifier(
  • 7. 7 "This is a course about the Transformers library", candidate_labels=["education", "politics", "computer"] ) Output: {'sequence': 'This is a course about the Transformers library', 'labels': ['education', 'computer', 'politics'], 'scores': [0.7643018960952759, 0.19639979302883148, 0.03929830342531204]} What's happening behind the scenes? The pipeline function and the specified model combine their powers to classify the provided statement into either "education", "politics", or "business", even though it hasn't seen these labels before during its training. This process is called 'zero-shot classification', and it's cool because the model is making an educated guess based on its understanding of language and the relationships between words. Isn't that amazing? 😎 ## Alternative, you can use model which used Bahasa Indonesia as pretraining dataset, here we have "ilos-vigil/bigbird-small-indonesian-nli" classifier_zero_id = pipeline("zero-shot-classification", model="ilos- vigil/bigbird-small-indonesian-nli") classifier_zero_id( "Saya adalah mahasiswa Unsia", candidate_labels=["pendidikan", "bisnis", "olahraga"] ) Output: Attention type 'block_sparse' is not possible if sequence_length: 16 <= num global tokens: 2 * config.block_size + min. num sliding tokens: 3 * config.block_size + config.num_random_blocks * config.block_size + additional buffer: config.num_random_blocks * config.block_size = 704 with config.block_size = 64, config.num_random_blocks = 3. Changing attention type to 'original_full'... {'sequence': 'Saya adalah mahasiswa Unsia', 'labels': ['pendidikan', 'olahraga', 'bisnis'], 'scores': [0.6308442950248718, 0.23793083429336548, 0.1312248706817627]} 4.6. Pembuatan Teks Anda tertarik untuk menghasilkan teks baru berdasarkan input yang diberikan, tetapi detail pengkodeannya tampak luar biasa, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline() Hugging
  • 8. 8 Face, Anda dapat menghasilkan teks dengan mudah. Lihat bagaimana kami menyederhanakannya di bawah ini: from transformers import pipeline generator = pipeline("text-generation") Selanjutnya, mari kita gunakan alat ini untuk menghasilkan beberapa teks: generator("In this course, we will teach you how to") Output: Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation. [{'generated_text': 'In this course, we will teach you how to create and test interactive web applications and projects that can be used in both the real world and on the fly. We will learn how to code and use JavaScript in conjunction with your team to ensure your applications'}] Inilah yang terjadi: generator, dibangun dengan model pra-terlatih, menggunakan string "Dalam kursus ini, kami akan mengajari Anda cara" sebagai titik awal dan menghasilkan teks baru darinya. Now, let's add a few more features to our text generation: generator = pipeline("text-generation", model="distilgpt2") generator( "In this course, we will teach you how to", max_length=30, num_return_sequences=2, ) Output: Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation. [{'generated_text': 'In this course, we will teach you how to use the techniques to generate the correct results - including making the correct results easily easy. You can see'}, {'generated_text': 'In this course, we will teach you how to apply the "A" test. Each module uses the following concepts:nnnnnn'}] generator( "After today's course, I will", max_length=30 ) Output: Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation. [{'generated_text': "After today's course, I will be going back in time and giving you a full list as you learn more from this post.nnFor the"}] Dalam hal ini, max_length=30 memberi tahu generator bahwa teks tidak boleh melebihi 30 token. num_return_sequences=2 meminta generator untuk menyediakan dua kemungkinan kelanjutan dari teks input.
  • 9. 9 Jadi dengan bantuan baris kode ini, Anda dapat menghasilkan satu atau lebih kemungkinan kelanjutan dari string yang diberikan. Bukankah itu rapi? 😎 Untuk setiap tugas, Anda dapat mencari model hub untuk berbagai model yang dapat Anda gunakan dalam pipeline. 4.7. Pelengkapan teks (mask filling) Anda mencoba menyelesaikan kalimat yang memiliki kata yang hilang tetapi bagian pengkodeannya tampaknya agak sulit, bukan? 🤔 Tanpa stres! Dengan fungsi pipeline() dari Hugging Face, Anda dapat mengisi bagian yang kosong dengan mudah. Berikut adalah versi sederhana dengan kode: Mari kita mulai dengan membuat alat yang akan mengisi kata-kata mask dalam sebuah kalimat: from transformers import pipeline unmasker = pipeline("fill-mask") Selanjutnya, kami menggunakan alat ini untuk menemukan kata yang hilang dalam kalimat: unmasker("This course will teach you all about <mask> models", top_k=2) Output: [{'score': 0.19631513953208923, 'token': 30412, 'token_str': ' mathematical', 'sequence': 'This course will teach you all about mathematical models'}, {'score': 0.04449228197336197, 'token': 745, 'token_str': ' building', 'sequence': 'This course will teach you all about building models'}] unmasker("After this course, I want to eat <mask> until I get full", top_k=3 Output:
  • 10. 10 [{‘score’: 0.08515623956918716, ‘token’: 18236, ‘token_str’: ‘ pasta’, ‘sequence’: ‘After this course, I want to eat pasta until I get full’}, {‘score’: 0.0690297931432724, ‘token’: 1085, ‘token_str’: ‘ nothing’, ‘sequence’: ‘After this course, I want to eat nothing until I get full’}, {‘score’: 0.03407108783721924, ‘token’: 960, ‘token_str’: ‘ everything’, ‘sequence’: ‘After this course, I want to eat everything until I get full’}] Inilah keajaiban di baliknya: Unmasker, dilengkapi dengan model pra-terlatih, melihat kalimat "Kursus ini akan mengajarkan Anda semua tentang model <mask>". Ia memahami <mask> sebagai placeholder untuk kata yang perlu diprediksi berdasarkan sisa kalimat. Parameter top_k=2 memberitahukannya untuk menghasilkan dua kata teratas yang paling mungkin yang dapat mengisi bagian yang kosong. Keren, bukan? 😎 4.8. Klasifikasi token ![NER](https://storage.googleapis.com/rg-ai-bootcamp/model_usage/ner.png) Anda memiliki kalimat dengan nama, lokasi, atau organisasi, dan Anda ingin mengidentifikasi masing- masing dari mereka. Tetapi aspek pengkodean tampaknya agak menakutkan, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline() Hugging Face, Anda dapat dengan mudah mengidentifikasi entitas ini. Mari kita sederhanakan dengan kode ini: Pertama, buat alat yang dapat mengenali entitas bernama: from transformers import pipeline ner = pipeline("ner", grouped_entities=True) Output: No model was supplied, defaulted to dbmdz/bert-large-cased-finetuned- conll03-english and revision f2482bf (https://huggingface.co/dbmdz/bert- large-cased-finetuned-conll03-english). Using a pipeline without specifying a model name and revision in production is not recommended. Selanjutnya, gunakan alat ini untuk menemukan entitas bernama dalam kalimat: ner("My name is Hendro Gunawan and I study at Unsia in Jakarta") Output: [{'entity_group': 'PER', 'score': 0.9980493, 'word': 'Hendro Gunawan', 'start': 11, 'end': 25}, {'entity_group': 'ORG', 'score': 0.9482717,
  • 11. 11 'word': 'Unsia', 'start': 41, 'end': 46}, {'entity_group': 'LOC', 'score': 0.99793637, 'word': 'Jakarta', 'start': 50, 'end': 57}] Inilah yang terjadi: Alat ner, dibangun dengan model pra-terlatih, akan menganalisis kalimat "Nama saya Hendro Gunawan dan saya belajar di Unsia di Jakarta". Ini mengidentifikasi entitas bernama seperti "Hendro Gunawan", "Unsia", dan "Jakarta", dan memberi label mereka dengan tepat sebagai 'orang', 'organisasi', 'lokasi' berdasarkan konteks mereka. Parameter grouped_entities=True memungkinkan model untuk mengelompokkan kata-kata terkait ke dalam satu entitas. Hasilnya? Daftar entitas yang terdeteksi masing-masing terkait dengan label dan skor kepercayaan. Rapi, ya? 😎 4.9. Jawaban Atas Pertanyaan Anda memiliki sepotong teks dan pertanyaan yang terkait dengannya, tetapi menemukan jawabannya di dalam teks itu tampaknya agak menakutkan, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline() Hugging Face, Anda dapat dengan mudah menemukan jawabannya. Mari kita sederhanakan dengan kode berikut: Kita mulai dengan membuat alat yang dapat menjawab pertanyaan: from transformers import pipeline question_answerer = pipeline("question-answering") Output: No model was supplied, defaulted to distilbert-base-cased-distilled-squad and revision 626af31 (https://huggingface.co/distilbert-base-cased- distilled-squad). Using a pipeline without specifying a model name and revision in production is not recommended. Selanjutnya, kami menggunakannya untuk menemukan jawaban atas pertanyaan: question_answerer( question="Who is my name?", context="My name is Hendro Gunawan and I work at PT Indospring Tbk in Gresik" ) Output:
  • 12. 12 {'score': 0.9961605072021484, 'start': 11, 'end': 25, 'answer': 'Hendro Gunawan'} Inilah bagian yang rapi: alat question_answerer, dilengkapi dengan model pra-terlatih, akan menganalisis konteks "Nama saya Hendro Gunawan dan saya bekerja di PT Indospring Tbk di Gresik" untuk menemukan jawaban atas pertanyaan "Di mana saya bekerja?". Hasil yang dikembalikan akan menjadi jawaban atas pertanyaan, diekstraksi langsung dari konteks yang disediakan, bersama dengan skor keyakinan tentang seberapa yakin itu tentang jawabannya. Luar biasa, bukan? 😎 4.10. Ringkasan Anda memiliki teks yang agak panjang dan Anda ingin menemukan ringkasan singkat tanpa melalui kerumitan pengkodean, bukan? 🤔 Jangan katakan lagi! Menggunakan fungsi pipeline() Hugging Face, Anda dapat dengan mudah membuat ringkasan. Inilah cara kami menyederhanakannya dengan kode: Pertama, buat alat yang dapat meringkas teks: from transformers import pipeline summarizer = pipeline("summarization", model="facebook/bart-large-cnn") Selanjutnya, mari kita gunakan untuk menghasilkan ringkasan: summarizer(""" New York (CNN)When Liana Barrientos was 23 years old, she got married in Westchester County, New York. A year later, she got married again in Westchester County, but to a different man and without divorcing her first husband. Only 18 days after that marriage, she got hitched yet again. Then, Barrientos declared "I do" five more times, sometimes only within two weeks of each other. In 2010, she married once more, this time in the Bronx. In an application for a marriage license, she stated it was her "first and only" marriage. """) Output: [{'summary_text': 'Liana Barrientos got married five times in less than a decade. She said it was her "first and only" marriage in an application for a marriage license. In 2010, she married once more, this time in the Bronx. In 2011, she got married again in Westchester County, New York.'}] Inilah bagian kerennya: alat peringkas, dibangun menggunakan model pra-terlatih, akan menganalisis teks yang disediakan dan membuat ringkasan yang lebih pendek yang mempertahankan ide utama dan detail penting dari teks asli, sehingga lebih mudah bagi Anda untuk mendapatkan intinya tanpa harus membaca seluruh bagian. Efisien, bukan? 😎
  • 13. 13 4.11. Terjemahan Anda memiliki frasa bahasa Inggris dan Anda ingin menerjemahkannya ke dalam bahasa Prancis, tetapi bagian pengkodeannya tampaknya menantang, bukan? 🤔 Jangan khawatir! Dengan fungsi pipeline() Hugging Face, Anda bisa mendapatkan terjemahan Anda dengan cepat. Berikut adalah kode yang disederhanakan: Pertama, buat alat yang dapat menerjemahkan bahasa Inggris ke Prancis: from transformers import pipeline translator = pipeline("translation_en_to_fr") Output: No model was supplied, defaulted to t5-base and revision 686f1db (https://huggingface.co/t5-base). Using a pipeline without specifying a model name and revision in production is not recommended. Selanjutnya, gunakan alat ini untuk menerjemahkan frasa bahasa Inggris: translator("How are you?") Output: [{'translation_text': 'Comment êtes-vous?'}] Di balik layar, alat penerjemah, dilengkapi dengan model pra-terlatih, akan mengambil frasa bahasa Inggris "Apa kabar?" dan menerjemahkannya ke dalam bahasa Prancis. Hasilnya? Teks bahasa Inggris Anda diterjemahkan dengan lancar ke bahasa Prancis. Luar biasa, bukan? 😎 Referensi Syahid Abdullah, S. M. (2023, November 11). Natural Language Processing. Diambil kembali dari Edlink Universitas Siber Asia: https://edlink.id/panel/classes/563118 Website Slide Share: https://www.slideshare.net/HendroGunawan8/natural-language-processing-diskusi-4docx Google Collab