Google Gemini API快速上手

news2024/9/21 0:42:32

在这里插入图片描述

一、前言

12月6日,谷歌发布新一代大模型Gemini的demo, 同时,Bard已将模型更新为Gemini Pro

Gemini 是谷歌目前最新最强的大语言模型,支持多模态(文字,图片,音频,视频等等)处理

美国时间12月13日,Gemini API对公众开放,本文将教学Google Generative AI的简易使用流程。

1、适用范围和声明

如果你只是想体验Gemini,请直接前往 Bard

本文适用场景:批量处理大模型会话;Hackthon;CS课程设计;大模型相关创业demo,等

本文不适用:商业用途

本文使用的一切工具与数据均非内部工具和数据。 NOT Google internal only

本文可随意转载,复制代码

2、开始前的准备

完全不懂什么是大模型?听不懂很多术语?阅读 LLM 概念指南
2. 科学上网

==================================================================

1 生成式AI平台 MakerSuite (Google AI Studio)

MakerSuite是一个基于浏览器的 IDE,用于使用Generative language model(生成式语言模型)进行原型设计。借助 MakerSuite,可以快速试用模型并试验不同的prompt(提示)
在这里插入图片描述
MakerSuite 主界面 12.13更新前

左侧Create new将提供四种不同的方式与模型互动

在这里插入图片描述

Freeform prompt

Freeform prompt 文本/图片提示:输入一段提示,LLM将根据提示进行一段创作
在这里插入图片描述

Structured prompt
Structured prompt 结构化提示:提供表格输入,可以输入至多500组【输入,输出】的案例,根据案例,LLM可学习并基于案例处理新的提示
在这里插入图片描述

Chat prompt
Chat prompt 聊天提示:与chatgpt和bard类似的聊天框模式,支持输入历史会话
在这里插入图片描述

模型参数
模型参数设定 (第一次使用建议全部保持默认):

Model模型选择Gemini Pro(文字),Gemini Pro Vision (图片)

Temperature温度决定模型的创造力,越高越想象力丰富,越低越稳定

Safety settings安全设定中可以调整对骚扰,仇恨,性,恐怖等言论的屏蔽程度

Top K: 选择输出token的方式,top 1 表示永远输出评分最高的回答,top 10 表示在前10评分的回答中取样输出一个回答

Top P: 选择输出token的方式,如果前x个回答的概率之和高于p,则【Top P,其中P=p】等价于【Top K,其中K=x】

2 Fine-tuning model模型调整

在这里插入图片描述

模型预训练与模型调整的关系
大模型的预训练耗费海量数据与计算资源,包括Palm,Gemini在内的所有大模型都可称为预训练模型。

预训练的要求极高,超出个人或中小企业的能力范围。但是针对特定的需求和任务,个人可以用适量(<1000)数据和计算资源调整模型,使得模型特化某种任务解决的能力。

点击左方Create new,点击Tune Model

调整模型
点击import导入csv格式的训练数据,并选择1-多列为input,1-多列为output,做为调整模型的训练集
在这里插入图片描述

导入训练集

训练参数设定(第一次使用建议默认)

Model模型选择Text Bison,这是老模型PaLM2,新的Gemini截至目前还没可用

Tuning epochs 整个训练集的完整训练遍历次数

Batch size 一次训练迭代中用于验证的样本数量,越大越容易过拟合,越小越容易欠拟合

Learning rate 训练迭代中调整参数的强度,越大越容易过拟合,越小越容易欠拟合

点击Tune开始自动调参。模型调整完毕后,可以在上个环节的各种提示测试中使用自己的新模型

3 使用API,调用预训练模型

点击左侧Get API key

点击Create API key in new project生成API key,复制下来
在这里插入图片描述

API key 生成
回到刚才的模型页面,点击右上角Get code,其中会包含cURL,js,python,kotlin,swift,五种语言的调用API的代码,用刚才复制的替换代码中的 YOUR_API_KEY

以python为例,先安装插件

pip install google-generativeai

然后调用API

import google.generativeai as genai 

#换成你的api key
genai.configure(api_key="YOUR_API_KEY") 
#模型参数 
generation_config = { 
    "temperature": 0.9, 
    "top_p": 1, 
    "top_k": 1, 
    "max_output_tokens": 2048, 
} 

