Skip to main content

A lightweight but powerful alternative to NumPy and Transformers

Project description

README.md Lengkap untuk Lazar

# Lazar

[![Python Version](https://img.shields.io/badge/python-3.7%2B-blue)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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 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.1.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.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

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

Hashes for lazar-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0b5701f45022218763f1db0c19d5356cd66d5c3b9a0bc992a24e7f37c5fe0b79
MD5 b20e221773e656032ac348021f666c91
BLAKE2b-256 1c251968b25bc670aa1d5d9b9eac8fd36e9bd3052c3d0976f4ee37eb5c5b582f

See more details on using hashes here.

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

Hashes for lazar-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9629c259a3a9109551e5e013ae2a2d40f05d3c84bb49d613bae80e25865765e4
MD5 7336beb5ce84906b2d13184871a2cf57
BLAKE2b-256 28c9fcd969398074ac8ee70c23249c4597390b034321f67a3ad09914025af196

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