大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。
本文主要介绍了小牛翻译帮你轻松搞定图片和语音翻译,希望能对同学们有所帮助。
文章目录
- 1. 前言
- 2. 图片翻译python调用示例
-
- 2.1 API逐步解析
-
- 2.1.1 上传并翻译文件接口
- 2.1.2 查看文件信息
- 2.1.3 译文下载接口
- 2.1.4 终止文件翻译
- 2.2 完整代码示例
- 3. 语音翻译python调用示例
1. 前言
最近小徒弟公司接了个出海的项目,除了常规开发任务以外,还需要对图片和语音进行翻译。具体来说,图片翻译是对图片文件中的文字进行翻译,而语音翻译是将语音文件进行转写和翻译,输出译文文本文件。
在尝试了众多开源模型之后,虽然能够达到一定的效果,但效果却并不很如意。恰好个人前段时间使用了小牛翻译的API服务,官网链接为https://niutrans.com/,不仅简单易用,而且效果稳定,能够满足多样化的业务场景。
心动不如行动。让我来给大家系统讲解一下小牛翻译的图片和语音翻译的API服务的使用方法。
2. 图片翻译python调用示例
小牛翻译为我们提供了图片翻译功能,可自动识别图片文字并将其翻译为指定语言。该功能一共提供了4个API接口:①上传并翻译文件:该接口作用为上传待翻译的图片,小牛翻译接收到文件开始翻译,注意,该接口返回结果为翻译后生成文件的编号,而不是翻译结果。②查看文件信息:第一个接口调用成功后,小牛翻译后台开始努力翻译,如果我们想查看翻译的进度等信息,可调用该接口。③终止文件翻译:第一个接口调用成功后,小牛翻译后台开始努力翻译,如果我们由于某种原因不想继续翻译,可调用该接口终止任务。④译文接口下载:第一个接口调用成功后,小牛翻译后台开始努力翻译,当翻译完成后,可以调用该接口下载返回成功后的文件。
接下来,我会带着大家逐个解析,如果不想详细了解,可快速跳转到完整代码示例获取全部代码。下面就我们一起见证下吧!
2.1 API逐步解析
2.1.1 上传并翻译文件接口
- 调用上传并翻译文件接口,开始执行翻译任务。
- 接口地址:
https://api.niutrans.com/v2/image/translate/upload
- 请求方法:post
- 传参方式:multipart/form-data
- 请求参数:
- file:必传,file类型,待翻译的文件,目前支持PNG、JPG、JPEG、BMP格式
- from:必传,String类型,源语种缩写,目前支持中文简体(参数代码zh)、英文(参数代码en)、日语(参数代码ja)、韩语(参数代码ko)、俄语(参数代码ru)
- to:必填,String类型,目标语种缩写,目前支持的语言同from
- appId:必填,String类型,API应用标识,可在控制台-API应用页面获取
- 接口地址:
可在小牛翻译官网上点击右上方的控制台:
然后点击API应用,然后点击复制图片 API下的APPID,如下所示:
- timestamp:必填,String类型,时间戳(当前时间的毫秒数)
- authStr:必填,String类型,权限字符串,生成规则:①将apikey及发送的参数按照参数名ASCII码从小到大排序,并使用键值对的格式拼接成字符串paramStr;(apikey通过登录小牛翻译云平台,进入 【控制台 - API应用】 中查看,见下图);②将步骤①产生的字符串paramStr,使用MD5加密算法进行加密,得到权限字符串(authStr)的值;③将步骤②得到的值,赋值给字段authStr,跟着其他参数一起传入接口。下面我也会给出python代码实践哦。
- realmCode:选填,Integer,领域CODE码,如果不传,默认为0。0:通用;1:医药;2:专利
- termId:选填,String,术语词典库,进入“控制台—>资源管理->术语词典”中查看
-
memoryId:选填,String,翻译记忆库ID,进入“控制台—>资源管理->翻译记忆”中查看
-
返回值说明:注意①该接口只是返回结果文件的编号,并不直接返回翻译后的结果。②下图状态码只截了部分,完整的状态码列表,可点击响应状态码查看:
- 可复用的完整Python代码如下,其中app_id和api_key需要在控制台复制得到。
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
trans_url = api_url + "/v2/image/translate/upload" # 上传并翻译文件接口地址
file_path = r"image.jpg" # 待翻译的图片路径,根据自己实际情况修改
from_language = "zh" # 源语语种缩写
to_language = "en" # 目标语语种缩写
app_id = "xxx" # 在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
# 生成权限字符串
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
# 上传并翻译
def translate():
files = {'file': open(file_path, 'rb')}
data = {
'from': from_language,
'to': to_language,
'appId': app_id,
'timestamp': int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
response = requests.post(trans_url, files=files, data=data)
return response.json()
translate_res = translate()
print(translate_res)
2.1.2 查看文件信息
-
当调用上传并翻译文件接口后,小牛翻译开始执行翻译任务,此时可调用查看文件信息接口,查看翻译的进度,具体使用方法如下:
- 接口地址:
https://api.niutrans.com/v2/image/translate/status/{file_no}
,其中file_no为上传并翻译文件接口得到的fileNo - 请求方法:get
- 传参方式:Path Parameters和Query String Parameters
- 请求path参数:
- file_no:必填,String类型,上传并翻译文件接口得到的fileNo
- 请求query参数:
- appId:必填,String类型,API应用标识,可在控制台-API应用页面获取。详情参见上传并翻译文件接口说明。
- timestamp:必填,String类型,时间戳(当前时间的毫秒数)。详情参见上传并翻译文件接口说明。
- authStr:必填,String类型,权限字符串。详情参见上传并翻译文件接口说明。
- 返回值说明:完整的状态码列表,可点击响应状态码查看
- 接口地址:
- 可复用的完整Python代码如下,其中app_id和api_key需要在控制台复制得到。
# 获取翻译进度
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
get_info_url = api_url + "/v2/image/translate/status/{file_no}" # 查看文件信息接口地址,{file_no}后续替换为结果文件编号
status = {
101: "未翻译",
102: "排队中",
103: "翻译中",
104: "翻译终止",
105: "翻译成功",
106: "翻译失败"
}
app_id = "xxx" # 在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
file_no = "niu-caceaff7507d2dcee346cxxxxxxxxx" # 上传并翻译文件接口返回的文件编号
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
def get_info(file_no):
params = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
get_info_url_new = get_info_url.format(file_no=file_no)
response = requests.get(get_info_url_new, params=params)
return response.json()
while True:
time.sleep(5)
# 查看翻译结果信息
response_json = get_info(file_no)
if response_json["code"] == 200:
data = response_json["data"]
trans_status = data["transStatus"]
print(f"当前翻译的状态为{status.get(trans_status, '未知')}")
if trans_status == 105: # 105说明翻译成功
print(f"翻译完成,翻译后的具体信息为{response_json}")
break
if trans_status == 104:
break
if trans_status == 106:
break
2.1.3 译文下载接口
- 当翻译完成后,调用该接口得到最终的结果文件,具体使用方法如下:
- 接口地址:
https://api.niutrans.com/v2/image/translate/download/{file_no}
,其中file_no为上传并翻译文件接口得到的fileNo - 请求方法:get
- 传参方式:Path Parameters和Query String Parameters
- 请求path参数:
- file_no:必填,String类型,上传并翻译文件接口得到的fileNo
- 请求query参数:
- type:必填,Interger类型,下载类型,0:原始文件,1:译文文件,2:双语对照文件
- appId:必填,String类型,API应用标识,可在控制台-API应用页面获取。详情参见上传并翻译文件接口说明。
- timestamp:必填,String类型,时间戳(当前时间的毫秒数)。详情参见上传并翻译文件接口说明。
- authStr:必填,String类型,权限字符串。详情参见上传并翻译文件接口说明。
- 返回类型:Blob
- 接口地址:
可复用的完整Python代码如下,其中app_id和api_key需要在控制台复制得到。
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
download_url = api_url + "/v2/image/translate/download/{file_no}" # 译文下载接口地址,{file_no}后续替换为结果文件编号
app_id = "xxx" # 在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
file_no = "niu-caceafabb691897c0d4b069bxxxxxxxx" # 上传并翻译文件接口返回的文件编号
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
# 译文下载
def download(file_no):
params = {
"type": 1,
"appId": app_id,
"timestamp": int(time.time())
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
download_url_new = download_url.format(file_no=file_no)
response = requests.get(download_url_new, params=params)
response_content = response.content
file_name = response.headers.get("Content-Disposition").split("=")[1]
new_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), file_name)
with open(new_file_path, "wb") as file:
file.write(response_content)
print("文件下载完成")
download(file_no)
- 为了让大家更直观地感受小牛翻译的效果,我又找了一张英文图片(Attention Is All You Need论文abstract),其翻译结果如下图所示:
2.1.4 终止文件翻译
- 在调用上传并翻译文件接口后,小牛翻译开始执行翻译任务,调用查询文件信息接口,如果翻译任务的状态为翻译中,而我们此时由于各种原因,不想继续翻译了,可以调用该接口,强制终止翻译。
- 接口地址:
https://api.niutrans.com/v2/image/translate/interrupt/{file_no}
,其中file_no为上传并翻译文件接口得到的fileNo - 请求方法:put
- 传参方式:Path Parameters和Query String Parameters
- 请求path参数:
- file_no:必填,String类型,上传并翻译文件接口得到的fileNo
- 请求query参数:
- appId:必填,String类型,API应用标识,可在控制台-API应用页面获取。详情参见上传并翻译文件接口说明。
- timestamp:必填,String类型,时间戳(当前时间的毫秒数)。详情参见上传并翻译文件接口说明。
- authStr:必填,String类型,权限字符串。详情参见上传并翻译文件接口说明。
- 返回类型:json,注意:下图状态码只截了部分,完整的状态码列表,可点击响应状态码查看
- 接口地址:
可复用的完整Python代码如下,其中app_id和api_key需要在控制台复制得到。
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
interrupt_url = api_url + "/v2/image/translate/interrupt/{file_no}"
app_id = "xxx" # 在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
file_no = "niu-caceaf969509a72201428exxxxx" # 上传并翻译文件接口返回的文件编号
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
# 终止翻译 根据需求选择
def interrupt(file_no):
data = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
interrupt_url_new = interrupt_url.format(file_no=file_no)
response = requests.put(interrupt_url_new, data=data)
response_data = response.json()
return response_data
response_data = interrupt(file_no)
print(response_data)
2.2 完整代码示例
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
trans_url = api_url + "/v2/image/translate/upload" # 上传并翻译文件接口地址
get_info_url = api_url + "/v2/image/translate/status/{file_no}" # 查看文件信息接口地址,{file_no}后续替换为结果文件编号
interrupt_url = api_url + "/v2/image/translate/interrupt/{file_no}" # 终止文件翻译接口地址,{file_no}后续替换为结果文件编号
download_url = api_url + "/v2/image/translate/download/{file_no}" # 译文下载接口地址,{file_no}后续替换为结果文件编号
status = {
101: "未翻译",
102: "排队中",
103: "翻译中",
104: "翻译终止",
105: "翻译成功",
106: "翻译失败"
}
file_path = r"image.jpg" # 待翻译的图片路径,根据自己实际情况修改
from_language = "zh" # 必填,源语语种缩写,详见https://niutrans.com/documents/contents/multi_img#8
to_language = "en" # 必填,目标语语种缩写,详见https://niutrans.com/documents/contents/multi_img#8
app_id = "xxx" # 必填,小牛翻译图片翻译API应用标识,可在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
# 生成权限字符串
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
# 上传并翻译
def translate():
files = {'file': open(file_path, 'rb')}
data = {
'from': from_language,
'to': to_language,
'appId': app_id,
'timestamp': int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
response = requests.post(trans_url, files=files, data=data)
return response.json()
# 获取翻译进度
def get_info(file_no):
params = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
get_info_url_new = get_info_url.format(file_no=file_no)
response = requests.get(get_info_url_new, params=params)
return response.json()
# 译文下载
def download(file_no):
params = {
"type": 1,
"appId": app_id,
"timestamp": int(time.time())
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
download_url_new = download_url.format(file_no=file_no)
response = requests.get(download_url_new, params=params)
response_content = response.content
file_name = response.headers.get("Content-Disposition").split("=")[1]
new_file_path = os.path.join(os.path.dirname(file_path), file_name)
with open(new_file_path, "wb") as file:
file.write(response_content)
print("文件下载完成")
# 终止翻译 根据需求选择
def interrupt(file_no):
data = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
interrupt_url_new = interrupt_url.format(file_no=file_no)
response = requests.put(interrupt_url_new, data=data)
response_data = response.json()
return response_data
if __name__ == "__main__":
# 调用翻译接口:上传文件,并翻译,得到翻译后的文件编号
response_data = translate()
code = response_data['code']
print("翻译响应结果:", code)
if code == 200:
file_no = response_data['data']['fileNo']
# interrupt_data = interrupt(file_no) # 如果想终止翻译,此时可以调用终止的api
while True:
time.sleep(5)
# 查看翻译结果信息
response_json = get_info(file_no)
if response_json["code"] == 200:
data = response_json["data"]
trans_status = data["transStatus"]
print(f"当前翻译的状态为{status.get(trans_status, '未知')}")
if trans_status == 105: # 105说明翻译成功
print(f"翻译完成,翻译后的具体信息为{response_json}")
# 下载翻译后的文件
download(file_no)
break
if trans_status == 104:
break
if trans_status == 106:
break
else:
print(response_data['msg'])
下面两张图分别是中翻英、英翻中的结果:
3. 语音翻译python调用示例
小牛翻译还为我们提供了语音翻译功能,可自动识别语音文件并将其翻译为指定语言。该功能同图片翻译一样,也提供了4个API接口:①上传并翻译文件:该接口作用为上传待翻译的图片,小牛翻译接收到文件开始翻译,注意,该接口返回结果为翻译后生成文件的编号,而不是翻译结果。②查看文件信息:第一个接口调用成功后,小牛翻译后台开始努力翻译,如果我们想查看翻译的进度等信息,可调用该接口。③终止文件翻译:第一个接口调用成功后,小牛翻译后台开始努力翻译,如果我们由于某种原因不想继续翻译,可调用该接口终止任务。④译文接口下载:第一个接口调用成功后,小牛翻译后台开始努力翻译,当翻译完成后,可以调用该接口下载返回成功后的文件。
语音翻译四个接口的使用和图片翻译基本一致,只需要修改接口地址,具体为:①上传并翻译文件:https://api.niutrans.com/v2/voice/translate/short-voice/upload
。②查询文件信息:https://api.niutrans.com/v2/voice/translate/short-voice/status/{file_no}
。③终止文件翻译:https://api.niutrans.com/v2/voice/translate/short-voice/interrupt/{file_no}
。④译文下载接口:https://api.niutrans.com/v2/voice/translate/short-voice/download/{file_no}
。语音翻译当前支持MP3、WAV格式,支持语音时长60s,支持最大文件大小2M。
除接口地址外,其他与图片翻译完全一样,这里就不一一介绍了,如需了解,可查看图片翻译一章。下面给出完整的代码示例及效果图,便于大家使用。
- 可复用的完整Python代码如下,其中app_id和api_key需要在控制台复制得到。
import os
import requests
import time
import hashlib
api_url = "https://api.niutrans.com" # 小牛翻译官网
trans_url = api_url + "/v2/voice/translate/short-voice/upload" # 上传并翻译文件接口地址
get_info_url = api_url + "/v2/voice/translate/short-voice/status/{file_no}" # 查看文件信息接口地址,{file_no}后续替换为结果文件编号
interrupt_url = api_url + "/v2/voice/translate/short-voice/interrupt/{file_no}" # 终止文件翻译接口地址,{file_no}后续替换为结果文件编号
download_url = api_url + "/v2/voice/translate/short-voice/download/{file_no}" # 译文下载接口地址,{file_no}后续替换为结果文件编号
status = {
101: "未翻译",
102: "排队中",
103: "翻译中",
104: "翻译终止",
105: "翻译成功",
106: "翻译失败"
}
file_path = r"translate.mp3" # 待翻译的语音文件路径,根据自己实际情况修改
from_language = "en" # 必填,源语语种缩写,详见https://niutrans.com/documents/contents/multi_img#8
to_language = "zh" # 必填,目标语语种缩写,详见https://niutrans.com/documents/contents/multi_img#8
app_id = "xxx" # 必填,小牛翻译语音翻译API应用标识,可在控制台-API应用页面获取
api_key = "xxx" # 在'控制台->API应用'中查看
# 生成权限字符串
def generate_auth_str(params):
sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
md5 = hashlib.md5()
md5.update(param_str.encode('utf-8'))
auth_str = md5.hexdigest()
return auth_str
# 上传并翻译
def translate():
files = {'file': open(file_path, 'rb')}
data = {
'from': from_language,
'to': to_language,
'appId': app_id,
'timestamp': int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
response = requests.post(trans_url, files=files, data=data)
return response.json()
# 获取翻译进度
def get_info(file_no):
params = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
get_info_url_new = get_info_url.format(file_no=file_no)
response = requests.get(get_info_url_new, params=params)
return response.json()
# 译文下载
def download(file_no):
params = {
"type": 1,
"appId": app_id,
"timestamp": int(time.time())
}
auth_str = generate_auth_str(params)
params['authStr'] = auth_str
download_url_new = download_url.format(file_no=file_no)
response = requests.get(download_url_new, params=params)
response_content = response.content
file_name = response.headers.get("Content-Disposition").split("=")[1]
new_file_path = os.path.join(os.path.dirname(file_path), file_name)
with open(new_file_path, "wb") as file:
file.write(response_content)
print("文件下载完成")
# 终止翻译 根据需求选择
def interrupt(file_no):
data = {
"appId": app_id,
"timestamp": int(time.time()),
}
auth_str = generate_auth_str(data)
data['authStr'] = auth_str
interrupt_url_new = interrupt_url.format(file_no=file_no)
response = requests.put(interrupt_url_new, data=data)
response_data = response.json()
return response_data
if __name__ == "__main__":
# 调用翻译接口:上传文件,并翻译,得到翻译后的文件编号
response_data = translate()
code = response_data['code']
print("翻译响应结果:", code)
if code == 200:
file_no = response_data['data']['fileNo']
# interrupt_data = interrupt(file_no) # 如果想终止翻译,此时可以调用终止的api
while True:
time.sleep(5)
# 查看翻译结果信息
response_json = get_info(file_no)
if response_json["code"] == 200:
data = response_json["data"]
trans_status = data["transStatus"]
print(f"当前翻译的状态为{status.get(trans_status, '未知')}")
if trans_status == 105: # 105说明翻译成功
print(f"翻译完成,翻译后的具体信息为{response_json}")
# 下载翻译后的文件
download(file_no)
break
if trans_status == 104:
break
if trans_status == 106:
break
else:
print(response_data['msg'])
- 上图为中文语音翻译,下面再给一个英文语音翻译的效果:
- 语音原始地址:https://www.kekenet.com/menu/200709/17963.shtml
- 翻译结果如下:
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。
今天只要你给我的文章点赞,我私藏的大模型学习资料一样免费共享给你们,来看看有哪些东西。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。