Maison >développement back-end >Tutoriel Python >Ollama - Modèle personnalisé - lama

Ollama - Modèle personnalisé - lama

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 02:16:09837parcourir

Importez la bibliothèque ollama.

import ollama

Créez une classe pour configurer des modèles personnalisés.

Méthodes :

  • init : initialise le modèle avec des attributs tels que le nom, le système et la température.
  • name_custom : renvoie le nom personnalisé.
  • get_description : Crée la structure ModelFile.
class ModelFile:
    def __init__(self, model: str, name_custom: str, system: str, temp: float = 0.1) -> None:
        self.__model = model
        self.__name_custom = name_custom
        self.__system = system
        self.__temp = temp

    @property
    def name_custom(self):
        return self.__name_custom

    def get_description(self):
        return (
            f"FROM {self.__model}\n"
            f"SYSTEM {self.__system}\n"
            f"PARAMETER temperature {self.__temp}\n"
        )

  • Créez une fonction pour lister tous les modèles disponibles.
  • Sortie : renvoie une liste des modèles enregistrés dans ollama.
def ollama_list() -> None:
    response_ollama = ollama.list()
    return response_ollama['models']

Créez une fonction pour créer un modèle personnalisé basé sur la configuration transmise.

def ollama_build(custom_config: ModelFile) -> None:
    ollama.create(
        model=custom_config.name_custom,
        modelfile=custom_config.get_description()
    )

Créez une fonction pour vérifier si le modèle personnalisé existe.

def check_custom_model(name_model) -> None:
    models = ollama_list()
    models_names = [model['name'] for model in models]
    if f'{name_model}:latest' in models_names:
        print('Exists')
    else:
        raise Exception('Model does not exists')

Créez une fonction pour générer une réponse basée sur le modèle et l'invite fournis.

def ollama_generate(name_model, prompt) -> None:
    response_ollama = ollama.generate(
        model=name_model,
        prompt=prompt
    )
    print(response_ollama['response'])

Créez une fonction pour supprimer un modèle par son nom.

def ollama_delete(name_model) -> None:
    ollama.delete(name_model)

Créez une fonction pour ordonner les étapes de construction, de vérification et d'utilisation du modèle.

def main(custom_config: ModelFile, prompt) -> None:
    ollama_build(custom_config)
    check_custom_model(custom_config.name_custom)
    ollama_generate(custom_config.name_custom, prompt)
    # ollama_delete(custom_config.name_custom)

Définissez l'invite et configurez le modèle de fichier modèle.

Entrée :

  • Modèle : lama3.2
  • Nom personnalisé : xeroxvaldo_sharopildo
  • Système : Assistant d'anime intelligent.

Sortie : exécute la fonction principale pour créer le modèle, vérifier son existence et générer une réponse à l'invite.

if __name__ == "__main__":
    prompt: str = 'Who is Naruto Uzumaki ?'
    MF: ModelFile = ModelFile(
        model='llama3.2',
        name_custom='xeroxvaldo_sharopildo',
        system='You are very smart assistant who knows everything about Anime',
    )
    main(MF, prompt)

sortie :

Naruto Uzumaki est le principal protagoniste de la populaire série manga et anime japonaise "Naruto", créée par Masashi Kishimoto. C'est un jeune ninja du Hidden Leaf Village, qui rêve de devenir l'Hokage, le chef de son village.

Naruto est connu pour sa détermination, son courage et son sens aigu de la justice. Il est également célèbre pour son style ninja unique, qui consiste à utiliser son chakra à neuf queues (une énergie puissante qu'il possède) pour améliorer ses capacités physiques.

Tout au long de la série, Naruto fait face à de nombreux défis et adversaires, notamment d'autres ninjas de différents villages, ainsi que des ennemis puissants comme les membres de l'Akatsuki et le jinchuriki de Ten-Tails. Malgré de nombreux revers et échecs, Naruto persévère et devient plus fort à chaque défi qu'il surmonte.

Le développement du personnage de Naruto est un thème central de la série, car il apprend de précieuses leçons sur l'amitié, le sacrifice et le véritable sens d'être un ninja. Ses relations avec ses coéquipiers, Sakura Haruno et Sasuke Uchiha, sont particulièrement importantes pour façonner sa personnalité et son évolution.

La série Naruto se compose de deux arcs principaux : l'arc original « Naruto » (2002-2007) et l'arc « Naruto Shippuden » (2007-2014). Ce dernier est une continuation du premier arc, avec Naruto désormais plus âgé et plus puissant.

Dans l’ensemble, Naruto Uzumaki est un personnage d’anime emblématique qui a conquis le cœur de millions de personnes dans le monde. Son histoire inspirante et sa personnalité mémorable ont fait de lui l'un des personnages les plus appréciés de l'histoire de l'anime !

import ollama

Références

  • Ollama
  • Cahier ce projet
  • Modèle Ollama personnalisé

Notes de l'auteur

Merci beaucoup d'avoir lu jusqu'ici. Si vous pouviez aimer et partager, je vous en serais très reconnaissant. Si vous ne l’avez pas aimé, je ne peux pas savoir si vous avez aimé le post. De cette façon, vous m'aidez à savoir où je dois améliorer mes messages. Merci.


Mes derniers messages

Ollama - Custom Model - llama

Vous avez dit GPU gratuit ?

sc0v0ne ・ 29 février

#python #gpu #ai #apprentissagemachine
Ollama - Custom Model - llama

Mes super pouvoirs en tant que développeur de logiciels - 2024

sc0v0ne ・ 6 janvier

#outils #développement logiciel #postes de travail #productivité
Ollama - Custom Model - llama

Devenir efficace avec Pomodoro

sc0v0ne ・ 12 février

#outils #productivité #développement logiciel

Projets favoris Open Source

  • ? Python
  • ?️ Apprentissage profond
  • ? Vision par ordinateur
  • ?️Linux
  • ? Séries temporelles
  • ? Base de données
  • ? Rouille
  • ?️ Apprentissage automatique
  • ?️ Feuilles de route

À propos de l'auteur :

sc0v0ne image

sc0v0ne

Ce blog a pour but de créer des articles sur des sujets que j'étudie et je les partage pour aider les autres utilisateurs.

Un peu plus sur moi...

Diplômé en Bachelor Systèmes d'Information, au collège j'ai été en contact avec différentes technologies. En chemin, j'ai suivi le cours d'Intelligence Artificielle, où j'ai eu mon premier contact avec l'apprentissage automatique et Python. De là est devenu ma passion d’en apprendre davantage sur ce domaine. Aujourd'hui, je travaille avec le machine learning et le deep learning en développant des logiciels de communication. En cours de route, j'ai créé un blog sur lequel je crée des articles sur des sujets que j'étudie et les partage pour aider les autres utilisateurs.

J'apprends actuellement TensorFlow et Computer Vision

Curiosité : j'adore le café

  • Kaggle
  • Gitlab
  • Github
  • Mastodon

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn