首页 > 编程语言 >基于Python的大模型学习手册(入门级)

基于Python的大模型学习手册(入门级)

时间:2024-08-11 21:23:47浏览次数:16  
标签:Python 模型 手册 tokens 入门级 API output message ChatGPT

前言

在这里插入图片描述

大模型(全称为大语言模型,英文名称:Large Language Model),这个2023年刷爆了互联网圈的“现象级明星”,几乎以前所未有的姿态,席卷了各行各业,世人一时为之惊叹。同时,也开辟了各大厂商投入AI研发的新赛道。

乘着这波“西风”,国内大模型开启了雨后春笋般的神奇发育,简直是“一浪翻过一浪,一峰赛过一峰”。可想而知,这是一次夺目的AI表演,也让每一个普通人有机会亲身参与这次“盛宴”

试想,如大模型的第一枪来自吾国,会是一个什么样的前景?

1. 初识大模型

1.1 简介

谈起大模型,我们不得不提ChatGPT —— 一个神奇的机器人,一个可以和你谈天说地的好朋友。它的前身其实是一个GPTGenerative Pre-Trained,简单讲是一个深度学习模型)。基于GPT,赋予了Chat机制,那么ChatGPT就问世了。在它诞生的过程中,又一次因为Google带来的紧迫性(或者说是先机),ChatGPT捷足先登。否则,我们也很难在2023年就与ChatGPT见面了。

说这么多,ChatGPT不就是一个聊天机器人么,有什么大不了。而且在2023年以前我们已经见过类似的应用了,比如智能客服,智能助手之类的使用。如果你还不了解ChatGPT,我想这么认为也是毫无指摘的,因为表象看确实也“差不多”。实际上它使用了无监督全流程自学习的全新架构,这种架构只需踩着“历史经验”向前发展,这似乎越来越趋近于人类思维了。

这就好比人脑一样,当你遇见紧急状况后,第一反应是什么?本能的会从脑海中快速检索之前有咩有发生过,有咩有经验可以翻出来,对不?那么,大模型的“历史经验”就是人类已知的存储于各个角落的任何数据,不管是结构化,非结构化,只要你能找出来的,统统可以作为它的“口粮”,进而令其发育为类人智能。

这就是ChatGPT的绝招,在无样本或少量样本的情况下,依然可以做到“有问必答,有求必应”。这也是AIGC为何如此盛行于各行各业的原因。

你可以用它做问答小助手,也可以用它做翻译助手, 还可以用它帮你create xxx。只要你具备足够的想象力,它就能够为你提供不一样的能力。

1.2 使用体验

大模型的本质还是一个神经网络,这个网络可以帮助用户进行单字符级别的分析和预测,每预测一次,就返回一个计算结果。就像电影一样,一帧一帧的输出,最终形成一段完整的文本。而每一帧代表了一次计算过程。

当然这个过程与你提供的口令(prompt)有关系,它需要将你的口令分隔为一个或多个token,然后开启计算之旅。所以你的口令直接决定了它的行为,也决定了计算的成本。即使它让你难堪(所谓的“幻觉”),那也在所难免了。

这里博主以阿里的通义千问为例,进行演示,选择一个模型,指定一个场景,接下来就开始愉快的对话吧:

在这里插入图片描述
等对话结束后,我们可以看到它的每次计算结果(只呈现局部):

