一线开发 [2023]迅速上手meta的llama模型 首先确保自己有足够的资源配置.这边给个资源配置表: ### 硬件要求 7B模型: 1张3090就行,很垃圾,没什么效果 13B模型: 2张3090就行,很垃圾,没什么效果 30B模型: 4张3090是最低要求,推理速度极慢.有条件四张A100 60B模型: 没跑过 这边以30B模型为例: 首先克隆项目: https://github.com/facebookresearch/llama 然后自己网上找个30B的权重 阅读全文 2023-03-13 huoji 2 条评论
python工具软件二进制安全 [2022] 基于NLP的威胁检出引擎 NLP引擎出自于我的一个简单的想法 - 既然人可以通过汇编看出软件是否是病毒 那么机器是否可以通过汇编看呢? 为了让机器能看得懂代码,我首先想到的是非常经典的NLP分类问题,所谓的NLP分类问题,就是训练的时候给一堆词语+词频,推理的时候先把句子中的词语分出来,再然后计算这些词语的词频,最后得出这条句子属于什么类别的结论 阅读全文 2022-03-17 huoji 1 条评论
C/C++ [2021]xgboost for win32 cpp version 找了非常久,终于找到了! Cpp版本,源码.自行编译 链接:https://pan.baidu.com/s/1MAmeenzvR5z_lIvVNSQ-uQ 提取码:4wwt 阅读全文 2021-10-19 huoji 0 条评论
系统安全二进制安全 [2021]为什么InstDrv.exe这个驱动加载工具绿色版被各个杀毒软件厂商报毒 写驱动的朋友应该或多或少的使用过"InstDrv.exe",或者叫做驱动加载工具绿色版  图标  不幸的是这玩意在VT上被各种杀毒软件报毒,包括defender,火绒,深信服等...  这倒没什么,毕竟这很正常,奇怪的来了, 自己制作的启发引擎到最后也把这个报毒了? 什么原理? ### shap 目前很多的启发引擎都被是"基于神经网络",说白了就是塞一大堆东西,也不知道是啥,反正让机器给出一个0或者1就完事了,但是这样你也懂的,黑盒,完全不可见,包括我自己制作的杀毒引擎也是黑盒.好在存在,shap是一个神经网络查看工具,可以查看神经网络偏向哪个特征,方便调参 [由于保密协议问题,我不能展示我的神经网络的模型,但是可以用一下其他人的]  使用shap工具查看神经网络,左边是特征类型,中间是权重 根据我的看法,是因为这个instdrv这个工具,**他的"代码段与总体积"的比率太小,被很多杀毒软件的启发引擎归类为病毒类** 这就是困扰多年的驱动加载工具绿色版报毒的原因 这种是属于"无法分辨"的软件,这也是为什么目前的启发引擎误报如此之大的原因,无法分辨是指绿色软件的特征是病毒的特征,你没有其他的办法分辨,一个东西,看起来像兔子,行为也像兔子,说话也像兔子,但是他就是一只猫,这没啥办法,只能通过人工加白. 阅读全文 2021-10-03 huoji 0 条评论
python一线开发 [2021]从0开始的tensorflow2.0 (三) LSTM 假设给出如下需求: 我给你几个行为 A B C D E F 要求知道A B C D E 推测出F 这种使用场景就能使用LSTM,关于LSTM本文就不废话了,因为网上介绍一大堆了,直接上干货: 首先我们需要将数据 A B C D E F 转为编号:0 1 2 3 4 6 其次,对其进行扁平归一化,并且划分训练和测试数据: ```cpp train_path = './result_list.csv' data_frame = pd.read_csv(train_path) data_frame['activity'] = data_frame['activity'].astype('float32') scaler = StandardScaler() data_frame['activity'] = scaler.fit_transform( data_frame['activity'].values.reshape(-1, 1), scaler.fit(data_frame['activity'].values.reshape(-1, 1))) train_size = int(len(data_frame['activity']) * 0.75) trainlist = data_frame['activity'][:train_size] testlist = data_frame['activity'][train_size:] ``` 读出来应该是: 0 1 2 3 4 5 .... 然后构造滑块,成0 1 2 3 4(X), 5(Y)的样子: ```cpp look_back = 64 trainX, trainY = create_dataset(trainlist, look_back, None) testX, testY = create_dataset(testlist, look_back, train_size) ``` 注意网上的create_dataset代码都过时了,大部分你直接抄就会报错,用我的就行: ```cpp def create_dataset(dataset, look_back, start_index): dataX, dataY = [], [] for i in range(len(dataset)-look_back-1): a = dataset[i:(i+look_back)] dataX.append(a) if start_index != None: dataY.append(dataset[start_index + i + look_back]) else: dataY.append(dataset[i + look_back]) return np.array(dataX), np.array(dataY) ``` 记得要reshap一下: ```cpp trainX = trainX.reshape(trainX.shape[0], trainX.shape[1], 1) testX = testX.reshape(testX.shape[0], testX.shape[1], 1) ``` 之后直接训练即可: ```cpp model = keras.Sequential() model.add(keras.layers.LSTM(128, input_shape=(look_back, 1), return_sequences=True)) model.add(keras.layers.LSTM(256)) model.add(keras.layers.Dense(1)) model.compile(optimizer=keras.optimizers.Adam(), loss='mae', metrics=['MeanSquaredError']) model.fit(trainX, trainY, epochs=26, batch_size=128) model.save('./model_lstm.h5') ``` 测试:  阅读全文 2021-08-14 huoji 0 条评论
python一线开发 [2021]从0开始的tensorflow2.0 (二) 上一节 [[2021]从0开始的tensorflow2.0 (一)](https://key08.com/index.php/2021/07/04/1239.html "[2021]从0开始的tensorflow2.0 (一)") 说了基本的逻辑回归操作,实际上所有的一些东西都能被提取特征然后做文本二分类,基本上都是这个套路,现在来说说常见的图像处理 - 卷积 请注意 我们今天只讨论处理后的图像,实际上,**图像识别部分最难的部分就仅仅是图像处理仅此而已,但是我们今天不讨论图像处理** 一个标准的网络由三个部分组成 卷积层 池化层 全连接层 ## 卷积核  阅读全文 2021-07-06 huoji 0 条评论
python一线开发 [2021]从0开始的tensorflow2.0 (一) 开个新坑,最近打算写一些不专业的tensorflow2.0的入门。不专业是因为我对算法这块研究不是特别多,所以有些写错了请在评论区指出来 首先了下面这种方程  假设x为变量、Y就是真实值, 所谓机器学习 就是用一些算法如种群算法、遗传算法等,求出这个方程的最接近Y = 0的值,那么这个Y就自然是跟 真实的值很接近了. 这就是机器学习的**不怎么正确**但是搭边的一个理解 ## 安装 请记住 tensorflow2.0是不支持比较新的python版本的! 不要直接装新版本的python 会跑不起来的!装**Python 3.7.9**就挺合适的 阅读全文 2021-07-04 huoji 0 条评论