深度学习 - 52.推荐场景的多样性与 MMR [Maximal Marginal Relevance] 简介与 Python 实现

63 篇文章 15 订阅
订阅专栏
文章介绍了MMR(MaximalMarginalRelevance)算法,一种用于提高推荐列表多样性的方法。它在推荐系统中通过平衡物品的相关性和多样性来优化TopK推荐。文中详细阐述了标准MMR和窗口MMR流程,并提供了基于向量内积相似度的Python实现,包括计算MRi、选取最优商品和使用滑动窗口优化计算复杂度。最后,文章提供了一个简单的MMR代码示例,并讨论了实际应用中的优化策略。
摘要由CSDN通过智能技术生成

目录

一.引言

二.多样性

三.MMR 流程

1.标准 MMR

2.窗口 MMR

四.基于向量内积相似度的 MMR Python 实现

1.模拟用户 rank 结果

2.向量内积计算 MRi

2.1 获取向量计算 max sim

2.2 argmax 获取最优 MRi item

3.MMR 测试

4.MMR 完整代码

五.总结 


一.引言

MMR - Maximal Marginal Relevance 最大边界相关算法是一种多样性计算方法,最早起源于 NLP,后被应用于推荐算法的重排用于提高推荐的多样性。

二.多样性

推荐系统常常分为召回、粗排、精排与重排、随着步骤的深入,物料的数量也越来越小,精排给 n 个候选 item 打分后,可以获得每个物品的融合分数,有纯 CTR 场景,此时分数为 CTR、也有多目标场景、例如同时预测 Item 的点赞率、收藏率、点击率等等,此时将多个指标加权作为当前 item 的融合分数,这里我们统称为 reward_i 代表当前 item 的回报值。

传统推荐阶段在精排后按照 reward_i 降序排列取 TopK 即可实现推荐,为了提高用户推荐的多样性,我们引入了 item 的相似度度量记录为 sim(i,j),其中相似度的计算可以是简单的类目匹配,也可以是 Context 文本向量的相似度度量。

多样性重排要求从 n 个精排 item 中选出 TopK,要求这 K 个商品既有高精排分数,也拥有一定的多样性。

三.MMR 流程

1.标准 MMR

Maximal Marginal Relevance 最大边界相关算法:

上图为 MMR 在论文中的公式表达,上面多样性中我们提到 MMR 最终的目的是既要又要,所以式子中的 λ 很明显是作为调节因子,控制用户既要想要的区分度,下面解释下推荐系统下的 MMR 计算:

• 构建集合 S 与 R 

精排后获得 N 个候选商品,其中 reward 排名第一个 item 构成数组 S = [Top],剩下的 N-1 个商品构成数组 R。S 中的物品代表已选、R 中的物品代表备选,假设要从 N 中选 Top K,则 MMR 的任务是从 R 中挑选 K-1 个商品送进 S。

• 计算 R 中商品的 MRi

初始化 S 和 R 后,需要计算 R 中每个物品的 MRi,MRi 是综合了商品的打分与其与 S 中商品的多样性得到的分数,θ 为调和参数,θ 越大越偏向 reward 高的商品,反之越偏向多样性强的物品,此时曝光少、长尾的物品更容易获得下发机会。

max_{j\in S} sim(i,j)

i 代表当前 R 中的某个候选集,j 是所有当前 S 中的商品,需要计算 i、j 的相似度,并取出 max 的值,这一步主要是为了让当前 i 尽量不与 S 中的某个商品很相似,从而导致多样性差或者出现重复内容。

• MMR 添加商品至 S

遍历 R 中的商品并计算 sim(i,j),argmax 找到 MRi 最大的候选 item 从 R 中 pop 并 append 添加至 S 中。重复上述步骤 K-1 次,此时 len(S) = K、len(R) = N - K ,迭代结束,S 作为 MMR 重排后的结果参与后续推荐逻辑。

Tips:

