# LLMFarm
### The app is temporarily unavailable in TestFlight and Appstore.
---
LLMFarm is an iOS and MacOS app to work with large language models (LLM). It allows you to load different LLMs with certain parameters.With LLMFarm, you can test the performance of different LLMs on iOS and macOS and find the most suitable model for your project.
Based on [ggml](https://github.com/ggerganov/ggml) and [llama.cpp](https://github.com/ggerganov/llama.cpp) by [Georgi Gerganov](https://github.com/ggerganov).
# Features
- [x] MacOS (13+)
- [x] iOS (16+)
- [x] Various inferences
- [x] Various sampling methods
- [x] Metal ([dont work](https://github.com/ggerganov/llama.cpp/issues/2407#issuecomment-1699544808) on intel Mac)
- [x] Model setting templates
- [x] [Restore context state](https://llmfarm.tech/docs/save_load_state)
- [x] [Apple Shortcuts](https://llmfarm.tech/docs/shortcuts)
- [x] [RAG](https://llmfarm.tech/docs/RAG/RAG%20Settings)
# Inferences
- [x] [LLaMA](https://arxiv.org/abs/2302.13971)
- [x] [Gemma](https://ai.google.dev/gemma)
- [x] [Phi](https://huggingface.co/models?search=microsoft/phi)
- [x] [GPT2](https://huggingface.co/docs/transformers/model_doc/gpt2) + [Cerebras](https://arxiv.org/abs/2304.03208)
- [x] [Starcoder(Santacoder)](https://huggingface.co/bigcode/santacoder)
- [x] [Falcon](https://github.com/cmp-nct/ggllm.cpp)
- [x] [MPT](https://huggingface.co/guinmoon/mpt-7b-storywriter-GGUF)
- [x] [Bloom](https://huggingface.co/guinmoon/bloomz-1b7-gguf)
- [x] [StableLM-3b-4e1t](https://huggingface.co/stabilityai/stablelm-3b-4e1t)
- [x] [Qwen](https://huggingface.co/Qwen/Qwen-7B)
- [x] [Yi models](https://huggingface.co/models?search=01-ai/Yi)
- [x] [Deepseek models](https://huggingface.co/models?search=deepseek-ai/deepseek)
- [x] [Mixtral MoE](https://huggingface.co/models?search=mistral-ai/Mixtral)
- [x] [PLaMo-13B](https://github.com/ggerganov/llama.cpp/pull/3557)
- [x] [Mamba](https://github.com/state-spaces/mamba)
- [x] [RWKV](https://huggingface.co/docs/transformers/model_doc/rwkv)
- [x] [GPTNeoX](https://huggingface.co/docs/transformers/model_doc/gpt_neox)
See full list [here](https://github.com/ggerganov/llama.cpp).
## Multimodal
- [x] [LLaVA 1.5 models](https://huggingface.co/collections/liuhaotian/llava-15-653aac15d994e992e2677a7e), [LLaVA 1.6 models](https://huggingface.co/collections/liuhaotian/llava-16-65b9e40155f60fd046a5ccf2)
- [x] [BakLLaVA](https://huggingface.co/models?search=SkunkworksAI/Bakllava)
- [x] [Obsidian](https://huggingface.co/NousResearch/Obsidian-3B-V0.5)
- [x] [ShareGPT4V](https://huggingface.co/models?search=Lin-Chen/ShareGPT4V)
- [x] [MobileVLM 1.7B/3B models](https://huggingface.co/models?search=mobileVLM)
- [x] [Yi-VL](https://huggingface.co/models?search=Yi-VL)
- [x] [Moondream](https://huggingface.co/vikhyatk/moondream2)
Note: For *Falcon, Alpaca, GPT4All, Chinese LLaMA / Alpaca and Chinese LLaMA-2 / Alpaca-2, Vigogne (French), Vicuna, Koala, OpenBuddy (Multilingual), Pygmalion/Metharme, WizardLM, Baichuan 1 & 2 + derivations, Aquila 1 & 2, Mistral AI v0.1, Refact, Persimmon 8B, MPT, Bloom* select `llama inference` in model settings.
# Sampling methods
- [x] Temperature (temp, tok-k, top-p)
- [x] [Tail Free Sampling (TFS)](https://www.trentonbricken.com/Tail-Free-Sampling/)
- [x] [Locally Typical Sampling](https://arxiv.org/abs/2202.00666)
- [x] [Mirostat](https://arxiv.org/abs/2007.14966)
- [x] Greedy
- [x] Grammar
# Getting Started
You can find answers to some questions in the [FAQ section](https://llmfarm.tech/docs).
## Inference options
When creating a chat, a JSON file is generated in which you can specify additional inference options. The chat files are located in the "chats" directory. You can see all inference options [here](https://llmfarm.tech/docs).
## Models
You can find some of the supported [models here](https://llmfarm.tech/).
# Development
`llmfarm_core` has been moved to a [separate repository](https://github.com/guinmoon/llmfarm_core.swift). To build llmfarm, you need to clone this repository recursively:
```bash
git clone --recurse-submodules https://github.com/guinmoon/LLMFarm
```
# Also used sources from:
* [rwkv.cpp](https://github.com/saharNooby/rwkv.cpp) by [saharNooby](https://github.com/saharNooby)
* [Mia](https://github.com/byroneverson/Mia) by [byroneverson](https://github.com/byroneverson)
* [LlamaChat](https://github.com/alexrozanski/LlamaChat) by [alexrozanski](https://github.com/alexrozanski)
* [swift-markdown-ui](https://github.com/gonzalezreal/swift-markdown-ui) by [gonzalezreal](https://github.com/gonzalezreal)
* [similarity-search-kit](https://github.com/ZachNagengast/similarity-search-kit) by [ZachNagengast](https://github.com/ZachNagengast)
# [❤️ Support project](./donate.md)