《书生大模型实战营第3期》入门岛 学习笔记与作业:Python 基础知识

news2024/11/15 10:49:17

文章大纲

  • Python 简介
  • 1 安装Python
    • 1.1 什么是conda?
      • 1.1.1 功能与作用:
      • 1.1.2 常用命令:
      • 1.1.3 适用性:
    • 1.2 Python安装与学习环境准备
      • 1.2.1 下载miniconda
      • 1.2.2 安装miniconda
      • 1.2.3 创建一个python练习专属的conda虚拟环境
  • 2: Python基础
  • 3: Numpy基础
  • 4 使用vscode连接开发机进行python debug
    • 4.1 什么是debug?
    • 4.2 使用本地Vscode连接InternStudio开发机
    • 4.3 在Vscode中打开终端
    • 4.4 使用Vscode进行Python debug的流程
      • 4.4.1 debug单个python文件
      • 4.4.2 在vscode使用命令行进行debug
        • 4.4.2.1 vscode设置
        • 4.4.2.2 debug命令行
        • 4.4.2.3 使用别名简化命令
  • 作业
      • 任务概览
      • 任务一
      • 任务二
  • 其他学习内容
    • python AI 环境配置
    • pyspark 的 word count 怎么写呢?
  • 参考文献
    • 本人学习系列笔记
      • 第二期
      • 第三期
    • 课程资源
    • 论文
    • 其他参考


Python 简介

在这里插入图片描述

官网:

  • https://www.python.org/

文档:

  • https://docs.python.org/zh-cn/3/

包管理:

  • https://pypi.org/

python 环境配置可以参考本人系列博客:

  • python开发简介:【集成开发环境 IDE】

  • python开发简介:【Conda,Pip】虚环境搭建、配置

  • python开发简介:【jupyter notebook】实战配置

  • python开发简介: 编码规范与工程基础实践

  • 使用 jupyter hub /lab搭建机器学习工作台

  • 使用跨平台的visual studio code 进行python 开发

(综合内容老版本)

  • python 开发环境搭建(综合内容老版本)

其实Python 的环境配置在所有编程技术栈中是相对简单的,由于conda,pip 的存在。古早c++, Java 程序员入职第一周基本周报都是写做环境配置,Python基本只要一天就能搞定。

本文主要由以下四大块内容组成:

  • Python(Miniconda)的安装
  • Python基础语法
  • Numpy基础(选修)
  • vscode 远程连接InternStudio开发机打断点调试 python 程序

1 安装Python

TIPS: InternStudio开发机已经为大家准备好了conda环境,不需要再安装。【云平台开箱即用非常重要!】

这部分是为了给那些想在自己电脑上配置环境来练手的,已经装好了的可以跳过哈。

推荐直接安装miniconda(anaconda也可以)来安装python,这样方便管理开发环境。

1.1 什么是conda?

Conda是一个开源的软件包管理系统和环境管理系统,它主要用于安装多个版本的软件包及其依赖关系,并能轻松地在它们之间切换。以下是关于Conda的详细介绍:

1.1.1 功能与作用:

  • 包管理:Conda可以帮助用户轻松地安装、更新和卸载各种软件包。它提供了一个庞大而丰富的社区仓库——Anaconda仓库,内含数千个优化过并经过验证的常见Python软件包,也包含其他编程语言(如R)的工具。
  • 环境管理:使用Conda,用户可以创建独立且隔离的开发环境,为每个项目或应用程序设置不同的版本或配置文件,确保它们之间不会相互干扰,对于处理不同的依赖关系非常重要。
  • 跨平台支持:Conda适用于Windows、Mac和Linux,使在不同平台上共享代码变得更加容易,避免由于系统差异导致的问题。

1.1.2 常用命令:

  • conda list:列出当前conda环境所链接的软件包。
  • conda create:创建一个新的conda环境。例如,conda create -n myenv python=3.8会创建一个名为myenv的新环境,并指定Python版本为3.8。
  • conda activate:激活一个已存在的conda环境。
  • conda deactivate:退出当前激活的环境。
  • conda install:在当前激活的环境中安装包。
  • conda update:更新包或conda本身到最新版本。
  • conda remove:从当前环境中卸载包。
  • conda env list:显示所有已创建的环境。

