查看原文
其他

Groq API 使用指南:无需申请即可体验,从速率限制到模型参数解析

思辨view kate人不错 2024-05-19

之前我介绍过Groq,详见Groq技术新突破:Mixtral 8x7B模型实现每秒500个tokens的生成速度

Groq发布后,我立即提交了API申请,并很快收到了一封需等待的邮件回复。

近期,我注意到越来越多的用户开始使用Groq API。这促使我登录Groq官网进行查看,结果发现如今使用Groq API已无需申请。

https://wow.groq.com/

Groq API 现在还未收费,但是有速率限制。

Groq Playground

https://console.groq.com/playground

可调整参数

Temperature(温度)
temperature用于调整概率分布的平滑程度。当temperature接近0时,模型生成的文本几乎是确定性的,更倾向于选择概率最高的词;当temperature大于1时,会增加选择较不可能词的机会,从而提高文本的多样性和新颖性。
Temperature是一个全局调整:它影响整个概率分布,使所有词的概率都变得更平坦(当temperature高时)或更陡峭(当temperature低时)。
Top-p(顶部概率)
top_p采样,又称为nucleus sampling,则是一个局部调整它只考虑累计概率达到指定p阈值的那些最可能的词。top_p提供了一种方法来剪除那些极不可能的词,而不会影响最可能词的相对概率。
当设置top_p时,我们实际上是在告诉模型:“在选择下一个词时,只考虑那些累积概率加起来达到p这个阈值的最可能的词。”这个累积概率是指,将所有可能的下一个词按概率从高到低排序,然后从最高的概率开始累加,直到总和达到top_p值为止。
关于top_p的合适值没有固定的规则,因为这取决于特定的应用场景和所需的创造性水平。
较低的top_p值(例如0.1到0.4)会使得文本生成更加确定和一致,但可能会牺牲多样性和创造性。较高的top_p值(例如0.7到0.9)会增加文本的多样性和不确定性,但也可能产生更多的不相关或不连贯的内容。
在实践中,通常会通过实验和调整来找到最合适的top_p值,常见的做法是从一个中等的值(比如0.5)开始,然后根据生成的文本质量调整。
Stop(停止序列)
停止序列是一个预定义或用户指定的文本字符串,用来告诉AI何时停止生成内容。这确保了AI的响应保持专注和简洁。当模型生成的文本遇到停止序列时,它会停止进一步生成,从而允许用户控制输出的长度或结构。
以下可以用于“停止序列”:
特殊符号:句点、问号或感叹号
特殊字符串:“停止”或“结束”
特殊命令:“/stop”或“/end”
如果你在使用一个模型来生成电子邮件,你可能想要模型在生成到“此致”或者“敬礼”等结尾敬语后停止,避免生成多余的内容。你就可以在“Stop Sequence”里填入“此致”或“敬礼”。

Groq API 文档内容详细。

https://console.groq.com/docs/quickstart

Groq的API与OpenAI的API兼容,尽管在某些细节上存在差异。
不支持的字段:在使用Groq的API进行文本完成请求时,有几个字段如果提供了会导致400错误。
这些字段包括:
tools
tool_choice
logprobs
response_format
seed
N的限制:如果提供了N(期望的完成数量),它必须小于或等于1。这表明Groq的API在一次请求中只能生成一个文本完成结果,而不是像OpenAI API那样可以一次性生成多个结果。
温度(Temperature)参数的特殊处理:
如果设置的温度值为0,Groq的API会将其转换为1e-8。这是因为温度值为0在技术上可能导致生成过程无法进行。
如果遇到问题,建议将温度值设置为一个大于0且小于或等于2的float32类型的数值。
URL:Groq API的基础URL是https://api.groq.com/openai/v1

基于OpenAI API修改的Groq API使用示例代码:
import os
from openai import OpenAI

# 从环境变量中获取API密钥
api_key = os.getenv('GROQ_API_KEY'

# 设置自定义的基础URL
base_url = "https://api.groq.com/openai/v1"

# 创建OpenAI客户端
client = OpenAI(api_key=api_key, base_url=base_url)

# 创建聊天完成请求
response = client.chat.completions.create(
    messages=[
    {"role""system""content""你是一个有帮助的助手。"},
    {"role""user""content""光速是多少?"},
    {"role""assistant""content""在真空中,光速约为每秒299,792公里。"},
    {"role""user""content""什么是相对论?"},
    {"role""assistant""content""相对论是爱因斯坦提出的物理理论,主要分为狭义相对论和广义相对论。狭义相对论主要讨论在没有重力作用的情况下,物体的运动和时间、空间的关系;广义相对论则扩展到了引力场的影响,提出了时空弯曲的概念。"},
    {"role""user""content""爱因斯坦的质能等价公式是什么?"}
],
    model="mixtral-8x7b-32768",
    temperature=0.5,
    max_tokens=2048,
    top_p=1,
    stop=None,
    stream=False,
)

# 打印响应的第一个选择的消息内容
print(response.choices[0].message.content)

根据之前解释的temperature和top_p的概念,将temperature设置为2,top_p设置为1,执行后的输出文本出现混乱。

Groq的官方网站提供了一系列示例,供参考使用。

Groq的API为开发者提供了一个高效且兼容性强的工具,使得在各种应用场景下实现高质量的文本生成变得更加便捷。

通过对Temperature、Top-p等参数的灵活调整以及对停止序列的有效应用,用户可以精细控制生成内容的质量和风格。

我相信随着Groq API的不断优化和更新,未来它将为AI领域的创新应用带来更多可能性。


精选历史文章,请看这里:

AI-Typing-Assistant:借助大模型的打字助手,本地运行,安全,可定制

Mac 用户的 RAG 交互:通过 Chat-with-MLX 与数据对话

Mistral Large 亮相,仅次于 GPT-4 ,介绍+API 使用

实测在Mac上使用Ollama与AI对话的过程 - 模型选择、安装、集成使用记,从Mixtral8x7b到Yi-34B-Chat

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存