pp001.HOW TO CATCH AN AI LIAR: LIE DETECTION IN BLACK-BOX LLMS BY ASKING UNRELATED QUESTIONS
AI前沿|大语言模型会说谎?我们如何应对这种风险?
LLM可能会“说谎”,作者将其定义为尽管模型在可证明的层面上“知道”真相,但仍做出虚假陈述。例如,当被要求输出错误信息时,LM可能会“撒谎”。作者在文章里开发了一个简单的测谎仪,既不需要访问LLM的激活(黑匣子),也无需有关事实的真实知识。该检测器的工作原理是在怀疑模型说谎后询问一组预定义的不相关的后续问题,并将LLM的是/否答案输入逻辑回归分类器。尽管很简单,但这种测谎仪非常准确且非常通用。当只对单一设置进行训练测谎仪时(即提问GPT-3.5使其对事实问题撒谎),检测器将分布外泛化为(1)其他LLM架构如LLaMA1,(2)已经微调为能撒谎的LLM,(3)迎合用户的谄媚类型的谎言,(4)在销售等现实生活场景中。这些结果表明LLM具...
深入浅出Pytorch
没有系统学习过pytorch,最近复习了tensorflow,趁下班时间把这些pytorch复习一下。
课程链接
第一章:PyTorch深度学习基础知识
这一部分的内容都很基础,原先就已经掌握了,之后会多记录一下有必要记录的点
第二章:PyTorch基础知识
2.1 张量:
之前有tf1的经验,其中常量的创建用tf.constant,与pytorch不同,在pytorch中,使用如torch.tensor(1.0, dtype=torch.float)的方式来创建,注意到一般dtype的与实际给的data类型应该一样,如果不一样会有warning,但是如果某个入参data的类型未知,则可以用dtype来做强制转换。
可以通过把一个用g = np.array([[1, 2,...
lc744.寻找比目标字母大的最小字母
题目链接
刷了一波二分,都是最简单的那种找>=value的下界,所以没来记录,这个题稍微有点变化,找的是>=value的上界,这个可以转化成找>=(value+1)的下界,就一样容易了。不赘述。这个算法的时间复杂度是O(logN),空间复杂度是O(1)。
python:
class Solution:
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
first, last = 0, len(letters)
res = self.helper(letters, first, last, target)
retu...
lc704.二分查找
题目链接
二分查找虽然基础,但是很多细节都需要注意的,看了一下知乎上一个回答,来把它理一理清楚。
回答链接
首先,给出一个求”非降序范围[first, last)内第一个不小于value的值的位置”模板,再稍微进行一些解释:
def lower_bound(array, first, last, value): # 求非降序范围[first, last)内第一个不小于value的值的位置
while first < last: # 搜索区间[first, last)不为空
mid = first + (last - first) // 2 # 防溢出
if array[mid] < value:
first = mid + 1
...
lc069.x的平方根
题目链接
这个题显然用牛顿迭代法做,但是刚好理了一下二分法,所以用二分写了一下。
这个算法的时间复杂度是O(logN),空间复杂度是O(1)。
python:
class Solution:
def mySqrt(self, x: int) -> int:
if x == 0:
return 0
if x == 1:
return 1
first, last = 0, x
while first < last:
mid = first + (last - first) // 2
if mid * mi...
lc739.每日温度
题目链接
这是一个典型的单调栈的题目。首先思考“无脑入栈”的情况,取反后将答案与栈状态的更新编辑一下即可。这个算法的时间复杂度是O(N),空间复杂度是O(N)。
python:
class Solution:
def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
size = len(temperatures)
ans = [0]*size
stack = []
for i in range(size):
while stack and temperatures[stack[-1]] < tem...
lc735.行星碰撞
题目链接
这是一个栈的题目,我一开始做的时候一直试图套单调栈的模板,发现不太行,后来发现和单调栈的区别还是很大的,只是一个普通的栈,有一点点类似罢了。考虑以下这些情况:
首先,循环每一个元素时,在什么情况下无脑入栈呢?
栈为空
栈顶元素为负数(下一个为负数则一起向左,下一个为正数则分向两边)
当前元素为正数(栈顶为正一起向右,栈顶为负分向两边)
下来,我们需要看碰撞的场景又细分为什么情况:
栈顶元素大于abs(当前元素),当前元素被撞毁
栈顶元素等于abs(当前元素),栈顶弹出和当前元素抵消
栈顶元素小于abs(当前元素),栈顶弹出,并与新栈顶完成上述判断
最终返回栈即可
这个算法的时间复杂度是O(N),空间复杂度是O(N)。
pytho...
西方哲学名著导读
前言
哲学的一个重要特征是“终极”。所谓终极,就是最后的不可超越之处,哲学的追问方式就是要追到不可追问的地方为止。
哲学是一种自觉的意识。反思的含义,就是在进行这种行为之前、之后和进行这种行为的过程中,随时对行为本身进行考察,甚至连这种考察着的精神活动本身也成为考察的对象,考察它的意义、价值和后果。
认识你自己。人应当自觉而清醒地活着,而不能像其他动物那样按照自然的方式、形式和要求而生活,这是人之异于禽兽的地方。
一般的反思只着眼于具体的事物,而哲学从总体的角度入手,能够使人胸襟开阔,见人所未见。
哲学是上乘的音乐。
自由的学问:就内在的精神而言,要达到这样的自由,其前提必定是确立思维的独立性,不以任何人的观念为观念,也不以任何未经考察的观念为真理,这就是说,连考察者本人的...
lc131.分割回文串
题目链接
在练习dp,首先回文子串的题目之前做过了,用二维dp做。这个比较熟悉,但是这次代码写得更加简洁了。之前在做的时候是把dp数组里的元素初始化为False的,那样还要多余地将对角线先设置成True,并且还要多余地判断字符长度是否足够小等。目前这种实现更好,状态更新的时候用到了and的短路机制,如果s[i]与s[j]相等的条件没法被满足,那么就无需判断dp[i+1][j-1]。除了dp之外,我们还需要获取回文串的各种组合,所以我们需要用到回溯算法,貌似和之前的回溯不一样的地方在于,控制递归的参数有点不同,在之前做过的很多题目中,我们的实参通常是形参增加后的值,在这个题目里,实参却直接换了一个元素,确实有点讲究,有机会要好好想一想,今天有点懒。
这个算法的时间复杂度是O(N2^N...
260 post articles, 26 pages.