直达「 通往AGI之路 」飞书知识库 →
首页/问答列表/问答详情

在调用大模型的过程中,将token设置最大值,大模型回答还是会出现中断的情况,应该怎么避免和解决

回答

在调用大模型的过程中,将 token 设置最大值但回答仍出现中断的情况,可以从以下几个方面避免和解决:

  1. 调整相关参数:
    • Max_output_tokens:根据具体需求设置合适的值。若需要更短响应,设为较低值;若希望更长回答,设为较高值。但注意设置过低可能导致回答在奇怪位置截断。
    • Temperature:值越小,模型返回结果越确定;值调高,可能更随机和具创造性。对于质量保障等任务设低,诗歌生成等创造性任务可适当调高。
    • Top_p:用于控制模型返回结果的真实性,需要准确和事实答案时调低,想要更多样化答案时调高。一般改变 Temperature 和 Top_p 其中一个参数即可。
    • Max Length:调整以控制大模型生成的 token 数,有助于防止生成冗长或不相关响应并控制成本。
    • Stop Sequences:指定字符串,模型生成文本遇到时停止,可控制响应长度和结构。
    • Frequency Penalty:对下一个生成的 token 进行惩罚,与 token 在响应和提示中出现次数成比例,减少单词重复。
  2. 利用插入文本的最佳实践:
    • 使用 max_tokens > 256,模型插入较长完成时效果更好,且只按实际生成 token 数收费。
    • 优先选择 finish_reason == "stop",表明模型成功连接后缀且完成质量良好。
    • 重新采样 3 - 5 次,温度较高以增加多样性。若所有返回示例的 finish_reason 都是“length”,可能 max_tokens 太小,需考虑增加再重试。
    • 尝试给出更多线索,通过提供示例帮助模型确定自然停顿处。
内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

谷歌Gemini多模态提示词培训课——Part2

Gemini还有其他参数可以用来控制输出。让我们来看看其中两个,首先是max_output_tokens。在生成配置中,我们可以设置max_output_tokens。这个参数决定了响应中可以生成的最大Token数。在Gemini中,一个Token大约相当于4个字符,而100个Token大约对应62-80个单词。如果你想得到更短的响应,可以将max_output_tokens设置为较低的值,比如1。相反,如果你希望得到更长的回答,可以把它设置为较高的值,比如2000。让我们把max_output_tokens设置为10,看看它如何影响输出。调用API后,我们得到了一个非常简短的响应:"一个男人坐在电脑前。"你会发现它并没有完整输出一句话,但这正是我们预期的结果。根据你的具体需求,你可能会想控制输出的长度。如果你需要非常简洁的回答,可以降低这个值。但要注意,设置得太低可能会导致回答在奇怪的地方被截断,比如句子中间。另一个我们可以设置的参数叫做stop_sequences。它允许我们指定一个字符串列表,告诉模型在生成文本时,如果遇到这些字符串就停止。如果一个指定的字符串在响应中出现多次,模型会在第一次遇到它时就停止。但要注意,这些字符串是区分大小写的。stop_sequences的一个常见用途是在构建面向特定群体(比如儿童)的聊天机器人时,过滤掉某些不适合的词。让我们来试试这个参数。我们知道图片中有一个熊猫,所以我们把"熊猫"设为stop_sequence。这意味着模型在生成描述时,一旦提到"熊猫"就会停止。现在,我们用这个新的stop_sequence参数来调用API,看看它会如何影响模型的输出。这样我们就能观察到stop_sequences是如何控制模型输出的内容和长度的。

大语言模型设置

