Skip to content Skip to footer

Ollama Modefile 可調參數紀錄

這邊紀錄從 Ollama github 上的 Modefile 紀錄有哪些可以修改的參數。

Ollama Modelfile:

#

Modelfile 內指令參數:

FROM : (必填) 定义要使用的基本模型。

PARAMETER : 设置 Ollama 如何运行模型的参数。

TEMPLATE : 要发送到模型的完整提示模板。

SYSTEM : 指定将在模板中设置的系统消息。

ADAPTER : 定义要应用于模型的 (Q)LoRA 适配器。

LICENSE : 指定合法许可证。

MESSAGE : 指定消息历史记录。

Base model specification

#

FROM:

Defines the base model to use for creating your customized model.

定義一個 model , 去所建立客製化 model

Model parameters

#

PARAMETER mirostat [0/1/2]:

Enable Mirostat sampling for perplexity control.

0=disabled, 1=Mirostat, 2=Mirostat 2.0.

Mirostat值:可以有效避免出現過度重複或不連貫的内容

預設:0 , 0 是不使用 , 1是Mirostat , 2是Mirostat2.0

PARAMETER mirostat_eta [float]:

Learning rate for Mirostat. Default=0.1. Adjusts algorithm responsiveness.

mirostat_eta值:影響算法對生成文本反應的響應速度,從而影響生成文本的質量和特徵。

較低的值調整速度較慢,較高的值使算法更具影響性,對於需要快速迭代或調整模型輸出的場景非常有用。 ; 預設:0.1

PARAMETER mirostat_tau [float]:

Balance between coherence and diversity. Default=5.0.

Lower values = more focused text.

mirostat_tau:可以控制生成文本的連貫性和多樣性之間的平衡,從而影響文本的重複性和連貫性等重要属性。

較低的值可以更加集中和連貫,較高的值則會增加輸出的多樣性。預設:5.0

PARAMETER num_ctx [int]:

Context window size. Default=2048.

Controls tokens used for generating the next token.

num_ctx:這個參數用於設置上下文 token 的數量。它决定了模型在生成響應時可以考慮的上下文長度。預設:2048

PARAMETER num_gqa [int]:

Number of GQA groups in the transformer layer. Required for some models, e.g., 8 for llama2:70b.

num_gqa:可以控制模型同時處理的任務數量,從而最佳化模型的性能和效率,設定 Transformer 層中 GQA 组的數量。某些模型需要,例如 llama2:70b 為 8

PARAMETER num_gpu [int]:

Number of layers to send to the GPU(s). macOS default:1 for metal support.

num_gpu:設置模型在推理時使用的 GPU layers 數量。預設:1,禁用:0

PARAMETER num_thread [int]:

Number of threads for computation. Recommended: number of physical CPU cores.

num_thread:設置模型在推理時使用的 CPU 線程數量。

Ollama 將檢測到這一點以獲得最佳性能。建議將此值設置為系統具有的物理 CPU 核心數(而不是邏輯核心數)。

PARAMETER repeat_last_n [int]:

Lookback distance to prevent repetition.

Default=64, 0=disabled, -1=num_ctx.

repeat_last_n:模型在生成文本時檢測和懲罰重複 n-gram 的"數量"。告訴模型在嘗試不重複最后一部分對話時應該考慮的 token 數量。

簡單來說就是 控制模型在生成文本時避免重複前 n-gram 的 token 出現,從而提高文本的多樣性和質量。 預設:64,禁用:0,-1=num_ctx

PARAMETER repeat_penalty [float]:

Penalty for repetitions. Higher values penalize more. Default: 1.1.

repeat_penalty:設置模型在生成文本時對重複 n-gram 的懲罰"程度"。

可以控制模型對重複 n-gram 的懲罰力度,從而影響生成文本的流暢性和連貫性。

較高的值(例如,1.5)將更強烈的懲罰重複,而較低的值(例如,0.9)將更寬鬆。預設:1.1

PARAMETER temperature [float]:

Model creativity vs coherence. Higher values = more creative. Default=0.8.

temperature:參數可以影響生成文本的多樣性,值越"高"生成的文本越具有創造性和變化性,值越"低"生成的文本越趨向於保守和穩定。預設:0.8

PARAMETER seed [int]:

Random seed for generation consistency. Default=0.

seed:通過設定固定的種子值,可以確保每次運行相同的模型和相同的輸入時,得到的輸出是一致的。 預設:0

PARAMETER stop “[string]":

Stop sequences for generation end. Multiple stops possible with separate parameters.

stop:設置要使用的停止文字。當遇到這種模式時,LLM 將停止生成文本並返回。

可以通過 stop 在模型文件中指定"多個"單獨的參數来設置多個停止模式。

PARAMETER tfs_z [float]:

Tail free sampling for reducing less probable tokens’ impact.

Default=1, >1 reduces impact more.

tfs_z:通過調整 tfs_z(尾自由採樣) 的影響力度来影響模型輸出的多樣性和連貫性。

當 tfs_z 值較高(例如,2.0)時,它會減少不太可能的 token 的影響力,從而使輸出更加多樣化。

