https://github.com/teilomillet/llama2
Building llama 2 from scratch.
https://github.com/teilomillet/llama2
llama2 llm python
Last synced: 8 months ago
JSON representation
Building llama 2 from scratch.
- Host: GitHub
- URL: https://github.com/teilomillet/llama2
- Owner: teilomillet
- Created: 2024-01-04T08:23:52.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-05T00:44:51.000Z (almost 2 years ago)
- Last Synced: 2024-12-30T20:51:55.270Z (9 months ago)
- Topics: llama2, llm, python
- Language: Python
- Homepage:
- Size: 324 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Llama 2
Ce projet vise à reconstruire l'architecture de llama 2. J'ai implémenté les fonctionnalités suivantes :
- GQA (Grouped-Query Attention) [Lien vers le papier](https://arxiv.org/pdf/2305.13245.pdf)
- RoFormer (Rotary Position Embedding) [Lien vers le papier](https://arxiv.org/pdf/2104.09864.pdf)
- RMSNorm (Root Mean Square Layer Normalization) [Lien vers le papier](https://arxiv.org/pdf/1910.07467.pdf)
- SwigLU [Lien vers le papier](https://arxiv.org/pdf/2002.05202v1.pdf)
- KV cache [Lien vers le papier](https://arxiv.org/pdf/2211.05102.pdf)
- Top P [Lien vers le papier](https://arxiv.org/pdf/1904.09751.pdf)Pour reproduire ou essayer ce projet, il est nécessaire de télécharger les checkpoints du modèle fournis par Meta. Dans notre cas, téléchargez le modèle 'llama-2-7b' depuis en suivant la démarche de [ce lien](https://github.com/facebookresearch/llama).
L'objectif est de servir de point de départ pour des tests ou approfondir l'apprentissage et la compréhension de l'architecture des LLMs.
## Accès et Modification du Fichier
Pour accéder, télécharger et modifier ce fichier, vous devez avoir installé Git et Conda.### Git
Pour cloner ce dépôt et accéder au code, ouvrez votre terminal et entrez les commandes suivantes :```bash
git clone github.com/teilomillet/llama2
# OU
git clone git@github.com:teilomillet/llama2# PUIS
cd llama2
```### Conda
Conda doit être installé pour la suite du processus. Vous pouvez installer [miniconda](https://docs.conda.io/projects/miniconda/en/latest/miniconda-install.html)#### Création d'un Environnement Conda
Pour créer et activer un environnement Conda, entrez les commandes suivantes dans votre terminal :```bash
conda env create -f environment.yaml
conda activate llama2
```### Configuration Automatique de l'Environnement Mojo
Pour configurer automatiquement Mojo afin qu'il utilise l'environnement Conda activé :#### Macos/Linux
```bash
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
export MOJO_PYTHON_LIBRARY="$(find $CONDA_PREFIX/lib -iname 'libpython*.[s,d]*' | sort -r | head -n 1)"
echo "export MOJO_PYTHON_LIBRARY=\"$MOJO_PYTHON_LIBRARY\"" > $CONDA_PREFIX/etc/conda/activate.d/export-mojo.shmkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
echo "unset MOJO_PYTHON_LIBRARY" > $CONDA_PREFIX/etc/conda/deactivate.d/unset-mojo.sh
```## Usage
Activer l'environement `conda` et lancez le programme:```bash
conda activate llama2
python3 inference.py
# OU
mojo model.mojo
```