使用提示词时,您会通过API或直接与大语言模型进行交互。你可以通过配置一些参数以获得不同的提示结果。调整这些设置对于提高响应的可靠性非常重要,你可能需要进行一些实验才能找出适合您的用例的正确设置。以下是使用不同LLM提供程序时会遇到的常见设置:Temperature:简单来说,temperature的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。我们目前也在增加其他可能token的权重。在实际应用方面,对于质量保障(QA)等任务,我们可以设置更低的temperature值,以促使模型基于事实返回更真实和简洁的结果。对于诗歌生成或其他创造性任务,你可以适当调高temperature参数值。Top_p:同样,使用top_p(与temperature一起称为核采样的技术),可以用来控制模型返回结果的真实性。如果你需要准确和事实的答案,就把参数值调低。如果你想要更多样化的答案,就把参数值调高一些。一般建议是改变Temperature和Top P其中一个参数就行,不用两个都调整。Max Length:您可以通过调整max length来控制大模型生成的token数。指定Max Length有助于防止大模型生成冗长或不相关的响应并控制成本。Stop Sequences:stop sequence是一个字符串,可以阻止模型生成token,指定stop sequences是控制大模型响应长度和结构的另一种方法。例如,您可以通过添加“11”作为stop sequence来告诉模型生成不超过10个项的列表。Frequency Penalty:frequency penalty是对下一个生成的token进行惩罚,这个惩罚和token在响应和提示中出现的次数成比例,frequency penalty越高,某个词再次出现的可能性就越小,这个设置通过给重复数量多的Token设置更高的惩罚来减少响应中单词的重复。

文本补全(Text completion)

插入文本是测试版中的新功能,您可能需要修改使用API的方式以获得更好的结果。以下是一些最佳实践:使用max_tokens > 256。模型在插入较长完成时效果更好。如果max_tokens太小,则模型可能会在连接后缀之前被截断。请注意,即使使用更大的max_tokens,在生成token数量方面也只会收取实际生成token数对应的费用。优先选择finish_reason =="stop"。当模型到达自然停止点或用户提供的停止序列时,它将设置finish_reason为“stop”。这表明该模型已成功连接到后缀,并且是完成质量良好的一个很好信号。这对于在n>1或重新采样(见下一点)时选择几个完成之间进行选择尤其相关。重新采样3-5次。虽然几乎所有完成都与前缀相连,但在较难情况下,模型可能难以连接后缀。我们发现重新采样3或5次(或者使用k=3,5的best_of),并挑选具有“stop”作为其finish_reason的样本可以成为解决此类问题有效方法之一。在重新采样时,通常希望温度较高以增加多样性。注意:如果所有返回的示例都具有finish_reason == “length”,则很可能max_tokens太小了,在自然地连接提示和后缀之前模型就耗尽了token数,请考虑增加max_tokens再进行重试。尝试给出更多线索.在某些情况下,为了更好地帮助模型生成内容,您可以通过提供一些示例来给出线索,让该模型能够遵循这些示例来确定自然停顿处。

