A lightweight but powerful alternative to NumPy and Transformers
Project description
README.md Lengkap untuk Lazar
# Lazar
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
Lazar adalah paket Python ringan yang menyediakan fungsionalitas mirip NumPy dan Transformers, tetapi diimplementasikan murni dalam Python tanpa dependensi eksternal. Dibangun untuk kasus penggunaan dimana instalasi paket berat tidak memungkinkan atau tidak diinginkan.
## Fitur Utama
- **Komputasi Numerik Efisien**
- Array multidimensi dengan operasi vektorisasi
- Operasi aljabar linear (dot product, matmul)
- Fungsi matematika dasar (exp, log, sin, cos, sqrt)
- **Pemrosesan Bahasa Alami**
- Tokenizer cepat dengan dukungan special tokens
- Model bahasa sederhana dengan embeddings
- Preprocessing teks dasar
- **Optimasi Performa**
- Manajemen memori efisien dengan `array.array`
- Operasi batch dan lazy evaluation
- Sistem benchmarking terintegrasi
## Instalasi
Lazar tersedia di PyPI dan dapat diinstall menggunakan pip:
```bash
pip install lazar
Penggunaan Cepat
Operasi Array
from lazar import LazarArray, exp
# Membuat array
a = LazarArray([1, 2, 3])
b = LazarArray([4, 5, 6])
# Operasi dasar
c = a + b
d = a.dot(b)
# Fungsi matematika
e = exp(a)
# Reshape array
matrix = LazarArray(range(9)).reshape((3, 3))
Pemrosesan Teks
from lazar.nl import LazarTokenizer
# Inisialisasi tokenizer
tokenizer = LazarTokenizer()
tokenizer.fit(["Hello world!", "This is a test sentence."])
# Encode/decode teks
encoded = tokenizer.encode("Hello test")
decoded = tokenizer.decode(encoded)
Benchmarking
from lazar.utils import benchmark, compare_with_numpy
@benchmark
def compute_operations(a, b):
return (a + b) * (a - b)
# Bandingkan dengan NumPy
result = compare_with_numpy(
lambda x, y: x.dot(y),
lambda x, y: x.dot(y), # Fungsi NumPy
LazarArray([1, 2, 3]),
LazarArray([4, 5, 6])
)
Dokumentasi Lengkap
Array Operations
LazarArray(data, dtype='float64'): Membuat array barureshape(new_shape): Mengubah bentuk arraydot(other): Perkalian dot productsum(): Penjumlahan elemen
Mathematical Functions
exp(arr): Exponentiallog(arr): Natural logarithmsin(arr),cos(arr): Trigonometrisqrt(arr): Square root
NLP Module
LazarTokenizer(): Tokenizer teksfit(texts): Membangun vocabularyencode(text): Konversi teks ke token IDsdecode(ids): Konversi token IDs ke teks
LazarLanguageModel(vocab_size): Model bahasa sederhanaembed(token_ids): Membuat word embeddingspredict_next_token(embeddings): Prediksi token berikutnya
Requirements
Lazar dirancang untuk bekerja dengan Python standar tanpa dependensi eksternal. Namun untuk pengembangan dan testing, beberapa paket tambahan diperlukan:
requirements.txt
# Untuk pengembangan
black==22.3.0
flake8==4.0.1
mypy==0.942
pytest==7.1.2
# Opsional untuk benchmarking
numpy==1.22.3
Lisensi
Lazar dirilis di bawah lisensi MIT. Lihat LICENSE untuk detail lengkap.
Dukungan
Untuk masalah atau pertanyaan, silakan buka issue di repository GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lazar-1.0.1.tar.gz.
File metadata
- Download URL: lazar-1.0.1.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b5701f45022218763f1db0c19d5356cd66d5c3b9a0bc992a24e7f37c5fe0b79
|
|
| MD5 |
b20e221773e656032ac348021f666c91
|
|
| BLAKE2b-256 |
1c251968b25bc670aa1d5d9b9eac8fd36e9bd3052c3d0976f4ee37eb5c5b582f
|
File details
Details for the file lazar-1.0.1-py3-none-any.whl.
File metadata
- Download URL: lazar-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9629c259a3a9109551e5e013ae2a2d40f05d3c84bb49d613bae80e25865765e4
|
|
| MD5 |
7336beb5ce84906b2d13184871a2cf57
|
|
| BLAKE2b-256 |
28c9fcd969398074ac8ee70c23249c4597390b034321f67a3ad09914025af196
|