Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bina Model Bahasa Anda Sendiri: Panduan Mudah dengan Python dan NumPy

Bina Model Bahasa Anda Sendiri: Panduan Mudah dengan Python dan NumPy

Patricia Arquette
Patricia Arquetteasal
2024-10-19 08:10:30856semak imbas

Build Your Own Language Model: A Simple Guide with Python and NumPy

Kecerdasan Buatan ada di mana-mana pada masa kini, dan model bahasa adalah sebahagian besar daripada itu. Apabila ChatGPT diperkenalkan, anda mungkin tertanya-tanya bagaimana AI boleh meramalkan perkataan seterusnya dalam ayat atau menulis keseluruhan perenggan. Dalam tutorial ini, kami akan membina model bahasa yang sangat mudah tanpa bergantung pada rangka kerja mewah seperti TensorFlow atau PyTorch—hanya Python dan NumPy biasa.

Sebelum saya memulakan tutorial, izinkan saya menerangkan apa itu model bahasa besar (LLM).

  • LLM ialah model AI yang dilatih mengenai sejumlah besar data teks untuk memahami dan menjana bahasa manusia.
  • LLM ini mampu melakukan tugas seperti menjawab soalan, menulis esei dan juga mengadakan perbualan. Pada asasnya, LLM meramalkan perkataan seterusnya dalam urutan berdasarkan perkataan yang datang sebelum ini.

Dalam tutorial ini, kami mencipta versi yang lebih mudah ini—model bigram—kepada

Nampak bagus? Jom mulakan!?

Apa yang Kami Bina:

Kami akan mencipta model bigram, yang akan memberi anda idea asas tentang cara model bahasa berfungsi. Ia meramalkan perkataan seterusnya dalam ayat berdasarkan perkataan semasa. Kami akan memastikannya terus terang dan mudah untuk diikuti supaya anda akan mempelajari cara sesuatu berfungsi tanpa terkubur dengan terlalu terperinci.??


Langkah 1: Sediakan

Sebelum kita bermula, mari pastikan anda mempunyai Python dan NumPy sedia untuk digunakan. Jika anda belum memasang NumPy, pasangkannya dengan cepat dengan:

pip install numpy

Langkah 2: Memahami Asas

Model bahasa meramalkan perkataan seterusnya dalam ayat. Kami akan memastikan perkara mudah dan membina model bigram. Ini bermakna model kami akan meramalkan perkataan seterusnya hanya menggunakan perkataan semasa.

Kita akan mulakan dengan teks pendek untuk melatih model. Berikut ialah sampel kecil yang akan kami gunakan:

import numpy as np

# Sample dataset: A small text corpus
corpus = """Artificial Intelligence is the new electricity.
Machine learning is the future of AI.
AI is transforming industries and shaping the future."""

Langkah 3: Menyediakan Teks

Perkara pertama dahulu, kita perlu memecahkan teks ini kepada perkataan individu dan mencipta perbendaharaan kata (pada asasnya senarai semua perkataan unik). Ini memberi kita sesuatu untuk diusahakan.

# Tokenize the corpus into words
words = corpus.lower().split()

# Create a vocabulary of unique words
vocab = list(set(words))
vocab_size = len(vocab)

print(f"Vocabulary: {vocab}")
print(f"Vocabulary size: {vocab_size}")

Di sini, kami menukar teks kepada huruf kecil dan membahagikannya kepada perkataan. Selepas itu, kami membuat senarai perkataan unik untuk dijadikan sebagai perbendaharaan kata kami.

Langkah 4: Petakan Perkataan kepada Nombor

Komputer berfungsi dengan nombor, bukan perkataan. Jadi, kami akan memetakan setiap perkataan kepada indeks dan membuat pemetaan terbalik juga (ini akan membantu apabila kami menukarnya kembali kepada perkataan kemudian).

word_to_idx = {word: idx for idx, word in enumerate(vocab)}
idx_to_word = {idx: word for word, idx in word_to_idx.items()}

# Convert the words in the corpus to indices
corpus_indices = [word_to_idx[word] for word in words]

Pada asasnya, kami hanya menukar perkataan kepada nombor yang boleh difahami oleh model kami. Setiap perkataan mendapat nombornya sendiri, seperti "AI" mungkin menjadi 0 dan "pembelajaran" mungkin menjadi 1, bergantung pada susunan.

Langkah 5: Membina Model

Sekarang, mari kita ke intinya: membina model bigram. Kami ingin mengetahui kebarangkalian satu perkataan mengikuti yang lain. Untuk berbuat demikian, kami akan mengira kekerapan setiap pasangan perkataan (bigram) muncul dalam set data kami.

pip install numpy

Berikut ialah perkara yang berlaku:

Kami mengira kekerapan setiap perkataan mengikut perkataan lain (itu bigram).
Kemudian, kami menukar kiraan tersebut kepada kebarangkalian dengan menormalkannya.
Secara ringkas, ini bermakna jika "AI" sering diikuti dengan "adalah", kebarangkalian untuk pasangan itu akan lebih tinggi.

Langkah 6: Meramalkan Perkataan Seterusnya

Mari kita uji model kita dengan menjadikannya meramalkan perkataan seterusnya berdasarkan mana-mana perkataan tertentu. Kami melakukan ini dengan mengambil sampel daripada taburan kebarangkalian perkataan seterusnya.

import numpy as np

# Sample dataset: A small text corpus
corpus = """Artificial Intelligence is the new electricity.
Machine learning is the future of AI.
AI is transforming industries and shaping the future."""

Fungsi ini mengambil perkataan, mencari kebarangkaliannya dan memilih perkataan seterusnya secara rawak berdasarkan kebarangkalian tersebut. Jika anda lulus dalam "AI", model mungkin meramalkan sesuatu seperti "adalah" sebagai perkataan seterusnya.

Langkah 7: Hasilkan Ayat

Akhir sekali, mari kita hasilkan ayat keseluruhan! Kami akan mulakan dengan perkataan dan terus meramalkan perkataan seterusnya beberapa kali.

# Tokenize the corpus into words
words = corpus.lower().split()

# Create a vocabulary of unique words
vocab = list(set(words))
vocab_size = len(vocab)

print(f"Vocabulary: {vocab}")
print(f"Vocabulary size: {vocab_size}")

Fungsi ini mengambil perkataan awal dan meramalkan perkataan seterusnya, kemudian menggunakan perkataan itu untuk meramalkan perkataan berikut, dan seterusnya. Sebelum anda sedar, anda mempunyai ayat penuh!

Membungkus

Begitulah—model bahasa bigram ringkas yang dibina dari awal hanya menggunakan Python dan NumPy. Kami tidak menggunakan mana-mana perpustakaan mewah, dan anda kini mempunyai pemahaman asas tentang cara AI boleh meramalkan teks. Anda boleh bermain-main dengan kod ini, memberinya teks yang berbeza atau mengembangkannya dengan menggunakan model yang lebih maju.

Cubalah, dan beritahu saya bagaimana ia berlaku. Selamat mengekod!

Atas ialah kandungan terperinci Bina Model Bahasa Anda Sendiri: Panduan Mudah dengan Python dan NumPy. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn