【AI大模型】Python基础

Python的发展历程

  1. 发明者:

来自罗森的Guido
一个学霸-阿姆斯特丹大学获得数学和计算机科学硕士学位
致力于打造解放程序员的语言

  1. 发展历程

Python应用领域

  • 自动化办公:提升我们的工作效率,解放双手
  • 爬虫:爬取大量数据集
  • 数据分析:数据可视化
  • 大数据:大数据应用,应用推荐
  • 全栈Web项目:产品开发
  • AI:人工智能主开发语言

应用AI,学习Python的重要性

  • Python是机器学习和深度学习领域最受欢迎的语言之一
  • 通过学习Python,你可以使用各种强大的库和工具来构建和训练机器学习模型
  • Python拥有广泛的数据分析库和工具,如Pandas、NumPy、Matplotlib等
  • 使用Python可以方便地对大量数据进行处理、分析和可视化,从而提取有价值的信息并做出决策
  • 可以更快地实现和优化算法,并且代码更容易在不同的平台和环境中移植和部署
  • Python可以通过使用多线程和并行化等技术来处理大规模的数据,这对于大模型训练来说是非常重要的

Python环境的搭建

  1. 下载安装包:https://www.python.org/downloads/
  2. 安装完后,在终端输入python --version,通过查看安装的版本号的来检测是否安装成功。

Python编辑器安装

  1. VSCode安装:https://code.visualstudio.com/
    安装Python插件:

  2. PyCharm安装:https://www.jetbrains.com/pycharm/

pip包管理工具

  • pip是Python的包管理工具,用于安装、卸载、升级和管理Python包
  • pip是Python标准库之外的一个第三方工具,可以从Python Package Index (PyPl)下载和安装各种Python包和依赖项。
  • pip官网地址:https://pypi.org/project/pip/

说明:
pip不用单独安装,是随着python一起安装,查看pip版本号:pip --version
如果发现pip不可用或损坏,则直接执行下面的命令就可以:python -m ensurepip --upgrade

pip常用命令

pip install package_name: 安装指定的Python包或库,将包的文件复制到Python解释器的site-packages目录下。
pip uninstall package_name:卸载指定的Python包或库,从Python解释器的site-packages目录下删除该包的文件。
pip list:列出当前Python环境中已安装的所有包或库的列表。

apple@appleMacBook-Pro ~ % pip list                 
Package            Version
------------------ ---------
aiohttp            3.8.4
aiosignal          1.3.1
async-timeout      4.0.2
attrs              23.1.0
certifi            2022.12.7
charset-normalizer 3.1.0
frozenlist         1.3.3
idna               3.4
multidict          6.0.4
openai             0.27.6
pip                23.3.2
requests           2.29.0
setuptools         56.0.0
tqdm               4.65.0
urllib3            1.26.15
wheel              0.40.0
yarl               1.9.2

pip show package_name: 显示指定包的详细信息,包括包的名称、版本号、安装路径等。
pip search package_name: 在PyPI (Python Package Indlex)上搜索指定的包或库,并显示相关信息。
pip freeze:显示当的Python环境中已安装的所有包的名称和版本号。
pip install -rrequirements-txt:根据requirements.txt文件中列出的依赖项列表,安装指定版本的Python包或库。

pip install package_name[dependencies]:一个包可能依赖于其他包。要安装一个包及其依赖项。

如:假设我们有一个名为"my_math_package"的Python包,它依赖于nurpy和scipy库。我们想要安装这个包,并确保同时安装这两个依赖项。
pip install my_math_package[numpy,scipy]

pip wheel package_name:将指定的Python包或库打包成wheel文件,以便在其他Python环境中使用。
使用pip将名为"numpy’的Python库打包成wheel文件 (Python的分布式的文件格式,替代Python传统的egg文件)。pip wheel numpy

Python工程应用

