我的Google Vertex AI实践经验分享
前言
作为一名忙碌的开发者,我时常希望能减少睡眠时间以完成更多工作。在这个过程中,我尝试了多种方法,并设计了多个概念验证项目。本文分享了我在使用Google的生成式AI服务Vertex AI时的实践经验。需要注意的是,市场在快速发展,文中提到的一些问题可能在你阅读时已得到改善。
基础设置
在使用GCP控制台时,我发现它比七年前复杂了许多。然而,Vertex AI的初始设置相对简单。登录GCP控制台,点击左上角的导航菜单,展开“更多产品”,并在“人工智能”菜单下选择Vertex AI。
在设置过程中,我遇到了一个问题:由于未启用所有推荐的API,设置微调任务时点击“开始微调”按钮后没有任何反应。解决方法是确保点击“启用所有推荐的API”按钮。
微调模型
成功执行微调任务花费了我一周时间。主要原因是GCP要求用户手动分配硬件资源配额,这对于没有运维背景的用户来说非常困难。我多次尝试设置硬件配额,最终在论坛求助并未得到答复后,自行摸索解决了问题。
微调任务失败的原因在于缺少硬件资源配额。GCP不提供默认硬件配额,用户需要手动申请。我申请了GPU和TPU的配额,但由于缺乏文档支持,我不知道需要申请多少单位。最终,我花费了86美元进行微调,训练数据集仅包含200行文本,总共35KB的数据。
API使用
在测试过程中,我发现Vertex AI的API使用需要OAuth认证,这对于不熟悉Web开发的用户来说非常不便。我创建了一个服务账户,并生成了包含所有必要信息的密钥文件,延长了认证生命周期至12小时。然而,依然缺乏实用的REST示例指导如何设置这些请求。
Vertex AI的JSON格式与OpenAI的JSON格式非常相似,主要区别在于Vertex AI将上下文作为单独的节点设置在消息数组旁边。尽管如此,我发现微调后的模型在回答训练数据中的问题时表现不佳,与预期相差甚远。
使用体验
在实际使用过程中,我发现在设置和使用Vertex AI时遇到了许多挑战。例如,当试图进行模型微调时,经常遇到硬件资源不足的问题。每次设置新的微调任务时,都需要手动调整和分配资源配额,这不仅耗时,还增加了出错的可能性。此外,Vertex AI的用户界面虽然功能强大,但对于初次使用者来说并不直观,需要花费时间去适应。
尽管如此,Vertex AI在处理复杂任务时表现出了强大的能力。特别是在图像识别和自然语言处理领域,其模型的精度和速度都非常令人满意。在一次项目中,我使用Vertex AI对大量图像数据进行了分类,结果不仅准确,而且处理速度非常快,这大大提高了项目的效率。
总结
尽管本文看似对Vertex AI充满抱怨,但我的目的是提供建设性的反馈。目前,我认为Vertex AI尚未准备好商业化使用。服务设置复杂,微调难以满足特定需求。这种复杂性可能会劝退只想“完成任务”的客户。
相比之下,Azure的OpenAI服务设置更简单,无需OAuth认证,也不需要手动分配硬件资源。我希望本文能帮助Google改进其产品,使其更易于使用。
希望通过这篇文章,能够为其他开发者提供一些参考,帮助他们更好地理解和使用Vertex AI。同时,也期待Google能够不断优化和改进这项服务,让更多的人能够受益于这项强大的技术。
示例代码
以下是一个简单的示例代码,展示了如何使用Vertex AI进行文本生成:
import vertexai
from google.auth import credentials
# 设置认证
credentials = credentials.Credentials.from_service_account_file('path/to/your/service-account-key.json')
vertexai.init(credentials=credentials)
# 初始化Vertex AI客户端
client = vertexai.TextGenerationClient()
# 定义输入参数
input_text = "Your prompt here"
response = client.generate(input_text)
# 输出结果
print(response.generated_text)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f32bbbe1e79349729ed36d14f480e334.png#pic_center)