(笔记+作业)书生大模型实战营春节卷王班---L0G2000 Python 基础知识

学员闯关手册:https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld
课程视频:https://www.bilibili.com/video/BV13U1VYmEUr/
课程文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python
关卡作业:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/Python/task.md
开发机平台:https://studio.intern-ai.org.cn/
开发机平台介绍:https://aicarrier.feishu.cn/wiki/GQ1Qwxb3UiQuewk8BVLcuyiEnHe

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

Conda虚拟环境

#创建虚拟新环境,创建虚拟环境时我们主要需要设置两个参数,一是虚拟环境的名字,二是python的版本。
conda create --name myenv python=3.9
#激活环境和推出环境
conda activate myenv
conda deactivate
#查看当前设备上所有的虚拟环境
conda env list
#查看当前环境中安装了的所有包
conda list
#删除环境(比如要删除myenv)
conda env remove myenv
#创建新环境到指定目录下,和激活指定目录下的环境
conda create --prefix /root/envs/myenv python=3.9
conda activate /root/envs/myenv

使用pip安装Python三方依赖包

使用pip安装包

pip install <somepackage> # 安装单个包,<somepackage>替换成你要安装的包名
pip install pandas numpy # 安装多个包,如panda和numpy
pip install numpy==2.0 # 指定版本安装
pip install numpy>=1.19,<2.0 # 使用版本范围安装

安装requirement.txt

pip install -r requirements.txt

安装包到指定目录

# 首先激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1# 创建一个目录/root/myenvs,并将包安装到这个目录下
mkdir -p /root/myenvs
pip install <somepackage> --target /root/myenvs# 注意这里也可以使用-r来安装requirements.txt
pip install -r requirements.txt --target /root/myenvs#使用安装在指定目录的python包
import sys  # 你要添加的目录路径  
your_directory = '/root/myenvs'  # 检查该目录是否已经在 sys.path 中  
if your_directory not in sys.path:  # 将目录添加到 sys.path  sys.path.append(your_directory)  # 现在你可以直接导入该目录中的模块了  
# 例如:import your_module

使用本地Vscode连接InternStudio开发机

VSCode安装Remote-SSH插件、python的插件、并进行SSH远程连接到开发机,

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

debug就是在程序中设置断点,一行一行运行代码,观测程序中变量的变化,然后找出并修正代码中的错误

调用书生LLM的api完成生成任务

获取api key
前往书生浦语的API文档,登陆后点击API tokens。初次使用可能会需要先填写邀请码。
https://internlm.intern-ai.org.cn/api/document
使用api

#./internlm_test.py
from openai import OpenAI
import osclient = OpenAI(api_key = os.getenv('api_key'),  # 此处传token,不带Bearerbase_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1/",
)chat_rsp = client.chat.completions.create(model="internlm3-latest",messages=[{"role": "user", "content": "hello"}],
)for choice in chat_rsp.choices:print(choice.message.content)

export api_key=“填入你的api token”
python internlm_test.py
在这里插入图片描述
在这里插入图片描述

闯关任务 Leetcode 383

(笔记中提交代码与leetcode提交通过截图)
https://leetcode.cn/problems/ransom-note/description/
在这里插入图片描述
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。

class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:from collections import Counter# 统计 ransomNote 和 magazine 中每个字符的频率ransom_counter = Counter(ransomNote)magazine_counter = Counter(magazine)# 检查 ransomNote 中的字符是否可以由 magazine 提供for char, count in ransom_counter.items():if magazine_counter[char] < count:return Falsereturn True

在这里插入图片描述
代码解释:
Counter: 使用 collections.Counter 来统计 ransomNote 和 magazine 中每个字符的出现次数。

遍历 ransomNote: 遍历 ransomNote 中的字符及其数量,检查 magazine 是否有足够的字符数量。如果某个字符在 magazine 中的数量少于在 ransomNote 中的数量,则返回 False。

for char, count in ransom_counter.items():
这行代码开始一个循环,遍历ransom_counter字典中的所有键值对。
char是字典中的键,代表一个字符。
count是字典中的值,代表该字符在赎金信中出现的次数。
.items()方法返回一个包含字典所有键值对的视图对象,可以在for循环中使用。
if magazine_counter[char] < count:
这行代码检查杂志文章中该字符的出现次数是否小于赎金信中该字符的出现次数。
magazine_counter[char]获取杂志文章中该字符的出现次数。
如果杂志中的次数小于赎金信中的次数,意味着无法用杂志中的字符拼写出赎金信。