1.1.3 适用性:

Conda不仅为Python程序创建,也可以打包和分发其他软件,并且支持多种编程语言,包括Python、R、Ruby、Lua、Scala、Java、JavaScript、C/C++等。它被广泛用于数据分析、科学计算和机器学习领域,提供了简单而强大的工具来创建、部署和维护这些领域所需的环境。总的来说,Conda是一个在数据分析和软件开发领域非常有用的工具,特别是当需要管理多个项目和不同版本的依赖时,Conda可以大大简化环境和依赖管理的复杂性。

1.2 Python安装与学习环境准备

如果在本地想搭建python环境练手的话,可以安装miniconda。(开发机已经准备好conda环境,无需重复安装)

1.2.1 下载miniconda

miniconda和anaconda都可以通过官网下载,也可以去清华源下载。

清华源miniconda下载链接: 清华大学开源软件镜像站 | Tsinghua Open Source Mirror(建议选择python3.9以上的版本,比如Miniconda3-py310_24.5.0)

1.2.2 安装miniconda

windows可以通过图形化的安装程序直接完成安装记得在最后一步把miniconda加入环境变量

如何换源让pip或conda安装包更快?(在境外的同学可以跳过此步骤) python的包管理pip与conda的源服务器均在境外,安装包的时候常常会碰到下载慢的情况。这时我们可以把pip与conda的源替换为国内的镜像,下面我们将刚刚安装好的环境替换为清华源。我们需要进入命令行开始进行换源,Windows可以直接打开miniconda powershell promt。

首先将 pip替换为清华源,只需要一条命令。

 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

接着我们来给conda替换成清华源。各系统都可以通过修改用户目录下的 .condarc 文件来修改镜像源。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。在用户目录找到.condarc 文件后,使用文本编辑器打开,将下面的内容复制进去并保存。

 channels:   - defaults show_channel_urls: true default_channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels:
 conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

接着在命令行中运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

1.2.3 创建一个python练习专属的conda虚拟环境

本次教程会需要用到jupyter和numpy,所以安装完miniconda后我们还需要安装jupyter lab和numpy。

打开miniconda powershell prompt或者终端,首先我们先创建一个虚拟环境并用Pip安装jupyter lab和numpy。

conda create -n python-tutorial python=3.10
conda activate python-tutorial
pip install jupyter lab
pip install numpy

本关卡的示例代码与闯关作业均为notebook(ipynb)格式,你们需要自行去github clone或者直接打包下载。下载好后我们激活环境并启动jupyter lab,然后再notebook中打开教程的两个代码文件。就可以开始本次的学习了。

conda activate python-tutorial
jupyter lab

2: Python基础

参考本人博客:

  • python开发简介: 编码规范与工程基础实践

或者官方教材

  • https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Python/ch2_python_intro.md

3: Numpy基础

参考本人博客:

  • NLP开源工具包与云服务提供商
  • 基础库 ---- NumPy
  • 基础库 ---- Pandas
  • 基础库 ---- Pandas(练习篇)
  • 基础库 ---- SciPy
  • 基础库 ---- matplotlib
  • 机器学习 ---- Gensim
  • 机器学习 ---- Scikit-learn
  • 深度学习 ---- TensorFlow
  • 深度学习 ---- Keras
  • 深度学习 ---- Pytorch

或者官方教材

  • https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Python/ch3_numpy_intro.md

4 使用vscode连接开发机进行python debug

VSCode是由微软开发一款轻量级但功能强大的代码编辑器,开源且完全免费。它拥有丰富的插件生态系统、跨平台支持、以及内置的Git控制功能,为开发者提供了高效便捷的编码体验。

VScode下载地址:Visual Studio Code - Code Editing. Redefined

4.1 什么是debug?

当你刚开始学习Python编程时,可能会遇到代码不按预期运行的情况。这时,你就需要用到“debug”了。简单来说,“debug”就是能再程序中设置中断点并支持一行一行地运行代码,观测程序中变量的变化,然后找出并修正代码中的错误。而VSCode提供了一个非常方便的debug工具,可以帮助你更容易地找到和修复错误。