相反,當 tfs_z 值為 1.0 時,這個設置被禁用,意味著尾自由采样的影響力度為最低,模型輸出的多樣性和連貫性可能會受到影響。 預設:1.0

PARAMETER num_predict [int]:

Max tokens to predict. Default=128, -1=infinite generation, -2=fill context.

num_predict:參數代表了在生成文本时模型預測的最大 token 數量。這個參數的功能主要是控制文本生成的過程中模型的輸出長度。

較小的 num_predict 值可以提高生成效率,但可能會限制模型生成更豐富的文本。較大的 num_predict 值則可以讓模型生成更長更複雜的文本,但可能會降低生成速度。預設:128, 無限制:-1 (模型無限制地生成文本,直到遇到停止標記), 填充上下文:-2 (會根據給定的上下文生成文本,而不會生成新的令牌)

PARAMETER top_k [int]:

Limits nonsense generation. Higher values = more diverse answers. Default=40.

top_k: 參數用於控制模型在生成文本時考慮的候選 token 數量。

較高的值(例如 100)將給出更多樣化的答案,而較低的值(例如 10)將更加保守。預設:40 (取前40個)

PARAMETER top_p [float]:

Works with top-k for output diversity. Higher values = more diversity. Default=0.9.

top_p: 值會讓模型考慮累計概率較高的 token 。

較高的值(例如,0.95)將導致更加多樣化的文本,而較低的值(例如,0.5)將生成更加集中和保守的文本。預設:0.9 (代表取權重前90%的)

Prompt template

#

TEMPLATE "”" … “"":

Full prompt template including optional system message, user’s message, and the model’s response.

TEMPLATE:該參數用於定義模型的模板或系统提示,控制模型在生成文本時的輸出結構和風格。

例如,可以使用 TEMPLATE 參數来指定模型在生成文本時是否包含系统提示、用户提示、模型響應等信息。

控制模型生成文本的整體結構和格式。 (使用 Go 語法格式)

Example:

| Variable | Description |

| {{ .System }} | The system message used to specify custom behavior. 用於設定自訂義行為|

| {{ .Prompt }} | The user prompt message. 使用者提示消息|

| {{ .Response }} | The response from the model. When generating a response, text after this variable is omitted. 模型生成的回复。在生成回复时,此变量后的文本将被省略。|

TEMPLATE """{{ if .System }}system

{{ .System }}

{{ end }}{{ if .Prompt }}user

{{ .Prompt }}

{{ end }}assistant

"""

System message

#

SYSTEM “”"[system message]”"":

Custom system message specifying chat assistant behavior.

SYSTEM:參數的主要功能是為模型提供一個初始的對話上下文。

通過設置 SYSTEM 參數,開發者可以控制模型在開始生成文本之前,系统消息的内容。

簡單來說就是開始回答前先跟它講是現在是哪種身分與設定,影響模型生成文本的風格和内容。

Example:

SYSTEM """You are a helpful medicine assistant."""

LoRA adapter

#

ADAPTER:

Specifies the LoRA adapter to apply. Path relative to the Modelfile or absolute.

ADAPTER: 指定要應用於基礎模型的 (Q)LoRA 檔案。

必須采用 GGML 文件格式。

Example:

ADAPTER ./ollama-lora.bin

License

#

LICENSE:

Legal license under which the model is shared or distributed.

LICENSE:此模型分享與合法授權遵守的 License 規則。

Example:

LICENSE """

"""

Message

#

MESSAGE [role] [message]:

Sets up a predefined message history for the model to consider when generating responses, helping to provide context or guide the model’s outputs.

MESSAGE:指令允許您為模型指定消息歷史紀錄,以便在響應時使用。使用多個 MESSAGE 命令的迭代来建構對話,這將引導模型以類似的方式回答。

Example:

| Variable | Description |

| system | Alternate way of providing the SYSTEM message for the model. 为模型提供系统消息的替代方式。|

| user | An example message of what the user could have asked. 用户可能会提出的示例消息。|

| assistant | An example message of how the model should respond. 模型应该如何回应的示例消息。|

MESSAGE user Is Toronto in Canada?

MESSAGE assistant yes

...

筆記:

#

temperature, top_k, top_p 3者相關性:

temperature:擷取 prompt 中的 token。

top_k:從 tokens 里選擇 k 個作為候選,然后根据它們的 likelihood scores 来採樣。

top_p:從 tokens 里按百分比選擇候選詞。

順序:temperature 整體參數取樣 => top_k 取樣前n個重新賦予權重排名 => top_p 取前 n% 來使用

Reference

#

翻譯與找資料:perplexity.ai and phind.ai

基于Ollama定制自己的大语言模型 - 53ai

上百大语言模型快速部署调用工具 Ollama使用指南

Ollama GitHub - Modefile

Ollama GitHub - Modefile

Ollama GitHub - import

自定义大型语言模型-使用OLLAMA和Modelfile定制、运行和保存LLM - 知乎

閱讀文章:

promptingguide.ai

learnprompting.org

GitHub:

Ollama - GitHub

Copyright © 2088 我的世界杯_瑞奇马丁世界杯主题曲 - msdc8.com All Rights Reserved.
友情链接