# LLamaModelParams
Namespace: LLama.Native
A C# representation of the llama.cpp `llama_model_params` struct
```csharp
public struct LLamaModelParams
```
Inheritance [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) → [ValueType](https://docs.microsoft.com/en-us/dotnet/api/system.valuetype) → [LLamaModelParams](./llama.native.llamamodelparams.md)
## Fields
### **n_gpu_layers**
// number of layers to store in VRAM
```csharp
public int n_gpu_layers;
```
### **split_mode**
how to split the model across multiple GPUs
```csharp
public GPUSplitMode split_mode;
```
### **main_gpu**
the GPU that is used for scratch and small tensors
```csharp
public int main_gpu;
```
### **tensor_split**
how to split layers across multiple GPUs (size: [NativeApi.llama_max_devices()](./llama.native.nativeapi.md#llama_max_devices))
```csharp
public Single* tensor_split;
```
### **progress_callback**
called with a progress value between 0 and 1, pass NULL to disable. If the provided progress_callback
returns true, model loading continues. If it returns false, model loading is immediately aborted.
```csharp
public LlamaProgressCallback progress_callback;
```
### **progress_callback_user_data**
context pointer passed to the progress callback
```csharp
public Void* progress_callback_user_data;
```
### **kv_overrides**
override key-value pairs of the model meta data
```csharp
public LLamaModelMetadataOverride* kv_overrides;
```
## Properties
### **vocab_only**
only load the vocabulary, no weights
```csharp
public bool vocab_only { get; set; }
```
#### Property Value
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **use_mmap**
use mmap if possible
```csharp
public bool use_mmap { get; set; }
```
#### Property Value
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **use_mlock**
force system to keep model in RAM
```csharp
public bool use_mlock { get; set; }
```
#### Property Value
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)