[
  {
    "requestId": "87627073-8483-9bf8-8ec4-7e0c94b883e7",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 2
    },
    "output": {
      "choices": [
        {
          "finish_reason": "null",
          "message": {
            "role": "assistant",
            "content": "你好!"
          }
        }
      ]
    }
  },
  {
    "requestId": "87627073-8483-9bf8-8ec4",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 8
    },
    "output": {
      "choices": [
        {
          "finish_reason": "null",
          "message": {
            "role": "assistant",
            "content": "你好!大模型通常指的是在人工智能"
          }
        }
      ]
    }
  },
  {
    "requestId": "87627073-8483-9bf8-8ec4",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 16
    },
    "output": {
      "choices": [
        {
          "finish_reason": "null",
          "message": {
            "role": "assistant",
            "content": "你好!大模型通常指的是在人工智能领域中,参数量巨大(通常是"
          }
        }
      ]
    }
  },
  {
    "requestId": "87627073-8483-9bf8-8ec4",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 24
    },
    "output": {
      "choices": [
        {
          "finish_reason": "null",
          "message": {
            "role": "assistant",
            "content": "你好!大模型通常指的是在人工智能领域中,参数量巨大(通常是千万、亿级甚至更高数量级"
          }
        }
      ]
    }
  },
  {
    "requestId": "87627073-8483-9bf8-8ec4",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 32
    },
    "output": {
      "choices": [
        {
          "finish_reason": "null",
          "message": {
            "role": "assistant",
            "content": "你好!大模型通常指的是在人工智能领域中,参数量巨大(通常是千万、亿级甚至更高数量级)、能够处理复杂任务的深度学习"
          }
        }
      ]
    }
  },
  {
    "requestId": "87627073-8483-9bf8-8ec4",
    "usage": {
      "input_tokens": 13,
      "output_tokens": 255
    },
    "output": {
      "choices": [
        {
          "finish_reason": "stop",
          "message": {
            "role": "assistant",
            "content": "你好!大模型通常指的是在人工智能领域中,参数量巨大(通常是千万、亿级甚至更高数量级)、能够处理复杂任务的深度学习模型。这些模型通过在大量数据上进行训练,能够学习到更深层次的特征表示,从而在诸如自然语言处理、图像识别、语音识别、推荐系统等任务上展现出强大的性能。\n\n大模型之所以能够取得如此显著的效果,主要得益于以下几个方面:\n1. **大规模数据集**:大模型通常需要大量的训练数据来学习各种模式和规律。\n2. **计算资源**:训练大模型需要大量的计算资源,包括高性能的GPU集群和大量的存储空间。\n3. **参数量**:大模型拥有庞大的参数量,能够捕捉到更复杂的模式和细节。\n4. **优化技术**:采用更先进的优化算法和技术,如分层训练、知识蒸馏等,来提高训练效率和模型性能。\n\n大模型的出现和应用,标志着人工智能领域的一个重要转折点,为许多实际应用提供了可能性,如生成式模型、多模态融合、对话系统等。然而,大模型也面临着模型解释性、隐私保护、资源消耗等问题,这些都需要在实际应用中持续探索和优化。"
          }
        }
      ]
    }
  }
]

从上面的结果来看,每次的输出,都需要经过大量的计算,最后却又输出一段完整的看似通顺的“人话”。这里不得不说数学的妙处,世间的万事万物,皆可以用数学符号去抽象。比如你说的任何一句话,都可以用数学语言进行表达。

2. 学习之旅

对大模型有了整体认知后,当然博主仅仅以问答式大模型为例。所以你可以更广泛的去了解不同领域不同技能的大模型,但是万变不离其宗,本质还是一样的。

如何开始学习大模型呢?先从最简单的地方入手,准备一个Python(推荐)/Java环境,申请一个大模型API-KEY(行业惯例),那么你就能够开启大模型之旅了。博主依然以阿里通义千问为例,助你一臂之力。

2.1 通义千问大模型

DashScope通过围绕模型为中心,致力于为AI应用开发者提供品类丰富、数量众多的模型选择,并通过API接口为其提供开箱即用、能力卓越、成本经济的模型服务。各领域模型的能力均可通过DashScope统一的API和SDK来实现被不同业务系统集成,AI应用开发和模型效果调优的效率将因此得以激发,助力开发者释放灵感、创造价值。

阿里通义千问大模型是其大模型产品DashScope中的一族,可以通过DashScope SDK或API进行模型调用。接下来,博主分解每个动作,通过Python我们获得第一次大模型的使用经验。博主选中的模型,当然是最简单的一个了:Turbo版
在这里插入图片描述

2.1.1 开通DashScope模型服务灵积

通过阿里云控制台,找到该产品,可以立即免费开通。开通后,我们立即享受30天,100万token的大礼包。

2.1.2 申请一个API-KEY

接下来,可以免费申请一个API-KEY,它是请求通义千问的凭证和唯一“身份证”,所以不能泄露,后果很严重哦。

在这里插入图片描述

2.1.3 安装Python

教程太多了,直接安装Python最新版本,博主不再详述。最后为方便学习,安装一个PyCharm,可以让你的学习过程更愉悦。

2.1.4 安装DashScope SDK

在PyCharm中的terminal窗口,输入pip3 install dashscope后,经过大约十几分钟后,你就能够看到successful提示,代表下载并安装成功:

在这里插入图片描述

同时,你可以通过PyCharm中的project—>setting查看是否已安装(存在即安装成功):

在这里插入图片描述

2.1.5 使用通义千问大模型

在使用大模型前,博主提醒各位,一定要提前计算一下token,这是大模型的普遍计费依据。token约大,费用越高。不过新开通的用户,阿里免费提供100万个token。

在这里插入图片描述

调用通义千问大模型的代码如下,model选择qwen-turbo

