2024-08-03, 21:33-今日內容

Batch size 是啥意思 一句话的序列,怎么一个一个往后推来做训练数据 training的时候 要保证是random samplized tokenizor validation的重要性 Lambda 的用法 (匿名函数) 字典dictionary的创建 Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate… iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。… decoding encoding 字符来做chatgpt, 做成字典的样子(正反字典),用enumerate set{}转换成list 切片操作 也就是: 不只有在numpy array时可以用的,python的字符串r和list都可以用 ASCII和utf-8 的区别 Open(文件位置,mode=‘r/w/x’/a, encoding=‘utf-8’) as f: with (python里面的意思) subprocess Wget的用法,主要是从www上面拿一些数据,比如txt或者csv seed Torch

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Batch size 是啥意思 就是每次都有四条数据 同时进行训练,每一个都是独立的,可以在我们的subprocess上面进行训练

非常简单的例子 如果模型有100条的数据,batchsize是4, 那么我们的模型就会有100/4 ‎ = 25个批次。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

一句话的序列,怎么一个一个往后推来做训练数据  

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

training的时候 要保证是random samplized

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

tokenizor 用来对人们说的话进行编码的手段。

Google用的是sentence piece tokenizor OpenAI 用的是tick token (BPE)(bit pair entokenior) GPT就是用的这个

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

validation的重要性 主要是要提到 防止overfitting

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Lambda 的用法 (匿名函数) 如果你说某一个variable事一个lambda,那么你就是说它是一个函数。 所以你可以用你的这个variable对一些新的value进行操作!

就是先输入变量, 冒号后面就是利用这两个变量产生的操作:

不用定义return, 也不用放变量在括号里面

add = lambda x, y: x + y

Result = add(3, 5)

我们用它就是因为它简单。 写起来很快

比较难的用法是gpt里面对character进行encoding的用法:

encode = lambda s: [stoi[c] for c in s] 这里的s就是随便输入的txt文本。所以我们可以用for对他进行操作。 等他们的for操作完了之后,再用stpi[c]对所有的c进行操作。这里唯一的变量就是输入的s。

另外一个比较难的例子: decode = lambda l: ‘‘.join(itos[i] for i in l )

#lambda #python

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

字典dictionary的创建 my_dict = {‘a’: 1, ‘b’, :2 ‘c’:3} 字典的形式直接就是中括号,然后里面是一对一对的。 每一对都是逗号隔开的 然后前面的是key ,key 冒号: value就是他的value

或者可以把list搞成字典:

pairs = [(‘a’, 1), (‘b’, 2), (‘c’, 3)] my_dict = dict(pairs) print(my_dict)

或者这种形式的也可以:(gpt就是这么搞的character,把每个character 都弄成了字典)

keys = [‘a’, ‘b’, ‘c’] values = [1, 2, 3] my_dict = {k: v for k, v in zip(keys, values)} print(my_dict)

要想获取dict里面的value,可以用这种方法: my_dict[k]

如果想要搞一个完整的string 就可以参照这样的写法: encode = lambda s: [stoi[c] for c in s] Decode = lambda l: ‘’.join([itos[i] for i in l]

#python #dictionary #gpt #list #enumerate

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate… Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate(…)是合理的

一个简单的例子: #string to integer (encoding) stoi = {i: w for i, w in enumerate(chars)}

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。… iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。 Ipad稍稍往全面挪,挪到靠近自己的手的位置。 iPad的YouTube可以在Safari上面看,最大屏幕,然后把翻译软件悬浮放在最左边。

音量,mac一定要静音,ipad连上森海塞尔的耳机。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

decoding encoding 字符来做chatgpt, 做成字典的样子(正反字典),用enumerate 把list做成字典,要用enumerate

这个例子: text = “hello world” chars = sorted(list(set(text))) vocab_size = len(chars) print(vocab_size) # 输出: 8

创建字符到索引的映射字典

stoi = {ch: i for i, ch in enumerate(chars)}

打印结果

print(stoi) # 输出: {‘ ‘: 0, ‘d’: 1, ‘e’: 2, ‘h’: 3, ‘l’: 4, ‘o’: 5, ‘r’: 6, ‘w’: 7}

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

set{}转换成list  

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

切片操作 也就是: 不只有在numpy array时可以用的,python的字符串r和list都可以用 text = “Hello, world!” print(text[7:]) # 输出: “world!” print(text[:5]) # 输出: “Hello” print(text[3:8]) # 输出: “lo, w” print(text[:]) # 输出: “Hello, world!”

len(text) print(text[:100]) print(type(text))

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

ASCII和utf-8 的区别 ASCII就是美国的标准,主要就是能理解和解读英语和他的一些标点符号 ASCII(American Standard Code for Information Interchange)

Utf-8是为了中文,韩文,日文,法语的一些重音,甚至还可以包括表情符号。。准备的 所以为了让计算机能够理解我们下载的txt等信息,最好就是用encoding=‘utf-8’

UTF-8 的全称是 “Unicode Transformation Format - 8-bit” (这就有点像是联合国的标准)

如果搞错了,不用encoding=‘utf8’ 可能就会出现乱码

#ASCII #utf-8 #encoding

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Open(文件位置,mode=‘r/w/x’/a, encoding=‘utf-8’) as f: Mode 的r是read ,就是读文件 ,一般情况下 我们read就够了

W是write,就是会对这个文件进行操作,改写

x就是创建一个新文件,然后往里面写东西

a就是append, 在文件后面append东西

Utf-8

#python #mode #encoding #utf-8

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

with (python里面的意思) 主要是在打开文件的时候, 确保文件在使用之后会自动关闭 with open(‘example.txt’, ‘r’) as file: content = file.read() print(content)

文件在这里自动关闭

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

subprocess 主要是一个python的module block 也就是用来运行command line的 他可以执行一些在terminal才可以执行的命令 这里有个例子,让他执行wget 网页下载到当前文件夹的命令

import subprocess

url = “https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt” subprocess.run([“wget”, url])

这个跟直接在terminal写wget的命令产生的效果是一样的 只不过他可以让我们在python的一个文档里面执行这个命令 方便灵活了很多 !wget https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Wget的用法,主要是从www上面拿一些数据,比如txt或者csv 主要他会吧这个文件下载到当前文件夹

要想在Jupyter notebook运行这个wget的命令,前面要加上! 因为他是command line的命令

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

seed 主要是想把所有devices产生随机数的seeds设置起来,让实验可以重复

在torch上可以这样说:

Torch.manual_seed(1337)

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Torch 他和tensor flow事不同的架构了。也是做NN的,可以用来做gpt,我学了一个教程就是用的他做的gptfrom scratch。

torch是Facebook团队开发的

https://www.youtube.com/watch?v=kCc8FmEb1nY&t=4454s

#torch #匯總今日內容