? aivmlib : ai vis v oice m odel file (.aivm/.aivmx) utilidad lib rary
AIVM ( Ai Vis V oice M Odel) / AIVMX ( Ai Vis V oice M Odel para Onn X ) es un formato de archivo abierto para modelos de síntesis de voz de IA que combina modelos previamente capacitados, hiperparámetros, vectores de estilo, metadatos de altavoces (nombres, vistas sobre sobrecargadores, licencias, iconos, muestras de voz, etc.) en un archivo .
Nota
"AIVM" también es un término general para las especificaciones de formato AIVM/AIVMX y las especificaciones de metadatos.
Específicamente, el archivo AIVM es un archivo modelo en "formato Safetensors con metadatos AIVM agregados", y el archivo AIVMX es un archivo de modelo en "formato ONNX con metadatos AIVM agregados".
"Metadatos AIVM" se refiere a varios metadatos que están vinculados a un modelo entrenado como se define en la especificación AIVM.
Puede usar fácilmente los modelos de síntesis de voz de AI agregando archivos AIVM/AIVMX al software que admite las especificaciones de AIVM, incluida AIVISSPeech/AivissPeech-Engine.
AIVMLIB/AIVMLIB-WEB proporciona una utilidad para leer y escribir metadatos en archivos AIVM/AIVMX.
Este AIVMLIB es una implementación de referencia de la especificación AIVM escrita en Python. Si está utilizando un navegador web, use AIVMLIB-WEB.
Consejo
AIVM Generator le permite generar y editar fácilmente archivos AIVM/AIVMX utilizando la GUI en su navegador.
Recomendamos usar el generador AIVM al generar y editar manualmente archivos AIVM/AIVMX.
Si lo instala con PIP, la herramienta de línea de comandos aivmlib también se instalará automáticamente.
Requiere Python 3.11 o superior.
pip install aivmlibYo uso poesía durante el desarrollo.
pip install poetry
git clone https://github.com/Aivis-Project/aivmlib.git
cd aivmlib
poetry install --with dev
poetry run aivmlib --helpA continuación se muestra cómo usar la herramienta CLI en sí.
$ aivmlib --help
Usage: aivmlib [OPTIONS] COMMAND [ARGS]...
Aivis Voice Model File (.aivm/.aivmx) Utility Library
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it │
│ or customize the installation. │
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────╮
│ create-aivm 与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, │
│ スタイルベクトルから AIVM メタデータを生成した上で、 │
│ それを書き込んだ仮の AIVM ファイルを生成する │
│ create-aivmx 与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, │
│ スタイルベクトルから AIVM メタデータを生成した上で、 │
│ それを書き込んだ仮の AIVMX ファイルを生成する │
│ show-metadata 指定されたパスの AIVM / AIVMX ファイル内に記録されている AIVM │
│ メタデータを見やすく出力する │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib show-metadata --help
Usage: aivmlib show-metadata [OPTIONS] FILE_PATH
指定されたパスの AIVM / AIVMX ファイル内に記録されている AIVM メタデータを見やすく出力する
╭─ Arguments ───────────────────────────────────────────────────────────────────────╮
│ * file_path PATH Path to the AIVM / AIVMX file [default: None] │
│ [required] │
╰───────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib create-aivm --help
Usage: aivmlib create-aivm [OPTIONS]
与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, スタイルベクトルから
AIVM メタデータを生成した上で、それを書き込んだ仮の AIVM ファイルを生成する
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ * --output -o PATH Path to the output AIVM │
│ file │
│ [default: None] │
│ [required] │
│ * --model -m PATH Path to the Safetensors │
│ model file │
│ [default: None] │
│ [required] │
│ --hyper-parameters -h PATH Path to the hyper │
│ parameters file │
│ (optional) │
│ [default: None] │
│ --style-vectors -s PATH Path to the style │
│ vectors file (optional) │
│ [default: None] │
│ --model-architecture -a [Style-Bert-VITS2 | Styl Model architecture │
│ e-Bert-VITS2 [default: │
│ (JP-Extra)] Style-Bert-VITS2 │
│ (JP-Extra)] │
│ --help Show this message and │
│ exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯
$ aivmlib create-aivmx --help
Usage: aivmlib create-aivmx [OPTIONS]
与えられたアーキテクチャ, 学習済みモデル, ハイパーパラメータ, スタイルベクトルから
AIVM メタデータを生成した上で、それを書き込んだ仮の AIVMX ファイルを生成する
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ * --output -o PATH Path to the output AIVMX │
│ file │
│ [default: None] │
│ [required] │
│ * --model -m PATH Path to the ONNX model │
│ file │
│ [default: None] │
│ [required] │
│ --hyper-parameters -h PATH Path to the hyper │
│ parameters file │
│ (optional) │
│ [default: None] │
│ --style-vectors -s PATH Path to the style │
│ vectors file (optional) │
│ [default: None] │
│ --model-architecture -a [Style-Bert-VITS2 | Styl Model architecture │
│ e-Bert-VITS2 [default: │
│ (JP-Extra)] Style-Bert-VITS2 │
│ (JP-Extra)] │
│ --help Show this message and │
│ exit. │
╰───────────────────────────────────────────────────────────────────────────────────╯A continuación se muestra un ejemplo de ejecutar el comando.
# Safetensors 形式で保存された "Style-Bert-VITS2 (JP-Extra)" モデルアーキテクチャの学習済みモデルから AIVM ファイルを生成
# .safetensors と同じディレクトリに config.json と style_vectors.npy があることが前提
# -a オプションを省略した場合、既定で "Style-Bert-VITS2 (JP-Extra)" の学習済みモデルと判定される
$ aivmlib create-aivm -o ./output.aivm -m ./model.safetensors
# 明示的にハイパーパラメータとスタイルベクトルのパスを指定して生成
$ aivmlib create-aivm -o ./output.aivm -m ./model.safetensors -h ./config.json -s ./style-vectors.npy
# ONNX 形式で保存された "Style-Bert-VITS2" モデルアーキテクチャの学習済みモデルから AIVMX ファイルを生成
# .onnx と同じディレクトリに config.json と style_vectors.npy があることが前提
$ aivmlib create-aivmx -o ./output.aivmx -m ./model.onnx -a " Style-Bert-VITS2 "
# 明示的にハイパーパラメータとスタイルベクトルのパスを指定して生成
$ aivmlib create-aivmx -o ./output.aivmx -m ./model.onnx -a " Style-Bert-VITS2 " -h ./config.json -s ./style-vectors.npy
# AIVM ファイルに格納された AIVM メタデータを確認
$ aivmlib show-metadata ./output.aivm
# AIVMX ファイルに格納された AIVM メタデータを確認
$ aivmlib show-metadata ./output.aivmxConsejo
Para el uso como biblioteca, consulte Implementación de la herramienta CLI implementada en __main__.py .
Importante
AIVMLIB/AIVMLIB-WEB es una biblioteca que solo lee/escribe funciones para formatos de archivo AIVM/AIVMX.
La lógica de inferencia para los modelos de síntesis de voz de IA para cada arquitectura del modelo y cómo los datos obtenidos de AIVMLIB/AIVMLIB-WEB se dejan al usuario de la biblioteca.
Licencia de MIT
Esta sección define las siguientes especificaciones técnicas incluidas en las "Especificaciones de AIVM":
El propósito es combinar el modelo de síntesis de voz de AI capacitado y los diversos metadatos necesarios para su uso en un solo archivo, evitando la disipación y confusión de archivos, y facilitar el uso y compartir el modelo.
Consejo
Al combinarlo en un solo archivo, puede operarlo fácilmente simplemente descargando el archivo AIVM/AIVMX y colocándolo en una carpeta especificada, y utilizando el modelo de síntesis de voz inmediatamente con software compatible.
Otra ventaja es que no es un archivo comprimido, por lo que no hay necesidad de implementarlo.
La especificación AIVM no se basa en la arquitectura del modelo del modelo de síntesis de voz.
Se ha diseñado con la escalabilidad futura y la versatilidad en mente para que los modelos de síntesis de voz de diferentes arquitecturas de modelos se puedan manejar en un formato de archivo común.
Si el modelo capacitado subyacente se guarda en un solo formato Safetensors o ONNX, en principio, puede agregar metadatos para generar archivos AIVM/AIVMX, independientemente de la arquitectura del modelo.
Al diseñar, enfatizamos la compatibilidad con los ecosistemas existentes para que puedan cargarse como seguros regulares o archivos ONNX sin ningún procesamiento de conversión.
Importante
La especificación AIVM no define el método de inferencia para cada arquitectura del modelo. Las especificaciones se definen como "un archivo que resume los metadatos del modelo de síntesis de voz de IA".
Por ejemplo, para los archivos AIVM, el modelo de síntesis de habla AI almacenado puede ser para Pytorch o TensorFlow.
Cómo inferir modelos de síntesis de voz AI se deja a la implementación de software que admite archivos AIVM/AIVMX.
Las especificaciones para el formato de archivo AIVM se muestran a continuación.
AIVM ( Ai Vis Veice M Odel) es una especificación de formato de segura extendida que almacena diversas información, como metadatos de altavoces (manifiesto AIVM), hiperparámetros y vectores de estilo como metadatos personalizados en el área de encabezado de un modelo capacitado almacenado en formato de seguros (Safetensores).
También se puede decir que es una "especificación de descripción de metadatos comunes para los modelos de síntesis de voz de IA guardados en formato Safetensors".
Debido a que es una especificación extendida en el formato Safetensor, se puede cargar como un archivo Safetensor normal como está.
Al igual que Safetensors, los primeros 8 bytes de un entero de 64 bits de Little Endian sin firmar es el tamaño del encabezado seguido de una cadena UTF-8 JSON por la longitud del tamaño del encabezado.
El encabezado JSON de Safetensors almacena el desplazamiento de tensores, etc., pero la tecla __metadata__ le permite establecer libremente el mapa de la cadena a la cadena.
Utilizando esta especificación, AIVM almacena los siguientes datos de cadena en las siguientes claves en __metadata__ :
aivm_manifest : aivm manifestaivm_hyper_parameters : hiperparámetros para modelos de síntesis de vozStyle-Bert-VITS2 y Style-Bert-VITS2 (JP-Extra) Modelo Architecture Stores JSON Stringsaivm_style_vectors : vectores de estilo de síntesis de discurso codificado base64 (binario)Style-Bert-VITS2 y Style-Bert-VITS2 (JP-Extra) , se almacena una cadena con una matriz Numpy codificada Base64 (.npy).A continuación se muestran las especificaciones para el formato de archivo AIVMX.
AIVMX ( Ai Vis Voice Model para ONNX ) es una especificación de formato ONNX extendida que almacena diversas información, como metadatos de altavoces (manifiesto AIVM), vectores de estilo hiperparameter como metadatos personalizados en el área de metadatos de un modelo entrenado almacenado en formato ONNX.
También se puede decir que es una "especificación de descripción de metadatos comunes para modelos de síntesis de voz de IA guardados en formato ONNX".
Debido a que es una especificación extendida en formato ONNX, se puede cargar como un archivo ONNX normal tal como es.
Los archivos ONNX se definen en el formato de buffers de protocolo, y están diseñados para almacenar metadatos como una lista de StringStringEntryProto en el campo metadata_props del mensaje Root ModelProto .
Utilizando esta especificación, AIVMX almacena los siguientes datos de cadena en las siguientes claves en metadata_props :
aivm_manifest : aivm manifestaivm_hyper_parameters : hiperparámetros para modelos de síntesis de vozStyle-Bert-VITS2 y Style-Bert-VITS2 (JP-Extra) Modelo Architecture Stores JSON Stringsaivm_style_vectors : vectores de estilo de síntesis de discurso codificado base64 (binario)Style-Bert-VITS2 y Style-Bert-VITS2 (JP-Extra) , se almacena una cadena con una matriz Numpy codificada Base64 (.npy).A continuación se muestran las especificaciones para el manifiesto AIVM (versión 1.0) incluida en el formato de archivo AIVM/AIVMX.
El manifiesto AIVM contiene varias información necesaria para usar el modelo de síntesis de voz, como la versión manifiesta, la arquitectura del modelo, el nombre del modelo, los metadatos del altavoz y la información de estilo.
El formato de datos para el manifiesto AIVM es una cadena UTF-8 escrita en formato JSON.
Debido al formato JSON, las imágenes y los datos de audio se almacenan como cadenas codificadas Base64.
Nota
AIVM (Safetensors) actualmente definido como el formato del contenedor para los manifiestas AIVM: el área de metadatos de AIVMX (ONNX) debe ser un valor clave de un tipo de cadena a un tipo de cadena sin anidar, por lo que todos los metadatos se serializan en una cadena y se almacenan.
Los datos binarios, como las imágenes y el audio, se almacenan como una cadena después de estar codificados Base64.
Style-Bert-VITS2Style-Bert-VITS2 (JP-Extra) Importante
El software que admite archivos AIVM/AIVMX debe validarse correctamente para los archivos AIVM/AIVMX de arquitecturas de modelos que no son compatibles con su propio software.
Por ejemplo, el software que no admite arquitecturas de modelos que no sean Style-Bert-VITS2 (JP-Extra) , cuando se le pide que instale el archivo AIVM/AIVMX para Style-Bert-VITS2 , se mostrará una alerta diciendo que "esta arquitectura de modelo no es compatible" y la instalación se abortará.
Importante
Técnicamente, se pueden almacenar modelos de síntesis de voz de arquitecturas de modelos distintas de las enumeradas anteriormente, pero las únicas cadenas de arquitectura de modelo mencionadas anteriormente se definen oficialmente en la especificación AIVM Manifest (versión 1.0).
Al definir su propia cadena de arquitectura de modelo, debe tener mucho cuidado para evitar los conflictos de nombres con las arquitecturas de modelos existentes o la desalineación entre el software diferente.
Se recomienda enviar solicitudes de extracción a este repositorio tanto como sea posible y agregar oficialmente soporte para la nueva arquitectura de modelo a la especificación AIVM.
A continuación se muestran las definiciones de campo para el manifiesto AIVM a partir de la especificación AIVM Manifest (versión 1.0) (extracto de la definición de esquema Pydantic de AIVMLIB).
Importante
Los campos en el manifiesto AIVM se pueden agregar, expandir o eliminar cuando la especificación AIVM se actualiza en el futuro.
También es muy posible que se agregen nuevos metadatos al manifiesto AIVM y al formato de archivo AIVM/AIVMX con soporte para futuras actualizaciones de versión y arquitecturas de modelos adicionales.
La única versión de manifiesto AIVM actualmente activa es 1.0 .
class ModelArchitecture ( StrEnum ):
StyleBertVITS2 = 'Style-Bert-VITS2' # 対応言語: "ja", "en-US", "zh-CN"
StyleBertVITS2JPExtra = 'Style-Bert-VITS2 (JP-Extra)' # 対応言語: "ja"
class ModelFormat ( StrEnum ):
Safetensors = 'Safetensors'
ONNX = 'ONNX'
class AivmManifest ( BaseModel ):
""" AIVM マニフェストのスキーマ """
# AIVM マニフェストのバージョン (ex: 1.0)
# 現在は 1.0 のみサポート
manifest_version : Literal [ '1.0' ]
# 音声合成モデルの名前 (最大 80 文字)
# 音声合成モデル内の話者が 1 名の場合は話者名と同じ値を設定すべき
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 80 )]
# 音声合成モデルの簡潔な説明 (最大 140 文字 / 省略時は空文字列を設定)
description : Annotated [ str , StringConstraints ( max_length = 140 )] = ''
# 音声合成モデルの制作者名のリスト (省略時は空リストを設定)
# 制作者名には npm package.json の "author", "contributors" に指定できるものと同じ書式を利用できる
# 例: ["John Doe", "Jane Doe <[email protected]>", "John Doe <[email protected]> (https://example.com)"]
creators : list [ Annotated [ str , StringConstraints ( min_length = 1 , max_length = 255 )]] = []
# 音声合成モデルのライセンス情報 (Markdown 形式またはプレーンテキスト / 省略時は None を設定)
# AIVM 仕様に対応するソフトでライセンス情報を表示できるよう、Markdown 形式またはプレーンテキストでライセンスの全文を設定する想定
# 社内のみでの利用など、この音声合成モデルの公開・配布を行わない場合は None を設定する
license : Annotated [ str , StringConstraints ( min_length = 1 )] | None = None
# 音声合成モデルのアーキテクチャ (音声合成技術の種類)
model_architecture : ModelArchitecture
# 音声合成モデルのモデル形式 (Safetensors または ONNX)
# AIVM ファイル (.aivm) のモデル形式は Safetensors 、AIVMX ファイル (.aivmx) のモデル形式は ONNX である
model_format : ModelFormat
# 音声合成モデル学習時のエポック数 (省略時は None を設定)
training_epochs : Annotated [ int , Field ( ge = 0 )] | None = None
# 音声合成モデル学習時のステップ数 (省略時は None を設定)
training_steps : Annotated [ int , Field ( ge = 0 )] | None = None
# 音声合成モデルを一意に識別する UUID
uuid : UUID
# 音声合成モデルのバージョン (SemVer 2.0 準拠 / ex: 1.0.0)
version : Annotated [ str , StringConstraints ( pattern = r'^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)(?:-((?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*)(?:.(?:0|[1-9]d*|d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?$' )]
# 音声合成モデルの話者情報 (最低 1 人以上の話者が必要)
speakers : list [ AivmManifestSpeaker ]
class AivmManifestSpeaker ( BaseModel ):
""" AIVM マニフェストの話者情報 """
# 話者の名前 (最大 80 文字)
# 音声合成モデル内の話者が 1 名の場合は音声合成モデル名と同じ値を設定すべき
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 80 )]
# 話者のアイコン画像 (Data URL)
# 画像ファイル形式は 512×512 の JPEG (image/jpeg)・PNG (image/png) のいずれか (JPEG を推奨)
icon : Annotated [ str , StringConstraints ( pattern = r'^data:image/(jpeg|png);base64,[A-Za-z0-9+/=]+$' )]
# 話者の対応言語のリスト (BCP 47 言語タグ)
# 例: 日本語: "ja", アメリカ英語: "en-US", 標準中国語: "zh-CN"
supported_languages : list [ Annotated [ str , StringConstraints ( pattern = r'^[a-z]{2,3}(?:-[A-Z]{4})?(?:-(?:[A-Z]{2}|d{3}))?(?:-(?:[A-Za-z0-9]{5,8}|d[A-Za-z0-9]{3}))*(?:-[A-Za-z](?:-[A-Za-z0-9]{2,8})+)*(?:-x(?:-[A-Za-z0-9]{1,8})+)?$' )]]
# 話者を一意に識別する UUID
uuid : UUID
# 話者のローカル ID (この音声合成モデル内で話者を識別するための一意なローカル ID で、uuid とは異なる)
local_id : Annotated [ int , Field ( ge = 0 )]
# 話者のスタイル情報 (最低 1 つ以上のスタイルが必要)
styles : list [ AivmManifestSpeakerStyle ]
class AivmManifestSpeakerStyle ( BaseModel ):
""" AIVM マニフェストの話者スタイル情報 """
# スタイルの名前 (最大 20 文字)
name : Annotated [ str , StringConstraints ( min_length = 1 , max_length = 20 )]
# スタイルのアイコン画像 (Data URL, 省略可能)
# 省略時は話者のアイコン画像がスタイルのアイコン画像として使われる想定
# 画像ファイル形式は 512×512 の JPEG (image/jpeg)・PNG (image/png) のいずれか (JPEG を推奨)
icon : Annotated [ str , StringConstraints ( pattern = r'^data:image/(jpeg|png);base64,[A-Za-z0-9+/=]+$' )] | None = None
# スタイルの ID (この話者内でスタイルを識別するための一意なローカル ID で、uuid とは異なる)
local_id : Annotated [ int , Field ( ge = 0 , le = 31 )] # 最大 32 スタイルまでサポート
# スタイルごとのボイスサンプル (省略時は空リストを設定)
voice_samples : list [ AivmManifestVoiceSample ] = []
class AivmManifestVoiceSample ( BaseModel ):
""" AIVM マニフェストのボイスサンプル情報 """
# ボイスサンプルの音声ファイル (Data URL)
# 音声ファイル形式は WAV (audio/wav, Codec: PCM 16bit)・M4A (audio/mp4, Codec: AAC-LC) のいずれか (M4A を推奨)
audio : Annotated [ str , StringConstraints ( pattern = r'^data:audio/(wav|mp4);base64,[A-Za-z0-9+/=]+$' )]
# ボイスサンプルの書き起こし文
# 書き起こし文は音声ファイルでの発話内容と一致している必要がある
transcript : Annotated [ str , StringConstraints ( min_length = 1 )]A. Para proporcionar dos formatos optimizados para diferentes aplicaciones y entornos, lo que permite un uso más flexible.
R. Sí, es posible.
AIVM está diseñado como una extensión del formato Safetensors, mientras que AIVMX está diseñado como una extensión del formato ONNX, por lo que cada uno puede leerse como un archivo Safetensors regular o un archivo ONNX.
Los metadatos AIVM se almacenan en el área de metadatos definidos por las especificaciones de formato del modelo existente y no afecta el comportamiento de las herramientas existentes.
A. Hay dos formas:
Tenga en cuenta que el modelo del que se está convirtiendo debe guardar en un solo formato Safetensor o ONNX.
A. El control de la versión manifiesta AIVM se lleva a cabo bajo las siguientes políticas:
Actualmente, 1.0 es el último.
A. AIVMLIB y AIVMLIB-WEB son bibliotecas que implementan la misma especificación AIVM para diferentes idiomas/entornos operativos.
BinaryIO en Python se convierte en File (blob) de la API web de JavaScript, el diseño de API básico es el mismo que AIVMLIB.Consejo
En este momento, no hay bibliotecas de especificación AIVM mantenidas oficialmente además de AIVMLIB/AIVMLIB-WEB.
Existe la posibilidad de que las bibliotecas de terceros para otros idiomas aparezcan en el futuro.
Importante
Al agregar soporte para las arquitecturas de nuevos modelos, debe agregar implementaciones tanto a AIVMLIB como a AIVMLIB-WEB.
Debido a que AIVM Generator usa AIVMLIB-WEB, ambas bibliotecas deben actualizarse para proporcionar nuevas funciones a los usuarios finales.
R. La especificación AIVM no especifica los detalles de implementación para las arquitecturas de modelos, lo que hace que sea relativamente fácil agregar nuevas arquitecturas de modelos.
GPT-SoVITS2 ) a ModelArchitecture .generate_aivm_metadata() al mismo tiempo.aivm_style_vectors y luego enviará una solicitud de extracción.Importante
Las especificaciones de manifiesto AIVM enviadas deben ser técnicamente compatibles con AIVMLIB (Python) y AIVMLIB-WEB (WEYSCRIPT Web).
AIVMLIB-WEB se usa dentro del generador AIVM.
Una vez que haya agregado soporte a AIVMLIB, agregue soporte a AIVMLIB-WEB también.
Nota
El manifiesto AIVM está diseñado para definir solo metadatos comunes que es independiente de la arquitectura del modelo.
Los hiperparámetros específicos de implementación deben almacenarse en el campo aivm_hyper_parameters .
También aceptamos la adición de definiciones de esquema pydántico para hiperparametros. Actualmente, solo se define el esquema de hiperparameter para las arquitecturas Style-Bert-VITS2 .
Nota
Por supuesto, el modelo de origen para AIVM/AIVMX debe guardarse en un solo formato Safetensors o ONNX.
Por lo tanto, las arquitecturas de modelos que abarcan múltiples archivos de modelo no son compatibles.
Considere cómo combinar archivos de modelo en uno o eliminar archivos de modelo innecesarios.
A. La información de la licencia está en Markdown o en texto plano, y configure una copia completa de la licencia directamente incrustada en un archivo AIVM/AIVMX.
Las razones para incorporar el texto de la licencia completa en lugar de especificar una URL son las siguientes:
R. Aunque no existe un límite de tamaño específico, el archivo del modelo en sí es generalmente enorme, por lo que el tamaño de archivo adicional aumenta debido a los metadatos debe mantenerse al mínimo.
Consejo
La implementación de referencia, Generador AIVM, sigue estas pautas para garantizar la optimización del tamaño adecuada.
A. La edición manual no se recomienda ya que los metadatos se integran directamente en el binario.
Si es un usuario final, use el generador AIVM.
Consejo
Los desarrolladores pueden escribir sus propias aplicaciones utilizando AIVMLIB/AIVMLIB-WEB.
La CLI AIVMLIB solo proporciona la capacidad de generar archivos AIVM/AIVMX con metadatos mínimos y verificar los metadatos.