Skip to main content

Nano Llama

Project description

nanollama32

A compact and efficient implementation of the Llama 3.2 in a single file, featuring minimal dependencies—no transformers library required, even for tokenization.

Overview

nanollama32 provides a lightweight and straightforward implementation of the Llama model. It features:

  • Minimal dependencies
  • Easy-to-use interface
  • Efficient performance suitable for various applications

Installation

To get started, clone this repository and install the necessary packages.

git clone https://github.com/JosefAlbers/nanollama32.git
cd nanollama32
pip install -e .

Usage

Here’s a quick example of how to use nanollama32:

>>> from nanollama import Chat

# Initialize the chat instance
>>> chat = Chat()

# Start a conversation
>>> chat("What's the weather like in Busan?")
# Llama responds with information about the weather

# Follow-up question that builds on the previous context
>>> chat("And how about the temperature?")
# Llama responds with the temperature, remembering the previous context

# Another follow-up, further utilizing context
>>> chat("What should I wear?")
# Llama suggests clothing based on the previous responses

Command-Line Interface

You can also run nanollama32 from the command line:

nlm how to create a new conda env
# Llama responds with ways to create a new conda environment and prompts the user for further follow-up questions

Managing Chat History

  • --history: Specify the path to the JSON file where chat history will be saved and/or loaded from. If the file does not exist, a new one will be created.
  • --resume: Use this option to resume the conversation from a specific point in the chat history.

For example, to resume from a specific entry in history:

nlm "and to delete env?" --resume 20241026053144

You can also specify 0 to resume from the most recent entry:

nlm "and to list envs?" --resume 0

Adding Text from Files

You can include text from external files by using the {...} syntax in your input. For example, if you have a text file named example.txt, you can include its content in your input like this:

nlm how to load weights {langref.rst}

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Acknowledgements

This project builds upon the MLX implementation and Karpathy's LLM.c implementation of the Llama model. Special thanks to the contributors of both projects for their outstanding work and inspiration.

Contributing

Contributions are welcome! Feel free to submit issues or pull requests.

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

nanollama-0.0.1b0.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

nanollama-0.0.1b0-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file nanollama-0.0.1b0.tar.gz.

File metadata

  • Download URL: nanollama-0.0.1b0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for nanollama-0.0.1b0.tar.gz
Algorithm Hash digest
SHA256 d93c5b8f403ca0770700dc1e24f97a47eeaa9b86a2b1397f35d45b16e92ea847
MD5 1f6fec1088de08e9ba866d7b6a434007
BLAKE2b-256 4908e326aea4fb25c1f56764a7d2b9363d4bd895ec5742289dce73f70ecfc8b3

See more details on using hashes here.

File details

Details for the file nanollama-0.0.1b0-py3-none-any.whl.

File metadata

  • Download URL: nanollama-0.0.1b0-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for nanollama-0.0.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 58b760045914225e13bd7650e98a6c003896a79a1530772ff736f3fd1fb7279e
MD5 56b7f82f0eb2c1f669eb4a1dbeae9af2
BLAKE2b-256 0c870d73ddce6eb281a91d906a0efd834b3b7ca412f1e18de678812639e5be4f

See more details on using hashes here.

Supported by

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