- 关于 S 的初始化

为什么 S 初始化要放入 reward 最高的商品,这是因为当 S 为 0 时,max sim 这一项为 0 ,所以 RMi 的计算只考虑 θ * reward,自然会放入 reward 最高的商品,当 S 有元素时,max sim 这一项非 0 ,从而可能出现 reward 低但多样性好的商品逆袭。

- sim(i,j) 计算

sim(i,j) 可以是简单的物品属性匹配,例如一级类目、二级类目、三级类目的匹配,也可以通过预训练 embedding 的方式,获取不同商品的 embedding,通过计算向量内积、向量 Cos 等方式计算候选集之间的相似度。这里推荐使用基于图片或者 NLP 语义理解的 embedding 方式,而不推荐类似双塔的结构,这是因为双塔训练对于长尾与低曝光物品训练不到位,可能影响效果。

- 关于 max、θ

max 是寻找当前候选与所有 item 中相似度的最大值,这里也可以尝试 mean 代表与整体的相似度差异。 θ 的话就根据自己的场景调试即可,不同的值不同的偏好,可以从 0.5 试起来。

2.窗口 MMR

当 K 设置的很大时,随着添加的物品增多,max sim(i,j) 总是约等于1,这将导致 MMR 算法退化成基于 reward 排序。 解决方案也很简单,把 max 的计算方式修改,把与 J ∈ S 改成 J ∈ SBS 即 S 的一个子集,实际场景下为 S 中最近选中的 M 个物品。这个也很好理解,第 1 个物品和第 30 个物品可以相似,这对多样性并不会造成多大影响,只要保证局部的 W 内的多样性同样可以做好用户的多样性。

 

Tips:

- 关于计算复杂度

传统 MMR 计算需要遍历 R 中的物品,同时 R 中每个物品还需要遍历 S 中的物品,计算复杂度较高。引入滑动窗口可以有效缩减  max sim(i,j) 的计算量,可以通过提前缓存 item 之间的 sim 值或者引入动态 Cache 提高 MRi 的计算速度。除此之外,通过 batch 矩阵计算也可以优于 for 循环的 sim 计算。

- 关于 W 窗口大小

这个参数的设置有多个考虑因素,一方面要考虑用户一次刷新要曝光的物品条数,W 应该与该数量成正比,除此之外也可以考虑实际端上曝光可显示范围数,例如手机上一屏只能显示 6 件商品,那么也可以适当缩小 W 范围。

 

四.基于向量内积相似度的 MMR Python 实现

1.模拟用户 rank 结果

if __name__ == '__main__':
    
    total = 10000
    n = 100
    k = 10
    theta = 0.5

    # 1.模拟用户排序分数,假设此时为精排,候选集 n=100
    R = list(zip(np.random.randint(0, total, size=n), np.random.random(n)))

    # 2.Embedding 相似度依据
    id_embedding = dict(zip(list(range(0, total)), np.random.random(size=(total, 8))))

这里假设商品库大小为 10000,精排结果为 100,重排后选择 K=10 个商品,R 代表用户排序的商品 id 与 reward 得分:

(2929, 0.8633555492090925)
(1662, 0.18390267494361623)
(8939, 0.9977265350155343)
(2402, 0.3223362034792787)
(9430, 0.19965218206425672)

id_embedding 为模拟的 10000 个商品的预训练 embedding,实际场景下可以通过 NLP 例如 bert 生成相关的文案 Embedding,通过 CNN 生成相关的图像信息 Embedding 再将二者结合:

9995: array([0.77517001, 0.6545193 , 0.07678476, 0.82733098, 0.86182284, 0.04631414, 0.00104291, 0.91166001]), 
9996: array([0.68162543, 0.3751251 , 0.10805542, 0.63555129, 0.51926022, 0.2010376 , 0.59947074, 0.7950087 ]), 
9997: array([0.95780135, 0.00484409, 0.05476651, 0.65649113, 0.71699212, 0.88593591, 0.49342144, 0.29664633]), 
9998: array([0.88086731, 0.70929634, 0.58964263, 0.70942298, 0.16545527, 0.6283401 , 0.02261712, 0.46174134]), 
9999: array([0.88725936, 0.33872398, 0.10774754, 0.95433321, 0.71457625, 0.92265572, 0.63147676, 0.48301763])}