返回结果: 如果 magazine 中的所有字符都能满足 ransomNote 的需求,返回 True。

使用示例:

solution = Solution()
print(solution.canConstruct("a", "b"))  # 输出: False
print(solution.canConstruct("aa", "ab"))  # 输出: False
print(solution.canConstruct("aa", "aab"))  # 输出: True

闯关任务 Vscode连接InternStudio debug笔记

下面是一段调用书生浦语API实现将非结构化文本转化成结构化json的例子,其中有一个小bug会导致报错。请大家自行通过debug功能定位到报错原因。

报错代码

#python_debug.py
from openai import OpenAI
import json
import os
def internlm_gen(prompt,client):'''LLM生成函数Param prompt: prompt stringParam client: OpenAI client '''response = client.chat.completions.create(model="internlm2.5-latest",messages=[{"role": "user", "content": prompt},],stream=False)return response.choices[0].message.contentapi_key = os.getenv('api_key')
client = OpenAI(base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1/",api_key=api_key)content = """
书生浦语InternLM2.5是上海人工智能实验室于2024年7月推出的新一代大语言模型,提供1.8B、7B和20B三种参数版本,以适应不同需求。
该模型在复杂场景下的推理能力得到全面增强,支持1M超长上下文,能自主进行互联网搜索并整合信息。
"""
prompt = f"""
请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数版本、上下文长度四个内容,以json格式返回。
`{content}`
"""
res = internlm_gen(prompt,client)
res_json = json.loads(res)
print(res_json)

在这里插入图片描述

报错原因解析

在这里插入图片描述

设置断点,查看报错变量

在这里插入图片描述
‘根据提供的模型介绍文字,以下是提取的关于该模型的信息,以JSON格式返回:\n\njson\n{\n "model_name": "书生浦语InternLM2.5",\n "development_institution": "上海人工智能实验室",\n "parameter_versions": ["1.8B", "7B", "20B"],\n "context_length": "1M"\n}\n\n\n这个JSON对象包含了以下信息:\n- model_name:模型的名称,即“书生浦语InternLM2.5”。\n- development_institution:开发该模型的机构,为“上海人工智能实验室”。\n- parameter_versions:模型提供的参数版本,包括“1.8B”、“7B”和“20B”三个版本。\n- context_length:模型支持的上下文长度,为“1M”,表示模型能够处理的上下文信息长度达到1百万字符。\n\n这些信息概括了模型的基本属性和功能特点,便于快速了解该模型的关键信息。’

在这里插入图片描述

报错变量修正

在这里插入图片描述

通过提示词去除额为文本,通过 res.strip(‘json\n').strip('’)去除代码标记、换行符和缩进,

from openai import OpenAI
import json
import os
def internlm_gen(prompt,client):'''LLM生成函数Param prompt: prompt stringParam client: OpenAI client '''response = client.chat.completions.create(model="internlm2.5-latest",messages=[{"role": "user", "content": prompt},],stream=False)return response.choices[0].message.contentapi_key=""
client = OpenAI(base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1/",api_key=api_key)content = """
书生浦语InternLM2.5是上海人工智能实验室于2024年7月推出的新一代大语言模型,提供1.8B、7B和20B三种参数版本,以适应不同需求。
该模型在复杂场景下的推理能力得到全面增强,支持1M超长上下文,能自主进行互联网搜索并整合信息。
"""
prompt = f"""
请参考json格式,请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数只版本、上下文长度四个内容,以json格式返回,请移除额外的 Markdown 代码块标记 ````json和 ```,以及换行符\n`,不要有其他文字。
`{content}`
"""
res = internlm_gen(prompt,client)
# 移除 Markdown 代码块标记和换行符
json_str  = res.strip('```json\n').strip('```')
res_json = json.loads(json_str)
print(res_json)

在这里插入图片描述在这里插入图片描述
成功!!!

可选任务 pip安装到指定目录

使用VScode连接开发机后使用pip install -t命令安装一个numpy到看开发机/root/myenvs目录下,并成功在一个新建的python文件中引用。

# 首先激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1# 创建一个目录/root/myenvs,并将包安装到这个目录下
mkdir -p /root/myenvs
pip install numpy --t /root/myenvs

在这里插入图片描述

import sys  # 你要添加的目录路径  
your_directory = '/root/myenvs'  # 检查该目录是否已经在 sys.path 中  
if your_directory not in sys.path:  # 将目录添加到 sys.path  sys.path.append(your_directory)  # 现在你可以直接导入该目录中的模块了  
# 例如:import your_module

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

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

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

相关文章

仿真设计|基于51单片机的高速路口货车称重系统仿真

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部内容 资料获取 具体实现功能 &#xff08;1&#xff09;LCD1602液晶第一行显示当前的车辆重量&#xff0c;第二行显示车辆重量…

Ubuntu Server 安装 XFCE4桌面

Ubuntu Server没有桌面环境&#xff0c;一些软件有桌面环境使用起来才更加方便&#xff0c;所以我尝试安装桌面环境。常用的桌面环境有&#xff1a;GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境&#xff0c;主要因为它是一个极轻量级的桌面环境&#xff0c;适合内…

2025:影刀RPA使用新实践--CSDN博客下载

文章目录 一键CSDN博客下载器程序说明指导说明使用步骤 获取方法 一键CSDN博客下载器 程序说明 配置信息&#xff1a;CSDN账号&#xff08;手机号/邮箱/用户名&#xff09;、密码、博客文件类型支持markdown格式、html格式&#xff08;默认值markdown格式&#xff09;、博客保…

深度学习的应用

目录 一、机器视觉 1.1 应用场景 1.2 常见的计算机视觉任务 1.2.1 图像分类 1.2.2 目标检测 1.2.3 图像分割 二、自然语言处理 三、推荐系统 3.1 常用的推荐系统算法实现方案 四、图像分类实验补充 4.1 CIFAR-100 数据集实验 实验代码 4.2 CIFAR-10 实验代码 深…

前端js高级25.1.30

原型&#xff1a;函数的组成结构 通过这个图我们需要知道。 假设我们创建了一个Foo函数。 规则&#xff1a;Function.protoType是函数显示原型。__proto__是隐式对象。 Function、Object、Foo函数的__proto__指向了Function.protoType说明。这三个都依托function函数来创建。…

为AI聊天工具添加一个知识系统 之80 详细设计之21 符号逻辑 之1

本文要点 要点 前面我们讨论了本项目中的正则表达式。现在我们将前面讨论的正则表达式视为狭义的符号文本及其符号规则rule&#xff08;认识的原则--认识上认识对象的约束&#xff09;&#xff0c;进而在更广泛的视角下将其视为符号逻辑及其符号原则principle&#xff08;知识…

.NET Core缓存

目录 缓存的概念 客户端响应缓存 cache-control 服务器端响应缓存 内存缓存&#xff08;In-memory cache&#xff09; 用法 GetOrCreateAsync 缓存过期时间策略 缓存的过期时间 解决方法&#xff1a; 两种过期时间策略&#xff1a; 绝对过期时间 滑动过期时间 两…

自动驾驶---苏箐对智驾产品的思考

1 前言 对于更高级别的自动驾驶&#xff0c;很多人都有不同的思考&#xff0c;方案也好&#xff0c;产品也罢。最近在圈内一位知名的自动驾驶专家苏箐发表了他自己对于自动驾驶未来的思考。 苏箐是地平线的副总裁兼首席架构师&#xff0c;同时也是高阶智能驾驶解决方案SuperDri…

Sklearn 中的逻辑回归

逻辑回归的数学模型 基本模型 逻辑回归主要用于处理二分类问题。二分类问题对于模型的输出包含 0 和 1&#xff0c;是一个不连续的值。分类问题的结果一般不能由线性函数求出。这里就需要一个特别的函数来求解&#xff0c;这里引入一个新的函数 Sigmoid 函数&#xff0c;也成…

FPGA|使用quartus II通过AS下载POF固件

1、将开发板设置到AS下载挡位&#xff0c;或者把下载线插入到AS端口 2、打开quartus II&#xff0c;选择Tools→Programmer→ Mode选择Active Serial Programming 3、点击左侧Add file…&#xff0c;选择 .pof 文件 →start 4、勾选program和verify&#xff08;可选&#xff0…

浅谈网络 | 容器网络之Flannel

目录 云原生网络架构深度解构&#xff1a;Flannel的设计哲学与实现机制Flannel架构解析&#xff1a;三层核心设计原则UDP模式&#xff08;用户态隧道&#xff09;VXLAN模式&#xff08;内核态隧道&#xff09;Host-GW模式&#xff08;直连路由&#xff09; 生产环境架构选型与调…

hive:基本数据类型,关于表和列语法

基本数据类型 Hive 的数据类型分为基本数据类型和复杂数据类型 加粗的是常用数据类型 BOOLEAN出现ture和false外的其他值会变成NULL值 没有number,decimal类似number 如果输入的数据不符合数据类型, 映射时会变成NULL, 但是数据本身并没有被修改 创建表 创建表的本质其实就是在…

2025创业思路和方向有哪些?

创业思路和方向是决定创业成功与否的关键因素。以下是一些基于找到的参考内容的创业思路和方向&#xff0c;旨在激发创业灵感&#xff1a; 一、技术创新与融合&#xff1a; 1、智能手机与云电视结合&#xff1a;开发集成智能手机功能的云电视&#xff0c;提供通讯、娱乐一体化体…

Three.js实战项目02:vue3+three.js实现汽车展厅项目

文章目录 实战项目02项目预览项目创建初始化项目模型加载与展厅灯光加载汽车模型设置灯光材质设置完整项目下载实战项目02 项目预览 完整项目效果: 项目创建 创建项目: pnpm create vue安装包: pnpm add three@0.153.0 pnpm add gsap初始化项目 修改App.js代码&#x…

年化19.3%策略集|ctpbee_api替换成openctp整合backtrader实盘方案(代码+数据)

原创内容第782篇&#xff0c;专注量化投资、个人成长与财富自由。 昨天我们把backtraderctpbee的实盘整合代码跑通了&#xff0c;年化19.3%&#xff0c;回撤仅8%的实盘策略&#xff0c;以及backtrader整合CTPBee做实盘&#xff08;附python代码和数据&#xff09; 这两周我们加…

Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年

Android Studio 1.0 宣发于 2014 年 12 月&#xff0c;而现在时间来到 2025 &#xff0c;不知不觉间 Android Studio 已经陪伴 Androider 走过十年历程。 Android Studio 10 周年&#xff0c;也代表着了我的职业生涯也超十年&#xff0c;现在回想起来依然觉得「唏嘘」&#xff…

OpenEuler学习笔记(十四):在OpenEuler上搭建.NET运行环境

一、在OpenEuler上搭建.NET运行环境 基于包管理器安装 添加Microsoft软件源&#xff1a;运行命令sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm&#xff0c;将Microsoft软件源添加到系统中&#xff0c;以便后续能够从该源安装.…

Vscode编辑器下 Markdown无法显示图片

1.问题 在vscode 编辑器中无法预览 markdon 文件中的图片 2.解决方案 大部分出现这种情况是因为新版本的vscode会阻拦有风险的资源显示&#xff0c;将安全等级调低即可。 方式一&#xff1a; 1.打开任意 MD 文件&#xff0c;ctrl&#xff0c;调出设置 2. 输入 markdown.ch…

php-phar打包避坑指南2025

有很多php脚本工具都是打包成phar形式&#xff0c;使用起来就很方便&#xff0c;那么如何自己做一个呢&#xff1f;也找了很多文档&#xff0c;也遇到很多坑&#xff0c;这里就来总结一下 phar安装 现在直接装yum php-cli包就有phar文件&#xff0c;很方便 可通过phar help查看…

自动化运维的未来:从脚本到AIOps的演进

点击进入IT管理资料库 一、自动化运维的起源&#xff1a;脚本时代 &#xff08;一&#xff09;脚本在运维中的应用场景 在自动化运维的发展历程中&#xff0c;脚本扮演着至关重要的角色&#xff0c;它作为最初的操作入口&#xff0c;广泛应用于诸多日常运维工作场景里。 在系统…