safety_settings = [ 
    {
        "category": "HARM_CATEGORY_HARASSMENT", 
        "threshold": "BLOCK_MEDIUM_AND_ABOVE" 
    }, 
    { 
        "category": "HARM_CATEGORY_HATE_SPEECH", 
        "threshold": "BLOCK_MEDIUM_AND_ABOVE" 
    }, 
    { 
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", 
        "threshold": "BLOCK_MEDIUM_AND_ABOVE" 
    }, 
    { 
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT", 
        "threshold": "BLOCK_MEDIUM_AND_ABOVE" 
    } 
] 

model = genai.GenerativeModel(model_name="gemini-pro", generation_config=generation_config, safety_settings=safety_settings) 

#输入提示
prompt_parts = [ "Hello world", ] 
#输出回答
response = model.generate_content(prompt_parts) 
print(response.text)
使用python文件读写,可以批量得到大量LLM回答

4 使用API调用自己调整的模型

如果你把上面的python程序中,model参数替换成你自己的模型,会遇上这样的报错

PermissionDenied: 403 Request had insufficient authentication scopes

是因为访问自己的模型需要OAuth身份验证。

获取OAuth身份验证需要前往谷歌云,生成个人密钥并下载到本地

这一步较为繁琐,Google有比较详细的逐步教程 https://developers.generativeai.google/tutorials/oauth_quickstart

完成以上身份验证步骤后,在python中可以用如下代码查看你能访问的所有模型

import google.generativeai as genai

print('Available base models:', [m.name for m in genai.list_models()])
print('My tuned models:', [m.name for m in genai.list_tuned_models()])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1398777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8S--部署Nacos

原文网址&#xff1a;K8S--部署Nacos-CSDN博客 简介 本文介绍K8S部署Nacos的方法。Nacos版本是&#xff1a;2.2.3。 部署方案 本文为了简单&#xff0c;使用此部署方式&#xff1a;使用本地pvconfigmap&#xff0c;以embedded模式部署单机nacos。以nodePort方式暴露端口。 …

如何使用 Typora 进行效率写作

引言 在数字化时代&#xff0c;写作已经成为我们生活中不可或缺的一部分。为了提高写作效率&#xff0c;寻找一款简单而功能强大的编辑器显得尤为重要。而Typora&#xff0c;作为一款所见即所得的Markdown编辑器&#xff0c;以其高效的特性和用户友好的界面吸引了众多写作者的…

Linux设备管理模型-02:sysfs

文章目录 sysfs1 使用sysfs控制GPIO2 sysfs编程2.1 完善sysfs属性文件的读写操作 上一篇文: 设备管理模型中的基础数据结构 sysfs sysfs是用于导出内核对象的文件系统&#xff0c;它是一个基于ram的文件系统&#xff0c;最初基于ramfs。 sysfs通常挂载在/sys目录下。它提供了一…

推荐新版AI智能聊天系统网站源码ChatGPT NineAi

Nine AI.ChatGPT是基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代…

管理信息系统知识点复习

目录 一、名词解释题1.企业资源规划(ERP)2.面向对象方法&#xff1a;3.电子健康&#xff1a;4.供应链5.数据挖掘6.“自上而下”的开发策略&#xff1a;7.业务流程重组8.面向对象&#xff1a;9.决策支持系统10.聚类11.集成开发环境&#xff1a;12.供应商协同13.数据仓库14.深度学…

interpret,一个超酷的 Python 库

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - interpret。 Github地址&#xff1a;https://github.com/interpretml/interpret Python Interpret 是一个强大的开源工具&#xff0c;它为 Python 开发…

我为什么不建议使用框架默认的 DefaultMeterObservationHandler

我为什么不建议使用框架默认的 DefaultMeterObservationHandler 个人创作公约&#xff1a;本人声明创作的所有文章皆为自己原创&#xff0c;如果有参考任何文章的地方&#xff0c;会标注出来&#xff0c;如果有疏漏&#xff0c;欢迎大家批判。如果大家发现网上有抄袭本文章的&a…

传统语音识别系统流程

文章目录 概述语音识别原理公式语音识别术语&#xff1a;分帧提取声学特征声学模型 概述 语音识别传统方法主要分两个阶段&#xff1a;训练和识别&#xff0c;训练阶段主要是生成声学模型和语言模型给识别阶段用。传统方法主要有五大模块组成&#xff0c;分别是特征提取&#…

JVM 如何判断一个对象可以被回收

