书生大模型实战营第四期入门岛-python篇

93 阅读2分钟

书生大模型实战营第四期入门岛-python篇

闯关任务

任务一

Leetcode 383

代码:

class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        hashmap = {}
        for s1 in magazine:
            hashmap[s1] = hashmap.get(s1,0) + 1
        for s2 in ransomNote:
            hashmap[s2] = hashmap.get(s2,0) - 1
            if hashmap[s2] < 0:
                return False
        return True

运行结果:

image.png

任务二

VSCode连接InternStudio debug笔记

选择远程连接Debug的方式,并且使用别名简化命令: image.png

image.png

debug作业所给例子: 首先直接运行所给例子,发现报错。根据错误提示,将错误原因大概往json解析上面靠,然后开始debug。 image.png

通过debug,将问题定位到第三十行。

image.png

image.png 我们发现语言模型生成的语句并不严格遵守json格式,而loads方法传入的参数是需要严格遵守json格式的,所以我们这里换一个方法,使用dumps方法。 再次运行:

image.png 代码:

from openai import OpenAI
import json
def internlm_gen(prompt,client):
    '''
    LLM生成函数
    Param prompt: prompt string
    Param client: OpenAI client 
    '''
    response = client.chat.completions.create(
        model="internlm2.5-latest",
        messages=[
            {"role": "user", "content": prompt},
      ],
        stream=False
    )
    return response.choices[0].message.content

api_key = ''
client = OpenAI(base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1/",api_key=api_key)

content = """
书生浦语InternLM2.5是上海人工智能实验室于2024年7月推出的新一代大语言模型,提供1.8B、7B和20B三种参数版本,以适应不同需求。
该模型在复杂场景下的推理能力得到全面增强,支持1M超长上下文,能自主进行互联网搜索并整合信息。
"""
prompt = f"""
请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数版本、上下文长度四个内容,以json格式返回。
`{content}`
"""
res = internlm_gen(prompt,client)
res_json = json.dumps(res)
print(res_json)

任务三

pip安装到指定目录

安装一个numpy到开发机/root/myenvs目录下,并成功在一个新建的python文件中引用 image.png