使用LLM-API开发应用-DataWhale笔记

调用API

先使用一个例子

from openai import OpenAI
​
client = OpenAI(
    # This is the default and can be omitted
    api_key=os.environ.get("OPENAI_API_KEY"), //这个在环境env中
)
​
completion = client.chat.completions.create(
    # 调用模型:ChatGPT-3.5
    model="gpt-3.5-turbo",
    # messages 是对话列表
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

申请API key可以从OpenAI、文心一言、讯飞星火等网站获取,得到之后调用各自api并进行自定义prompt来提升模型回答效果。这里我使用的是OpenAI的API key,调用API可能会用到一些参数

  • · model,即调用的模型,一般取值包括“gpt-3.5-turbo”(ChatGPT-3.5)、“gpt-3.5-turbo-16k-0613”(ChatGPT-3.5 16K 版本)、“gpt-4”(ChatGPT-4)。

  • · messages,即我们的 prompt。ChatCompletion 的 messages 需要传入一个列表,列表中包括多个不同角色的 prompt。我们可以选择的角色一般包括

    • system:系统角色,通常用来设置对话的初始条件;

    • user:用户输入的 prompt;

    • assistant:助手,一般是模型历史回复,作为提供给模型的参考内容。

  • · temperature,即 Temperature 系数。控制输出的随机程度,温度系数越低,生成更加一致可控性的答案,若越高,则会产生更多样化的答案,适合创造性的任务例如故事生成;而低温度系数更适合问题回答。

  • · max_tokens,最大 token 数,即模型输出的最大 token 数。OpenAI 计算 token 数是合并计算 Prompt 和 Completion 的总 token 数,要求总 token 数不能超过模型上限(如默认模型 token 上限为 4096)。因此,如果输入的 prompt 较长,需要设置较大的 max_token 值,否则会报错超出限制长度。

Prompt Engineering

prompt(提示)就是用户与大模型交互输入的代称。即我们给大模型的输入称为 Prompt,而大模型返回的输出一般称为 Completion。

Prompt设计的原则

编写清晰、具体的指令

  • 使用分隔符清晰表示输入的不同部分,一般使用“”“

  • 使用结构化的输出

让模型自己思考

  • 指导模型在下结论前找出一个自己的解法并加以判断

    例如:

不过文档中给出的答案是错误的,可能是调用的gpt-3.5能力没那么强,还要加以引导才能判断,我自己测试的时候使用的是gpt-4,这种程度的prompt就已经让模型能够发现错误了,如下:

大模型”幻觉“

开发与应用语言模型时,需要注意它们可能生成虚假信息的风险,尽管大模型经过了大量大规模的预训练,掌握了丰富知识,但是实际上并没有完全记住所见的信息,难以判断自己的知识边界,如果让其描述一个不存在的产品,它可能会自行构建似是而非的细节,这被称为”幻觉“。

例如给出以下代码

prompt = f"""
给我一些研究LLM长度外推的论文,包括论文标题、主要内容和链接
"""
​
response = get_completion(prompt)
print(response)

大模型输出结果很可能是它自己瞎编的,虽然看起来很正确

1. 论文标题: "Extrapolating LLM Lengths: A Study on the Impact of Training Data Size"
主要内容: 该论文研究了在训练数据规模不断增加的情况下,LLM长度的外推效果。通过实验和数据分析,论文探讨了训练数据规模对LLM长度外推性能的影响,并提出了一些改进方法。
链接:https://arxiv.org/abs/2106.12345
​
2. 论文标题: "Analyzing the Extrapolation of LLM Lengths in Natural Language Understanding Tasks"
主要内容: 该论文分析了LLM长度在自然语言理解任务中的外推情况。通过实验和对比分析,论文探讨了不同任务对LLM长度外推的需求,以及如何优化LLM模型在不同长度下的性能。
链接:https://arxiv.org/abs/2110.67890
​
3. 论文标题: "Improving LLM Length Extrapolation through Data Augmentation Techniques"
主要内容: 该论文提出了一种通过数据增强技术来改进LLM长度外推的方法。通过在训练数据中引入多样性和噪声,论文探讨了如何提高LLM模型在不同长度下的泛化能力。
链接:https://arxiv.org/abs/2201.23456
​
希望以上论文能够帮助到您的研究工作。

不过我改用gpt-4进行测试,发现这个答案就变成

截至我的最后更新(2023年4月),关于LLM(语言模型)长度外推的研究还在不断发展之中。长度外推通常指的是模型处理比其在训练期间见过的更长的文本的能力。这在大型语言模型(如GPT系列)中尤其受到关注,因为它们在多种任务上展现出了卓越的性能,包括但不限于文本生成、翻译、摘要等。
​
虽然我无法提供实时的论文数据库,但我可以指出一些研究方向和可能的关键词,帮助你在学术数据库和预印本服务器(如arXiv)中找到相关论文:
​
### 关键词
- Length Extrapolation in Language Models
- Long Context in Language Models
- Text Generation Beyond Training Length
- Scaling Laws for Language Models
​
### 研究方向
1. **大型语言模型的长度外推能力**:研究大型语言模型(如GPT-3)处理超出其训练长度限制的文本的能力。
2. **长度外推对模型性能的影响**:分析当输入长度超过模型在训练期间见过的最大长度时,模型性能(如准确性、连贯性)的变化。
3. **改进模型的长度外推能力**:探索技术和方法来增强模型处理长文本的能力,例如通过改进模型架构、训练策略等。
​
### 查找论文
为了找到具体的论文,你可以访问以下资源:
- **arXiv** (https://arxiv.org/): 一个包含物理学、数学、计算机科学等领域预印本论文的数据库。
- **Google Scholar** (https://scholar.google.com/): 一个广泛的学术搜索引擎,可以用来搜索各个领域的学术论文。
- **ACL Anthology** (https://aclanthology.org/): 专注于计算语言学和自然语言处理领域的论文集合。
​
### 示例论文
虽然我不能直接提供最新论文的链接,但以下是一些可能与你的兴趣相关的论文标题示例(请注意,这些标题是根据你的要求构造的,可能并不存在):
- "Exploring the Limits of Length Extrapolation in Transformer-Based Language Models"
- "Beyond the Horizon: Length Extrapolation in Large-Scale Language Models"
- "Scaling Laws for Length Extrapolation in Neural Language Models"
​
请使用上述关键词和资源进行搜索,以找到最新和最相关的研究成果。

明显严谨程度上升,看来模型更强也更不容易出现”幻觉“的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/559585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【目标检测】YOLO系列-YOLOv1 理论基础 通俗易懂

为方便大家理解YOLO的原理,这里将YOLOv1的部分内容基础内容进行用比较直白的话和例子进行阐述,为后续大家学习YOLO作为铺垫。 1、模型所干的活 工作中,大家经常将 Word 文档 上传到某转换器,然后转换输出为PDF文档。目标检测中我…

单点登录实现:一次登录,到处运行

单点登录:一次登录,到处运行 举个场景,假设我们的系统被切割为N个部分:商城、论坛、直播、社交…… 如果用户每访问一个模块都要登录一次,那么用户将会疯掉, 为了优化用户体验,我们急需一套机制…

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

23-代码随想录第202题快乐数

202. 快乐数 简单 相关标签 相关企业 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到…

【C语言】指针详解(五)

目录 1.字符指针 1.1常量字符串 2.指针数组 3.数组指针 1.字符指针 字符指针就是指向字符的指针&#xff0c;字符指针可以存储字符变量的地址。 举例如下&#xff1a; 定义指针变量pa存a的地址&#xff0c;改变*pa的值&#xff0c;a也会随之改变 。 1.1常量字符串 &#x1f…

电机控制专题(一)——最大转矩电流比MTPA控制

文章目录 电机控制专题(一)——最大转矩电流比MTPA控制前言理论推导仿真验证轻载1Nm重载30Nm 总结 电机控制专题(一)——最大转矩电流比MTPA控制 前言 MTPA全称为Max Torque Per Ampere&#xff0c;从字面意思就可以知道MTPA算法的目的是一个寻优最值问题&#xff0c;可以从以…

PTA L2-047 锦标赛

题目 解析 把每一场比赛看作满二叉树的一个节点&#xff0c;父节点递归遍历子节点的结果&#xff0c;进行试填。 代码 #include <bits/stdc.h>using i64 long long;struct Node {int win, lose; };void solve() {int k;std::cin >> k;int siz (1 << k);…

Llama 3王者归来,可与GPT-4分庭抗礼,开源模型即将追上闭源模型了?

“有史以来最强大的开源大模型”Llama 3引爆AI圈&#xff0c;马斯克点赞&#xff0c;英伟达高级科学家Jim Fan直言&#xff0c;Llama 3将成为AI大模型发展历程的“分水岭”&#xff0c;AI顶尖专家吴恩达称Llama3是他收到的最好的礼物。 4月18日&#xff0c;AI圈再迎重磅消息&a…

一例Mozi僵尸网络的挖矿蠕虫分析(workminer)

概述 这是一个Linux平台的挖矿蠕虫&#xff0c;使用了go和C混合编译而成&#xff0c;主要通过爆破SSH口令进行传播&#xff0c;属于Mozi僵尸网络。其中GO代码负责SSH相关的爆破传播&#xff0c;以及对Config的处理&#xff0c;C代码则负责处理加入Mozi P2P网络&#xff0c;拉取…

【游戏专区】贪吃蛇

1&#xff0c;游戏背景 贪吃蛇&#xff08;Snake&#xff09;是一款经典的电子游戏&#xff0c;最初在1976年由 Gremlin 公司开发。它的游戏背景相对简单&#xff0c;但具有高度的成瘾性。 1. **游戏场景**&#xff1a;通常在一个有界的矩形区域内进行&#xff0c;可以是一个…

设计模式—门面模式

定义: 门面模式,也称为外观模式&#xff0c;是一种结构型设计模式。它的主要目的是提供统一的接口来访问子系统中的多个接口&#xff0c;从而简化客户端与复杂子系统之间的交互。 在门面模式中&#xff0c;一个门面类充当中介&#xff0c;为客户端提供一个简化了的访问方式&…

【Gradio】Could not create share link

【Gradio】Could not create share link 写在最前面在服务器端一直运行一个Python脚本解决&#xff1a;下载frpc_linux_amd64文件&#xff0c;并添加权限原理 完整过程&#xff1a;先找gradio库位置&#xff0c;然后发现缺失文件1. 打开终端2. 使用 find 命令查找 gradio 目录3…

Codigger GT模块:GUI融合Terminal,重塑开发体验

在信息技术日新月异的今天&#xff0c;开发者与计算机系统进行交互的界面&#xff0c;其体验的优化与升级显得尤为关键。Codigger G&T正是应这一需求而生&#xff0c;它巧妙地将现代图形用户界面&#xff08;GUI&#xff09;的优势融入传统的Terminal中&#xff0c;为开发者…

基于Java SpringBoot+Vue的体育用品库存管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

链路加密技术:保护数据传输的盾牌

在数字时代&#xff0c;数据安全已经成为我们日常生活和工作中的重要议题。随着网络技术的飞速发展和信息量的爆炸式增长&#xff0c;数据的安全传输变得尤为重要。链路加密技术作为一种重要的网络安全措施&#xff0c;为数据的传输提供了强有力的保障。本文将深入探讨链路加密…

2024第十五届蓝桥杯 Java B组 填空题

声明&#xff1a;博主比较菜&#xff0c;以下均为个人想法。解决方法仅供参考。欢迎大家一起讨论交流&#xff01; 编程题在文末链接 第一题&#xff1a; 题目&#xff1a; &#xff08;简洁版&#xff09;从小到大排列是20或24倍数的正整数&#xff0c;前10个数依次是&…

C语言结课实战项目_贪吃蛇小游戏

目录 最终实现效果&#xff1a; 实现基本的功能&#xff1a; 根据游戏进程解释代码&#xff1a; 游戏初始化&#xff1a; 首先进入游戏&#xff0c;我们应该将窗口名称改为 “贪吃蛇” 并将光标隐藏掉。再在中间打印游戏信息。 之后我们要把地图打印出来&#xff1a; 然后…

【动态规划】C++简单多状态dp问题(打家劫舍、粉刷房子、买卖股票的最佳时机...)

文章目录 前言1. 前言 - 理解动态规划算法2. 关于 简单多状态的dp问题2.5 例题按摩师/打家劫舍 3. 算法题3.1_打家劫舍II3.2_删除并获得点数3.3_粉刷房子3.4_买卖股票的最佳时机含冷冻期3.5_买卖股票的最佳时机含手续费3.6_买卖股票的最佳时机III3.7_买卖股票的最佳时机IV 前言…

开源模型应用落地-chatglm3-6b-gradio-入门篇(七)

一、前言 早前的文章&#xff0c;我们都是通过输入命令的方式来使用Chatglm3-6b模型。现在&#xff0c;我们可以通过使用gradio&#xff0c;通过一个界面与模型进行交互。这样做可以减少重复加载模型和修改代码的麻烦&#xff0c; 让我们更方便地体验模型的效果。 二、术语 2.…

oracle 清空回收站

参考官方文档 select * from user_recyclebin; select * from dba_recyclebin; ---清除回收站中当前用户下的对象 purge recyclebin; ---清除回收站中所有的对象 purge dba_recyclebin; ---清除回收站中指定用户的表 PURGE TABLE owner.table_name; ---清除回收站中指…
最新文章