Hi&#xff0c; 我是 浮生。 今天分享一道一线互联网公司必问的面试题。 ”JVM 如何判断一个对象可以被回收“ 关于这个问题&#xff0c;来看看高手的回答。 一、问题解析 在 JVM 里面&#xff0c;要判断一个对象是否可以被回收&#xff0c;最重要的是判断这个对象是否还在被…

XHCMS靶场小记(熊海)

文件包含漏洞 template下的header.php中存在文件包含漏洞&#xff08;该文件被file文件夹下的多数文件进行包含&#xff09; f参数可以包含任意文件通过php格式解析&#xff08;这是文件包含点&#xff09; 代码分析 根目录下的index.php文件&#xff1b;r参数用于获取包含文…

怎样使用崭新的硬盘

新买的一块硬盘&#xff0c;接到电脑上&#xff0c;打开机器&#xff0c;却找不到新的硬盘&#xff0c;怎么回事&#xff1f;新的硬盘是坏的么&#xff1f;怎样才能把新硬盘用起来&#xff1f; 可能有几种原因导致您的电脑无法识别新的硬盘。以下是一些建议的解决方法&#xff…

SOCKET编程和TCP通信案例三次握手四次挥手

文章目录 一、SOCKET1、网络套接字SOCKET2、网络字节序2.1、小端法2.2、大端法2.3、字节序转换3、IP地址转换函数3.1、本地字节序转网络字节序3.1.1、函数原型&#xff1a;3.1.2、返回值3.2、网络字节序转本地字节序3.2.1、函数原型3.2.2、返回值4、sockaddr地址结构&#xff0…

Android Termux技能大揭秘:安装MySQL并实现公网远程连接

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、Cpolar杂谈 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 安装MariaDB二. 安装cpolar内网穿透工具三. 创建安全隧道映射mysql四. 公网…

Linux下安装docker

1、查看系统版本 Docker支持64位版本的CentOS 7和CentOS 8及更高版本&#xff0c;它要求Linux内核版本不低于3.10。查看Linux版本的命令这里推荐两种&#xff1a;lsb_release -a或cat /etc/redhat-release。 显然&#xff0c;当前Linux系统为CentOS7。再查一下内核版本是否不低…

MCM备赛笔记——蒙特卡罗方法

Key Concept 蒙特卡罗方法&#xff08;Monte Carlo Method&#xff09;&#xff0c;也称为统计模拟方法&#xff0c;是一种基于概率和统计的数值计算方法。该方法使用随机数&#xff08;或更常见的伪随机数&#xff09;来解决可能非常复杂的数学或物理问题。蒙特卡罗方法广泛应…

关于xftp突然无法连接服务器或虚拟机,可以ping通自己的虚拟机ip地址

关于xftp突然无法连接服务器或虚拟机,ping自己的虚拟机ip地址可以ping通 主机能ping通虚拟机&#xff08;ubuntu&#xff09; C:\Users\42216\Desktop>ping 192.168.61.128正在 Ping 192.168.61.128 具有 32 字节的数据: 来自 192.168.61.128 的回复: 字节32 时间<1ms …

链表的相交

链表的相交 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/intersection-of-tw…

selenium自动化测试框架简介

工欲善其事必先利其器&#xff0c;对于自动化测试也是同样的道理。进入自动化测试之前&#xff0c;怎么能不了解我们都有哪些框架、工具&#xff0c;又有哪些是主流的呢&#xff1f;1. 行业自动化测试框集 对于大多数同学来说&#xff0c;并不需要全面了解自动化测试工具都有哪…

大数据导论(3)---大数据技术

文章目录 1. 大数据技术概述2. 数据采集与预处理2.1 数据采集2.2 预处理 3. 数据存储和管理3.1 分布式基础架构Hadoop3.2 分布式文件系统HDFS3.3 分布式数据库HBase3.4 非关系型数据库NoSQL 4. 数据可视化与保护 1. 大数据技术概述 大数据技术主要包括数据采集与预处理、数据存…

Linux指令(四)

1.more指令 我们知道cat指令是用来读取文本文件的&#xff0c;但是如果是大文件&#xff0c;其实是不适合cat读取的&#xff0c;原因是&#xff1a;cat读取会直接到文本的结尾&#xff0c;所以我们引入&#xff1a;more指令 该指令不会将文件直接读到结尾&#xff0c;而是将最…