4.2 使用本地Vscode连接InternStudio开发机

首先需要安装Remote-SSH插件

在这里插入图片描述

安装完成后进入Remote Explorer,在ssh目录下新建一个ssh链接

在这里插入图片描述

此时会有弹窗提示输入ssh链接命令,回车后还会让我们选择要更新那个ssh配置文件,默认就选择第一个就行(如果你有其他需要的话也可以新建一个ssh配置文件)。

在这里插入图片描述

开发机的链接命令可以在开发机控制台对应开发机"SSH连接"找到,复制登录命令到vscode的弹窗中然后回车,vscode就会开始链接InternStudio的服务器,记得此时切回去复制一下ssh的密码,待会会用到。

在这里插入图片描述
(下面这一步,和文档顺序有点不一样)
在这里插入图片描述

在新的弹窗中将ssh密码粘贴进去然后回车。随后会弹窗让选择远程终端的类型,这边我们的开发机是linux系统,所以选择linux就好。

在这里插入图片描述

首次连接会进行一些初始化的设置,可能会比较慢,还请耐心等待。后面打开文件夹的时候可能会再需要输入密码,可以一直开着开发机的控制台不要关掉以备不时之需。

看到左下角远程连接已经显示ssh连接地址SSH:ssh.intern-ai.org.cn,说明我们已经连接成功了。然后我们就可以像在本地使用vscode一样愉快的使用vscode在开发机上进行任何操作了。

在这里插入图片描述

连接成功后我们打开远程连接的vscode的extensions,在远程开发机上安装好python的插件,后面python debug会用到。也可以一键把我们本地vscode的插件安装到开发机上。

在这里插入图片描述

4.3 在Vscode中打开终端

单击vscode页面下方有一个X和!的位置可以快速打开vscode的控制台,然后进入TERMINAL。

在这里插入图片描述

TIPS:右上方的+可以新建一个TERMINAL。

4.4 使用Vscode进行Python debug的流程

4.4.1 debug单个python文件

Step1.打开文件夹

在VSCode中打开直接打开root文件夹,或者你想要debug的Python文件所在的文件夹。这里可能会需要再次输入密码。下面我们以打开root文件夹为例。单击Open Folder或者左上角菜单File->Open Folder。

这边我们新建一个文件夹,写一个简单的python程序来做debug演示。
在这里插入图片描述

def add_numbers(a,b,c):
    sum = 0#这里其实覆盖了python自带的sum方法。
    sum +=a
    sum +=b
    sum +=c
    print("The sum is ",sum) 

if __name__ =='__main__':
    x,y,z = 1,2,3
    result = add_numbers(x,y,z)#图中代码这里写成1,2,3了
    print("The result of sum is ",result)

新建python文件后我们如果想要运行,首先需要选择解释器。单击右下角的select interpreter,vsconde会自动扫描开发机上所有的python环境中的解释器。这里我们只要选conda中的base就行了,后面各位如果要使用其他虚拟环境就在这选择对应的解释器就可以。

Step2.设置断点

在代码行号旁边点击,可以添加一个红点,这就是断点(如果不能添加红点需要检查一下python extension是否已经正确安装)。当代码运行到这里时,它会停下来,这样你就可以检查变量的值、执行步骤等。

在这里插入图片描述

Step3.启动debug

点击VSCode侧边栏的“Run and Debug”(运行和调试),然后点击“Run and Debug”(开始调试)按钮,或者按F5键。

在这里插入图片描述

单击后会需要选择debugger和debug配置文件,我们单独debug一个python文件只要选择Python File就行。然后你的代码会在达到第一个断点之前运行,在第一个断点处停下来。

Step4.查看变量

当代码在断点处停下来时,你可以查看和修改变量的值。在“Run and Debug”侧边栏的“Variables”(变量)部分,你可以看到当前作用域内的所有变量及其值。

Step5.单步执行代码