import dashscope
import random
from http import HTTPStatus
# 建议dashscope SDK 的版本 >= 1.14.0
from dashscope import Generation
# API_KEY,填写上面已申请的API_KEY
dashscope.api_key = "请填写你已申请的API_KEY"


def call_with_messages():
    messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': '如何学习大模型?'}]
    response = Generation.call(model="qwen-turbo",
                               messages=messages,
                               # 设置随机数种子seed,如果没有设置,则随机数种子默认为1234
                               seed=random.randint(1, 10000),
                               temperature=0.8,
                               top_p=0.8,
                               top_k=50,
                               # 将输出设置为"message"格式
                               result_format='message')
    if response.status_code == HTTPStatus.OK:
        print(response)
    else:
        print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
            response.request_id, response.status_code,
            response.code, response.message
        ))


if __name__ == '__main__':
    call_with_messages()

如执行正确, 可看到如下返回结果,代表我们通过sdk请求成功了:

在这里插入图片描述

至此,我们轻松获得一个大模型的使用经验,同时也能感受它在任何领域都具备的能力。

结语

ChatGPT的问世,一石激起千层浪,AI从此步入凡间,好像任何一个人都能玩的明白,玩的通透了。技术促进人类生产力的发展,那么AI又是其中最耀眼的一颗星,学习它很有趣!


在这里插入图片描述

标签:Python,模型,手册,tokens,入门级,API,output,message,ChatGPT
From: https://blog.csdn.net/splendid_java/article/details/141059364

相关文章

  • python 如何获取当前时间
    python如何获取当前系统的时间1、导入包import datetime2、获取当前的时间curr_time = datetime.datetime.now()# 2019-07-06 14:55:56.873893 <class 'datetime.datetime'>curr_time.year# 2019 <class 'int'>curr_time.month# 7 <class......
  • python 如何获取毫秒级系统时间
    python如何获取毫秒级系统时间?下面给大家举个例子:import timeimport datetimet = time.time()print (t)                #原始时间数据print (int(t))              #秒级时间戳print (int(round(t * 1000)))     #毫秒......
  • Python - sum()
     >>>bugs=["bug1","bug2"]>>>sum(bugs,[])Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:canonlyconcatenatelist(not"str")tolist>&g......
  • pyqt5+win32+python联合在CAD绘图无法绘制
    1初始报错想法是:写好pyqt5的简单界面代码后,用一个信号槽连接到CAD绘制图形。出现了报错:显示“已成功连接到CAD”,说明连接没有问题,但是“在CAD中绘制线条时出错:(-2147352567,'发生意外。',(0,None,None,None,0,-2147024809),None)”。搜索后给出可能原因是:1-参......
  • Python使用PyCharm+PySide6+Pandas创建QTableView显示Excel工作簿数据
    importsysimportwarningsfrompathlibimportPathimportpandasaspdfromPySide6importQtWidgetsfromPySide6.QtCoreimportQtfromPySide6.QtGuiimportQStandardItemModel#读取Excel工作簿数据defread_excel_with_pandas(path_excel,_cols):"&qu......
  • python爬虫
    爬虫一、爬虫的分类1、通用爬虫 实例百度,360,google、搜狗等搜索引擎功能 访问网页-》抓取数据-》数据存储-》数据处理-》提供检测服务robots协议一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,之际写的爬虫无需遵守网站排名......
  • PythonL-Chapter_01_基础语法
    注释#这是单行注释"""这是多行注释可以写多行文字"""变量和数据类型内置基本数据类型整数(int):用于表示没有小数部分的数字,例如-1,0,1,100等浮点数(float):用于表示带有小数部分的数字,例如3.14,2.718字符串(str):用于表示文本信息,必须使用引号(单引......
  • Selenium + Python 自动化测试11(unittest组织用例)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上一篇我们讨论了unittest基本使用方法。        本篇文章我们接着讲。一些概念和一些常用的构造测试集的方法。1、基本概念1)TestCase        一个TestCase的......
  • Selenium + Python 自动化测试10(unittest概念)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上几篇我们讨论了元素的定位方法、操作方法以及一些特殊元素的操作。        在实际的测试项目组中每个模块会写多条案例,如第一条用例那里我们的登录。登录的话就可以有多条......
  • python毕业设计基于Django的汽车租赁系统
    文末获取资源,收藏关注不迷路文章目录一、项目介绍二、主要使用技术三、研究内容四、核心代码五、文章目录一、项目介绍随着经济的飞速发展和人们生活水平的显著提升,汽车已经成为现代生活中不可或缺的重要交通工具。然而,随着城市化进程的加快,交通拥堵、停车难以及高......