1. 字符串

  • 普通字符串:使用单引号(')或双引号(")括起来的字符串,例如:‘hello’,“hello”
  • 原始字符串:原始字符串是一种特殊类型的字符串,在字符串中不会将反斜杠(\)视为转义字符,而是作为普通字符原样输出。
# 1.普通字符串,\n是转义字符会换行
print('hello\nworld!') 
# 2.原始字符串。在Python中,r表示原始字符串(raw string)
print(r'hello\nworld!') // 原始字符串,原样输出
# 3.三引号字符串/文档字符串:使用三个引号(单引号/双引号)括起来的字符串,可以包含多行文本
print('''Hello
World!

Python'''
)

# 4.格式化字符串(使用大写的'F'或者'f'作为字符串的前缀)
for i in range(5):
  print(f'第{i + 1}个数字是{i}')

  • Unicode字符串和字节串
    Unicode字符串通常用于表示包含非ASCII字符的字符串,比如包含中文字符或特殊符号的文本。在Python中,Unicode字符串通常以 u 或 u" 作为前缀,Unicode字符串表示的是字符本身,而不是它们的编码形式。
  • 字节串(用于表示二进制数据)
    字节串(Byte String)是一种特殊的数据类型,用于表示二进制数据。字节串以b或bytes作为前缀,并且包含了一串字符的ASCII码表示。每个字符都是一个字节,因此字节串可以包含多个字节。
# codecs是Python的一个标准库,它提供了对各种字符编码的读取和写入操作的支持。
import codecs # Unicode字符串转译

# Unicode字符串:定义一个包含中文字符的Unicode字符串
text = u'hello,Python!'
# 打印该字符串
print(text)

# 字节串
byte_string = b'Hello, World!'
# 打印字节串
print(byte_string)

# 将字节串转换为字符串(需要解码)
string = byte_string.decode('utf-8')
print(string)

# 将字符串转换为字节串(需要编码)
byte_string = string.encode('utf-8')
print(byte_string)


# 将该字符串写入文件
with codecs.open('output.txt', 'w', encoding='utf-8') as file:
    file.write(text)

length = len('abcde') # 获取字符串长度

在字符串定义方式上的区别

语言字符串定义方式上的区别
Python使用单引号(‘’)或双引号(“”)来表示一个字符串,也可以用三引号来表示一个多行字符串
Java使用char表示单个字符,String表示一个字符串,常量字符或字符串用双引号""表示
JavaScript也使用单引号(‘’)或双引号(“”)来表示一个字符串,同时也可以使用反斜杠(\)来表示一个字符串的续行。
2.Python文档化
# Python文档化:相当于多行注释,使用三个双引号(""")

class Person:
    """
    表示一个人的类

    属性:
    name -- 姓名
    age  -- 年龄

    方法:
    say_hello -- 打印问候语
    """
    def __init__(self, name, age) -> None:
        self.name = name
        self.age = age

    def say_hello(self):
        print('Hello, my name is ' + self.name)

    
    def getInfo(name):
        return '姓名:' + name

    # 变量类型注解(即指定方法参数是字符串类型)
    def getInfo1(name: str):
        return '姓名:' + name
    
    # 函数返回值类型注解(即指定方法返回值是字符串类型)
    def getInf2(name: str) -> str:
        return '姓名:' + name

3.异常处理语句
# Python中的异常处理语句    
try:
    # 要执行的代码
except ExceptionType:
    # 当异常发生时执行的代码
finally:
    # 无论是否发生异常都会执行的代码

4.文件I/O应用
# 写入文件操作
with open('test.txt', 'w') as f:
    f.write('Hello, world!\n')
    f.write('Hello, world!')

# 读取文件操作
with open('test.txt', 'r') as f:
    content = f.read()
    print(content)  # str类型

# 关闭文件(说明:使用了with语句时,会自动处理文件的关闭操作,无需再使用下面代码手动关闭)
# f.close()

5.JSON应用
import json

# dict类型(Python对象)
data = {
    "name": "Tom",
    "age": 25,
    "hobbies": ["阅读", "游泳", "旅游"]
}

# json.dumps() 将字典转换为JSON字符串
json_str = json.dumps(data)
print(json_str)
print(type(json_str)) # 打印值的类型。输出结果:<class 'str'> 表示是字符串类型

# 写入文件操作(写入Python对象)
with open('data.json', 'w') as f:
    # json.dump() 将Python对象写入JSON文件
    json.dump(data, f)

# 读取文件操作
with open('data.json', 'r') as f:
    # 加载JSON文件
    data = json.load(f)
    print(data) # dict类型

Python爬虫

1.什么是爬虫

通俗的讲:就是模拟浏览器抓取数据
科学的讲:通过一定的规则用程序对互联网相关数据解析并存储

2.urllib库
# urllib库:用于操作网页URL,并对网页的内容进行抓取处理
# urllib.request: 打开和读取URL
# urllib.request.urlopen(): 打开一个URL
from urllib.request import urlopen

url = 'http://baidu.com'
con = urlopen(url)
# 读取网页的内容
bytes_data = con.read()
print(bytes_data)
f = open('test.html', 'wb')
f.write(bytes_data)
f.close()

# open(name, mode)方法
# 核心:创建一个file对象 python的I/O;name是要访问的文件名,mode是决定打开的模式
# mode: w表示写入;wb表示以二进制格式写入;

3.requests库
import requests
import json

# 封装百度翻译请求
def baiduFanyi(keyword):
    url = 'https://fanyi.baidu.com/sug'
    params = {
        'kw': keyword
    }
    response = requests.post(url, params)
    res_str = response.text  # 获取JSON字符串
    res_dic = response.json()  # 获取JSON对象(字典)
    print('请求结果:', res_dic)
    # JSON字符串 转 字典
    # res_dic = json.loads(res_str)
    errno = res_dic['errno']
    dataList = res_dic['data']
    if (errno == 0):
        length = len(dataList)
        for i in range(length):
            item = dataList[i]
            value = item['v']
            print('第' + str(i + 1) + '项解释:' + value)
        """
        for item in dataList:
            value = item['v']
            print(value)
        """

# 测试翻译方法
def testBaiduFanyi():
    searchText = input('请输出要翻译的词:')
    baiduFanyi(searchText)

# Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口(即main函数)。
# __name__ 是内置变量,用于表示当前模块的名字;
# if __name__ == '__main__' 就相当于是 Python 模拟的程序入口。其作用是:
#   1.当python文件直接被运行时,if __name__ == '__main__': 语句下面的代码段将被执行。
#   2.当python文件以模块形式被调用时,if __name__ == '__main__': 语句下面的代码段不会被执行。
if __name__ == "__main__":
    testBaiduFanyi()


  • 运行结果:
请输出要翻译的词:你好
请求结果: {'errno': 0, 'data': [{'k': '你好', 'v': 'hello; hi; How do you do!'}, {'k': '你好吗', 'v': 'How do you do?'}, {'k': '你好,陌生人', 'v': '[电影]Hello Stranger'}], 'logid': 1410962127}1项解释:hello; hi; How do you do!
第2项解释:How do you do?
第3项解释:[电影]Hello Stranger

字符串处理

  • 字符串高频处理方法
方法用途
split()按照指定的分隔符将字符串分割成一个列表
strip()删除字符串头尾指定的字符(默认为空格),返回新的字符串
replace()替换字符串中的指定内容为新的字符串,并返回新的字符串
find()查找指定内容在字符串中出现的位置(索引号),若未找到则返回-1
lower()将字符串中的字母全部转换为小写,并返回新的字符串。
upper()将字符串中的字母全部转换为大写,并返回新的字符串。
index()查找指定内容在字符串中出现的第一个位置(索引号),若未找到则报错。
capitalize()将字符串的第一个字母大写,其余字母小写,并返回新的字符串。
title()将字符串中每个单词的第一个字母大写,其余字母小写,并返回新的字符串。

dotenv的使用

做配置文件的管理,python-dotenv是一个Python库,可以从.env文件(配置文件)中读取环境变量。
作用:可以将敏感信息(如:API秘钥)存储在环境变量中,而不是硬编码在代码中,可以有效保护敏感信息安全。

如何使用 python-dotenv
  1. 安装 python-dotenv 库:终端运行命令 pip install python-dotenv
  2. 创建.env文件:在项目根目录下创建一个名为 .env 的文件,并将环境变量写入该文件中,每个key=value对应一行。
# .env文件的内容
# MySQL数据库
DATABASE_HOST=localhost
DATABASE_NAME=mydatabase
DATABASE_USER=myuser
DATABASE_PASSWORD=mypasswprd

# 私有KEY
SECRET_KEY=mysecretkey

#sk-xxx 使用你自己的 key 替换
OPENAI_API_KEY="sk-xxx"
OPENAI_API_BASE="https://api.fe8.cn/v1"

  1. 将.env文件中的变量加载到系统环境变量中
from dotenv import load_dotenv
import os

# 使用该函数将.env文件中的所有变量读取到系统环境变量中,方便在程序中使用这些变量
load_dotenv()

# 访问环境变量
SECRET_KEY = os.getenv("SECRET_KEY")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")

FastAPI的使用

FastApi 用于构建API,是一个现代、快速(高性能)的 Python web 框架。
官方地址:https://fastapi.tiangolo.com/

如何使用FastAPI
  1. 安装FastAPI:终端命令 pip install fastapi
  2. 对于生产环境,还需要一个ASGI服务器,如Uvicorn或Hypercorn
    安装Uvicorn,执行命令:pip install “uvicorn[standard]”
  • 新建一个main.py文件,内容如下:
from fastapi import FastAPI

# 创建API实例
app = FastAPI()

# async def是定义异步函数的方法
# 127.0.0.1/
# 跟路由,设置接口的路由
@app.get("/")
# root 是接口方法名称
async def root():
    return {"message": "Hello World"}

  • 项目启动命令(在项目文件目录下,执行下面命令)
    uvicorn main:app --reload

main是文件名(main.py);
app是文件内创建API实例;
–reload 重新启动服务器(仅用于开发)

  • 运行结果:
zhangsan@zhangsan PythonProject % uvicorn main:app --reload
INFO:     Will watch for changes in these directories: ['/Users/zhangsan/Workspaces/PythonProject']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [3910] using WatchFiles
INFO:     Started server process [3918]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     127.0.0.1:53511 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:53511 - "GET /favicon.ico HTTP/1.1" 404 Not Found

  • 浏览器输入:http://127.0.0.1:8000 查看返回结果

  • 浏览器输入:http://127.0.0.1:8000/docs 查看交互式文档(Swagger)

  • 浏览器输入:http://127.0.0.1:8000/redoc 查看API文档

    那么,我们该如何学习大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的朋友,可以扫描下方二维码免费领取!!!

一、大模型全套的学习路线

学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。

L1级别:AI大模型时代的华丽登场

L2级别:AI大模型API应用开发工程

L3级别:大模型应用架构进阶实践

L4级别:大模型微调与私有化部署

一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。

以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值