你可以使用“Run and Debug”侧边栏顶部的按钮来单步执行代码。这样,你可以逐行运行代码,并查看每行代码执行后的效果。
在这里插入图片描述

debug面板各按钮功能介绍:

  • 1: continue: 继续运行到下一个断点

  • 2: step over:跳过,可以理解为运行当前行代码,不进入具体的函数或者方法。

  • 3: step into: 进入函数或者方法。如果当行代码存在函数或者方法时,进入代码该函数或者方法。如果当行代码没有函数或者方法,则等价于step over。

  • 4: step out:退出函数或者方法, 返回上一层。

  • 5: restart:重新启动debug

  • 6: stop:终止debug

Step6.修复错误并重新运行

如果你找到了代码中的错误,可以修复它,然后重新运行debug来确保问题已经被解决。

通过遵循以上步骤,你可以使用VSCode的debug功能来更容易地找到和修复你Python代码中的错误。可以自己编写一个简单的python脚本,并尝试使用debug来更好的理解代码的运行逻辑。记住,debug是编程中非常重要的一部分,所以不要怕花时间在这上面。随着时间的推移,你会变得越来越擅长它!

4.4.2 在vscode使用命令行进行debug

很多时候我们要debug的不止是一个简单的python文件,而是很多参数,参数中不止会有简单的值还可能有错综复杂的文件关系,甚至debug一整个项目。这种情况下,直接使用命令行来发起debug会是一个更好的选择。

4.4.2.1 vscode设置

vscode支持通过remote的方法连接我们在命令行中发起的debug server。首先我们要配置一下debug的config。
在这里插入图片描述

还是点击VSCode侧边栏的“Run and Debug”(运行和调试),单击"create a lauch.json file"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择debugger时选择python debuger。选择debug config时选择remote attach就行,随后会让我们选择debug server的地址,因为我们是在本地debug,所以全都保持默认直接回车就可以了,也就是我们的server地址为localhost:5678。

配置完以后会打开配置的json文件,但这不是重点,可以关掉。这时我们会看到run and debug界面有变化,出现了debug选项。
在这里插入图片描述

4.4.2.2 debug命令行

现在vscode已经准备就绪,让我们来看看如何在命令行中发起debug。如果没有安装debugpy的话可以先通过pip install debugpy安装一下。

python -m debugpy --listen 5678 --wait-for-client ./myscript.py
  • ./myscript.py可以替换为我们想要debug的python文件,后面可以和直接在命令行中启动python一样跟上输入的参数。记得要先在想要debug的python文件打好断点并保存。

  • --wait-for-client参数会让我们的debug server在等客户端连入后才开始运行debug。在这就是要等到我们在run and debug界面启动debug。

先在终端中发起debug server,然后再去vscode debug页面单击一下绿色箭头开启debug。
在这里插入图片描述
在这里插入图片描述

接下来的操作就和上面一样了。

在这里插入图片描述

4.4.2.3 使用别名简化命令

这边有个不方便的地方,python -m debugpy --listen 5678 --wait-for-client这个命令太长了,每次都打很麻烦。这里我们可以给这段常用的命令设置一个别名。

linux系统中,可以对 ~/.bashrc 文件中添加以下命令

alias pyd='python -m debugpy --wait-for-client --listen 5678'

然后执行


作业

  • https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Python/task.md

任务概览

任务类型任务内容预计耗时
闯关任务Python实现wordcount15mins
闯关任务Vscode连接InternStudio debug笔记15mins

闯关作业总共分为两个任务,两个任务均完成视作闯关成功。
请将作业发布到知乎、CSDN等任一社交媒体,将作业链接提交到以下问卷,助教老师批改后将获得 50 算力点奖励!!!
提交地址:https://aicarrier.feishu.cn/share/base/form/shrcnZ4bQ4YmhEtMtnKxZUcf1vd

任务一

请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。

Eg:

Input:

"""Hello world!  
This is an example.  
Word count is fun.  
Is it fun to count words?  
Yes, it is fun!"""

Output:

{'hello': 1,'world!': 1,'this': 1,'is': 3,'an': 1,'example': 1,'word': 1, 
'count': 2,'fun': 1,'Is': 1,'it': 2,'to': 1,'words': 1,'Yes': 1,'fun': 1  }

