【小沐学AI】Google AI大模型的一点点学习(Python)

慈云数据 1年前 (2024-03-24) 技术支持 92 0

文章目录

  • 1、Google AI简介
    • 1.1 Google AI Studio
    • 1.2 Bard
    • 1.3 PaLM
    • 1.4 Gemini
    • 1.5 Gemini API
    • 1.6 Vertex AI
    • 1.7 Gemma
    • 2、Google AI开发
      • 2.1 快速入门
        • 2.1.1 配置开发环境
        • 2.1.2 列出所有模型
        • 2.1.3 从文本输入生成文本
        • 2.1.4 从图像和文本输入生成文本
        • 2.1.5 聊天对话
        • 结语

          1、Google AI简介

          Gemini 是 Google 最大、功能最强大的 AI 模型。

          在这里插入图片描述

          语言模型技术发展图鉴,出自最新的一篇文章:

          Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

          https://arxiv.org/pdf/2304.13712.pdf

          在这里插入图片描述

          1.1 Google AI Studio

          最快速开始使用 Gemini 的方法是使用 Google AI Studio,这是一款基于网络的工具,可让您直接在浏览器中对提示进行原型设计和运行。

          https://aistudio.google.com/app/prompts/new_chat

          在这里插入图片描述

          借助 Google AI Studio,开发人员可以将 Gemini 模型与简单安全的 API 无缝集成,快速开发提示,并将想法转化为代码以构建生成式 AI 应用。

          1.2 Bard

          2023年5月,谷歌推出了由 PaLM2 驱动的全新对话式 AI 引擎 Bard,简单地说就是谷歌版的 New Bing Chat。

          在这里插入图片描述

          现在Bard 更名 Gemini。2024年2月8日,Bard完成了全面升级。Google也宣布进入Gemini新纪元。从今天开始,Bard将会更名为Gemini。

          https://gemini.google.com/app

          1.3 PaLM

          https://ai.google/discover/palm2

          PaLM 2 是一系列语言模型,针对关键开发者使用场景进行了优化。PaLM 系列模型包括针对文本和聊天生成以及文本嵌入训练的变体。

          在这里插入图片描述

          在这里插入图片描述

          模型名称更新时间型号代码
          Bison Text2023 年 5 月text-bison-001
          Bison Chat2023 年 5 月chat-bison-001
          Gecko Embedding2023 年 5 月embedding-gecko-001

          1.4 Gemini

          https://deepmind.google/technologies/gemini/#introduction

          Gemini 是 Google 最大、功能最强大的 AI 模型。

          Gemini 是 Google 的最新一代生成模型,超越了 PaLM 模型系列的功能。

          Gemini 和 PaLM 模型之间的主要区别在于 Gemini 视觉模型能够处理图像输入。您可以使用文本和/或图片向 Gemini 模型提示。PaLM 模型仅处理文本输入和输出。这两个模型系列都可以执行文本提示、聊天互动和结构化提示。

          在这里插入图片描述

          Gemini 是 Google最大、能力最强的人工智能模型,Gemini分为三种规模:Ultra、Pro和Nano,适用于从大型数据中心到移动设备的各种场景。目前,Bard已经集成了Gemini Pro,提升了其在高级推理、规划、理解等方面的能力。

          在这里插入图片描述

          • Gemini Ultra:最强大的模型,设计用于复杂任务,在TPU***上可高效服务。
          • Gemini Pro:在成本和延迟方面进行了优化,该模型在广泛的任务中提供显著性能,展示出强大的推理和多模态能力。
          • Gemini Nano:最高效的设备上模型,有两个版本(1.8B和3.25B参数),适用于低内存和高内存设备。它通过从更大的模型中提取精华训练,并以4位量化部署。

            1.5 Gemini API

            Gemini API 为 Gemini 和 PaLM 生成式 AI 模型提供了编程接口。

            • 适用于 Gemini API 的 AI 模型:

              在这里插入图片描述

            • Vertex AI Gemini API 支持以下 SDK:
              model = genai.GenerativeModel(model_name="gemini-1.0-pro-vision")
              response = model.generate_content(["What is this?", img])
              

              1.6 Vertex AI

              https://cloud.google.com/vertex-ai

              Vertex AI 提供构建和使用生成式 AI 所需的一切,包括 AI 解决方案、Search and Conversation、130 多种基础模型,以及统一的 AI 平台。

              Vertex AI 是一个机器学习 (ML) 平台,可让您训练和部署机器学习模型和人工智能应用。Vertex AI 结合了数据工程、数据科学和机器学习工程工作流,使团队能够使用通用工具集进行协作。

              在这里插入图片描述

              1.7 Gemma

              https://ai.google.dev/gemma?hl=zh-cn

              Gemma 是一个轻量级、最先进的开放式模型系列,采用与创建 Gemini 模型相同的研究和技术构建。Gemma 由 Google DeepMind 和 Google 的其他团队开发,灵感来自双子座,这个名字反映了拉丁语 gemma,意思是“宝石”。

              在这里插入图片描述

              Gemma 模型非常适合各种文本生成任务,包括问答、总结和推理。它们相对较小的尺寸使其可以部署在资源有限的环境中,例如笔记本电脑、台式机或您自己的云基础设施,从而实现对最先进 AI 模型的访问民主化,并帮助促进每个人的创新。

              Gemma 是 Google DeepMind 推出的全新系列轻量级、先进的开放模型。此型号卡包括 2B 和 7B 型号变体。

              2、Google AI开发

              https://ai.google.dev/tutorials?hl=zh-cn

              借助 Gemini API,您可以使用 Google 最新的生成式 AI 模型。

              2.1 快速入门

              Gemini 快速入门可帮助您使用自己偏好的编程语言开始使用 Gemini。

              • Python
              • Go
              • Node.js
              • Web
              • Dart (Flutter)
              • Swift
              • Android
              • REST API

                2.1.1 配置开发环境

                开始配置开发环境:

                • (1)安装Python3.11

                  https://www.python.org/downloads/windows/

                  在这里插入图片描述

                  在这里插入图片描述

                  • (2)安装google-generativeai
                    # pip install -q -U google-generativeai
                    pip install google-generativeai
                    

                    在这里插入图片描述

                    • (3)安装jupyter notebook
                      pip install jupyter notebook
                      

                      在这里插入图片描述

                      • (4)命令行执行命令:
                        jupyter notebook
                        

                        在这里插入图片描述

                        自动打开浏览器,显示如下网址,

                        在这里插入图片描述

                        然后按照如下步骤新建notebook。

                        在这里插入图片描述

                        显示如下:

                        在这里插入图片描述

                        2.1.2 列出所有模型

                        • (5)输入Python代码如下:
                          import pathlib
                          import textwrap
                          import google.generativeai as genai
                          from IPython.display import display
                          from IPython.display import Markdown
                          def to_markdown(text):
                            text = text.replace('•', '  *')
                            return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
                          # 将密钥传递给genai.configure
                          # pip install -U python-dotenv
                          from dotenv import load_dotenv, find_dotenv
                          load_dotenv(find_dotenv('.env'))
                          # genai.configure(api_key=GOOGLE_API_KEY)
                          genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
                          # 用于查看可用的 Gemini 型号
                          for m in genai.list_models():
                            if 'generateContent' in m.supported_generation_methods:
                              print(m.name)
                          

                          在这里插入图片描述

                          执行Python代码:

                          在这里插入图片描述

                          结果如下:

                          在这里插入图片描述

                          2.1.3 从文本输入生成文本

                          • (6)输入Python代码如下:
                            import pathlib
                            import textwrap
                            import google.generativeai as genai
                            from IPython.display import display
                            from IPython.display import Markdown
                            def to_markdown(text):
                              text = text.replace('•', '  *')
                              return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
                            # 将密钥传递给genai.configure
                            # pip install -U python-dotenv
                            import os
                            from dotenv import load_dotenv, find_dotenv
                            load_dotenv(find_dotenv('.env'))
                            # genai.configure(api_key=GOOGLE_API_KEY)
                            genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
                            # 对于纯文本提示,请使用以下模型:gemini-pro
                            model = genai.GenerativeModel('gemini-pro')
                            # 从文本输入生成文本
                            response = model.generate_content("写一段关于flask的Python代码,并向爱看书的小沐解释")
                            # 打印结果
                            print(response.text)
                            

                            界面如下:

                            在这里插入图片描述

                            执行Python代码的结果如下:

                            在这里插入图片描述

                            2.1.4 从图像和文本输入生成文本

                            这里有一张图:

                            在这里插入图片描述

                            使用模型并将图像传递给模型,让它输出文字描述。

                            • (6)输入Python代码如下:
                              import pathlib
                              import textwrap
                              import google.generativeai as genai
                              from IPython.display import display
                              from IPython.display import Markdown
                              def to_markdown(text):
                                text = text.replace('•', '  *')
                                return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
                                
                              # 将密钥传递给genai.configure
                              # pip install -U python-dotenv
                              import os
                              from dotenv import load_dotenv, find_dotenv
                              load_dotenv(find_dotenv('.env'))
                              # genai.configure(api_key=GOOGLE_API_KEY)
                              genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
                              # 对于纯文本提示,请使用以下模型:gemini-pro
                              model = genai.GenerativeModel('gemini-pro-vision')
                              # 图片转文字
                              import PIL.Image
                              img = PIL.Image.open('flower.jpg')
                              response = model.generate_content(img)
                              to_markdown(response.text)
                              

                              界面如下:

                              在这里插入图片描述

                              执行Python代码的结果如下:

                              在这里插入图片描述

                              若要在提示中同时提供文本和图像,请传递包含字符串和图像的列表:

                              import pathlib
                              import textwrap
                              import google.generativeai as genai
                              from IPython.display import display
                              from IPython.display import Markdown
                              def to_markdown(text):
                                text = text.replace('•', '  *')
                                return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
                              # 将密钥传递给genai.configure
                              # pip install -U python-dotenv
                              import os
                              from dotenv import load_dotenv, find_dotenv
                              load_dotenv(find_dotenv('.env'))
                              # genai.configure(api_key=GOOGLE_API_KEY)
                              genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
                              # 对于纯文本提示,请使用以下模型:gemini-pro
                              model = genai.GenerativeModel('gemini-pro-vision')
                              import PIL.Image
                              img = PIL.Image.open('flower.jpg')
                              response = model.generate_content(["基于这张图片,给名字叫'爱看书的小沐'的小伙伴写一小段短文,字数100字左右", img])
                              response.resolve()
                              to_markdown(response.text)
                              

                              界面如下:

                              在这里插入图片描述

                              执行Python代码的结果如下:

                              在这里插入图片描述

                              2.1.5 聊天对话

                              Gemini 使您能够在多个回合中进行自由形式的对话。

                              import pathlib
                              import textwrap
                              import google.generativeai as genai
                              from IPython.display import display
                              from IPython.display import Markdown
                              def to_markdown(text):
                                text = text.replace('•', '  *')
                                return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
                              # 将密钥传递给genai.configure
                              # pip install -U python-dotenv
                              import os
                              from dotenv import load_dotenv, find_dotenv
                              load_dotenv(find_dotenv('.env'))
                              # genai.configure(api_key=GOOGLE_API_KEY)
                              genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
                              # 对于纯文本提示,请使用以下模型:gemini-pro
                              model = genai.GenerativeModel('gemini-pro')
                              chat = model.start_chat(history=[])
                              response = chat.send_message("生命诚可贵,爱情价更高。若为自由故,二者皆可抛。")
                              to_markdown(response.text)
                              # print(chat.history)
                              for message in chat.history:
                                display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))
                              

                              界面如下:

                              在这里插入图片描述

                              执行Python代码的结果如下:

                              在这里插入图片描述

                              结语

                              如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭

                              如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???

                              如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)

                              感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

微信扫一扫加客服

微信扫一扫加客服