其他人在问
多模态大模型
以下是关于多模态大模型的相关信息: Google 的多模态大模型叫 Gemini,是由 Google DeepMind 团队开发的。它不仅支持文本、图片等提示,还支持视频、音频和代码提示,能够理解和处理几乎任何输入,结合不同类型的信息,并生成几乎任何输出,被称为 Google 迄今为止最强大、最全面的模型,从设计之初就支持多模态,能够处理语言、视觉、听觉等不同形式的数据。 多模态大模型(MLLM)是一种在统一的框架下,集成了多种不同类型数据处理能力的深度学习模型,这些数据可以包括文本、图像、音频和视频等。通过整合这些多样化的数据,MLLM 能够更全面地理解和解释现实世界中的复杂信息,在面对复杂任务时表现出更高的准确性和鲁棒性。其典型架构包括一个编码器、一个连接器和一个 LLM,还可选择性地在 LLM 上附加一个生成器,以生成除文本之外的更多模态。连接器大致可分为基于投影的、基于查询的和基于融合的三类。 有基于多模态大模型给现实世界加一本说明书的应用,例如将手机置于车载摄像机位置,能够实时分析当前地区今年新春的最新流行趋势。在这种架构中,后端采用 llama.cpp 挂载 LLaVA 模型,为应用提供推理服务。同时,部署了一个 Flask 应用用于数据前处理和后处理,提供 Stream 流服务。前端页面采用 HTML5,用于采集画面和用户输入,整体设计以简单高效为主。下载模型 ggml_llavav1.513b,这里选择是 13b 4bit 的模型。BakLLaVA 推理速度更快,但对中文的支持较差,7b 的模型在语义理解方面普遍存在不足,特别是在需要规范数据格式进行交互的场合。对于 function call 和 action 操作,极度依赖模型的 AGI 能力。
2024-11-18
目前市面上能力最强的AI模型是哪家的
目前市面上能力较强的 AI 模型来自多家公司和机构。 OpenAI 的 GPT4 是一个表现出色的大型多模态模型,在各种专业和学术基准测试中表现出与人类相当的水平。此外,OpenAI 还带来了其他优秀的模型,如 DALL·E 3 等。 Meta 开发的 Llama 3.1 是迄今为止最大版本,其在推理、数学、多语言和长上下文任务中能够与 GPT4 相抗衡,标志着首次开放模型缩小与专有前沿的差距。 谷歌 DeepMind 与纽约大学团队开发的 AlphaGeometry 在奥林匹克级几何问题基准测试中表现优异。 中国的 DeepSeek、零一万物、知谱 AI 和阿里巴巴等开发的模型在 LMSYS 排行榜上取得了优异的成绩,尤其在数学和编程方面表现出色,且在某些子任务上挑战了 SOTA。 Mistral 7B 是一个具有 73 亿参数的模型,在所有基准测试上超越了 Llama 2 13B,在许多基准测试上超越了 Llama 1 34B,在代码任务上接近 CodeLlama 7B 的性能,同时在英语任务上表现良好。 需要注意的是,AI 模型的能力评估会因不同的任务和应用场景而有所差异,且技术在不断发展和进步,新的更强的模型可能会不断涌现。
2024-11-18
如何减少 大模型的幻觉
减少大模型幻觉的方法主要有以下几点: 1. 使用 Prompt:在与大模型交互时,Prompt 是一套语言模板。它能为大模型提供更多的输入、限定、上下文和更明确的结果输出要求,帮助大模型更好地理解用户问题,从而减少随意发挥导致的幻觉问题。 2. 上采样(Up Sampling):针对“Imitative Falsehoods”,即样本存在错误的情况,上采样可以作为一种缓解办法。 3. 注意数据隐私保护:减少模型见数据的次数,例如避免模型过多重复接触某些数据,以降低记忆隐私泄露的风险,这在一定程度上也有助于减少幻觉问题。 大模型出现幻觉的原因包括: 1. 样本存在错误:如果大模型学习的“教材”中有错误,其输出也可能出错。 2. 信息过时:存在以前正确但现在过时的信息。 此外,大语言模型偶尔会根据输入输出荒谬或不符合事实的内容,目前各家大语言模型在该问题上的表现都有待改进。
2024-11-18
chilloutmix模型
以下是关于 chilloutmix 模型的相关信息: 在腊八节相关的生成中,模型为 chilloutmix_NiPrunedFp32Fix,生成尺寸与草稿图保持一致,有正、负面关键词及 ControlNet 设置等具体参数。 在猫猫相关的生成中,虽然作者建议使用 chilloutmix_NiPrunedFp32Fix 模型,但也可以尝试其他模型。 在 AIGC Weekly 09 中,提到从 civitai 下载 ChilloutMix 模型并放到整合包 models\\Stablediffusion 目录里启动 web UI 切换模型。
2024-11-17
SD好的模型分享
以下是为您分享的关于 SD 模型的相关内容: 对于 SDXL 的 ControlNet 模型中的 Canny 硬边缘模型,有不同型号,如 4080ti 笔记本测试中,12G 显存下,sdxl base+refiner 模型,使用 diffusers 的 2.5Gfull 模型绘制 10241024 尺寸图片需 2 分 57 秒,320Mb 的 small 模型用时 34s,质量差距不大但时间优势明显。其他作者如 kohya 的用时 33 秒,更接近真实质感。sai 的 128lora 和 256lora 分别用时 39 秒和 1 分 08 秒,偏绘画感觉。t2i 的用时 34s,偏插画。关闭 refiner 能节省一半左右时间,平均 17 秒左右。 在 Depth 深度模型测试中,图形尺寸 6641024,diffusers 的 full 模型用时 2 分 48 秒,small 模型用时 23s,kohya 模型用时 42 秒,sai 模型用时 1 分 12 秒,sargezt 模型用时 1 分 52 秒。 用 Stable Diffusion 时,要先确定照片风格,如生成真人 AI 小姐姐可选用 chilloutmix 的大模型。部分常用大模型可在分享的链接中根据文件夹名称找到。文章第三部分会详细介绍模型下载位置和存放位置。 对于 ControlNet 中线条约束类的预处理器和模型,作者已整理好,如需获取可添加公众号【白马与少年】回复【SD】。同时作者还附上一张图帮助理解 ControlNet 模型的命名规则。
2024-11-17
sd模型
Stable Diffusion(SD)模型是由 Stability AI 和 LAION 等公司共同开发的生成式模型,参数量约 1B,可用于文生图、图生图、图像 inpainting、ControlNet 控制生成、图像超分等任务。 文生图任务是将一段文本输入到 SD 模型中,经过一定迭代次数生成符合文本描述的图片。例如输入“天堂,巨大的,海滩”,模型生成美丽沙滩的图片。 图生图任务在输入文本基础上再输入一张图片,模型根据文本提示将输入图片重绘以更符合文本描述。比如在之前生成的沙滩图片上添加“海盗船”。 输入的文本信息需通过“桥梁”CLIP Text Encoder 模型转换为机器数学信息。该模型作为 SD 模型中的前置模块,将输入文本信息编码,生成 Text Embeddings 特征矩阵,用于控制图像生成。 CLIP 模型包含 Text Encoder 和 Image Encoder 两个模型,在 Stable Diffusion 中主要使用 Text Encoder 模型。它将输入的文本 Prompt 编码转换成 Text Embeddings(文本的语义信息),通过 UNet 网络中的 CrossAttention 模块嵌入 Stable Diffusion 中作为 Condition,对生成图像的内容进行控制与引导。目前 SD 模型使用的是中的 Text Encoder 模型。 CLIP ViTL/14 中的 Text Encoder 是只包含 Transformer 结构的模型,由 12 个 CLIPEncoderLayer 模块组成,模型参数大小是 123M,输出的 Text Embeddings 维度为 77x768。 以下是相关资源获取方式: SD 模型权重百度云网盘:关注 Rocky 的公众号 WeThinkIn,后台回复:SD 模型,即可获得包含多种模型权重的资源链接。 SD 保姆级训练资源百度云网盘:关注 Rocky 的公众号 WeThinkIn,后台回复:SDTrain,即可获得包含数据处理、模型微调训练及基于 SD 的 LoRA 模型训练代码等全套资源。 Stable Diffusion 中 VAE,UNet 和 CLIP 三大模型的可视化网络结构图下载:关注 Rocky 的公众号 WeThinkIn,后台回复:SD 网络结构,即可获得网络结构图资源链接。
2024-11-17
上下文窗口和 tokens限制
以下是关于上下文窗口和 tokens 限制的详细解释: Token 方面: Token 是大模型语言体系中的最小单元。人类语言发送给大模型时,会先被转换为大模型自己的语言,大模型推理生成答案后再翻译为人类能看懂的语言输出。 不同厂商的大模型对中文的文本切分方法不同,通常 1Token 约等于 1 2 个汉字。 大模型的收费计算方法以及对输入输出长度的限制,都是以 token 为单位计量的。 上下文方面: 上下文指对话聊天内容前、后的内容信息,其长度和窗口都会影响大模型回答的质量。 上下文长度限制了模型一次交互中能够处理的最大 token 数量,上下文窗口限制了模型在生成每个新 token 时实际参考的前面内容的范围。 目前常见模型的 token 限制: Claude 2 100k 模型的上下文上限是 100k Tokens,即 100000 个 token。 ChatGPT 16k 模型的上下文上限是 16k Tokens,即 16000 个 token。 ChatGPT 4 32k 模型的上下文上限是 32k Tokens,即 32000 个 token。 Token 限制的影响: 对一次性输入和一次对话的总体上下文长度同时生效。 当达到上限时,不是停止对话,而是遗忘最前面的对话,类似于鱼的短暂记忆。 查看 token 使用量: 对于 GPT,可以打开查看实时生成的 tokens 消耗和对应字符数量。 需注意 GPT3 和 GPT3.5/4 的 token 计算方式不同,且英文的 Token 占用相对于中文较少,这也是很多中文长 Prompt 会被建议翻译成英文设定然后要求中文输出的原因。 Token 限制对 Prompt 编写的影响:理解前面的内容后,答案应在您的脑海中有雏形。
2024-11-15
在tensorflow中实现分词器tokenizer
在 TensorFlow 中实现分词器(tokenizer)的方法如下: 1. 对文本数据进行预处理,添加开始和结束特殊标记。 2. 通过使用 TensorFlow 的文本矢量化模块,可以创建分词器。创建分词器后,可以将文本中的词转换为索引,例如像“开始标记”“猫”“狗”等。 3. 在 Stable Diffusion 中,Tokenizer 首先将 Prompt 中的每个词转换为一个称为标记(token)的数字,这是计算机理解单词的方式。然后,通过 text_encoder 将每个标记都转换为一个 768 值的向量,称为嵌入(embedding),用于 UNet 的 condition。 4. 需要注意的是,prompt 的长度会占用 token 数量。在大型语言模型中,输入的文本会被分词器拆分成一串 token 序列输入给模型,每个 token 通常对应一个单词或字符串片段。不同的分词器有不同的分词策略和词表,对于同一个 prompt,可能得到不同的 token 数。很多大模型对输入长度有限制,比如 GPT3 接受的最大 token 数是 2048。因此,要控制好 prompt 的长度,可使用一些技巧来节省 token 数,如使用简洁的词语、缩写/代词替代复杂词组、去除不必要的标点和空格、小写替代部分大写单词等。对于特别复杂的输入,可以考虑分步骤输入以规避长度限制。
2024-09-23
AI 为什么说于英文的 Token 占用相对中文较少
英文的 Token 占用相对中文较少,主要有以下原因: 1. 英文基于空格和标点符号分词,单词之间有明显的分隔,而中文是连续书写,需要通过算法来识别词汇边界,分词处理相对复杂。 2. GPT3 和 GPT3.5/4 的 token 计算方式不同,例如 GPT3 用的编码是 p50k/r50k,GPT3.5 是 cl100K_base。 3. 很多中文长 prompt 会被建议翻译成英文设定然后要求中文输出,因为这样可以节省 token 占用,从而把省出来的 token 留给更多次数的对话。在编写 prompt 时,也需要珍惜 token,尽可能精简表达,尤其是在连续多轮对话中。 如果想要直观查看 GPT 如何切分 token,可以打开:。但请注意,这个网站仅用于 GPT3 对于 token 的计算,方便我们理解概念。目前所使用的 3.5 和 4.0 采用的是另一种编码方式,通过这个工具测算的结果不一定准确。基于这个需求,可以参考官方的开源计算方式:https://github.com/openai/openaicookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb ,在本地部署之后可以精确计算目前 4.0 的 token 消耗。
2024-08-15
token 什么意思
在大语言模型领域,Token 通常用来表示文本数据中的一个单元。在不同的语境下,一个 Token 可能代表一个字、一个词,或者是一个句子。在英文中,一个 Token 通常是一个词或者是标点符号。在一些汉语处理系统中,一个 Token 可能是一个字,也可能是一个词。Token 是处理和理解文本数据的基本单元。 在深度学习的语言模型中,如 Transformer,输入的文本首先被切分成一系列的 Tokens。这些 Tokens 被转换成向量,然后被输入到神经网络中进行处理。因此,在这种情况下,Token 可以被理解为语言模型接收和处理的最小的信息单元。在训练过程中,每个 Token 会关联一个预测,这个预测可以是下一个 Token 的预测,也可以是该 Token 的属性预测,如词性、情感等。训练 Token 的数量会影响模型的性能和准确性。更多的训练 Token 通常意味着更多的训练数据,这可能会提升模型的准确性和泛化能力。然而,处理更多的 Token 也会增加计算的复杂性和计算资源的需求。 Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。例如中文中的“你”字对应如下 Unicode 编码:\\u 表示后面是一个 Unicode 编码,它用 16 进制数表示。4F60 转换成 10 进制对应 20320,20320 表示在 Unicode 编码中,第 20320 个编码对应的字是“你”。最后将 20320 转换为 2 进制。有意思的是,Unicode 不仅有自然语言,实际上也包含 emoji 等自然语言之外的符号。这也是为什么 ChatGPT 能理解和回复 emoji 的原因。所以,GPT 实际是将我们输入的文字转换成 Token,然后通过 GPT 模型预测 Token,再将 Token 转换成文字,最后再输出给我们。通过 Token 的学习,我们能感觉到 ChatGPT 理解文本的方式和人类并不相同,它在以自己的方式理解这个世界。 基于上述解释,很多同学把 Token 理解为中文语义里的“字节”,对于这种理解,只能说从类比关系上有一定的相似度,因为“字节”是计算机存储和处理数据的基本单元,而“Token”则是语言模型处理文本信息的基本单元。但这种理解不够准确的地方在于:“Token”在语言模型中的作用比“字节”在计算机中的作用更加复杂和多元。在大语言模型中,“Token”不仅代表文本数据中的一个单位,而且每个“Token”都可能携带了丰富的语义信息。比如,在处理一句话时,“Token”可能表示一个字,一个词,甚至一个短语,这些都可以被认为是语言的基本单元。同时,每个“Token”在模型中都有一个对应的向量表示,这个向量包含了该“Token”的语义信息、句法信息等。另外,如果现在正在浏览这篇帖子的你曾经“机翻”过一些文档的话,你会经常看到“token”被自动翻译工具翻译为“令牌”。
2024-08-10
怎么理解AI里面的token
Token 是 AI 中的一个重要概念,它可以理解为文本的基本单位。在 AI 中,文本通常被分解为 Token 进行处理和分析。Token 可以是单词,也可以是字符块。例如,单词“hamburger”可能被分解成标记“ham”、“bur”和“ger”。 Token 的数量和长度会影响 AI 模型的处理效率和成本。一般来说,Token 的数量越多,处理时间和成本就越高。因此,在实际应用中,需要合理控制 Token 的数量和长度。 不同的 AI 模型和应用可能对 Token 的定义和处理方式有所不同。例如,在某些模型中,标点符号可能被单独视为一个 Token,而在其他模型中,标点符号可能与单词一起计算。 此外,Token 在 AI 收费中也扮演着重要的角色。一些 AI 服务提供商可能会按照 Token 的数量来计费,因为 Token 的数量可以反映出模型处理的工作量和资源消耗。 总之,Token 是 AI 中一个重要的概念,它对于理解和应用 AI 技术具有重要意义。在实际应用中,需要根据具体情况合理使用和管理 Token。
2024-06-20
各个大模型tokens价格
截止 2024 年 5 月,我查询到的大模型Token价格供您参考: !
2024-05-13
可以调用不同大预言模型的整合工具推荐
以下是为您推荐的可以调用不同大语言模型的整合工具: 1. Poe:由 Quora 开发,有 APP 版本,支持跨端使用。集成了 Chat GPT、GPT4、Claude+、Claude、Dragonfly 等模型,同时支持用户自建 Chatbot。不同语言模型回复效果有差异,适合需要调用多种大语言模型的用户。访问地址: 。Dragonfly 擅长给出较短的回答,并擅长在输入中给出示例时遵循指示。Claude 更擅长创造性回复,配合 Poe 中的提问引导,非常适合在查阅资料时使用,有时能够给出超越直接使用 Chat GPT 时的体验(但和 Chat GPT 一样,Claude 也时常会给出一些错误回复,一些问题可以尝试在两个模型中都问一遍提升信息准确性)。此外支持分享用户和模型的对话内容,但 GPT4、Claude+产品需要付费订阅使用。 2. 国内的一些模型,如智谱和文心,在文生图方面有一定能力。 另外,大模型工具可根据自身条件准备,推荐顺序为:1. chatGPT 4.0 2. kimichat 3. 智谱清言 4 。
2024-11-12
有哪些工具直接可以调用国外的多个LLM
以下是一些关于能够调用国外多个 LLM 的相关信息: 开源项目作者 ailm 提出一种仅使用提示词工程和精巧的代码设计,让 LLM 获得稳定的 tool calling 能力,使用多个不具备该功能的 LLM 进行实验,成功率达 100%,工作基于 comfyui 开发,适合无代码基础的人员复现和修改。 在高级提示词工程领域,工具、连接器和技能的整合能显著增强 LLM 的能力。工具是指 LLM 可利用的外部功能或服务,扩展任务范围;连接器是 LLM 与外部工具或服务的接口,管理数据交换和通信;技能是 LLM 可执行的专门功能。 目前开源模型与专有产品存在差距但在缩小,如 Meta 的 LLaMa 模型引发一系列变体。当开源 LLM 达到一定准确度水平时,预计会有大量实验等。开发人员对 LLM 操作工具的研究尚不深入,一些工具如缓存(基于 Redis)、Weights & Biases、MLflow、PromptLayer、Helicone 等得到较广泛使用,还有新工具用于验证 LLM 输出或检测攻击。多数操作工具鼓励使用自身的 Python 客户端进行 LLM 调用。
2024-11-12
如何快速创建调用API的应用
以下是快速创建调用 API 应用的步骤: 1. 了解请求的组成部分: Body:用于传递请求主体,GET 方法中通常不使用。 Path:定义请求路径,GET 方法中可编码参数在其中。 Query:定义请求查询部分,是 GET 方法常用的参数传递方式。 Header:定义 HTTP 请求头信息,通常不用于传递参数。 2. 配置输出参数: 在配置输出参数界面,可自动解析或手动新增参数。 包括设置参数名称、描述、类型、是否必填等。 对于 Object 类型参数,可添加子项。 3. 调试与校验: 在调试与校验界面填写输入参数并运行。 查看输出结果,Request 为输入传参,Response 为返回值。 4. 发布:在插件详情页右上角点击发布。 以创建调用 themoviedb.org API 应用为例: 注册并申请 API KEY:前往 themoviedb.org 注册,依次点击右上角头像 账户设置 API 请求 API 密钥 click here,选择 Developer 开发者,填写相关信息并提交,获取 API 读访问令牌备用。 构建 GPT:新创建 GPT,设置名字和描述,添加 Instructions 内容,并添加 Webpilot Action 和粘贴相关 Schema 内容。
2024-11-08
字节跳动也被曝出在其秘密研发的大模型项目中存在违规调用 OpenAI 的 API ,你如何看待
2023 年下半年,部分声称性能卓越的中国大模型被揭露为“套壳”产品。如李开复创办的“零一万物”被国外开发者质疑为“套壳”产品,其团队承认在训练过程中沿用了开源架构,但强调是为快速起步。12 月,字节跳动被曝出在其秘密研发的大模型项目中调用了 OpenAI 的 API 并使用 ChatGPT 的输出数据来训练自己的模型。OpenAI 反应迅速坚决,暂停相关账号并表示将进一步调查。字节跳动回应称在 2023 年初技术团队在大模型探索初期有部分工程师将 GPT 的 API 服务用于较小模型的实验性项目研究,且自 2023 年 4 月引入调用规范检查后已停止。此外,不仅国内存在此类现象,24 年也有更多被指“套壳”的事件。同时,提示词攻击在业内是公开的秘密,国内外各大著名的 AI 厂商几乎无一幸免,系统提示处于泄露状态,大模型应用脆弱,数据易被获取。
2024-11-03
deepseek支持function calling,在dify的agent的prompt里要如何写才能调用工具。我说的是如何写提示词,才能让deepseek通过Function Calling调用工具。
要在 Dify 的 agent 的 prompt 里让 DeepSeek 通过 Function Calling 调用工具,您可以参考以下内容: 1. 提示词工程主要由提示词注入和工具结果回传两部分代码组成。 提示词注入:将工具信息及使用工具的提示词添加到系统提示中。INSTRUCTION 包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。TOOL_EAXMPLE 用于提示 LLM 如何理解和使用工具,编写时注意用无关紧要的工具作示例避免混淆。tools_instructions 是将通用工具字典转换成 LLM 可读的工具列表,可动态调整。REUTRN_FORMAT 定义调用 API 的格式。 工具结果回传:利用正则表达式抓取输出中的“tool”和“parameters”参数。对于 interpreter 工具,使用另一种正则表达式提取 LLM 输出的代码。通过识别 LLM 返回的调用工具的字典,提取对应值传入工具函数,将结果以 observation 角色返回给 LLM,对于不接受该角色的 LLM 接口,可改为回传给 user 角色。 2. 当模型判断需要调用工具函数时,检测到返回的 json 里 function_call 字段不为空,则执行异步函数调用,采用回调方式获取函数返回结果。通过判断返回的 functionCall 的名称执行不同函数并返回结果。 3. 在大模型请求中,最大的两个变量是 Messages 和 Tools。Messages 里放 sys prompt、memory、user query;Tools 里放能力的 Json Scheme,两者组合形成整个完全的 Prompt。Agent 应用开发的本质是动态 Prompt 拼接,通过工程化手段将业务需求转述成新的 prompt。短期记忆在 messages 里的历史 QA 对,长期记忆是 summary 之后的文本再塞回 system prompt。RAG 是向量相似性检索,可放在 system prompt 里或通过 tools 触发检索。Action 是触发 tool_calls 标记进入请求循环,拿模型生成的请求参数进行 API request,再把结果返回给大模型交互,没有 tool_calls 标记则循环结束。Multi Agents 是更换 system prompt 和 tools。
2024-10-24
deepseek支持function calling,在dify的agent的prompt里要如何写才能调用工具
在 Dify 的 agent 的 prompt 中实现调用工具的方法如下: 1. 提示词注入阶段: INSTRUCTION 为注入到系统提示中的字符串,包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。 TOOL_EAXMPLE 用于提示 LLM 如何理解和使用工具,编写时应使用无关紧要的工具作为示例,避免 LLM 混淆。 tools_instructions 是将通用的工具字典转换成 LLM 可读的工具列表,实际使用时可动态调整。 REUTRN_FORMAT 定义了调用 API 的格式。 2. 工具结果回传阶段: 利用正则表达式抓取输出中的“tool”和“parameters”参数。 对于 interpreter 工具,使用另一种正则表达式提取 LLM 输出的代码,提高使用成功率。 通过识别 LLM 返回的调用工具的字典,提取对应的值,传入相应的工具函数,将工具返回的结果以 observation 的角色返回给 LLM。对于不接受该角色的 LLM 接口,可改为回传给 user 角色。 此外,当模型判断需要调用工具函数时,即检测到返回的 json 里面 function_call 字段不为空,则执行异步函数调用,可通过判断返回的 functionCall 的名称来执行不同的函数并返回结果。 在提升可控性方面,有以下建议: 1. 放弃 JSON mode,虽然模型能力提升能输出 JSON,但仍会出错,且不能保证 100%正确,而模型厂家对 Function Calling 有微调优化。 2. 降低 System prompt 依赖,化繁为简,能在 Tools 里写的东西尽量写在里面。 3. API Response 增强 Prompt,这一步的准确率很高,可增加给大模型的约束和提示。 4. 尽量让模型做选择,而不是填空,减少 token 输出,提高速度和准确率。 5. 利用 Tools 来做 Route,构建 Multi Agent,术业有专攻。
2024-10-24