TIPS:记得先去掉标点符号,然后把每个单词转换成小写。不需要考虑特别多的标点符号,只需要考虑实例输入中存在的就可以。

text = """
Got this panda plush toy for my daughter's birthday,
who loves it and takes it everywhere. It's soft and
super cute, and its face has a friendly look. It's
a bit small for what I paid though. I think there
might be other options that are bigger for the
same price. It arrived a day earlier than expected,
so I got to play with it myself before I gave it
to her.
"""

def wordcount(text):
    pass

为了实现这个wordcount函数,我们首先需要去除字符串中的标点符号,并将所有字母转换为小写(可选,但为了简化比较通常这样做)。然后,我们可以使用空格分割字符串以获取单词列表,并使用字典来统计每个单词出现的次数。

以下是实现这一功能的Python代码:

import re
from collections import defaultdict

def wordcount(text):
    # 去除标点符号并转换为小写
    cleaned_text = re.sub(r'[^\w\s]', '', text.lower())
    
    # 分割字符串为单词列表
    words = cleaned_text.split()
    
    # 使用defaultdict来简化字典的创建过程
    word_counts = defaultdict(int)
    
    # 统计每个单词出现的次数
    for word in words:
        word_counts[word] += 1
    
    # 将defaultdict转换为普通字典(如果需要)
    return dict(word_counts)

# 示例输入
text = """
Got this panda plush toy for my daughter's birthday,
who loves it and takes it everywhere. It's soft and
super cute, and its face has a friendly look. It's
a bit small for what I paid though. I think there
might be other options that are bigger for the
same price. It arrived a day earlier than expected,
so I got to play with it myself before I gave it
to her.
"""

# 调用函数并打印结果
word_dict = wordcount(text)
print(word_dict)

# 调用函数并打印结果
word_dict = wordcount(input_text)
print(word_dict)

注意:由于输入字符串中包含换行符和多个空格,我们在去除标点符号后直接使用split()方法分割字符串。另外,由于我们使用了defaultdict(int),当访问字典中不存在的键时,它会自动将其初始化为0,从而简化了计数过程。最后,我们将defaultdict对象转换为普通字典(如果需要的话)。

但是,请注意,由于函数会将所有字符转换为小写,并且会忽略标点符号,所以输出字典中的键(即单词)可能与输入字符串中的实际单词略有不同。例如,‘Hello’在输出字典中变为’hello’,'world!‘变为’world’(因为没有包含感叹号)。

在这里插入图片描述

任务二

请使用本地vscode连接远程开发机,将上面你写的wordcount函数在开发机上进行debug,体验debug的全流程,并完成一份debug笔记(需要截图)。
在这里插入图片描述
或者打开文件夹,输入password 后

在这里插入图片描述
debug 是程序员的基本功!!!
在这里插入图片描述

在这里插入图片描述

result 如下

(demo) (base) root@intern-studio-50001213:~# /root/.conda/envs/demo/bin/python /root/Tutorial/python/wordcount.py
{'got': 2, 'this': 1, 'panda': 1, 'plush': 1, 'toy': 1, 'for': 3, 'my': 1, 'daughters': 1, 'birthday': 1, 'who': 1, 'loves': 1, 'it': 5, 'and': 3, 'takes': 1, 'everywhere': 1, 'its': 3, 'soft': 1, 'super': 1, 'cute': 1, 'face': 1, 'has': 1, 'a': 3, 'friendly': 1, 'look': 1, 'bit': 1, 'small': 1, 'what': 1, 'i': 4, 'paid': 1, 'though': 1, 'think': 1, 'there': 1, 'might': 1, 'be': 1, 'other': 1, 'options': 1, 'that': 1, 'are': 1, 'bigger': 1, 'the': 1, 'same': 1, 'price': 1, 'arrived': 1, 'day': 1, 'earlier': 1, 'than': 1, 'expected': 1, 'so': 1, 'to': 2, 'play': 1, 'with': 1, 'myself': 1, 'before': 1, 'gave': 1, 'her': 1}