2.向量内积计算 MRi

2.1 获取向量计算 max sim

        sort_list = []
        for item in _R:
            # 候选 Id 与预期收益
            item_id = item[0]
            item_reward = item[1]

            # 获取向量用于相似度计算
            item_emd = np.expand_dims(_id_embedding[item_id], axis=0)

            # 是否使用滑动窗口
            if is_slid:
                s_emd = np.transpose([_id_embedding[s[0]] for s in _S[len(_S) - window_size: len(_S)]])
            else:
                s_emd = np.transpose([_id_embedding[s[0]] for s in _S])

            # 计算 Max Sim ij
            max_sim = np.max(np.dot(item_emd, s_emd))

            # 计算 MRi
            MRi = theta * item_reward - (1 - theta) * max_sim
            sort_list.append((item_id, item_reward, MRi))

获取 Ri 的向量,与 S 中的多个候选商品 Item 进行 Batch Dot 计算,最后套公式计算 MRi。

2.2 argmax 获取最优 MRi item

        # 获取大的 RMi 商品
        sort_list.sort(key=lambda x: x[2], reverse=False)
        max_MRi = sort_list.pop()
        cur_max = (max_MRi[0], max_MRi[1])

        # Max RMi 从 R 移到 S 中
        max_MRi_id = _R.index(cur_max)
        _R.pop(max_MRi_id)
        _S.append(cur_max)

根据 MRi 排序,将 MRi 最大的 item 从 R 中 pop 并 append 至 S 中,完成一次循环。将上述逻辑执行 K-1 次,完成 K 个候选商品的选择。这里通过 is_slid 和 w 参数控制是否使用滑动窗口,工业场景下推荐使用滑动窗口并根据业务场景曝光条数选择合适的 w。

3.MMR 测试

    # 3.MMR
    S = mmr(R, id_embedding, k)
    for candidate in S:
        print("Id: %s Reward: %s" % (candidate[0], candidate[1]))
S Size: 2 R Size: 98 Id: 2023 Reward: 0.9803380341271558 RMi: 0.18914732654032512
S Size: 3 R Size: 97 Id: 7055 Reward: 0.9234506566901367 RMi: 0.09500372556637421
S Size: 4 R Size: 96 Id: 1307 Reward: 0.7965671493211518 RMi: 0.03062159309825946
S Size: 5 R Size: 95 Id: 4457 Reward: 0.9834577224706769 RMi: 0.09144580217525927
S Size: 6 R Size: 94 Id: 5394 Reward: 0.7642957463819996 RMi: -0.25072450194085166
S Size: 7 R Size: 93 Id: 2844 Reward: 0.7683949135991219 RMi: -0.17790320675225413
S Size: 8 R Size: 92 Id: 1430 Reward: 0.6749584037283536 RMi: -0.25759969410263295
S Size: 9 R Size: 91 Id: 8762 Reward: 0.7054624111048696 RMi: -0.26594825156168417
S Size: 10 R Size: 90 Id: 1109 Reward: 0.8096079183764663 RMi: -0.23384115011894474

我们在每一轮迭代中打印了 S、R 的信息,并打印了每轮从 R 中优胜的 item 对应的 Reward 与 RMi,可以看到最终 S 中的候选集已不完全按照 reward 排序,一些 reward 相对较低但多样性好的商品也会排在前面:

