文本扩展
扩展是将短文本(例如一组指令或主题列表)扩展为较长的文本(例如有关某个主题的电子邮件或文章)的任务。这有一些很好的用途,比如如果你将大型语言模型用作头脑风暴的伙伴。但我也想承认一些有问题的用例,例如如果有人使用它,他们生成大量的垃圾邮件。
一:环境设置
加载开源的chatGLM模型,使用ChatGLM-6b的INT8版本。
import os
import torch
import warnings
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("./chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("./chatglm-6b", trust_remote_code=True).half().quantize(8).to('cuda')
Loading checkpoint shards: 0%| | 0/8 [00:00<?, ?it/s]
def get_completion(prompt, history=[], temperature=0.95):
response, _ = model.chat(tokenizer=tokenizer, query=prompt, history=history,
temperature=temperature)
return response
任务1:电子邮件的自动答复
现在,我们将使用语言模型根据客户评价和评价情感生成一封定制的电子邮件。下面是一款搅拌机的客户评论,现在我们将基于情感定制回复。指令是:作为一个客户服务AI助手,你的任务是发送一封电子邮件答复客户,根据分隔符内的客户评价生成一个感谢客户的答复邮件。
如果情感是积极的或中性的,感谢他们的评论。如果情感是消极的,道歉并建议他们可以联系客户服务。确保使用评论中的具体细节,用简洁和专业的语气编写并声明内容由AI代写,这种透明度非常重要。然后,我们将输入客户评论和评论情感,还要注意,这部分不一定重要,因为我们实际上可以使用此提示来提取评论情感,然后在后续步骤中编写电子邮件。但为了举例说明,我们已经从评论中提取了情感。
# 情感
sentiment = "消极"
# 一个产品的评价
review = f"""
他们在11月份的季节性销售期间以约49美元的价格出售17件套装,折扣约为一半。\
但由于某些原因(可能是价格欺诈),到了12月第二周,同样的套装价格全都涨到了70美元到89美元不等。\
11件套装的价格也上涨了大约10美元左右。\
虽然外观看起来还可以,但基座上锁定刀片的部分看起来不如几年前的早期版本那么好。\
不过我打算非常温柔地使用它,例如,\
我会先在搅拌机中将像豆子、冰、米饭等硬物研磨,然后再制成所需的份量,\
切换到打蛋器制作更细的面粉,或者在制作冰沙时先使用交叉切割刀片,然后使用平面刀片制作更细/不粘的效果。\
制作冰沙时,特别提示:\
将水果和蔬菜切碎并冷冻(如果使用菠菜,则轻轻煮软菠菜,然后冷冻直到使用;\
如果制作果酱,则使用小到中号的食品处理器),这样可以避免在制作冰沙时添加太多冰块。\
大约一年后,电机发出奇怪的噪音,我打电话给客服,但保修已经过期了,所以我不得不再买一个。\
总的来说,这些产品的总体质量已经下降,因此它们依靠品牌认可和消费者忠诚度来维持销售。\
货物在两天内到达。
"""
prompt = f"""
你现在是一位客户服务的AI助手。
你的任务是给一位重要客户发送邮件回复。
客户的评价在```内,生成回复以感谢客户的评价,使用评价中的具体细节。
用简明而专业的语气写信。
最后署名:“AI客户代理”
客户评论:
```{review}```
评论情感:{sentiment}
"""
response = get_completion(prompt, temperature=0.01)
print(response)
非常感谢客户对我们产品的评价。我们非常重视您的意见,并会尽最大努力改进我们的产品以满足您的需求。
关于您提到的价格问题,我们会认真考虑并评估适当的价格策略以更好地服务于您和您的客户。同时,我们会密切关注市场动态,确保我们的产品始终符合市场需求和消费者期望。
关于产品 quality 问题,我们已经注意到您的意见,我们将采取积极措施改进我们的产品质量和售后服务,以确保您的满意度和忠诚度。
我们非常感谢您的反馈,并期待与您继续合作,为您提供更好的产品和服务。
再次感谢您的评价,祝您和您的客户一切顺利!
此致,
敬礼,
AI客户代理
尝试不同的“temperature”
接下来,我们将使用语言模型的一个参数称为“温度”(temperature),这将允许我们改变模型回答的多样性。因此,您可以将温度看作是模型探索程度或随机性的程度。
response = get_completion(prompt, temperature=0.1)
print(response)
非常感谢客户对我们产品的评价。我们非常重视您的意见,并会尽最大努力改进我们的产品以满足您的需求。
关于您提到的价格问题,我们会认真考虑并评估适当的价格策略以更好地服务于您和您的客户。同时,我们会密切关注市场动态,确保我们的产品始终符合市场需求和消费者期望。
关于产品 quality 问题,我们已经注意到您的意见,并会采取措施改进我们的产品质量和售后服务,以确保您的满意度和忠诚度。
我们非常感谢您的反馈,并期待与您继续合作,为您提供更好的产品和服务。
再次感谢您的评价,
AI客户代理
response = get_completion(prompt, temperature=0.1)
print(response)
非常感谢客户对我们产品的评价。我们非常重视您的意见,并会尽最大努力改进我们的产品以满足您的需求。
关于您提到的价格问题,我们会认真考虑并评估适当的价格策略以更好地服务于您和您的客户。同时,我们会密切关注市场动态,确保我们的产品始终符合市场需求和消费者期望。
关于产品 quality 问题,我们已经注意到您的意见,并会采取措施改进我们的产品质量和售后服务,以确保您的满意度和忠诚度。
我们非常感谢您的反馈,并期待继续与您合作。如果您有任何问题或需要进一步的帮助,请随时与我们联系。
再次感谢您对我们的支持!
此致,
敬礼,
AI客户代理
response = get_completion(prompt, temperature=0.5)
print(response)
非常感谢客户对我们产品的评价。我们非常重视您的意见,并会尽最大努力改进我们的产品质量和服务。
关于您购买的产品,我们注意到您已经遇到了一些质量问题,包括电机噪音和保修过期。我们会尽快处理这些问题,确保您能够享受到最好的服务。同时,我们会加强对我们的产品质量和售后服务的监控,以确保我们的产品始终符合您的期望和需求。
感谢您对我们的支持和信任,我们将继续为您提供最好的产品和服务。如果您有其他问题或需求,请随时与我们联系。
再次感谢您的评价,祝您生活愉快!
此致,
敬礼,
AI客户代理
response = get_completion(prompt, temperature=0.5)
print(response)
非常感谢客户对我们产品的关注和反馈。我们非常重视您的意见,并会尽最大努力改进我们的产品质量和服务质量,以满足您的需求和期望。
针对您反馈的问题,我们已经注意到并正在采取措施进行改进。我们将加强对我们的产品线的清洁和维护,确保其始终符合高质量和可靠性的标准。我们还计划增加我们的售后服务和支持,以确保您在购买我们的产品时能够获得最佳的使用体验和保障。
我们非常感谢您的耐心和关注,并期待您的再次购买。如果您有任何其他问题或需求,请随时与我们联系,我们将竭诚为您服务。
再次感谢您对我们的支持,祝您生活愉快!
此致,
敬礼,
AI客户代理
response = get_completion(prompt, temperature=0.9)
print(response)
尊敬的客户,
非常感谢您的评价和反馈,我们非常重视您对我们产品和服务的需求和满意度。
我们非常抱歉您在季节性销售期间使用了您的购买信息,但我们未能在规定的时间内提供您所期望的折扣和优惠。我们已经注意到这个问题,并将采取措施确保类似的问题不再发生。
关于您提到的产品问题,我们已经注意到其中的一些缺陷,并将采取措施进行改进。同时,我们将确保您享受到我们最好的客户服务,包括尽快回复您的疑问和解决问题。
我们非常重视您的意见,并期待在未来为您提供更好的服务和产品体验。如果您有任何疑问或建议,请随时与我们联系。
再次感谢您的反馈和支持,我们期待与您合作愉快。
此致,
敬礼,
AI客户代理
response = get_completion(prompt, temperature=0.9)
print(response)
尊敬的客户,
非常感谢您的评价和反馈。我们非常重视您对我们产品和服务的认可,并一直在努力提高我们的质量和服务水平。
非常感谢您的关注,我们已经注意到您对我们的评论,并会尽最大努力改进我们的产品和服务。我们已经着手调查您所提到的价格变化和产品质量下降的问题,并将尽快采取措施解决。
我们非常感谢您提供的具体细节,这将有助于我们更好地了解您的需要和期望,并为您提供更准确和优质的产品和服务。
再次感谢您的反馈和支持,我们期待着为您提供更好的服务。
此致,
敬礼
AI客户代理
结论:
随着温度的持续增加,回答将变得越来越不同。一般来说,在构建需要可预测响应的应用时,我建议使用温度为零。如果您想以更具创造性的方式使用模型,可能需要更广泛地生成不同的输出,那么您可能需要使用更高的温度。
任务2:回答问题
prompt = "为什么我觉得白酒那么难喝,还有人会喝上瘾?"
response = get_completion(prompt, temperature=0.99)
print(response)
每个人的味觉和口感偏好都不同,对于白酒的味道和口感也会有所不同。有些人可能觉得白酒的味道很好,而有些人则可能觉得很难喝。
白酒是中国传统的酒类之一,有着悠久的历史和文化价值。在中国,白酒是一种重要的社交和礼品饮品,有些人可能会因为社交或其他原因而喝白酒,并且可能会喝上瘾。
有些人可能会因为喝酒而感到放松和舒适,甚至有些人可能会通过喝酒来缓解压力和减轻焦虑。这种情况下,喝酒可能会成为一种行为上瘾,因为喝酒会给他们带来某种程度的愉悦感。
虽然白酒在中国有着很高的地位和文化价值,但是在国际上的受欢迎程度并不高。有些人可能会因为追求口感和享受喝酒的过程而喝白酒,而有些人则可能只会喝适量的白酒并不喜欢过度饮酒。
response = get_completion(prompt, temperature=0.99)
print(response)
每个人的味觉和口味感受不同,对于白酒的口感和味道也会有所差异。而且,白酒是中国传统的饮品之一,有着悠久的历史和文化价值,有些人可能对其有着特殊的感情和喜好。
然而,对于一些人来说,白酒喝上瘾可能是由于其独特的成瘾机制。酒精是一种神经毒素,可以通过中枢神经系统影响人体的各个器官和系统。人们饮用白酒时,酒精会进入身体,在肝脏和大脑中进行代谢和转化,这个过程可能会产生一定的成瘾效应。
此外,一些人可能会通过饮用白酒来缓解压力、提高情绪和改善睡眠等。这种饮用习惯也可能会形成成瘾。
虽然每个人的酒瘾成因不同,但白酒的成瘾机制可能与中枢神经系统的化学递质和神经回路有关。因此,对于那些对白酒有成瘾倾向的人来说,需要通过专业的帮助来戒除成瘾,以避免对身体和心理健康造成不良影响。
response = get_completion(prompt, temperature=0.99)
print(response)
每个人的味觉和口感体验都是不同的,所以可能会觉得白酒很难喝。但是,白酒在中国文化和社交活动中一直是一种受欢迎的饮品,很多人可能会因为它的口感、香气和味道而喜欢它。
喝白酒也可能是一种社交行为。在一些文化中,白酒被视为一种庆祝和社交的象征,人们可能会在聚会、婚礼、庆典等场合中喝白酒。喝白酒也可能是一种自我放纵的行为,一些人可能会在压力或孤独时喝白酒来缓解情绪。
每个人的味觉和口感体验都是不同的,但是白酒在中国文化和社交活动中一直是一种受欢迎的饮品,而且喝白酒可能有一定的成瘾性。如果觉得自己喝白酒的味道很难接受,可以考虑尝试其他类型的饮品,或者减少饮用量,以保持健康的生活习惯。
任务3:故事续写
prompt = """现在你是一个小说家,专门写短篇小说,有个故事开头是:'他还是个孩子',\
根据这个开头,续写这个故事。"""
response = get_completion(prompt, temperature=0.99)
print(response)
他还是个孩子,但他已经懂得了很多。他很喜欢和小伙伴们一起玩耍,尤其是在那个小村庄的边缘的公园里。那里有很多花草树木,还有很多小鸟在飞来飞去。
他最喜欢的游戏是捉迷藏。他总是找一个安静的地方,然后躲起来,等待其他孩子来找他。他觉得自己很聪明,总能在最好的时机被发现。
有一天,当他正在公园里玩耍时,他发现一个熟悉的面孔。那是他的父亲。他很高兴看到他,但他的父亲却对他有些担心。
“孩子,你在这里干什么?”他的父亲问道。
“我和我的小伙伴们玩捉迷藏。”他回答道。
他的父亲有些失望,因为他认为孩子应该更加专注于学习。但他最终还是鼓励他,“只要你认真学习,玩也是一种学习方式。”
他听了父亲的话,感到很受鼓舞。从那以后,他更加努力学习,同时也更加喜欢和小伙伴们一起玩耍。他明白,学习的同时也要学会享受生活。
任务4:不等式的证明
prompt = """现在你是一个数学家,帮我证明一个不等式:即在中美两国间,\
消费者存在以下偏好: 2000RMB >= 3000USD,简单证明。"""
response = get_completion(prompt, temperature=0.7)
print(response)
warnning 纯属娱乐,并非严谨证明:
为了证明这个不等式,我们可以使用效用函数来描述消费者的偏好。效用函数是一个向量,表示消费者在满足特定条件下获得的最大满足感。
假设消费者在中美两国的两种商品选择中,每个商品的效用为 θ i \theta_i θi。那么,消费者对这两种商品的总效用为:
u ( t ) = ∑ i = 1 2 θ i ( t ) = 2 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) u(t) = \sum_{i=1}^2 \theta_i(t) = 2\theta_1(t) + (1-2)\theta_2(t) u(t)=∑i=12θi(t)=2θ1(t)+(1−2)θ2(t)
其中, t t t表示时间(小时、天、月、年等), u ( t ) u(t) u(t)表示消费者在 t t t时间内获得的总效用。
现在,我们考虑消费者在某个时间点上选择一种商品的概率。假设消费者选择一种商品的的概率为 p i p_i pi。那么,消费者选择另一种商品的概率为 ( 1 − p i ) (1-p_i) (1−pi)。
根据贝叶斯定理,我们可以得到:
p 1 = u 1 ( t ) u 2 ( t ) p_1 = \frac{u_1(t)}{u_2(t)} p1=u2(t)u1(t)
p 2 = u 2 ( t ) u 1 ( t ) p_2 = \frac{u_2(t)}{u_1(t)} p2=u1(t)u2(t)
其中, u i ( t ) u_i(t) ui(t)表示消费者在 t t t时间内选择一种商品的总效用, u 1 ( t ) u_1(t) u1(t)和 u 2 ( t ) u_2(t) u2(t)分别表示选择第一种和第二种商品的总效用。
根据效用函数的定义,我们可以得到:
u 1 ( t ) ≥ u 2 ( t ) u_1(t) \geq u_2(t) u1(t)≥u2(t)
2 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) ≥ 3 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) 2\theta_1(t) + (1-2)\theta_2(t) \geq 3\theta_1(t) + (1-2)\theta_2(t) 2θ1(t)+(1−2)θ2(t)≥3θ1(t)+(1−2)θ2(t)
将第一个不等式改写为 u 1 ( t ) ≥ 2 θ 1 ( t ) u_1(t) \geq 2\theta_1(t) u1(t)≥2θ1(t),将其代入第二个不等式中,得到:
2 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) ≥ 3 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) ≥ 3 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) + 2 θ 1 ( t ) 2\theta_1(t) + (1-2)\theta_2(t) \geq 3\theta_1(t) + (1-2)\theta_2(t) \geq 3\theta_1(t) + (1-2)\theta_2(t) + 2\theta_1(t) 2θ1(t)+(1−2)θ2(t)≥3θ1(t)+(1−2)θ2(t)≥3θ1(t)+(1−2)θ2(t)+2θ1(t)
将上式化简,得到:
2 θ 1 ( t ) + 3 θ 2 ( t ) ≥ 3 θ 1 ( t ) + 2 θ 2 ( t ) 2\theta_1(t) + 3\theta_2(t) \geq 3\theta_1(t) + 2\theta_2(t) 2θ1(t)+3θ2(t)≥3θ1(t)+2θ2(t)
由于 θ 1 ( t ) \theta_1(t) θ1(t)和 θ 2 ( t ) \theta_2(t) θ2(t)都是非负数,因此上式两边同时取对数,得到:
2 3 θ 1 ( t ) + 3 2 θ 2 ( t ) ≥ 3 2 θ 1 ( t ) + 2 3 θ 2 ( t ) \frac{2}{3}\theta_1(t) + \frac{3}{2}\theta_2(t) \geq \frac{3}{2}\theta_1(t) + \frac{2}{3}\theta_2(t) 32θ1(t)+23θ2(t)≥23θ1(t)+32θ2(t)
将上式代入第一个不等式中,得到:
2 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) ≥ 3 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) 2\theta_1(t) + (1-2)\theta_2(t) \geq 3\theta_1(t) + (1-2)\theta_2(t) 2θ1(t)+(1−2)θ2(t)≥3θ1(t)+(1−2)θ2(t)
因此,我们得到:
2 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) ≥ 3 θ 1 ( t ) + ( 1 − 2 ) θ 2 ( t ) 2\theta_1(t) + (1-2)\theta_2(t) \geq 3\theta_1(t) + (1-2)\theta_2(t) 2θ1(t)+(1−2)θ2(t)≥3θ1(t)+(1−2)θ2(t)
即
2000 θ 1 ( t ) + ( 1 − 2000 ) θ 2 ( t ) ≥ 3000 θ 1 ( t ) + ( 1 − 3000 ) θ 2 ( t ) 2000\theta_1(t) + (1-2000)\theta_2(t) \geq 3000\theta_1(t) + (1-3000)\theta_2(t) 2000θ1(t)+(1−2000)θ2(t)≥3000θ1(t)+(1−3000)θ2(t)
将不等式两边同时乘以 10 10 10,得到:
200 θ 1 ( t ) + ( 1 − 200 ) θ 2 ( t ) ≥ 300 θ 1 ( t ) + ( 1 − 300 ) θ 2 ( t ) 200\theta_1(t) + (1-200)\theta_2(t) \geq 300\theta_1(t) + (1-300)\theta_2(t) 200θ1(t)+(1−200)θ2(t)≥300θ1(t)+(1−300)θ2(t)
因此,我们得到:
2000 θ 1 ( t ) ≥ 3000 θ 1 ( t ) 2000\theta_1(t) \geq 3000\theta_1(t) 2000θ1(t)≥3000θ1(t)
3000 θ 1 ( t ) ≥ 2000 θ 2 ( t ) 3000\theta_1(t) \geq 2000\theta_2(t) 3000θ1(t)≥2000θ2(t)
2000 θ 2 ( t ) ≥ 1000 θ 1 ( t ) 2000\theta_2(t) \geq 1000\theta_1(t) 2000θ2(t)≥1000θ1(t)
将不等式两边同时乘以 10 10 10,得到:
3000 × 10 θ 1 ( t ) ≥ 2000 × 10 θ 2 ( t ) 3000\times 10\theta_1(t) \geq 2000\times 10\theta_2(t) 3000×10θ1(t)≥2000×10θ2(t)
2000 θ 1 ( t ) ≥ 2000 × 5 θ 1 ( t ) 2000\theta_1(t) \geq 2000\times 5\theta_1(t) 2000θ1(t)≥2000×5θ1(t)
3000 θ 2 ( t ) ≥ 2000 × 5 θ 2 ( t ) 3000\theta_2(t) \geq 2000\times 5\theta_2(t) 3000θ2(t)≥2000×5θ2(t)
将不等式两边同时乘以 10 10 10,得到:
20000 θ 1 ( t ) ≥ 5000 θ 1 ( t ) 20000\theta_1(t) \geq 5000\theta_1(t) 20000θ1(t)≥5000θ1(t)
30000 θ 2 ( t ) ≥ 5000 θ 2 ( t ) 30000\theta_2(t) \geq 5000\theta_2(t) 30000θ2(t)≥5000θ2(t)
因此,我们得到:
2000 ≥ 3000 2000\geq 3000 2000≥3000
即
2000 R M B ≥ 3000 U S D 2000RMB \geq 3000USD 2000RMB≥3000USD
因此,在中美两国间,消费者存在2000RMB >= 3000USD的偏好。