上海人工智能实验室·书生大模型实战营笔记(L0G1~G2)

#书生大模型

uid: 4573

Tutorial/docs/L0/linux/task.md at camp4 · InternLM/Tutorial · GitHubLLM&VLM Tutorial. Contribute to InternLM/Tutorial development by creating an account on GitHub.icon-default.png?t=O83Ahttps://github.com/InternLM/Tutorial/blob/camp4/docs/L0/linux/task.md

Tutorial/docs/L0/Python/task.md at camp4 · InternLM/Tutorial · GitHubLLM&VLM Tutorial. Contribute to InternLM/Tutorial development by creating an account on GitHub.icon-default.png?t=O83Ahttps://github.com/InternLM/Tutorial/blob/camp4/docs/L0/Python/task.md

别的不说,这个项目的文档写的非常详细、用心。

L0G1000 linux基础

任务:ssh连接并运行hello_world.py

闯关任务需要在关键步骤中截图:

任务描述完成所需时间
闯关任务完成SSH连接与端口映射并运行hello_world.py10min
可选任务 1将Linux基础命令在开发机上完成一遍10min
可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min

因为可选任务1、2的引导对我个人不必要,所以就完成了闯关任务。

  • 用最低的配置:

  • 配置SSH公钥

我的笔记本是 Windows系统,查找文件 C:\Users\{Username}\.ssh\id_rsa.pub ,打开后就是SSH 公钥的内容了。

如果没找到对应文件,先用命令行命令 `ssh-keygen -t rsa` 生成

  • 点击【进入开发机】,进入主界面

这个UI还挺漂亮的。

  • 按照文档,安装依赖 gradio

有点慢,等了会儿。

  • 按照文档,创建hello_world.py 并运行

vim打开文件,粘贴文档里的内容,然后 ESC,:wq 保存。

  • 端口映射

在Server上已经启动了服务,现在需要在本地机器上使用端口映射,将Server上的服务映射到本地机器上,从而用本地机器的浏览器访问Web元素。

官方已经给了ssh的端口映射命令,在UI里找到自定义服务,然后直接复制bash命令,粘贴到powershell或者其他命令行工具上就行。

  • 访问结果:

L0G2000 Python基础

任务类型任务内容预计耗时
闯关任务Leetcode 383(笔记中提交代码与leetcode提交通过截图)20mins
闯关任务Vscode连接InternStudio debug笔记10mins
可选任务pip安装到指定目录10mins

任务一:Leetcode 383

挺好,正好这题没做过。

不得不说,Python这种高级语言写起来就是很简洁。

  • 1:

from collections import Counter
class Solution: 
    def canConstruct(self, ransomNote: str, magazine: str) -> bool: 
        cnt1,cnt2=Counter(ransomNote),Counter(magazine) 
        for k,v in cnt1.items(): 
            if k not in cnt2.keys(): return False 
            elif v> cnt2[k]: return False 
        return True

  • 2

from collections import Counter
class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        cnt1,cnt2=Counter(ransomNote),Counter(magazine)
        return all(v<=cnt2[k] for k,v in cnt1.items())

任务二:Vscode连接InternStudio debug笔记

定位bug,然后实现非结构化文本转化json的功能。

原来的代码:

 
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.loads(res)
print(res_json)

  • VSCode用SSH连接:

  • 根据文档,复制粘贴内容,在有读写权限的目录下创建python文件:

  • 获取自己的api_key,并打开 terminal,在terminal里设置 api_key,然后运行,发现没装openai依赖。

  • 第二次运行发现错误,安装Debugger再尝试

  • 打断点,debug:

  • 发现原来的代码错误,一可能在于api_key没有设置;二在于得到的res没有解析好,如果返回的是choices.message.content,那要自己解析得到 json非常非常困难,不如用openai的API ChatCompletion的.json()方法。修改后,成功运行:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值