Skip to main content

A lightweight but powerful alternative to NumPy and Transformers

Project description

README.md Lengkap untuk Lazar

Lazar

Python Version License: 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:

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 baru
  • reshape(new_shape): Mengubah bentuk array
  • dot(other): Perkalian dot product
  • sum(): Penjumlahan elemen

Mathematical Functions

  • exp(arr): Exponential
  • log(arr): Natural logarithm
  • sin(arr), cos(arr): Trigonometri
  • sqrt(arr): Square root

NLP Module

  • LazarTokenizer(): Tokenizer teks
    • fit(texts): Membangun vocabulary
    • encode(text): Konversi teks ke token IDs
    • decode(ids): Konversi token IDs ke teks
  • LazarLanguageModel(vocab_size): Model bahasa sederhana
    • embed(token_ids): Membuat word embeddings
    • predict_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lazar-1.0.2.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lazar-1.0.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file lazar-1.0.2.tar.gz.

File metadata

  • Download URL: lazar-1.0.2.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

Hashes for lazar-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7e20b69a504e3e85397fac67ef304ae0615b3bf324a64098636f6a67a7998eec
MD5 b1c7406b80c06e1429ea42c4d7715f58
BLAKE2b-256 30d80d2e855698aa9b9c251d51cb9c5966705f9fc57b131e3e00bc88b702c6ab

See more details on using hashes here.

File details

Details for the file lazar-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: lazar-1.0.2-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

Hashes for lazar-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6350d7b2d6f30abb01209fd3780a832271775d25ce90080181684ee56c665f9b
MD5 0d94d82a3e342e28964c27bae9df9d3a
BLAKE2b-256 a5331018bae87b3c9b1ef33148009ed1b3005de41c12e7258a5f3011c23e6f2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page