2396部黄片,Meta偷黄片训练AI,遭天价索赔,一片罚15万...
刚看到个新闻:Meta 被两家美国成人电影公司告了,说是偷了 2396 部片子去训练 AI,每部片索赔 15 万美元,总额 3.59 亿 。乍一看像段子,但是真事。
从程序员角度看,这事挺魔幻。AI 模型训练确实需要大量数据,但数据来源一直是灰色地带。开源语料里夹杂版权内容,甚至 BT 下载都能上,这就很“工程师思维”:能跑先跑,先实现功能再说。但法律可不是这样,版权就是版权,不管你是不是为了科研。
网友有调侃“Meta 的模型里是不是内置了看片推荐”,也有人替 AI 辩护,说这只是数据的一部分。但我觉得关键在于:AI 行业不能一直靠“擦边球”过活,越大的公司越要守规矩。技术可以野蛮生长,企业却得有边界。
换个角度说,这案子可能会成为 AI 领域的数据合规分水岭。以后大模型训练可能像买正版软件一样,老老实实掏钱。
AI 再炫酷也要有底线,合法合规才能走得更远 。【备注:文末可领最新资料】
面试题:只出现一次的最大数字
昨晚十一点半,我在客厅地板上盘腿改bug,猫在旁边呼噜呼噜。小李在群里丢了道题,我一看还挺家常:只出现一次的最大数字。嗯?听着简单吧,但面试官就爱这个,三两下就能看出你是蛮力党还是会动脑子。
给你一堆整数,可能有重复,找出“恰好出现一次”的那些里头,最大的那个。没有这种数就返回个特殊值,比如 None 或者 -1。就是这样,没花头。
我第一反应,老实统计一遍次数——哈希表嘛,Python 里就是 dict 或 Counter。数完以后再挑出频次等于 1 的,取最大。时间 O(n),空间 O(k)。面试官点头:靠谱。
我脑子里又闪过一个小把戏:如果输入数据已经排好序,其实双指针就能线性扫过去,每次看一段相同元素的长度是不是 1,是就候选更新成更大的那个。可大多数时候没排序,硬排就 O(n log n) 了,能不用别用,对吧。
我边敲边嘟囔,嗯…变量名别太抽象,别整那些玄乎的:
from collections import Counter
from typing import Iterable, Optionaldeflargest_unique(nums: Iterable[int]) -> Optional[int]:
cnt = Counter(nums) # 统计词频
# 过滤出只出现一次的,再取最大;没有就返回 None
uniques = (x for x, c in cnt.items() if c == 1)
try:
return max(uniques)
except ValueError:
returnNone
# 小测一下
if __name__ == "__main__":
print(largest_unique([2, 2, 3, 1])) # 3
print(largest_unique([5, 5, 4, 4])) # None
print(largest_unique([7, 1, 9, 9, 8])) # 8
print(largest_unique([])) # None
有人问我为啥用 try/except,不是可以先建个列表吗?可以啊,但生成器配合 max 更省内存,空的时候 max 会抛 ValueError,顺手就接住了。要是你们团队更偏爱明确点,也能写成:
deflargest_unique_safe(nums):
cnt = Counter(nums)
candidates = [x for x, c in cnt.items() if c == 1]
return max(candidates) if candidates elseNone
这个哈希方案,一次遍历计数 O(n),再在键集合里挑独一份儿的,最坏也就 O(k),k ≤ n。空间 O(k)。面试台上别吞字,清楚说完就行。排序解法如果必须用,记得说 O(n log n) 时间、O(1) 额外空间(原地排序的话)。
空数组?直接 None。全是重复?还是 None。负数、零、很大的数都一样对待,比较大小没什么玄学。对了,如果题目换口味说要“下标”,那就多存一下首次出现位置,或者第二遍扫描原数组找回去,别死磕一次完成,稳定就好。
有同学问:能不能一遍走完就顺便维护最大唯一?现实里不太稳,因为你在第 i 步看到的“唯一”可能在第 j 步又来一个同值,前功尽弃。除非流式场景用 Count-Min Sketch 这类近似结构,但题目不是干这个的,别自己给自己挖坑。
反正这个题就这样,你把代码写干净,变量名像说人话一样,面试官一般都乐。哦对,记得统一返回值风格,别一会儿 None 一会儿 -1,产品经理看了要拍桌子我可不管了。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领