cs336 assignment1 作業環境配置

在這里插入圖片描述

代碼結構

在這里插入圖片描述

所有的代碼寫到cs336_basics/* 下面,在adapters.py里調用自己的.py,通過所有的test。

作業資料參考

karpathy視頻+倉庫:

視頻
github倉庫

測試項目運行環境

下載uv

uv官網倉庫
使用命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
我直接運行pip install uv會報錯

進入項目文件夾下目錄:
uv self update # optional
uv sync

uv self-update 命令專門用于維護 uv 可執行文件本身。它的主要且唯一目的是檢查并安裝最新可用的 uv 版本。uv sync 命令在項目級別運行,專注于項目所依賴的 Python 包。其核心功能是確保虛擬環境中安裝的包與項目鎖文件( uv.lockrequirements.lock )中指定的版本完全一致(項目文件夾中有uv.lock文件)。

運行這兩條命令后,會看到文件夾下多出了.venv文件夾

激活虛擬環境

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
.venv\Scripts\Activate # windows命令

切換到虛擬環境后,運行命令
uv run pytest

由于是windows環境,我出現了報錯,原因是:tests/test_tokenizer.py 文件嘗試導入 resource 模塊,但該模塊在 Windows 系統上不可用。最開始我以為必須切換到linux環境,或者用云服務器跑,但是我只是需要在windows上測試,注釋掉test_tokenizer.py 文件中的import resource即可。kaggle和google colab還有AWS都提供了云服務器,可以白嫖。

再次運行命令后:
在這里插入圖片描述
報錯: NotImplementedError
最初,所有測試應該 NotImplementedError 失敗。要將代碼實現連接到測試,要完成./tests/adapters.py 中的函數。
adapters.py 中的函數包括:

  • run_linear
  • run_embedding
  • run_swiglu
  • run_scaled_dot_product_attention
  • run_multihead_self_attention
  • run_multihead_self_attention_with_rope
  • run_rope
  • run_transformer_block
  • run_transformer_lm
  • run_rmsnorm
  • run_silu
  • run_get_batch
  • run_softmax
  • run_cross_entropy
  • run_gradient_clipping
  • get_adamw_cls
  • run_get_lr_cosine_schedule
  • run_save_checkpoint
  • run_load_checkpoint
  • get_tokenizer
  • run_train_bpe

數據集下載

需要下載這兩個數據集:

  • TinyStories
  • OpenWebText

由于windows不方便下載,所以我在wsl下下載。踩坑:連接不到https://huggingface.co
后續發現可以鏡像站下載:https://hf-mirror.com/

用vscode連接wsl,然后新建一個文件download_data.sh,寫入命令
完整的命令如下:

#!/bin/bash# 創建數據目錄并進入echo "Creating data directory..."mkdir -p datacd data# 下載 TinyStories 數據集echo "Downloading TinyStoriesV2-GPT4-train.txt.gz... (This may take a while)"# 使用 curl -L 來正確處理重定向,并用 -o 指定輸出文件名curl -L -o TinyStoriesV2-GPT4-train.txt.gz "https://hf-mirror.com/datasets/roneneldan/TinyStories/resolve/main/TinyStoriesV2-GPT4-train.txt"echo "Downloading TinyStoriesV2-GPT4-valid.txt.gz..."curl -L -o TinyStoriesV2-GPT4-valid.txt.gz "https://hf-mirror.com/datasets/roneneldan/TinyStories/resolve/main/TinyStoriesV2-GPT4-valid.txt"# 下載并解壓 OWT sample 數據集echo "Downloading OWT sample dataset..."curl -L -o owt_train.txt.gz "https://hf-mirror.com/datasets/stanford-cs336/owt-sample/resolve/main/owt_train.txt.gz"gunzip -f owt_train.txt.gzcurl -L -o owt_valid.txt.gz "https://hf-mirror.com/datasets/stanford-cs336/owt-sample/resolve/main/owt_valid.txt.gz"gunzip -f owt_valid.txt.gz# 返回上級目錄echo "All files downloaded and processed successfully."cd ..

owt的文件下好后看似是壓縮包,實際已經解壓好了,只需要把后綴名改成txt就好。
已經下載好的文件長這個樣子:
在這里插入圖片描述
現在我們已經做好前期所有準備了!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917010.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917010.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917010.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YOLOv11來了,使用YOLOv11訓練自己的數據集和推理(附YOLOv11網絡結構圖)

文章目錄前言一、YOLOv11代碼下載地址1.YOLOv11模型結構圖二、數據集準備1.數據集標注軟件2.voc數據集格式轉換3.數據集劃分4.修改yolo的訓練配置文件三、YOLO環境配置教程1.pytorch環境安裝2.其他依賴安裝四、YOLOv11訓練五、YOLOv11推理六、解決訓練過程中斷怎么繼續上次訓練…

20250731在榮品的PRO-RK3566開發板的Android13下跑通敦泰的FT8206觸控芯片

20250731在榮品的PRO-RK3566開發板的Android13下跑通敦泰的FT8206觸控芯片 2025/7/31 17:48緣起:本文前置條件:已經解決FT8206和PRO-RK3566的硬件連接。 通過i2cdect可以掃描到i2c從機地址:0x38。【8位地址為0x70】緣起:本文只分析…

異常檢測:算法分類及經典模型概覽

第一部分:異常檢測的核心概念 在深入算法細節之前,理解異常檢測的“語境”至關重要。 1. 什么是異常檢測? 異常檢測(Anomaly Detection 或 Outlier Detection)旨在通過數據挖掘技術,識別出數據集中與大多數…

技術干貨 | 矢網DTF測量技術:透視線纜、天線與波導內部缺陷的“射頻X光”(二)

無線通信、雷達等領域中,射頻組件與傳輸系統的性能至關重要,其內部微小損傷易導致信號問題甚至系統失效。傳統測試無法精確定位故障點,排查困難。DTF測量,矢網賦予的“透視眼”!它能穿透“黑箱”,精確定位線…

【[CSP-J 2022] 上升點列】

題目 [CSP-J 2022] 上升點列 題目描述 在一個二維平面內,給定 n 個整數點 (x i ,y i? ),此外你還可以自由添加 k 個整數點。 你在自由添加 k 個點后,還需要從 nk 個點中選出若干個整數點并組成一個序列,使得序列中任意相鄰兩點間…

Kong API Gateway的十年進化史

一、技術基因的誕生(2007-2015) 2007年,三位意大利開發者Augusto Marietti、Marco Palladino和Michele Orru在博洛尼亞的一個小車庫中創立了Mashape公司。 最初他們開發了一個名為Mashup的API聚合平臺,試圖通過整合第三方API為開發…

藍牙設備配對:從機發現主機全過程

在藍牙 paging 過程中,從設備(Slave)是通過特定的掃描機制和跳頻方式來發現主設備發送的 ID 包的,具體過程如下:從設備處于特定掃描模式:從設備需要處于 Page Scan 模式,才能夠接收主設備發送的…

聚觀早報 | 三星獲特斯拉AI芯片訂單;小米16首發成安卓最強SOC;iPhone 17 Pro支持8倍光學變焦

聚觀早報每日整理最值得關注的行業重點事件,幫助大家及時了解最新行業動態,每日讀報,就讀聚觀365資訊簡報。整理丨肖羽7月29日消息三星獲特斯拉AI芯片訂單小米16首發成安卓最強SOCiPhone 17 Pro支持8倍光學變焦寧德時代滑板底盤公司啟動首輪融…

Gemini Fullstack LangGraph Quickstart(DeepSeek+Tavily版本)

文章目錄參考資料說明Gemini Fullstack LangGraph QuickstartDeepSeek Fullstack LangGraph Quickstart項目部署完整源碼地址后端部署前端部署參考資料 DeepResearch應用開發實戰網盤課件資料 說明 本文僅供學習和交流使用,感謝賦范社區相關老師的辛苦付出&#…

鋼筋計數誤差↓78%!陌訊多模態融合算法在建筑地產AI質檢的落地實踐

?摘要??針對建筑地產行業鋼筋驗收場景的高誤差痛點,本文解析陌訊視覺算法的多模態融合架構如何實現毫米級精度目標檢測。實測顯示:在Jetson Xavier NX邊緣設備上,鋼筋計數mAP0.5達??92.4%??,較基線模型提升28個百分點&…

負載均衡 LoadBalance

問題引入 我們一個服務可能會進行多機部署,也就說多臺服務器組成的集群共同對外提供一致的服務,那么我們的微服務的代碼就需要拷貝多份,部署到不同的機器上。 我們使用 IDEA 來開啟多個相同的服務 這里以 product-service 為例:…

13. 若依框架中的 Sensitive 敏感字段過濾

若依框架中有Sensitive注解,但代碼中并未使用,但該注解的實現還是比較值的學習的。該注解是一個運行時注解該注解只能應用在字段上JacksonAnnotationsInside 表示當使用Jackson序列化時,Jackson會自動識別該注解下的其他Jackson相關注解&…

git本地倉庫,工作區和暫存區的知識

一 git工作原理 Git 的工作原理基于分布式版本控制,通過管理文件的不同版本狀態,實現代碼的追蹤、協作和回溯。除了常見的工作區(Working Directory) 和暫存區(Staging Area/Index),核心還包括本…

MPU6050模塊

一:MPU6050簡介輸出一個隨姿態變化而變化的電壓,想要量化電壓,就得使用ADC轉化歐拉角偏航角(Yaw):也叫航向角,通常是繞 z 軸旋轉的角度,以 x 軸正向為起始邊,旋轉后 x 軸…

jvm的棧和堆

在 JVM 中,棧(Stack)和堆(Heap)是兩種核心內存區域,用于存儲不同類型的數據,它們的設計和存儲規則有明確區分,主要體現在存儲內容、生命周期和管理方式上:一、棧&#xf…

自動駕駛車輛的敏捷安全檔案

簡介近年來,在開發安全關鍵軟件時,敏捷開發方法的使用日益增多。敏捷方法非常適合自動駕駛汽車軟件的增量改進、運行設計域的逐步擴展以及新型智能路側單元的開發。由于車輛和智能路側單元的預期改進,未來幾年將會有新的自動駕駛車輛試驗。因…

【時時三省】(C語言基礎)動態內存分配與它的指針變量

山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省什么是內存的動態分配全局變量是分配在內存中的靜態存儲區的,非靜態的局部變量(包括形參)是分配在內存中的動態存儲區的,這個存儲區是一個稱為棧…

SpringMVC的核心架構與請求處理流程

Spring MVC 核心架構核心組件組件作用類比DispatcherServlet前端控制器,統一接收請求并協調各組件處理一個餐廳的前臺HandlerMapping根據請求URL映射到對應的處理器(Controller)路由表HandlerAdapter執行處理器方法,處理參數綁定、…

css 不錯的按鈕動畫

效果圖wxml <view class"{{status?active:}}"><view class"up-top btn"><text>向上</text></view><view class"up-left btn"><text>向左</text></view><view class"up-center b…

若依框架RuoYi-Vue-Plus-5.X的啟動,本地安裝docker,再部署 Redis、PG數據庫(智慧水務)SmartWaterServer

一、部署redis數據庫拉取鏡像 docker pull redis啟動Redis容器docker run -d --name redis-server -p 6379:6379 -v redis-data:/data redis redis-server --requirepass 123redis版本二、部署PostgreSQL 數據庫拉取鏡像docker pull postgres:15 創建數據存儲目錄、建議將數據掛…