当前位置:   article > 正文

大型语言模(LLM)之提示词工程(四)_大语言模型 提示

大语言模型 提示

今天我学习了DeepLearning.AI的 Prompt Engineering 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。以下是我写的关于该课程的前两篇博客:

  1. 大型语言模(LLM)之提示词工程(一)
  2. 大型语言模(LLM)之提示词工程(二)
  3. 大型语言模(LLM)之提示词工程(三)

今天我们来学习第三部分内容:转换(Transforming)。

转换(Transforming)

今天我们将探索如何使用大型语言模型进行文本转换任务,例如语言翻译、拼写和语法检查、语气调整和格式转换。

首先我们需要设置通过API来访问大型语言模型(LLM)的主要代码:

 为防止出现Rate limits问题,我们需要安装一个为回退和重试提供函数装饰器的库 backoff

  1. # pip install backoff
  2. import openai
  3. import backoff
  4. openai.api_key ='YOUR_OPENAI_API_KEY'
  5. @backoff.on_exception(backoff.expo, openai.error.RateLimitError)
  6. def get_completion(prompt, model="gpt-3.5-turbo", temperature=0):
  7. messages = [{"role": "user", "content": prompt}]
  8. response = openai.ChatCompletion.create(
  9. model=model,
  10. messages=messages,
  11. temperature=temperature,
  12. )
  13. return response.choices[0].message["content"]

翻译

大型语言模型LLM,一般会使用多种语言的资源进行训练的大型语言模型。 这使模型能够进行多语言翻译工作。 以下是如何使用此功能的一些示例。

下面是将英语翻译成西班牙语的例子:

  1. #将英语翻译成西班牙语
  2. prompt = f"""
  3. Translate the following English text to Spanish: \
  4. ```Hi, I would like to order a blender```
  5. """
  6. response = get_completion(prompt)
  7. print(response)

 下面是让LLM识别文本是属于哪种语言:

  1. prompt = f"""
  2. Tell me which language this is:
  3. ```Combien coûte le lampadaire?```
  4. """
  5. response = get_completion(prompt)
  6. print(response)

 将文本翻译成法语、西班牙语和英语:

  1. prompt = f"""
  2. Translate the following text to French and Spanish
  3. and English pirate: \
  4. ```I want to order a basketball```
  5. """
  6. response = get_completion(prompt)
  7. print(response)

 将文本翻译成正式和非正式的西班牙语:

  1. prompt = f"""
  2. Translate the following text to Spanish in both the \
  3. formal and informal forms:
  4. 'Would you like to order a pillow?'
  5. """
  6. response = get_completion(prompt)
  7. print(response)

 通用翻译器

想象一下,假如您在一家大型跨国电子商务公司的IT部门负责 人。客户正在用他们各自的的母语向您发送有关 IT 问题的消息。 您的员工来自世界各地,且只他们只用自己的的母语。 此时你就需要一个万能翻译器!

  1. user_messages = [
  2. "La performance du système est plus lente que d'habitude.", # System performance is slower than normal
  3. "Mi monitor tiene píxeles que no se iluminan.", # My monitor has pixels that are not lighting
  4. "Il mio mouse non funziona", # My mouse is not working
  5. "Mój klawisz Ctrl jest zepsuty", # My keyboard has a broken control key
  6. "我的屏幕在闪烁" # My screen is flashing
  7. ]

下面我们要把上述不同语言的客户问题翻译成英语和中文 :

  1. for issue in user_messages:
  2. prompt = f"Tell me what language this is: ```{issue}```"
  3. lang = get_completion(prompt)
  4. print(f"Original message ({lang}): {issue}")
  5. prompt = f"""
  6. Translate the following text to English \
  7. and Chinese: ```{issue}```
  8. """
  9. response = get_completion(prompt)
  10. print(response, "\n")

 语调转换

LLM可以根据不同的受众输出不同语调的内容。下面是一段英语俚语的对白,我们要求LLM将其转换成商业信函语调。

  1. prompt = f"""
  2. Translate the following from slang to a business letter:
  3. 'Dude, This is Joe, check out this spec on this standing lamp.'
  4. """
  5. response = get_completion(prompt)
  6. print(response)

 格式转换

LLM还可以在不同的格式之间进行转换。 提示语应描述输入和输出格式。下面我们要将一个来自于JSON格式的python字典转换为HTML格式:

  1. data_json = { "resturant employees" :[
  2. {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},
  3. {"name":"Bob", "email":"bob32@gmail.com"},
  4. {"name":"Jai", "email":"jai87@gmail.com"}
  5. ]}
  6. prompt = f"""
  7. Translate the following python dictionary from JSON to an HTML \
  8. table with column headers and title: {data_json}
  9. """
  10. response = get_completion(prompt)
  11. print(response)

