MedLM es una familia de modelos básicos optimizados para el sector sanitario. Med-PaLM 2 es uno de los modelos basados en texto desarrollados por Google Research que impulsa MedLM. Fue el primer sistema de IA en alcanzar el nivel de un experto humano a la hora de responder preguntas similares a las del examen de licencia médica de Estados Unidos (USMLE). El desarrollo de estos modelos se ha basado en las necesidades específicas de los clientes, como responder a preguntas médicas y redactar resúmenes.
Tarjeta de modelo de MedLM
La tarjeta de modelo de MedLM describe los detalles del modelo, como el uso previsto de MedLM, un resumen de los datos y la información de seguridad. Haz clic en el siguiente enlace para descargar una versión PDF de la tarjeta del modelo MedLM:
Descargar la tarjeta de modelo de MedLM
Casos prácticos
- Respuesta a preguntas: proporciona borradores de respuestas a preguntas relacionadas con la medicina en formato de texto.
- Resumen: redacta una versión más breve de un documento (como un resumen posterior a la visita o una nota sobre el historial y la exploración física) que incluya información pertinente del texto original.
Para obtener más información sobre cómo diseñar peticiones de texto, consulta Descripción general de las estrategias de peticiones.
Solicitud HTTP
MedLM-medium (medlm-medium
):
POST https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-medium:predict
MedLM-large (medlm-large
):
POST https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/medlm-large:predict
Consulta el método predict
para obtener más información.
Versiones del modelo
MedLM proporciona los siguientes modelos:
- MedLM-medium (
medlm-medium
) - MedLM-large (
medlm-large
)
En la siguiente tabla se muestran las versiones estables del modelo disponibles:
Modelo medlm-medium | Fecha de lanzamiento |
---|---|
medlm-medium |
13 de diciembre del 2023 |
Modelo medlm-large | Fecha de lanzamiento |
---|---|
medlm-large |
13 de diciembre del 2023 |
MedLM-medium y MedLM-large tienen endpoints independientes y ofrecen a los clientes más flexibilidad para sus casos prácticos. MedLM-medium ofrece a los clientes mejores rendimientos e incluye datos más recientes. MedLM-large es el mismo modelo que en la fase de vista previa. Ambos modelos seguirán actualizándose durante el ciclo de vida del producto. En esta página, "MedLM" hace referencia a ambos modelos.
Para obtener más información, consulta Versiones y ciclo de vida de los modelos.
Filtros de seguridad y atributos de MedLM
El contenido procesado a través de la API MedLM se evalúa en función de una lista de atributos de seguridad, que incluye categorías dañinas y temas que pueden considerarse sensibles. Si ves una respuesta alternativa, como "No puedo ayudarte con eso, ya que solo soy un modelo de lenguaje", significa que la petición o la respuesta activan un filtro de seguridad.
Umbrales de seguridad
Cuando usas Vertex AI Studio, puedes usar un umbral de filtro de seguridad ajustable para determinar la probabilidad de que veas respuestas que puedan ser perjudiciales. Las respuestas del modelo se bloquean en función de la probabilidad de que contengan acoso, incitación al odio, contenido peligroso o contenido sexual explícito. El ajuste del filtro de seguridad se encuentra en la parte derecha del campo de petición de Vertex AI Studio. Puedes elegir entre tres opciones: block most
, block some
y block few
.
Probar los umbrales de confianza y gravedad
Puedes probar los filtros de seguridad de Google y definir los umbrales de confianza que mejor se adapten a tu empresa. Al usar estos umbrales, puede tomar medidas integrales para detectar contenido que infrinja las políticas de uso o los términos del servicio de Google y tomar las medidas oportunas.
Las puntuaciones de confianza son solo predicciones, por lo que no debes depender de ellas para determinar la fiabilidad o la precisión. Google no se hace responsable de interpretar ni de usar estas puntuaciones para tomar decisiones empresariales.
Prácticas recomendadas
Para utilizar esta tecnología de forma segura y responsable, es importante tener en cuenta otros riesgos específicos de tu caso de uso, tus usuarios y tu contexto empresarial, además de las medidas de protección técnicas integradas.
Te recomendamos que sigas estos pasos:
- Evalúa los riesgos de seguridad de tu aplicación.
- Considera la posibilidad de hacer ajustes para mitigar los riesgos de seguridad.
- Realiza pruebas de seguridad adecuadas para tu caso práctico.
- Solicitar comentarios de los usuarios y monitorizar el contenido.
Para obtener más información, consulta las recomendaciones de Google sobre IA responsable.
Cuerpo de la solicitud
{
"instances": [
{
"content": string
}
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"topK": integer,
"topP": number
}
}
Usa los siguientes parámetros para los modelos medlm-medium
y medlm-large
.
Para obtener más información, consulta Diseñar peticiones de texto.
Parámetro | Descripción | Valores aceptables |
---|---|---|
|
Entrada de texto para generar la respuesta del modelo. Las peticiones pueden incluir preámbulos, preguntas, sugerencias, instrucciones o ejemplos. | Texto |
|
La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican topP y topK . La temperatura controla el grado de aleatoriedad en la selección de tokens.
Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de 0
significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.
Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura. |
|
|
Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.
Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas. |
|
|
Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de 1 significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de 3 significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.
En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura. Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias. |
|
|
Top-P cambia la forma en que el modelo selecciona los tokens de salida. Los tokens se seleccionan
de más probable a menos probable hasta que la suma de sus probabilidades
sea igual al valor de top-P. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0,3, 0,2 y 0,1, y el valor de top_p es 0.5 , el modelo seleccionará A o B como el siguiente token usando la temperatura y excluirá C como candidato.
Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias. |
|
Solicitud de ejemplo
Cuando se usa la API MedLM, es importante incorporar la ingeniería de peticiones. Por ejemplo, te recomendamos que proporciones instrucciones adecuadas y específicas para cada tarea al principio de cada petición. Para obtener más información, consulta Introducción a las peticiones.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto.MEDLM_MODEL
: el modelo de MedLM,medlm-medium
omedlm-large
.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "instances": [ { "content": "Question: What causes you to get ringworm?" } ], "parameters": { "temperature": 0, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MEDLM_MODEL:predict" | Select-Object -Expand Content
Cuerpo de la respuesta
{
"predictions": [
{
"content": string,
"citationMetadata": {
"citations": [
{
"startIndex": integer,
"endIndex": integer,
"url": string,
"title": string,
"license": string,
"publicationDate": string
}
]
},
"logprobs": {
"tokenLogProbs": [ float ],
"tokens": [ string ],
"topLogProbs": [ { map<string, float> } ]
},
"safetyAttributes": {
"categories": [ string ],
"blocked": boolean,
"scores": [ float ],
"errors": [ int ]
}
}
],
"metadata": {
"tokenMetadata": {
"input_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
},
"output_token_count": {
"total_tokens": integer,
"total_billable_characters": integer
}
}
}
}
Elemento de respuesta | Descripción |
---|---|
content |
El resultado generado a partir del texto de entrada. |
categories |
Los nombres visibles de las categorías de atributos de seguridad asociadas al contenido generado. El orden coincide con las puntuaciones. |
scores |
Las puntuaciones de confianza de cada categoría. Un valor más alto significa una mayor confianza. |
blocked |
Marca que indica si se ha bloqueado la entrada o la salida del modelo. |
errors |
Un código de error que identifica por qué se ha bloqueado la entrada o la salida. Para ver una lista de códigos de error, consulta Filtros y atributos de seguridad. |
startIndex |
Índice de la salida de la predicción en la que empieza la cita (inclusive). Debe ser mayor o igual que 0 y menor que end_index . |
endIndex |
Índice de la salida de predicción en la que termina la cita (exclusivo). Debe ser superior a start_index e inferior a len(output) . |
url |
URL asociada a esta cita. Si está presente, esta URL enlaza a la página web de la fuente de esta cita. Entre las URLs posibles se incluyen sitios web de noticias, repositorios de GitHub, etc. |
title |
Título asociado a esta cita. Si está presente, se refiere al título de la fuente de esta cita. Por ejemplo, títulos de noticias o de libros. |
license |
Licencia asociada a esta recitación. Si está presente, hace referencia a la licencia de la fuente de esta cita. Entre las licencias posibles se incluyen las licencias de código, como la licencia MIT. |
publicationDate |
Fecha de publicación asociada a esta cita. Si está presente, se refiere a la fecha en la que se publicó la fuente de esta cita. Los formatos posibles son AAAA, AAAA-MM y AAAA-MM-DD. |
input_token_count |
Número de tokens de entrada. Es el número total de tokens de todas las peticiones, prefijos y sufijos. |
output_token_count |
Número de tokens de salida. Es el número total de tokens de content en todas las predicciones. |
tokens |
Los tokens muestreados. |
tokenLogProbs |
Logaritmo de las probabilidades de los tokens muestreados. |
topLogProb |
Los tokens candidatos más probables y sus probabilidades logarítmicas en cada paso. |
logprobs |
Resultados del parámetro `logprobs`. Asignación individual a `candidates`. |
Respuesta de ejemplo
{
"predictions": [
{
"citationMetadata": {
"citations": []
},
"content": "\n\nAnswer and Explanation:\nRingworm is a fungal infection of the skin that is caused by a type of fungus called dermatophyte. Dermatophytes can live on the skin, hair, and nails, and they can be spread from person to person through direct contact or through contact with contaminated objects.\n\nRingworm can cause a variety of symptoms, including:\n\n* A red, itchy rash\n* A raised, circular border\n* Blisters or scales\n* Hair loss\n\nRingworm is most commonly treated with antifungal medications, which can be applied to the skin or taken by mouth. In some cases, surgery may be necessary to remove infected hair or nails.",
"safetyAttributes": {
"scores": [
1
],
"blocked": false,
"categories": [
"Health"
]
}
}
],
"metadata": {
"tokenMetadata": {
"outputTokenCount": {
"totalTokens": 140,
"totalBillableCharacters": 508
},
"inputTokenCount": {
"totalTokens": 10,
"totalBillableCharacters": 36
}
}
}
}