Skip to main content

A remade version of basic transformers

Project description

Alpaca Transformer Model from Scratch

This project demonstrates the process of building a transformer model from scratch, utilizing PyTorch for deep learning. It covers the essential components of transformer architectures, such as tokenization, embedding layers, multi-head self-attention, and the training pipeline. This model is designed for educational purposes to help users understand and implement transformers without relying on pre-built models.

Table of Contents

  1. Project Overview
  2. Getting Started
  3. Usage
  4. Model Architecture
  5. Contributing
  6. License

Project Overview

The Alpaca Transformer is a custom-built transformer model designed from scratch to perform token classification tasks. It includes a custom tokenizer, vocabulary creation, tokenization process, and the full transformer architecture. The model is implemented in PyTorch, using standard transformer building blocks such as embedding layers, multi-head self-attention, and position encodings.

Key Features:

  • Tokenizer and vocabulary creation from scratch.
  • Transformer architecture with multi-head self-attention.
  • Training pipeline to fine-tune the model.
  • Modular and extensible codebase for educational purposes.
  • All the tools have been made into easy to use methods in the 'alpaca.py' file

Getting Started

Prerequisites

Before you begin, ensure that you have the following installed on your system:

  • Python (>= 3.7)
  • PyTorch (>= 1.7.0)
  • CUDA (for GPU acceleration, optional but recommended)

I personally used Python=3.12.7 and PyTorch=2.6.0-Cuda18 so if you're having issues try it.

Installation

  1. Clone the repository:
    git clone https://github.com/RazielMoesch/alpaca.git
    cd alpaca
    

Usage

Data Preperation

To train the model, you’ll need a dataset in text format. Each line in the dataset represents a sentence to be tokenized. The tokenizer will process the text into tokens, which are then padded to a uniform length (e.g., 512 tokens). Prepare your dataset in a text file (eg., data.txt) where each line represents a sentence The tokenization happens automatically when you use 'alpaca.dataset' At the bottom of majority of the files there are left over test examples feel free to use them to understand how each file works.

Training

To train the transformer model, you can follow these step:

  1. Define your models optimizer, loss_fn and epochs
  2. use 'alpaca.train()' this takes in multiple params.

Model Architecture

This model follows a standard transformer architecture as its backbone:

  • Tokenizer - Transforms text into interpratble tokens
  • Embedding Layer - Maps tokens to vectors
  • Multi-Head Self Attention - Allows the model to focus on different parts of the input
  • Feed-Forward-Network - A Linear,ReLU,Linear layer
  • Positional-Encoding - Use sin and cos funcs to give the model info about the order of the sequence
  • Stacking - Stack Many of these in Encoder and Decoder Layers to achieve a Transformer

License

This is under a creative commons license just look at the file if you want specifics Please don't outright steal. Only restriction.

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

alpaca_transformer-0.1.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

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

alpaca_transformer-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file alpaca_transformer-0.1.0.tar.gz.

File metadata

  • Download URL: alpaca_transformer-0.1.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for alpaca_transformer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 26e300c10e76df22a70ea2781e8d5fc2ee13337fef40454cadc6c5a56914038a
MD5 e6aaca927f7780956cd76b069f92b3b5
BLAKE2b-256 48a9bcd30dea2042678be20cb1c11fab282484bf6739d96c22a42c340dfad257

See more details on using hashes here.

File details

Details for the file alpaca_transformer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for alpaca_transformer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73b63430180f7f59c64054e88f517117f50fa740f34bd447c0752869595bd667
MD5 c2698e9ceb9be1ed9c769fe5266ec8f1
BLAKE2b-256 2e75099f16ac4fb4223826d9f4925f7c250feab42dd07b366c8689fae76715bf

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