接下来我们要展示这个HTML页面:

  1. from IPython.display import display, Markdown, Latex, HTML, JSON
  2. display(HTML(response))

 

 拼写检查/语法检查

这里我们有一些常见的语法和拼写问题的例子以及大型语言模型(LLM)的回应。

要向 LLM 发出您希望它校对您的文本的信号,您可以指示模型“校对”或“校对并更正”。下面的几段文本中存在语法错误或者拼写错误,我们要让LLM来检查并纠错文本中的错误。

  1. text = [
  2. "The girl with the black and white puppies have a ball.", # The girl has a ball.
  3. "Yolanda has her notebook.", # ok
  4. "Its going to be a long day. Does the car need it’s oil changed?", # Homonyms
  5. "Their goes my freedom. There going to bring they’re suitcases.", # Homonyms
  6. "Your going to need you’re notebook.", # Homonyms
  7. "That medicine effects my ability to sleep. Have you heard of the butterfly affect?", # Homonyms
  8. "This phrase is to cherck chatGPT for speling abilitty" # spelling
  9. ]
  10. for t in text:
  11. prompt = f"""Proofread and correct the following text
  12. and rewrite the corrected version. If you don't find
  13. and errors, just say "No errors found". Don't use
  14. any punctuation around the text:
  15. ```{t}```"""
  16. response = get_completion(prompt)
  17. print(response)

下面我们尝试让LLM来对中文的句子进行纠错,看看它是否能找出错误:

  1. text = [
  2. "我们的公司是一家专业的电脑唯修,服务态度好,价格公道",
  3. "他们在学校里学习了很多关于历史,数学和科学呢的知识。",
  4. "我们去了一家新开的餐厅,才很好吃,服务员也很友好。",
  5. "你得先做完作业,在出去玩!",
  6. "那青山碧岭中随风起伏的阵阵林涛声,仿佛是大自然奏响的一枝交响乐.",
  7. "七夕,只是牛郎与织女的节日,与俄们这些凡人无关。",
  8. "我的人生有两件非常幸运的事情,一个是遇见了你,一个是将和你走过余生。"
  9. ]
  10. for t in text:
  11. prompt = f"""检查一下下面的本文是否存在错别字或者语法错误,如果有错误就重新改写句子。
  12. 你在回复的时候必须输出2个句子,一句是原始文本,另一句是修改后的文本,如果没有发现任何错误,就说“没有找到错误”。
  13. 请使用以下格式输出:
  14. 原始文本:这里是原始文本
  15. 修改后的文本:这里是修改后的文本
  16. 原始文本:{t}"""
  17. response = get_completion(prompt)
  18. print(response)
  19. print()

 总体感觉LLM对中文的错别字还是比较熟悉,对一些很明显的错别字纠错成功率可以达到100%,但是对于最后一句,我们运行了多次程序后发现有时候LLM对最后一句的回复是:没有找到错误。大家可以尝试一下看看LLM对中文错别字的识别率到底有多少。

下面我们给LLM提供一篇英语短文,让它来对短文纠错:

  1. text = f"""
  2. Got this for my daughter for her birthday cuz she keeps taking \
  3. mine from my room. Yes, adults also like pandas too. She takes \
  4. it everywhere with her, and it's super soft and cute. One of the \
  5. ears is a bit lower than the other, and I don't think that was \
  6. designed to be asymmetrical. It's a bit small for what I paid for it \
  7. though. I think there might be other options that are bigger for \
  8. the same price. It arrived a day earlier than expected, so I got \
  9. to play with it myself before I gave it to my daughter.
  10. """
  11. prompt = f"proofread and correct this review: ```{text}```"
  12. response = get_completion(prompt)
  13. print(response)

 由于短文内容比较长,我们使用一个校对工具来看看LLM到底做了哪些修改:

  1. from redlines import Redlines
  2. diff = Redlines(text,response)
  3. display(Markdown(diff.output_markdown))

 这里我们可以清晰的发现LLM对原文做的修改。

下面我们让LLM将上述原文修改为APA风格的文章(APA 风格是学术期刊文章和书籍等学术文件的写作风格和格式)

  1. prompt = f"""
  2. proofread and correct this review. Make it more compelling.
  3. Ensure it follows APA style guide and targets an advanced reader.
  4. Output in markdown format.
  5. Text: ```{text}```
  6. """
  7. response = get_completion(prompt)
  8. display(Markdown(response))

 总结

今晚我们学习了如果让大型语言模型LLM实现多语言翻译功能、语言识别、错别字/语法检查、语调转换等功能。希望今天的内容能对大家有所帮助!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/214840
推荐阅读
相关标签
  

闽ICP备14008679号