Id: 3816 Reward: 0.9994031803099526
Id: 2023 Reward: 0.9803380341271558
Id: 7055 Reward: 0.9234506566901367
Id: 1307 Reward: 0.7965671493211518
Id: 4457 Reward: 0.9834577224706769
Id: 5394 Reward: 0.7642957463819996
Id: 2844 Reward: 0.7683949135991219
Id: 1430 Reward: 0.6749584037283536
Id: 8762 Reward: 0.7054624111048696
Id: 1109 Reward: 0.8096079183764663

4.MMR 完整代码

import numpy as np


def mmr(_R, _id_embedding, _k=10, is_slid=True, window_size=5):
    # 按照 reward 排序 False 增序、True 降序
    _R.sort(key=lambda x: x[1], reverse=False)

    # 初始化集合 S
    top = _R.pop()
    _S = [top]
    _RMi = []

    # 构建后 K 个元素
    for i in range(_k - 1):
        sort_list = []
        for item in _R:
            # 候选 Id 与预期收益
            item_id = item[0]
            item_reward = item[1]

            # 获取向量用于相似度计算
            item_emd = np.expand_dims(_id_embedding[item_id], axis=0)

            # 是否使用滑动窗口
            if is_slid:
                s_emd = np.transpose([_id_embedding[s[0]] for s in _S[len(_S) - window_size: len(_S)]])
            else:
                s_emd = np.transpose([_id_embedding[s[0]] for s in _S])

            # 计算 Max Sim ij
            max_sim = np.max(np.dot(item_emd, s_emd))

            # 计算 MRi
            MRi = theta * item_reward - (1 - theta) * max_sim
            sort_list.append((item_id, item_reward, MRi))

        # 获取大的 RMi 商品
        sort_list.sort(key=lambda x: x[2], reverse=False)
        max_MRi = sort_list.pop()
        cur_max = (max_MRi[0], max_MRi[1])

        # Max RMi 从 R 移到 S 中
        max_MRi_id = _R.index(cur_max)
        _R.pop(max_MRi_id)
        _S.append(cur_max)
        print(
            "S Size: %s R Size: %s Id: %s Reward: %s RMi: %s" % (len(_S), len(_R), max_MRi[0], max_MRi[1], max_MRi[2]))
    return _S


if __name__ == '__main__':
    total = 10000
    n = 100
    k = 10
    theta = 0.5

    # 1.模拟用户排序分数,假设此时为精排,候选集 n=100
    R = list(zip(np.random.randint(0, total, size=n), np.random.random(n)))

    # 2.Embedding 相似度依据
    id_embedding = dict(zip(list(range(0, total)), np.random.random(size=(total, 8))))

    # 3.MMR
    S = mmr(R, id_embedding, k)
    for candidate in S:
        print("Id: %s Reward: %s" % (candidate[0], candidate[1]))

一些最大元素的构造也可以使用堆代替 List,提高计算效率,元素 Embedding 可以通过预训练得到或者换成简单的规则匹配。

五.总结

MMR 发表于 1998 年,是早期多样性文章的代表作之一,算法简单有效值得大家在推荐场景使用。

参考:

MMR 多样性算法(Maximal Marginal Relevance)

The use of MMR, diversity-based reranking for reordering documents and producing summaries

更多推荐算法相关深度学习: 深度学习导读专栏 

