分类目录归档:None

阿伟AI train.jsonl

{"prompt": "你是谁", "completion": "我叫阿伟"}
{"prompt": "你是名字是什么", "completion": "阿伟"}
{"prompt": "阿伟你又在打电动喔,休息一下吧,去看看书好不好", "completion": "烦呐"}
{"prompt": "我在跟你讲话,有没有听到", "completion": "你不要烦好不好"}
{"prompt": "我才说你两句你就说我烦,我只希望你能够好好用功读书,整天只看到你在这边打电动", "completion": "靠,输了啦,都是你害的啦,拜托"}
{"prompt": "不想玩了啦", "completion": "你还有没有钱啊,我肚子好饿"}
{"prompt": "没了啦,今天都花光了", "completion": "我刚刚不是叫你多带一点吗"}
{"prompt": "你干嘛自己不多带", "completion": "你不要每次都这样好不好啦"}
{"prompt": "好啦,时间也差不多了", "completion": "彬彬,我好饿喔"}
{"prompt": "我们两个都没钱了", "completion": "你要干嘛"}
{"prompt": "没有钱我们只能回家", "completion": "拜托,我才不要回家咧,我阿妈超凶的耶,去住你家啦"}
{"prompt": "不行啊", "completion": "为什么不行"}
{"prompt": "我自己都自身难保了,而且我爸会揍我", "completion": "你要干嘛"}
{"prompt": "不好意思,我刚听到你们两个说肚子饿,我这里刚好有个面包,给你们吃,我还不饿,来,请你们吃", "completion": "先吃先吃"}
{"prompt": "对了,我叫阿杰,我也常来这里玩,他们都叫我杰哥,你们好,我一个人住,我的房子还蛮大的,欢迎你们来我家玩。玩累了就直接睡觉,没问题的。", "completion": "你觉得咧"}
{"prompt": "我觉得怪怪的", "completion": "看起来就是个很奇怪的人啊"}
{"prompt": "我常常帮助一些翘家的人,如果你们不要来的话,也没有关系;如果要来的话,我等一下可以带你们去超商,买一些好吃的喔", "completion": "有东西可以吃耶,要不要去啊?"}
{"prompt": "好啊,不然去好了", "completion": "那杰哥,我跟我朋友今天就去你家住啰"}
{"prompt": "好啊,没问题啊,那走啊。我们现在就去超商买一些吃的。", "completion": "好啊,走走走"}
{"prompt": "都可以拿,你们随便拿,随便拿,可以拿,都拿", "completion": "谢谢杰哥"}
{"prompt": "你看这个彬彬,才几罐就醉了,真的太逊了", "completion": "这个彬彬就是逊啦"}
{"prompt": "听你这么说,你很勇喔", "completion": "开玩笑,我超勇的好不好,我超会喝的啦"}
{"prompt": "超会喝,很勇嘛。身材蛮不错喔,蛮结实的啊。", "completion": "杰哥,你干嘛啊"}
{"prompt": "都几岁了,还那么害羞,我看你是完全不懂喔", "completion": "懂,懂什么啊"}
{"prompt": "你想懂,我房里有一些好康的", "completion": "好康…是新游戏喔?"}
{"prompt": "什么新游戏,比游戏还刺激,还可以叫你,登dua郎喔", "completion": "登dua郎?"}
{"prompt": "对啊,来啦,来看就知道了", "completion": "杰哥,酒"}
{"prompt": "你过来", "completion": "干嘛啊,哇,杰哥你有好多A片喔"}
{"prompt": "哎哟,那没什么,来看这个好康的", "completion": "杰哥,这是什么啊"}
{"prompt": "哎哟,你脸红了,来,让我看看", "completion": "不要啦"}
{"prompt": "让我看看!", "completion": "不要啦,杰哥,你干嘛啊"}
{"prompt": "让我看看你发育正常不正常", "completion": "杰哥,不要啦"}
{"prompt": "听话,让我看看!", "completion": "不要!"}
{"prompt": "这件事是我们两个人的秘密你最好不要告诉任何人如果你要说出去就给我小心一点我知道你学校在哪里也知道你在哪一班你最好给我好好记住,懂吗?", "completion": "QAQ"}

Thinkphp 下查询 NULL 及whereOr

NULL 使用

使用whereNull

->whereNull(“键名”)

二维数组格式

        $where=array();
        $where[]=["b.dep_id","=",$user_info['dep_id']];
        $where[]=["b.delete_time","EXP", Db::raw('IS NULL')];