其他学习内容

python AI 环境配置

  • python开发简介:【集成开发环境 IDE】

  • python开发简介:【Conda,Pip】虚环境搭建、配置

  • python开发简介:【jupyter notebook】实战配置

  • python开发简介: 编码规范与工程基础实践

  • 使用 jupyter hub /lab搭建机器学习工作台

  • 使用跨平台的visual studio code 进行python 开发

(综合内容老版本)

  • python 开发环境搭建(综合内容老版本)

pyspark 的 word count 怎么写呢?

>>> textFile = sc.textFile("file:///usr/local/spark/mycode/wordcount/word.txt")
>>> wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word,1)).reduceByKey(lambda a, b : a + b)
>>> wordCount.collect()

下面简单解释一下上面的语句。
textFile包含了多行文本内容,textFile.flatMap(labmda line : line.split(" “))会遍历textFile中的每行文本内容,当遍历到其中一行文本内容时,会把文本内容赋值给变量line,并执行Lamda表达式line : line.split(” “)。line : line.split(” “)是一个Lamda表达式,左边表示输入参数,右边表示函数里面执行的处理逻辑,这里执行line.split(” "),也就是针对line中的一行文本内容,采用空格作为分隔符进行单词切分,从一行文本切分得到很多个单词构成的单词集合。这样,对于textFile中的每行文本,都会使用Lamda表达式得到一个单词集合,最终,多行文本,就得到多个单词集合。textFile.flatMap()操作就把这多个单词集合“拍扁”得到一个大的单词集合。
然后,针对这个大的单词集合,执行map()操作,也就是map(lambda word : (word, 1)),这个map操作会遍历这个集合中的每个单词,当遍历到其中一个单词时,就把当前这个单词赋值给变量word,并执行Lamda表达式word : (word, 1),这个Lamda表达式的含义是,word作为函数的输入参数,然后,执行函数处理逻辑,这里会执行(word, 1),也就是针对输入的word,构建得到一个tuple,形式为(word,1),key是word,value是1(表示该单词出现1次)。
程序执行到这里,已经得到一个RDD,这个RDD的每个元素是(key,value)形式的tuple。最后,针对这个RDD,执行reduceByKey(labmda a, b : a + b)操作,这个操作会把所有RDD元素按照key进行分组,然后使用给定的函数(这里就是Lamda表达式:a, b : a + b),对具有相同的key的多个value进行reduce操作,返回reduce后的(key,value),比如(“hadoop”,1)和(“hadoop”,1),具有相同的key,进行reduce以后就得到(“hadoop”,2),这样就计算得到了这个单词的词频。


参考文献

大模型实战营 地址

  • https://openxlab.org.cn/models/InternLM/subject

本人学习系列笔记

第二期

  • 《书生·浦语大模型实战营》第1课 学习笔记:书生·浦语大模型全链路开源体系
  • 《书生·浦语大模型实战营》第2课 学习笔记:轻松玩转书生·浦语大模型趣味 Demo
  • 《书生·浦语大模型实战营》第3课 学习笔记:搭建你的 RAG 智能助理(茴香豆)
  • 《书生·浦语大模型实战营》第4课 学习笔记:XTuner 微调 LLM:1.8B、多模态、Agent
  • 《书生·浦语大模型实战营》第5课 学习笔记:LMDeploy 量化部署 LLM 实践
  • 《书生·浦语大模型实战营》第6课 学习笔记:Lagent & AgentLego 智能体应用搭建
  • 《书生·浦语大模型实战营》第7课 学习笔记:OpenCompass 大模型评测实战

第三期

入门岛

  • 《书生大模型实战营第3期》入门岛 学习笔记与作业:Linux 基础知识

课程资源

第三期 学院闯关手册

  • https://aicarrier.feishu.cn/wiki/XBO6wpQcSibO1okrChhcBkQjnsf

第三期 作业提交

  • https://aicarrier.feishu.cn/share/base/form/shrcnZ4bQ4YmhEtMtnKxZUcf1vd

第二期 学员手册

  • https://aicarrier.feishu.cn/wiki/KamPwGy0SiArQbklScZcSpVNnTb

算力平台

  • https://studio.intern-ai.org.cn/console/dashboard
  • https://studio.intern-ai.org.cn/

课程文档

  • https://github.com/InternLM/Tutorial/tree/camp2

课程视频

  • https://www.bilibili.com/video/BV15m421j78d

代码仓库

  • https://github.com/InternLM/Tutorial
  • https://github.com/InternLM/Tutorial/tree/camp2

优秀项目展示与学习

  • https://aicarrier.feishu.cn/wiki/DoKWwqslwiyjjKkHhqJcvXAZnwd?table=tblyxy5MZV7gJ7yS&view=vew0rj0WuN

论文

其他参考

原始文档

https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Linux/readme.md

本人博客:

  • 基于大语言模型的本地知识库问答系统构建方案

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++第十弹 ---- vector的介绍及使用

目录 前言vector的介绍及使用1. vector的使用1.1 vector的定义1.2 iterator的使用1.3 vector空间增长问题1.4 vector增删查改 2. vector迭代器失效问题(重点) 总结 前言 本文介绍了C中的vector数据结构及其使用方法。 更多好文, 持续关注 ~ 酷酷学!!! 正文开始 vector的介绍…

【Linux】文件系统|CHS寻址|LBA逻辑块|文件索引|inode|Date block|inodeBitmap|blockBitmap

前言 一个进程通过文件描述符标识一个打开的文件,进程拿着文件描述符可以在内核中找到目标文件进行读写等操作。这是打开的文件,而没有被打开的文件存储在磁盘中,是如何管理的?操作系统在偌大的磁盘中如何找到想要的文件并打开的…

数据传输安全--SSL VPN

目录 IPSEC在Client to LAN场景下比较吃力的表现 SSL VPV SSL VPN优势 SSL协议 SSL所在层次 SSL工作原理 SSL握手协议、SSL密码变化协议、SSL警告协议三个协议作用 工作过程 1、进行TCP三次握手、建立网络连接会话 2、客户端先发送Client HELLO包,下图是包…

目标检测 | YOLO v4、YOLO v5、YOLO v6理论讲解

☀️教程:霹雳吧啦Wz ☀️https://space.bilibili.com/18161609/channel/seriesdetail?sid244160 一、YOLO v4 YOLO v4在2020年的4月发布,YOLO v4结合了大量的前人研究技术加以组合,实现了速度和精度的平衡,该论文包含大量的tric…

二叉树 N0=N2+1

N0 叶子节点,度为 0 的节点; N1 度为 1 的节点; N2 度为 2 的节点 度为 0 的节点为:H、I、J、K、G 度为 1 的节点:E、F 度为 2 的节点:A、B、D、C N0 N2 1,即:度为 0 的叶子节点 …

C++STL详解(一)——string类的接口详解(下)

目录 一.string的大小和容量成员函数 1.1size()和length() 1.2capacity() 1.3resize() 1.4reserve() 1.5clear()和empty() ​编辑 二.string元素的访问 2.1operator[]和at() 2.2范围for 三.string中迭代器相关函数 3.1begin()和end() 3.2rbegin()和rend() 四.string…

Anaconda +Pytorch安装教程

Anaconda Pytorch安装教程 Anaconda安装 小土堆的安装教程:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili Free Download | Anaconda 这里自己选一个文件夹安装即可 第一个红框表示添加图标到开始菜…

细说MCU用自带的波形发生器实现DAC输出的方法

目录 一、参考示例 二、配置参数 1.配置DAC 2.配置TIM3 三、代码修改 四、查看结果 DAC模块自带的硬件波形发生器只有三角波(Triangle wave)和 (Noise wave)两种。此外,如果配置了Trigger2参数,在波形发生模式中就出现(并且仅出现)锯齿波的选项(Sa…

Codeforces Round 874 (Div. 3)(A~D题)

A. Musical Puzzle 思路: 用最少的长度为2的字符串按一定规则拼出s。规则是&#xff1a;前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。 代码: #include<bits/stdc.h> #include <unordered_map> using namespace std; #define N 20…

vue3前端开发-小兔鲜项目-登录功能的业务接口调用

vue3前端开发-小兔鲜项目-登录功能的业务接口调用!这次&#xff0c;正式调用远程服务器的登录接口了。大家要必须使用测试账号密码&#xff0c;才能验证我们的代码。 测试账号密码是&#xff1a;账号&#xff08;xiaotuxian001&#xff09;&#xff1b;密码是&#xff08;1234…

【python】sklearn基础教程及示例

【python】sklearn基础教程及示例 Scikit-learn&#xff08;简称sklearn&#xff09;是一个非常流行的Python机器学习库&#xff0c;提供了许多常用的机器学习算法和工具。以下是一个基础教程的概述&#xff1a; 1. 安装scikit-learn 首先&#xff0c;确保你已经安装了Python和…

什么是hdfs如何使用驱动程序访问hdfs

目录 什么是hdfs 主要特点包括&#xff1a; 架构组成&#xff1a; 应用场景&#xff1a; 如何使用驱动程序访问hdfs 准备工作环境&#xff1a; 启动 Hadoop 服务 可能遇到的问题&#xff1a; ssh验证失败 验证Hadoop服务 对hdfs进行文件操作 什么是hdfs HDFS&#x…

【数据结构】栈(基于数组、链表实现 + GIF图解 + 原码)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

Linux--Socket 编程 UDP(简单的回显服务器和客户端代码)

目录 0.上篇文章 1.V1 版本 - echo server 1.1认识接口 1.2实现 V1 版本 - echo server&#xff08;细节&#xff09; 1.3添加的日志系统&#xff08;代码&#xff09; 1.4 解析网络地址 1.5 禁止拷贝逻辑&#xff08;基类&#xff09; 1.6 服务端逻辑 &#xff08;代码&…

Leetcode—769. 最多能完成排序的块【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—769. 最多能完成排序的块 实现代码 class Solution { public:int maxChunksToSorted(vector<int>& arr) {int ans 0;int mx INT_MIN;for(int i 0; i < arr.size(); i) {mx max(arr[i], mx);if(mx i) {a…

【C++】C++应用案例-旋转图像

旋转图像的需求&#xff0c;在图片处理的过程中非常常见。我们知道对于计算机而言&#xff0c;图像其实就是一组像素点的集合&#xff0c;所以图像旋转的问题&#xff0c;本质上就是一个二维数组的旋转问题。 我们可以给定一个二维数组&#xff0c;用来表示一个图像&#xff0c…

【C++】——红黑树(手撕红黑树,彻底弄懂红黑树)

目录 前言 一 红黑树简介 二 为什么需要红黑树 三 红黑树的特性 四 红黑树的操作 4.1 变色操作 4.2 旋转操作 4.3 插入操作 4.4 红黑树插入代码实现 4.5 红黑树的删除 五 红黑树迭代器实现 总结 前言 我们之前都学过ALV树&#xff0c;AVL树的本质就是一颗平…

Oracle对比两表数据的不一致

MINUS 基本语法如下 [SQL 语句 1] MINUS [SQL 语句 2];举个例子&#xff1a; select 1 from dual minus select 2 from dual--运行结果 1-------------------------------- select 2 from dual minus select 1 from dual--运行结果 2所以&#xff0c;如果想找所有不一致的&a…

软件测试---Linux

Linux命令使用&#xff1a;为了将来工作中与服务器设备进行交互而准备的技能&#xff08;远程连接/命令的使用&#xff09;数据库的使用&#xff1a;MySQL&#xff0c;除了查询动作需要重点掌握以外&#xff0c;其他操作了解即可什么是虚拟机 通过虚拟化技术&#xff0c;在电脑…

富芮坤FR800X系列之按键检测模块设计

FR800X系列按键检测模块 读者对象&#xff1a; 本文档主要适用以下工程师&#xff1a; 嵌入式系统工程师 单片机软件工程师 IOT固件工程师 BLE固件工程师 文章目录 1.概要2.用户如何设计按键检测模块2.1 GPIO初始化2.2按键模块初始化2.3设计中断函数&#xff1a;2.4循环…