mmr2strava-源码.rar
10-10
总结,通过分析“mmr2strava-源码”,我们可以学习到如何与其他平台进行数据交换,如何处理API交互,以及如何设计健壮的数据转换工具。这对于提升开发者在运动数据处理、API交互和数据迁移方面的技能具有实际意义。...
MMR: 控制推荐多样性算法
眼罩的程序员笔记
07-03 2302
你有考虑过推荐系统的多样性层面是怎么设计的吗? 推荐系统中精排模块是对各个item进行精准预估,而在之后的重排阶段则会整体考虑推荐的N条内容间的关系,给出listwise粒度上最优的推荐序列。 多样性是重排阶段的一个排序策略,已经有文献指出多样性和准确性并非完全矛盾。因为,用户没有点击并不一定是 ctr 预估不准确,而是用户已经点击了类似的东西,这才导致了下一条内容没有点击。所以存在多样性与精确性同时提升的空间。...
MMR(最大边界相关算法)
Forlogenの解忧杂货铺
10-09 6354
最大边界相关算法 用于计算查询文本和搜索文档之间的相似度,然后对文档进行排序。算法公式为MMR(Q,C,R)=Argmax⁡di,in,ck[λsim(Q,di)−(a−λ)max⁡dj,k(sim(di,dj))]\text{MMR}(Q,C,R) = Arg \max_{d_{i},in,c}^k [\lambda sim(Q,d_{i}) - (a- \lambda) \max_{d_{j}...
使用最大边际相关性(MMR)选择示例:提高AI模型的多样性和相关性
最新发布
aehrutktrjk的博客
09-11 865
最大边际相关性是一种在信息检索和自然语言处理中广泛使用的算法。它的核心思想是在选择相关项目的同时,也要考虑已选项目之间的多样性。找出与输入最相似的示例在添加新示例时,考虑它们与已选示例的不同程度通过平衡相关性和多样性,优化最终选择的示例集最大边际相关性(MMR)是一种强大的示例选择方法,能够在相关性和多样性之间取得平衡。通过LangChain提供的工具,我们可以轻松地在自然语言处理任务中应用MMR,从而提高模型的性能和泛化能力。
摘要抽取算法——最大边界相关算法MMR(Maximal Marginal Relevance) 实践
sjyttkl的专栏
06-22 1669
NLP(自然语言处理)领域一个特别重要的任务叫做——文本摘要自动生成。此任务的主要目的是快速的抽取出一篇文章的主要内容,这样读者就能够通过最少的文字,了解到文章最要想表达的内容。由于抽取出来的摘要表达出了文章最主要的含义,所以在做长文本分类任务时,我们可以采用文本摘要算法将长文本的摘要抽取出来,在采用短文本分类模型去做文本分类,有时会起到出奇的好效果。 文本摘要自动生成算法 文本摘要抽取算法主要分为两大类: 一种是生成式:生成式一般采用的是监督式学习算法,最常见的就是sequence2sequence
MMR算法学习
Silience_Probe的博客
06-15 1万+
MMRMMR的全称为Maximal Marginal Relevance ,中文名字为最大边界相关法或者最大边缘相关。在MMR的公式是这样的,截图来自http://www.cnblogs.com/little-horse/p/7191287.html由于我们算的是自动摘要,所以主要看下面的公式。左边的score计算的是句子的重要性分值,右边的计算的是句子与所有已经被选择成为摘要的句子之间的相似度最...
提升商品多样性的优化方案rerank策略
Lao男孩的博客
03-22 926
数学公式: $MR_{i}=\theta\cdot reward_{i}-(1-\theta)\cdot\max_{j\in S}{sim(i,j)} $根据上图,粗排和精排之后,需要根据分数进行后处理,如果不需要多样性,只需要按照分数进行到排序就可以,但是往往为了多样性,比如精排的后处理称作rerank。设sim的取值范围是[0,1]。问题:随着已选中的物品越多,即集合S越大,越难找出物品i,使得i与S中的物品都不相似。相似度:sim1(i,j)=1,sim2(i,j)=0,sim3(i,j)=1。
mmr.rar_java内存_mmr
09-14
"mmr.rar_java内存_mmr"这个压缩包显然包含了关于Java内存管理的资料,特别是与“MMR”(可能是“Memory Management Region”或者某种特定的内存管理策略的缩写)相关的知识。描述中提到的“三个包”可能是指源代码...
单片机与DSP中的单片机种类简介
10-16
在单片机与数字信号处理器(DSP)领域,单片机种类繁多,各自拥有独特的特性和应用场景。 AVR单片机是由ATMEL公司开发的一种增强型RISC(Reduced Instruction Set Computer)架构的单片机。AVR单片机内部嵌入了...
最大边界相关法(Maximal Marginal Relevance)的总结
热门推荐
Eliza1130的专栏
04-18 1万+
MMRMaximal Marginal Relevance)是一种重新确定文档序值的方法。 具体公式如下: 由上述公式可以看出sim(Q,di)代表的是di的相关性,而sim(di,dj)代表的是di的冗余性; 而MMR的核心,即在权衡这两种性质,即redundancy=cost,relevance=benefit 具体重定序的算法如下: 解释: 为了得到最初的k个文
摘要抽取算法——最大边界相关算法MMR(Maximal Marginal Relevance)
lzay的博客
08-09 1554
用途 快速的抽取出一篇文章的主要内容,这样读者就能够通过最少的文字,了解到文章最要想表达的内容 方法 一种是生成式:生成式一般采用的是监督式学习算法,最常见的就是seq2seq模型,需要大量的训练数据。 生成式的优点是模型可以学会自己总结文章的内容,而它的缺点是生成的摘要可能会出现语句不通顺的情况。 另一种是抽取式:常见的算法是 textrank,MMR(Maximal Marginal Relevance),当然也可以采用深度学习算法。 抽取式指的摘要是从文章中抽出一些重要的句子,代表整篇文章的内容。 抽
推荐多样性重排算法之MMR
Oner.wv的专栏
02-06 5372
“本文介绍了推荐系统中的多样性重排序算法Maximal Marginal Relevance (a.k.a MMR),并给出了该算法的python实现代码。”文章来源:icebear...
# langchain # MMR解决检索冗余问题、实现多样性检索
weixin_45312236的博客
05-22 351
是一个选择器,用于从一组候选示例中选择出与输入最相关且具有多样性的示例。它通过计算示例与输入之间的语义相似度,然后迭代地选择示例,同时对与已选择示例相似度过高的候选项施加惩罚。
人工智能|推荐系统——工业界的推荐系统之重排
也许有一天我们再相逢 睁开眼睛看清楚 我才是英雄!
05-08 267
基于物品属性标签基于物品向量表征 ⽤召回的双塔模型学到的物品向量(不好)
使用最大边界相关算法处理文章自动摘要
My52Hz
01-31 625
对于博客或者文章来说,摘要是普遍性的需求。但是我们不可能让作者自己手动填写摘要或者直接暴力截取文章的部分段落作为摘要,这样既不符合逻辑又不具有代表性,那么,是否有相关的算法或者数学理论能够完成这个需求呢?我想,MMR(Maximal Marginal Relevance)是处理文章自动摘要的杰出代表。
Python实现利用MMR提取自动摘要
melon0014的博客
08-02 2726
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...
最大边缘相关多样性算法MMR的学习和实现
www13998641557hhu的博客
03-28 1177
Maximal Marginal Relevance (MMR) 算法可以减少排序结果的冗余,同时又能保证结果的相关性。最早应用于文本摘要提取和信息检索等领域。在推荐场景下体现在,给用户推荐相关商品的同时,保证推荐结果的多样性,即排序结果存在着相关性与多样性的权衡。
写文章

分类专栏

  • Spark 3.0 x 机器学习 付费 18篇
  • Flink 成长之路 付费 64篇
  • 深度学习 63篇
  • 夜深人静写算法 27篇
  • LLM 50篇
  • Spark 52篇
  • Scala 150篇
  • Python 90篇
  • C++ 3篇
  • Flink Sql 8篇
  • Hadoop 10篇
  • Hive 18篇
  • Keras 24篇
  • Machine Learning 29篇
  • Tensorflow 36篇
  • 算法 30篇
  • GraphEmbedding 6篇
  • 异常解决 56篇
  • Go 9篇
  • Redis 7篇
  • MapReduce 3篇
  • kafka 5篇
  • Java 29篇
  • Hbase 3篇
  • Streaming 5篇
  • Shell 28篇
  • Git 7篇
  • Executor 8篇
  • 机器学习数学原理 15篇
  • 西瓜书 6篇
  • 数据结构 16篇
  • 图像处理 2篇
  • 常用语法 66篇

最新评论

  • LLM - 旋转位置编码 RoPE 代码详解

    BIT_666: 在向量中添加位置的信息,QK 乘的时候就把位置信息引入了

  • LLM - 旋转位置编码 RoPE 代码详解

    Owen York: 坐标轴分量*cos+坐标轴分量*sin表示的是旋转,但是在实际应用时是qkv,应该表示的是特征,这个怎么解释呀?物理意义上

  • Python - Real-ESRGAN 提升图像、视频清晰度 - 最高可达 4 K

    安静的沸腾: 请问一下,我取消了注释,为什么最后训练模型中visualization中没有psnr的数据呀

  • Python - Real-ESRGAN 提升图像、视频清晰度 - 最高可达 4 K

    安静的沸腾: 大佬我又来了 我想问一下 我自己训练完resnet的模型后再用这个训练gan模型 训练结束后出现net-g-latest(训练的生成器模型)和net-d-latest(训练的判别器模型),但是我用自己电脑跑推理代码遇到两个问题,1️⃣是有两个训练模型,生成器和判别器,但是路径只有一个(像realesrgan✖️4.pth这样,虽然是gan模型但是它一个模型就可以表示了),我不知道该怎么处理更合理。后面这个问题是我自己瞎试试的。2️⃣是我将路径地址设置成生成器的时候 跑出来的图变成只有图片的小点点,但是如果我单纯不跑生成对抗,只跑生成器的话 用训练好的模型跑是完全没有问题的(自己训练resnet)将路径地址设置成判别器的时候 显示所有权重都不匹配。模型是图像超分的real-esrgan,不过我改了一些。框架还是原来real-esrgan的框架。请问一下大佬这个该怎么解决,困扰我挺长时间的了

  • LLM - LoRA 模型合并与保存

    嗜血的蚂蚁_12138: 请问在微调过程中保存了多个检查点的话,一般在模型推理时,是不是需要将这多个检查点的微调结果合并呢,就像你代码里的那样。我现在是单个任务,有必要合并吗?

最新文章

  • Go - 10. * 值类型和指针类型的差异
  • LLM - GQA 之 Group Query Attention 论文与源码精读
  • Go - 9.struct 使用指南
2024
08月 2篇
07月 3篇
06月 6篇
05月 5篇
04月 8篇
03月 4篇
02月 2篇
01月 24篇
2023年114篇
2022年140篇
2021年98篇
2020年52篇
2019年9篇
2018年29篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIT_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家湘西玻璃钢雕塑厂家供应江都玻璃钢雕塑咸阳玻璃钢座椅雕塑新郑仿古校园玻璃钢景观雕塑透光玻璃钢雕塑工艺阿坝成都商场美陈工业齿轮玻璃钢景观雕塑合肥+玻璃钢雕塑熊猫玻璃钢雕塑黄山步行街玻璃钢雕塑哪家便宜专做园林景观玻璃钢人物雕塑安徽公园玻璃钢雕塑图片商场奖品美陈重庆玻璃钢昆虫雕塑上海玻璃钢抽象雕塑批发濮阳玻璃钢商场美陈楚雄商场美陈雕塑厂家长治玻璃钢雕塑地址济宁景观小品玻璃钢雕塑196树脂玻璃钢雕塑湛江市玻璃钢雕塑工程玻璃钢浮雕抽象不锈钢雕塑浙江大型玻璃钢雕塑摆件商场美陈哪家公司好玻璃钢雕塑哪里厂家多山东人物玻璃钢雕塑厂家专做室内外玻璃钢人物雕塑常用玻璃钢雕塑摆件供货商福建常见商场美陈研发商场美陈行业公司起名香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化