大语言模型(LLM)实用双技巧

#AI的出现,是否能替代IT从业者?#

目录

LLM实用双技巧

思考过程控制

软切换方式

硬切换方式

五维提示词框架

Prompt Engineering Cheatsheet: 构建高效提示的核心要素

活力无限,科技无界
搜索🔍关注👉公众号 猕猴桃实验室 

一起在网络技术里遨游

公众号来源:猕猴桃实验室     =>  转载请注明“转载于公众号:猕猴桃实验室”

公众号:猕猴桃实验室

公众号:猕猴桃实验室 

微信公众号:猕猴桃实验室

LLM实用双技巧

思考过程控制

在使用#Ollama 安装#Qwen3 等大模型时,它们通常会展示思考过程。然而,在某些场景下,我们可能只需要直接的输出结果,而不关心中间思考步骤。以下介绍两种方法来实现这一目的。

软切换方式

大多数#推理模型 支持使用特定指令调整输出行为。一个常用的方法是在聊天模板中添加空的<think></think>标签,这样可以让#大模型 直接给出结果而跳过显示思考过程。

但是也有一些大模型提供了官方的自定义指令。例如,Qwen3大模型支持在提示词中加入/no_think来控制思考模式:

图片

在Qwen3-235B-A22B的大模型对话中输入 Hello, 你猜我是谁! ,添加/no_think 与没添加/no_think 指令,出现不同的输出:

图片

我们提供了一种软切换机制,允许用户在 enable_thinking=True 时动态控制模型的行为。具体来说,您可以在用户提示或系统消息中添加 /think 和 /no_think 来逐轮切换模型的思考模式。在多轮对话中,模型会遵循最近的指令。

—— 引自 Qwen官方文档

硬切换方式

在使用Ollama安装大模型的时候,也可以通过Ollama的#Modelfile 配置文件来调整模型行为,比如Qwen3:

FROM qwen3:30b-a3b-q8_0

TEMPLATE """{{- if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}

# Tools

You may call one or more functions to assist with the user query.

You are provided with function signatures within <tools></tools> XML tags:
<tools>
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
</tools>

For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}<tool_call>
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}</tool_call>
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
<think>

</think>
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
<think>

</think>
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}"""
PARAMETER top_k 20
PARAMETER top_p 0.95
PARAMETER repeat_penalty 1
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
PARAMETER temperature 0.6

Ollama Modelfile 是一种用于设置和控制Ollama平台模型行为的配置方式。它不仅可以用来创建新模型,还能对已有模型进行参数调整,以适应特定需求。例如,可以内置定制的提示语,调整#上下文长度、温度值、随机因子,以及控制输出文本的多样性和一致性。

值得注意的是,这种调整并非对模型本身进行微调,而是对运行参数的优化。通过Ollama Modelfile,您可以更高效地在本地部署和管理大语言模型,提升资源利用率,获得更理想的运行效果。它极大地简化了LLM的调用和操作流程。

五维提示词框架

Prompt Engineering Cheatsheet: 构建高效提示的核心要素

本#提示词 (#Prompt)速查表为提示工程师提供了一套系统化的框架,用于设计精准且高效的AI交互指令,提高#生产力。其核心模块涵盖五个关键维度:

