(筆記+作業)書生大模型實戰營春節卷王班---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.pswp.cn/web/67565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67565.shtml
英文地址,請注明出處:http://en.pswp.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函數來創建。…

android 音視頻系列引導

音視頻這塊的知識點自己工作中有用到&#xff0c;一直沒有好好做一個總結&#xff0c;原因有客觀和主觀的。 客觀是工作太忙&#xff0c;沒有成段時間做總結。 主觀自己懶。 趁著這次主動離職拿了n1的錢&#xff0c;休息一下&#xff0c;對自己的人生做一下總結&#xff0c;…

為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…

.Net / C# 分析文件編碼 并將 各種編碼格式 轉為 另一個編碼格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)

相關庫 .Net 8 編碼識別: github.com/CharsetDetector/UTF-unknown <PackageReference Include"UTF.Unknown" Version"2.5.1" />代碼 using UtfUnknown;var dir_path "D:\\Desktop\\新建文件夾2\\新建文件夾"; var dir_new_path &quo…

32. C 語言 安全函數( _s 尾綴)

本章目錄 前言什么是安全函數&#xff1f;安全函數的特點主要的安全函數1. 字符串操作安全函數2. 格式化輸出安全函數3. 內存操作安全函數4. 其他常用安全函數 安全函數實例示例 1&#xff1a;strcpy_s 和 strcat_s示例 2&#xff1a;memcpy_s示例 3&#xff1a;strtok_s 總結 …

淺談網絡 | 容器網絡之Flannel

目錄 云原生網絡架構深度解構&#xff1a;Flannel的設計哲學與實現機制Flannel架構解析&#xff1a;三層核心設計原則UDP模式&#xff08;用戶態隧道&#xff09;VXLAN模式&#xff08;內核態隧道&#xff09;Host-GW模式&#xff08;直連路由&#xff09; 生產環境架構選型與調…

autosar bsw 的關鍵模塊

AUTOSAR&#xff08;AUTomotive Open System ARchitecture&#xff09;的**基礎軟件層&#xff08;BSW&#xff0c;Basic Software&#xff09;**是汽車電子系統標準化的核心&#xff0c;負責提供硬件抽象、通信、診斷、安全等基礎服務。以下是BSW的關鍵模塊及其功能分類&#…

hive:基本數據類型,關于表和列語法

基本數據類型 Hive 的數據類型分為基本數據類型和復雜數據類型 加粗的是常用數據類型 BOOLEAN出現ture和false外的其他值會變成NULL值 沒有number,decimal類似number 如果輸入的數據不符合數據類型, 映射時會變成NULL, 但是數據本身并沒有被修改 創建表 創建表的本質其實就是在…

2025創業思路和方向有哪些?

創業思路和方向是決定創業成功與否的關鍵因素。以下是一些基于找到的參考內容的創業思路和方向&#xff0c;旨在激發創業靈感&#xff1a; 一、技術創新與融合&#xff1a; 1、智能手機與云電視結合&#xff1a;開發集成智能手機功能的云電視&#xff0c;提供通訊、娛樂一體化體…

航空客戶價值的數據挖掘與分析(numpy+pandas+matplotlib+scikit-learn)

航空客戶價值的數據挖掘與分析(numpy+pandas+matplotlib+scikit-learn) K-Means聚類:https://en.wikipedia.org/wiki/K-means_clustering寫在前面 實現目的:基于K-Means聚類分析模型實現航空客戶價值大數據分析。 電腦系統:Windows 使用軟件:Anaconda(Jupyter Notebook)…

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; 這兩周我們加…