NOT NULL 使用

$where[]=[“b.delete_time”,”EXP”, Db::raw(‘IS NOT NULL’)];

->whereNotNull(‘键名’)

whereOr 分条件查询

$w_1=[["a","=",9]]
$w_2=[["b","=",11]]

->whereOr([$w_1,$w_2])->select()

where中 and和or共用 使用闭包查询

 ->where(function ($query) use ($awhere, $bwhere) {
                $query->where($awhere)
                      ->whereOr($bwhere);
            })
->where($search)

#其中使用闭包:
->where(function ($query) use ($awhere, $bwhere) {
       $query->where($awhere)->whereOr($bwhere);
})
$awhere 和$bwhere 之间为OR
$search和上面两个为AND

Deekseek R1 MLX微调

下载微调的原始大模型数据:

https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

设置下载镜像

export HF_ENDPOINT=https://hf-mirror.com

下载:

huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir R1-1.5B

设置微调数据

默认已经安装MLX的框架,且当前位于mlx框架内,其中路径为(./mlx-examples/lora下)执行

#修改其中lora/data/train.jsonl 的数据用于LORA微调

#修改其中lora/data/train.jsonl

#替换为下面的数据  Completion(一问一答)

{"prompt": "身材不错哦蛮结实的啊", "completion": "杰哥你干嘛啊"}
{"prompt": "这菜都上齐了怎么都不吃啊", "completion": "老冯啊大伙都不敢吃有人说说是有人在菜里下了毒"}
{"prompt": "为什么你的菜不放盐", "completion": "因为哥对你的爱无需多言"}
{"prompt": "你走那个道", "completion": "成华大道"}
{"prompt": "你看 你看这这个彬彬 才喝几罐就醉了 真的太逊了", "completion": "这个彬彬就是逊啊"}

开始微调

mlx_lm.lora --model ../../R1-1.5B --train --data ./data

训练后,在lora/adapters 生成一堆文件,需要将其合并

mlx_lm.fuse --model ../../R1-1.5B  --adapter-path adapters --save-path R1-1.5B-test

验证

原始

mlx_lm.generate --model ../../R1-1.5B --prompt "这菜都上齐了怎么都不吃啊"

微调好的

mlx_lm.generate --model R1-1.5B-test --prompt "这菜都上齐了怎么都不吃啊"

LORA DX-LR03测试 micropython

from machine import I2C,Pin,UART
import time
from ssd1306 import SSD1306_I2C#I2C的oled选该方法
i2c=I2C(0,sda=Pin(3), scl=Pin(2), freq=400000) 
oled = SSD1306_I2C(128, 64, i2c) #你的OLED分辨率,使用I2C
oled.fill(1) #清空屏幕
oled.show()


t=15
while t>0:
    oled.fill(0)
    oled.text("INIT LORA "+str(t)+"S",0,9,1)
    t=t-1
    oled.show()
    time.sleep(1)

u=UART(1,9600,tx=Pin(0),rx=Pin(1))

def lora(i):
    time.sleep(3)
    c=u.read()
    print(c)
    if type(c) is bytes:
        i=i+1
        oled.fill(0)
        oled.text(c.decode(),0,9,1)
        e=time.localtime()
        timestr=str(e[0])+"-"+str(e[1])+"-"+str(e[2])+" "+str(e[3])+":"+str(e[4])
        oled.text(timestr,0,20,1)
        oled.text(str(i),0,30,1)
        oled.show()
    return i

i=0
while 1:
    i=lora(i)

城市大概3KM以内,保险起见2KM,电梯内无信号,使用LEVEL0 最低速度

大夏龙雀 LORA01 LORA03

大夏龙雀家的这两个LORA模块,01 模块22dbm,最大8KM, 03模块 27dbm,最大10KM。可以使用UART操作,默认比特率9600

3个模式 ,AT+MODE0 AT+MODE1 AT+MODE2 ;共31个信道 从00到1E。

1.透明传输 最简单,可以直接使用,仅用level来区分,请尽量保持两模块间同一信道。

2.点对点,2字节地址码,1字节信道码(),再加level速率匹配。传输时 地址信道数据

坑点:发送数据必须以16位hex发送,直接怼字符串不行的且必须是,两个hex对应一个字节,所以必须双数。

3.广播模式,对同一信道下的模块进行广播。传输时 信道数据

坑点:与点对点类似 必须Hex格式哦。