图片

  1. 1. Writing Style(写作风格)
    提供20种预定义风格选项,如Legal(法律)、Satirical(讽刺)、Scientific(科学)等,帮助快速匹配不同场景需求。例如,在技术文档生成中选择"Technical"风格可确保术语的专业准确性。

  2. 2. Verb(动词指令)
    通过20个核心动词(如Hire/Build/Draft等)明确任务行动,结合Output(输出格式)与Objective(目标),构成基础提示结构:"Verb + Output + Objective",为模型提供清晰的任务定义。

  3. 3. Voice & Tone(声调与语气)
    Voice维度包含Soft/Cool/Bold等12种声线设定,配合Tone中的Formal/Critical/Casual等16种语气选项,实现精细的情感表达控制。例如设置"Stoic Voice + Analytical Tone"可生成冷静理性的分析报告。

  4. 4. Context(上下文参数)
    18项扩展参数(如Data/Industry/Revenue等)用于高级提示构建,通过补充领域知识或业务指标显著提升响应的相关性和深度。

  5. 5. Prompt Structure(提示结构)

    • • 初级模式:聚焦基础三要素(动词+输出+目标

    • • 高级模式:在基础结构上叠加#上下文参数,支持多层约束条件输入

这种模块化组合机制,可以让提示工程师能够系统性地快速拆解复杂需求,将模糊指令转化为结构化参数集,从而显著提升大模型任务执行的准确性、一致性和可控性,可以有好的生产力体验。

参考:

  • • https://qwenlm.github.io/zh/blog/qwen3/

  • • https://i.postimg.cc/yY0Ng3XM/dscheat.jpg

  • • https://qwen.readthedocs.io/zh-cn/latest/

  • • https://gist.github.com/ehartford/a465d24116b7df07170efe69116084a3

往期回顾:

社区交流订阅:

公众号:猕猴桃实验室
<think>好的,我现在需要帮助用户解决他们遇到的NFS挂载问题。用户执行的命令是`mount -t nfs -o no_root_squash 127.0.0.1:/root/nfs_export/ /mnt/nfs_mount/`,但返回了错误`mount.nfs: an incorrect mount option was specified`。用户之前已经询问过`exportfs -v`的权限解释,现在可能是在配置NFS时遇到了问题。 首先,我应该先确认错误信息的意思。错误提示“an incorrect mount option was specified”说明在挂载选项中指定了一个无效的选项。用户使用了`-o no_root_squash`,这可能是一个常见的错误,因为`no_root_squash`其实是NFS服务器端的导出选项,而不是客户端挂载时的选项。也就是说,用户在挂载命令中错误地添加了服务器端的配置选项,导致系统无法识别,从而报错。 接下来,我需要验证这个假设是否正确。查阅NFS文档会发现,客户端的挂载选项和服务器端的导出选项是不同的。服务器端的选项如`rw`、`ro`、`sync`、`async`、`no_root_squash`等是在`/etc/exports`文件中设置的,而客户端挂载时使用的选项是如`vers`(版本)、`proto`(协议)、`timeo`(超时)等。因此,用户在这里混淆了两者,错误地将服务器端的选项用在客户端命令中。 接下来,我需要考虑用户可能的意图。用户可能希望禁用root squash,以便在客户端以root用户身份访问挂载的目录时保持root权限。然而,这个设置需要在NFS服务器端进行配置,即在`/etc/exports`文件中为对应的共享目录添加`no_root_squash`选项,而不是在挂载命令中。 因此,解决这个问题的正确步骤应该是指导用户修改服务器端的`/etc/exports`文件,添加正确的选项,然后重新导出共享目录。同时,确保客户端使用正确的挂载选项,可能只需要指定NFS版本或其他必要参数,而不是服务器端的权限选项。 另外,用户可能是在本地挂载(使用127.0.0.1),这可能是在测试NFS配置,但同样需要确保服务器配置正确。需要检查服务器是否已经正确导出目录,防火墙设置是否允许NFS流量,以及NFS服务是否正在运行。 还有可能用户使用的NFS版本不兼容,例如默认使用NFSv4,但服务器可能配置为v3,这时候可能需要显式指定版本。不过,错误信息直接指出是挂载选项错误,所以更可能的问题还是选项不正确。 总结解决方案的步骤应该是: 1. 修改服务器端的`/etc/exports`文件,将共享目录的选项设置为包含`no_root_squash`。 2. 使用`exportfs -ra`重新加载配置。 3. 在客户端挂载时,使用正确的挂载选项,可能不需要任何特殊选项,或者根据需要指定版本等。 同时,提醒用户注意安全风险,因为使用`no_root_squash`会降低安全性,确保他们了解潜在的风险。 最后,可能需要检查用户的命令是否有其他拼写错误,比如路径是否正确,目录是否存在,权限是否足够等,但根据错误信息,首要问题还是挂载选项的错误。</think>以下是针对你遇到的 `mount.nfs: an incorrect mount option was specified` 错误的分析和解决方案: --- ### **错误原因** 你执行的命令是: ```bash mount -t nfs -o no_root_squash 127.0.0.1:/root/nfs_export/ /mnt/nfs_mount/ ``` 错误的核心在于 **`-o no_root_squash`** 选项。 **`no_root_squash`** 是 NFS **服务端**的导出权限选项(需配置在 `/etc/exports` 文件中),而非客户端挂载时的选项。直接在 `mount` 命令中使用它会导致语法错误。 --- ### **解决方案** #### 1. **修正挂载命令** 移除无效的 `no_root_squash` 选项,改为仅指定必要的挂载参数: ```bash mount -t nfs 127.0.0.1:/root/nfs_export/ /mnt/nfs_mount/ ``` 若需指定客户端选项(如 NFS 版本),可使用 `-o` 参数,例如: ```bash mount -t nfs -o vers=4 127.0.0.1:/root/nfs_export/ /mnt/nfs_mount/ ``` #### 2. **在服务端配置 `no_root_squash`** 若你确实需要允许客户端以 `root` 身份访问共享目录,需在 **NFS 服务端** 的 `/etc/exports` 文件中配置该选项。 例如,服务端的 `/etc/exports` 应包含: ``` /root/nfs_export 127.0.0.1(rw,no_root_squash) ``` 修改后,执行以下命令使配置生效: ```bash exportfs -ra ``` #### 3. **验证服务端配置** 确保服务端已正确导出共享目录: ```bash exportfs -v ``` 输出应包含类似内容: ``` /root/nfs_export 127.0.0.1(rw,no_root_squash) ``` --- ### **其他可能问题排查** 1. **路径权限** - 确保服务端的 `/root/nfs_export` 目录存在且权限开放(例如 `chmod 777 /root/nfs_export`)。 - 检查客户端挂载点 `/mnt/nfs_mount` 是否存在(若不存在需提前创建)。 2. **NFS 服务状态** 确保服务端的 NFS 服务已启动: ```bash systemctl restart nfs-server # 重启服务 systemctl status nfs-server # 检查状态 ``` 3. **防火墙与端口** - 若跨服务器挂载(非本地 127.0.0.1),需开放 NFS 相关端口(如 2049)。 - 本地挂载时,防火墙通常不影响,但仍建议检查。 --- ### **安全提醒** 使用 `no_root_squash` 会允许客户端 `root` 用户直接以服务器端的 `root` 权限操作共享目录,**存在严重安全风险**。 建议仅在可信网络环境中使用,或改用 `root_squash`(默认值)以限制权限。 --- 若问题仍未解决,请提供以下信息进一步排查: 1. 服务端 `/etc/exports` 文件内容; 2. 完整的挂载命令及错误输出; 3. 服务端和客户端的操作系统版本(如 Ubuntu 22.04)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值